]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_backend.c
Elric's changes:
[xonotic/darkplaces.git] / gl_backend.c
index 8f681d232181153180063bee1cb3814fbf55956d..a664871194278840e92390c2a540b353d52f50c1 100644 (file)
@@ -323,8 +323,8 @@ void GL_SetupView_Mode_Ortho (double x1, double y1, double x2, double y2, double
 
 typedef struct gltextureunit_s
 {
-       unsigned int t1d, t2d, t3d, tcubemap;
-       unsigned int arrayenabled;
+       int t1d, t2d, t3d, tcubemap;
+       int arrayenabled;
        float rgbscale, alphascale;
        int combinergb, combinealpha;
        // FIXME: add more combine stuff
@@ -366,7 +366,7 @@ void GL_SetupTextureState(void)
                unit->combinealpha = GL_MODULATE;
                unit->arrayenabled = false;
                qglDisableClientState(GL_TEXTURE_COORD_ARRAY);CHECKGLERROR
-               if (gl_texture3d)
+               if (gl_texture3d || gl_texturecubemap)
                {
                        qglTexCoordPointer(3, GL_FLOAT, sizeof(float[4]), varray_texcoord[i]);CHECKGLERROR
                }
@@ -882,7 +882,10 @@ void R_ClearScreen(void)
                qglClearDepth(1);CHECKGLERROR
                if (gl_stencil)
                {
-                       qglClearStencil(0);CHECKGLERROR
+                       // LordHavoc: we use a stencil centered around 128 instead of 0,
+                       // to avoid clamping interfering with strange shadow volume
+                       // drawing orders
+                       qglClearStencil(128);CHECKGLERROR
                }
                // clear the screen
                qglClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | (gl_stencil ? GL_STENCIL_BUFFER_BIT : 0));CHECKGLERROR