All pastes #259603 Raw Edit

Mine

public text v1 · immutable
#259603 ·published 2006-11-27 16:10 UTC
rendered paste body
Index: src/cube.c
===================================================================
--- src/cube.c  (Revision 1432)
+++ src/cube.c  (Arbeitskopie)
@@ -2064,10 +2064,14 @@
        unsigned int newMask;
        int num = 0,j;

-       if (cs->opt[CUBE_SCREEN_OPTION_TRANSPARENT].value.b ||
-          compDisplayGetRequestFlagForAny (s->display, "DRAW_ALL_FACES"))
+       if (cs->opt[CUBE_SCREEN_OPTION_TRANSPARENT].value.b &&
+               cs->desktopOpacity != OPAQUE)
+               mask |= PAINT_SCREEN_TRANSFORMED_MASK;
+
+       if ((cs->opt[CUBE_SCREEN_OPTION_TRANSPARENT].value.b ||
+               compDisplayGetRequestFlagForAny (s->display, "DRAW_ALL_FACES"))
+               && cs->invert == 1)
        {
-
                if (glIsEnabled(GL_CULL_FACE) && cs->desktopOpacity != OPAQUE)
                {
                        disabledCull = TRUE;
@@ -2185,7 +2189,8 @@
             }
         }

-               if(glIsEnabled(GL_CULL_FACE) && cs->desktopOpacity != OPAQUE)
+               if(glIsEnabled(GL_CULL_FACE) && cs->desktopOpacity != OPAQUE &&
+                 cs->invert == 1)
                {
                        disabledCull = TRUE;
                        glDisable(GL_CULL_FACE);
@@ -2197,23 +2202,38 @@
                        glBlendFunc (GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
                }

-               if (capsReversed())
+               if (cs->invert == 1)
                {
-                       glNormal3f (0.0, -1.0, 0.0);
-                       if (hsize == 4)
-                               glRotatef (270.0f, 0.0f, 1.0f, 0.0f);
-                       cubeDrawCubeCap (s, hsize, cs->nvertices >> 1, &cs->cubeCapBottom,
-                                                        &cs->cubeCapTop,cs->desktopOpacity);
+                       if (capsReversed())
+                       {
+                               glNormal3f (0.0, -1.0, 0.0);
+                               if (hsize == 4)
+                                       glRotatef (270.0f, 0.0f, 1.0f, 0.0f);
+                               cubeDrawCubeCap (s, hsize, cs->nvertices >> 1, &cs->cubeCapBottom,
+                                                               &cs->cubeCapTop,cs->desktopOpacity);

-                       glNormal3f (0.0, -1.0, 0.0);
-                       if (hsize == 4)
-                               glRotatef (-270.0f, 0.0f, 1.0f, 0.0f);
-                       cubeDrawCubeCap (s, hsize, 0, &cs->cubeCapTop, &cs->cubeCapBottom,
-                                                       cs->desktopOpacity);
+                               glNormal3f (0.0, -1.0, 0.0);
+                               if (hsize == 4)
+                                       glRotatef (-270.0f, 0.0f, 1.0f, 0.0f);
+                               cubeDrawCubeCap (s, hsize, 0, &cs->cubeCapTop, &cs->cubeCapBottom,
+                                                               cs->desktopOpacity);
+                       }
+                       else
+                       {
+                               glNormal3f (0.0, 1.0, 0.0);
+                               cubeDrawCubeCap (s, hsize, 0, &cs->cubeCapTop, &cs->cubeCapBottom,
+                                                               cs->desktopOpacity);
+
+                               if (hsize == 4)
+                                       glRotatef (270.0f, 0.0f, 1.0f, 0.0f);
+                               glNormal3f (0.0, 1.0, 0.0);
+                               cubeDrawCubeCap (s, hsize, cs->nvertices >> 1, &cs->cubeCapBottom,
+                                                               &cs->cubeCapTop, cs->desktopOpacity);
+                       }
                }
                else
                {
-                       glNormal3f (0.0, 1.0, 0.0);
+                       glNormal3f (0.0, -1.0, 0.0);
                        cubeDrawCubeCap (s, hsize, 0, &cs->cubeCapTop, &cs->cubeCapBottom,
                                                        cs->desktopOpacity);

@@ -2221,7 +2241,7 @@
                                glRotatef (270.0f, 0.0f, 1.0f, 0.0f);
                        glNormal3f (0.0, 1.0, 0.0);
                        cubeDrawCubeCap (s, hsize, cs->nvertices >> 1, &cs->cubeCapBottom,
-                                                        &cs->cubeCapTop, cs->desktopOpacity);
+                                                       &cs->cubeCapTop, cs->desktopOpacity);
                }

                glDisable (GL_BLEND);
@@ -2246,9 +2266,14 @@
        if (cs->opt[CUBE_SCREEN_OPTION_MIPMAP].value.b)
                s->display->textureFilter = GL_LINEAR_MIPMAP_LINEAR;

-       num = 0;
-       for (i = 0; i < fc; i++)
-               if (!faces[i].rev) num++;
+       if (cs->invert == 1)
+       {
+               num = 0;
+               for (i = 0; i < fc; i++)
+                       if (!faces[i].rev) num++;
+       }
+       else
+               num = fc;

        for (i = 0; i < num; i++)
        {
@@ -2256,7 +2281,8 @@
                float minZ = -2.0;
                for (j = 0; j < fc; j++)
                {
-                       if (faces[j].z > minZ && !faces[j].painted && !faces[j].rev)
+                       if (faces[j].z > minZ && !faces[j].painted &&
+                               (!faces[j].rev || cs->invert != 1))
                        {
                                found = j;
                                minZ = faces[j].z;