]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_backend.c
prevent creation of a cvar named "", as that breaks cvar()
[xonotic/darkplaces.git] / gl_backend.c
index 35a0e01fa12b4b12f6c71de92f66df596af3543e..955ac372631ca3b989dc8dae99e5f6e25480bd3d 100644 (file)
@@ -143,8 +143,10 @@ for (y = 0;y < rows - 1;y++)
 }
 */
 
-unsigned short polygonelements[(POLYGONELEMENTS_MAXPOINTS-2)*3];
-unsigned short quadelements[QUADELEMENTS_MAXQUADS*6];
+int polygonelement3i[(POLYGONELEMENTS_MAXPOINTS-2)*3];
+unsigned short polygonelement3s[(POLYGONELEMENTS_MAXPOINTS-2)*3];
+int quadelement3i[QUADELEMENTS_MAXQUADS*6];
+unsigned short quadelement3s[QUADELEMENTS_MAXQUADS*6];
 
 void GL_Backend_AllocArrays(void)
 {
@@ -236,21 +238,26 @@ void gl_backend_init(void)
 
        for (i = 0;i < POLYGONELEMENTS_MAXPOINTS - 2;i++)
        {
-               polygonelements[i * 3 + 0] = 0;
-               polygonelements[i * 3 + 1] = i + 1;
-               polygonelements[i * 3 + 2] = i + 2;
+               polygonelement3s[i * 3 + 0] = 0;
+               polygonelement3s[i * 3 + 1] = i + 1;
+               polygonelement3s[i * 3 + 2] = i + 2;
        }
        // elements for rendering a series of quads as triangles
        for (i = 0;i < QUADELEMENTS_MAXQUADS;i++)
        {
-               quadelements[i * 6 + 0] = i * 4;
-               quadelements[i * 6 + 1] = i * 4 + 1;
-               quadelements[i * 6 + 2] = i * 4 + 2;
-               quadelements[i * 6 + 3] = i * 4;
-               quadelements[i * 6 + 4] = i * 4 + 2;
-               quadelements[i * 6 + 5] = i * 4 + 3;
+               quadelement3s[i * 6 + 0] = i * 4;
+               quadelement3s[i * 6 + 1] = i * 4 + 1;
+               quadelement3s[i * 6 + 2] = i * 4 + 2;
+               quadelement3s[i * 6 + 3] = i * 4;
+               quadelement3s[i * 6 + 4] = i * 4 + 2;
+               quadelement3s[i * 6 + 5] = i * 4 + 3;
        }
 
+       for (i = 0;i < (POLYGONELEMENTS_MAXPOINTS - 2)*3;i++)
+               polygonelement3i[i] = polygonelement3s[i];
+       for (i = 0;i < QUADELEMENTS_MAXQUADS*3;i++)
+               quadelement3i[i] = quadelement3s[i];
+
        Cvar_RegisterVariable(&r_render);
        Cvar_RegisterVariable(&r_renderview);
        Cvar_RegisterVariable(&r_waterwarp);
@@ -546,8 +553,6 @@ void R_Viewport_InitCubeSideView(r_viewport_t *v, const matrix4x4_t *cameramatri
 void R_Viewport_InitRectSideView(r_viewport_t *v, const matrix4x4_t *cameramatrix, int side, int size, int border, float nearclip, float farclip, const float *nearplane)
 {
        matrix4x4_t tempmatrix, basematrix;
-       if (border > size - 2)
-               border = size - 2;
        memset(v, 0, sizeof(*v));
        v->type = R_VIEWPORTTYPE_PERSPECTIVECUBESIDE;
        v->cameramatrix = *cameramatrix;
@@ -1590,7 +1595,7 @@ void R_Mesh_Matrix(const matrix4x4_t *matrix)
 
 void R_Mesh_VertexPointer(const float *vertex3f, int bufferobject, size_t bufferoffset)
 {
-       if (!gl_vbo.integer)
+       if (!gl_vbo.integer || gl_mesh_testarrayelement.integer)
                bufferobject = 0;
        if (gl_state.pointer_vertex != vertex3f || gl_state.pointer_vertex_buffer != bufferobject || gl_state.pointer_vertex_offset != bufferoffset)
        {
@@ -1610,7 +1615,7 @@ void R_Mesh_ColorPointer(const float *color4f, int bufferobject, size_t bufferof
        // means that a valid vbo may be supplied even if there is no color array.
        if (color4f)
        {
-               if (!gl_vbo.integer)
+               if (!gl_vbo.integer || gl_mesh_testarrayelement.integer)
                        bufferobject = 0;
                // caller wants color array enabled
                if (!gl_state.pointer_color_enabled)
@@ -1652,7 +1657,7 @@ void R_Mesh_TexCoordPointer(unsigned int unitnum, unsigned int numcomponents, co
        // that involve a valid bufferobject also supply a texcoord array
        if (texcoord)
        {
-               if (!gl_vbo.integer)
+               if (!gl_vbo.integer || gl_mesh_testarrayelement.integer)
                        bufferobject = 0;
                // texture array unit is enabled, enable the array
                if (!unit->arrayenabled)