]> git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
fix for gl_mesh_maxtriangles not defaulting correctly and raised minimum limit to...
authorlordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 27 May 2002 06:47:22 +0000 (06:47 +0000)
committerlordhavoc <lordhavoc@d7cf8633-e32d-0410-b094-e92efae38249>
Mon, 27 May 2002 06:47:22 +0000 (06:47 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@1872 d7cf8633-e32d-0410-b094-e92efae38249

gl_backend.c

index 1df56bdfd33f67c018d6c59d3734d23b21ecfc99..385a3d7338f203a81d6720c246ede7e82a42f785 100644 (file)
@@ -224,7 +224,7 @@ static void gl_backend_shutdown(void)
 
 static void gl_backend_bufferchanges(int init)
 {
-       if (gl_mesh_drawmode.integer == 3)
+       if (gl_mesh_drawmode.integer == 3 && qglDrawRangeElements != NULL)
        {
                if (gl_mesh_maxtriangles.integer * 3 > gl_maxdrawrangeelementsindices)
                        Cvar_SetValueQuick(&gl_mesh_maxtriangles, (int) (gl_maxdrawrangeelementsindices / 3));
@@ -233,13 +233,13 @@ static void gl_backend_bufferchanges(int init)
        }
 
        // 21760 is (65536 / 3) rounded off to a multiple of 128
-       if (gl_mesh_maxtriangles.integer < 256)
-               Cvar_SetValueQuick(&gl_mesh_maxtriangles, 256);
+       if (gl_mesh_maxtriangles.integer < 1024)
+               Cvar_SetValueQuick(&gl_mesh_maxtriangles, 1024);
        if (gl_mesh_maxtriangles.integer > 21760)
                Cvar_SetValueQuick(&gl_mesh_maxtriangles, 21760);
 
-       if (gl_mesh_transtriangles.integer < 256)
-               Cvar_SetValueQuick(&gl_mesh_transtriangles, 256);
+       if (gl_mesh_transtriangles.integer < 1024)
+               Cvar_SetValueQuick(&gl_mesh_transtriangles, 1024);
        if (gl_mesh_transtriangles.integer > 65536)
                Cvar_SetValueQuick(&gl_mesh_transtriangles, 65536);
 
@@ -1253,6 +1253,9 @@ void R_Mesh_Draw(const rmeshinfo_t *m)
        for (;j < backendunits;j++)
                memset(&texcoord[j][0].t[0], 0, m->numverts * sizeof(buf_texcoord_t));
        #endif
+
+       if (currenttriangle >= max_batch)
+               R_Mesh_Render();
 }
 
 void R_Mesh_Draw_NativeOnly(const rmeshinfo_t *m)
@@ -1425,6 +1428,9 @@ void R_Mesh_Draw_NativeOnly(const rmeshinfo_t *m)
                        fcolor[i].c[2] *= scaler;
                }
        }
+
+       if (currenttriangle >= max_batch)
+               R_Mesh_Render();
 }
 
 // allocates space in geometry buffers, and fills in pointers to the buffers in passsed struct