]> git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_backend.c
fix a couple EDICT_NUM errors that often happened when loading savegames with more...
[xonotic/darkplaces.git] / gl_backend.c
index 3196022fec8e533497284b9db8621b35aa21f2c0..cc88e36d5d6ccc391e76d76be195fbb65f0b5787 100644 (file)
@@ -493,7 +493,7 @@ typedef struct gltextureunit_s
 {
        int t1d, t2d, t3d, tcubemap;
        int arrayenabled, arrayis3d;
-       void *pointer_texcoord;
+       const void *pointer_texcoord;
        float rgbscale, alphascale;
        int combinergb, combinealpha;
        // FIXME: add more combine stuff
@@ -515,8 +515,8 @@ static struct
        int lockrange_first;
        int lockrange_count;
        int pointervertexcount;
-       void *pointer_vertex;
-       void *pointer_color;
+       const void *pointer_vertex;
+       const void *pointer_color;
 }
 gl_state;
 
@@ -560,7 +560,7 @@ void GL_SetupTextureState(void)
                        qglTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_ARB, GL_MODULATE);CHECKGLERROR
                        qglTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_ARB, GL_TEXTURE);CHECKGLERROR
                        qglTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_ARB, GL_PREVIOUS_ARB);CHECKGLERROR
-                       qglTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_CONSTANT_ARB);CHECKGLERROR
+                       qglTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_ARB, GL_TEXTURE);CHECKGLERROR // for GL_INTERPOLATE_ARB mode
                        qglTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_ARB, GL_SRC_COLOR);CHECKGLERROR
                        qglTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_ARB, GL_SRC_COLOR);CHECKGLERROR
                        qglTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_ARB, GL_SRC_ALPHA);CHECKGLERROR
@@ -1052,7 +1052,7 @@ void R_Mesh_Matrix(const matrix4x4_t *matrix)
 // sets up the requested state
 void R_Mesh_MainState(const rmeshstate_t *m)
 {
-       void *p;
+       const void *p;
        BACKENDACTIVECHECK
 
        if (gl_state.blendfunc1 != m->blendfunc1 || gl_state.blendfunc2 != m->blendfunc2)
@@ -1152,7 +1152,7 @@ void R_Mesh_TextureState(const rmeshstate_t *m)
        int i, combinergb, combinealpha;
        float scale;
        gltextureunit_t *unit;
-       void *p;
+       const void *p;
 
        BACKENDACTIVECHECK
 
@@ -1583,7 +1583,7 @@ void R_Mesh_CopyTexCoord2f(int tmu, const float *texcoord2f, int numverts)
        if (mesh_var)
        {
                float *out = varray_texcoord2f[tmu];
-               while (--numverts)
+               while (numverts--)
                {
                        *out++ = *texcoord2f++;
                        *out++ = *texcoord2f++;
@@ -1600,7 +1600,7 @@ void R_Mesh_CopyColor4f(const float *color4f, int numverts)
        if (mesh_var)
        {
                float *out = varray_color4f;
-               while (--numverts)
+               while (numverts--)
                {
                        *out++ = *color4f++;
                        *out++ = *color4f++;
@@ -1613,6 +1613,15 @@ void R_Mesh_CopyColor4f(const float *color4f, int numverts)
                memcpy(varray_color4f, color4f, numverts * sizeof(float[4]));
 }
 
+void R_ScrollTexCoord2f (float *out2f, const float *in2f, int numverts, float s, float t)
+{
+       while (numverts--)
+       {
+               *out2f++ = *in2f++ + s;
+               *out2f++ = *in2f++ + t;
+       }
+}
+
 //===========================================================================
 // vertex array caching subsystem
 //===========================================================================