]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_backend.c
transform matrix is now separate from R_Mesh_State, a new function called R_Mesh_Matr...
[xonotic/darkplaces.git] / gl_backend.c
index 8702cbf40eb0402d89fc797f61bdbc5048992087..b89fdaf962e3e11ba5ab243363babdc5dc94ad2d 100644 (file)
@@ -606,7 +606,7 @@ void GL_DrawRangeElements(int firstvert, int endvert, int indexcount, GLuint *in
                                qglColor4ub(c[0], c[1], c[2], c[3]);
                                if (gl_state.texture[0])
                                {
-                                       v = varray_texcoord[j] + in * 2;
+                                       v = varray_texcoord[0] + in * 2;
                                        qglTexCoord2f(v[0], v[1]);
                                }
                                v = varray_vertex + in * 4;
@@ -712,6 +712,17 @@ void R_Mesh_ClearDepth(void)
        R_Mesh_Start(r_mesh_farclip);
 }
 
+void R_Mesh_Matrix(const matrix4x4_t *matrix)
+{
+       if (memcmp(matrix, &backend_modelmatrix, sizeof(matrix4x4_t)))
+       {
+               backend_modelmatrix = *matrix;
+               Matrix4x4_Concat(&backend_modelviewmatrix, &backend_viewmatrix, matrix);
+               Matrix4x4_Transpose(&backend_glmodelviewmatrix, &backend_modelviewmatrix);
+               qglLoadMatrixf(&backend_glmodelviewmatrix.m[0][0]);
+       }
+}
+
 // sets up the requested state
 void R_Mesh_State(const rmeshstate_t *m)
 {
@@ -727,15 +738,6 @@ void R_Mesh_State(const rmeshstate_t *m)
                GL_SetupTextureState();
        }
 
-       //backendmatrix = m->matrix; // this copies the struct
-       if (memcmp(&m->matrix, &backend_modelmatrix, sizeof(matrix4x4_t)))
-       {
-               backend_modelmatrix = m->matrix;
-               Matrix4x4_Concat(&backend_modelviewmatrix, &backend_viewmatrix, &m->matrix);
-               Matrix4x4_Transpose(&backend_glmodelviewmatrix, &backend_modelviewmatrix);
-               qglLoadMatrixf(&backend_glmodelviewmatrix.m[0][0]);
-       }
-
        overbright = false;
        scaler = 1;
        if (m->blendfunc1 == GL_DST_COLOR)