rendered paste bodyIndex: 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;