]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_draw.c
prevent Image_MipReduce from getting stuck in an infinite loop on 3D textures
[xonotic/darkplaces.git] / gl_draw.c
index 38c6536585b3c00d716f06686425cad2df070cf8..2c30279ca158a4f7cf3a526fed02172a4fccc71b 100644 (file)
--- a/gl_draw.c
+++ b/gl_draw.c
@@ -493,17 +493,10 @@ void GL_Draw_Init (void)
 
 void DrawQ_Begin(void)
 {
-       r_view_width = bound(0, r_refdef.width, vid.width);
-       r_view_height = bound(0, r_refdef.height, vid.height);
-       r_view_depth = 1;
-       r_view_x = bound(0, r_refdef.x, vid.width - r_refdef.width);
-       r_view_y = bound(0, r_refdef.y, vid.height - r_refdef.height);
-       r_view_z = 0;
-       r_view_matrix = r_refdef.viewentitymatrix;
-       GL_ColorMask(r_refdef.colormask[0], r_refdef.colormask[1], r_refdef.colormask[2], 1);
+       GL_ColorMask(r_view.colormask[0], r_view.colormask[1], r_view.colormask[2], 1);
 
        CHECKGLERROR
-       qglViewport(r_view_x, vid.height - (r_view_y + r_view_height), r_view_width, r_view_height);CHECKGLERROR
+       qglViewport(r_view.x, vid.height - (r_view.y + r_view.height), r_view.width, r_view.height);CHECKGLERROR
        GL_SetupView_Mode_Ortho(0, 0, vid_conwidth.integer, vid_conheight.integer, -10, 100);
        qglDepthFunc(GL_LEQUAL);CHECKGLERROR
        R_Mesh_Matrix(&identitymatrix);
@@ -511,6 +504,8 @@ void DrawQ_Begin(void)
        GL_DepthMask(true);
        GL_DepthTest(false);
        GL_Color(1,1,1,1);
+       GL_AlphaTest(false);
+       GL_BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 
        r_refdef.draw2dstage = true;
 }
@@ -552,9 +547,6 @@ void DrawQ_String_Real(float x, float y, const char *string, int maxlen, float w
                return;
        }
 
-       if (!r_render.integer)
-               return;
-
        if (alpha < (1.0f / 255.0f))
                return;
 
@@ -749,9 +741,6 @@ void DrawQ_SuperPic(float x, float y, cachepic_t *pic, float width, float height
                return;
        }
 
-       if (!r_render.integer)
-               return;
-
        _DrawQ_ProcessDrawFlag(flags);
 
        R_Mesh_VertexPointer(floats);
@@ -792,9 +781,6 @@ void DrawQ_Mesh (drawqueuemesh_t *mesh, int flags)
                return;
        }
 
-       if (!r_render.integer)
-               return;
-
        _DrawQ_ProcessDrawFlag(flags);
 
        R_Mesh_VertexPointer(mesh->data_vertex3f);
@@ -818,9 +804,6 @@ void DrawQ_LineLoop (drawqueuemesh_t *mesh, int flags)
                return;
        }
 
-       if (!r_render.integer)
-               return;
-
        _DrawQ_ProcessDrawFlag(flags);
 
        GL_Color(1,1,1,1);
@@ -857,9 +840,6 @@ void DrawQ_Line (float width, float x1, float y1, float x2, float y2, float r, f
                return;
        }
 
-       if (!r_render.integer)
-               return;
-
        CHECKGLERROR
        if(width > 0)
                DrawQ_LineWidth(width);