Index: cube.c =================================================================== --- cube.c (revision 3477) +++ cube.c (working copy) @@ -1944,9 +1944,9 @@ CUBE_SCREEN(s); - if (hsize == 4 && cs->invert == 1) + if (cs->invert == 1) cubeCap = capOutside; - else if (hsize == 4 && cs->invert != 1) + else if (cs->invert != 1) cubeCap = capInside; else cubeCap = NULL; @@ -1958,14 +1958,23 @@ glColor4us(0xffff, 0xffff, 0xffff, opacity); glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); } - enableTexture(s, &cubeCap->texture, COMP_TEXTURE_FILTER_GOOD); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); + //enableTexture(s, &cubeCap->texture, COMP_TEXTURE_FILTER_GOOD); /* as GL expects the texture coords with offset, but our texture coord array is 0-based, we have to subtract the offset here */ - glTexCoordPointer(2, GL_FLOAT, 0, cubeCap->tc - (arrayOffset << 1)); - glDrawArrays(GL_TRIANGLE_FAN, arrayOffset, cs->nvertices >> 1); - glDisableClientState(GL_TEXTURE_COORD_ARRAY); - disableTexture(s, &cubeCap->texture); + glBegin(GL_QUADS); + GLfloat x,y,z; + x=cs->vertices[arrayOffset]; + y=cs->vertices[arrayOffset+1]; + z=cs->vertices[arrayOffset+2]; + glColor4f(1,0,1,1); + glVertex3f(x-20,y,z-20); + glVertex3f(x+20,y,z-20); + glVertex3f(x+20,y,z+20); + glVertex3f(x-20,y,z+20); + glEnd(); + //glTexCoordPointer(2, GL_FLOAT, 0, cubeCap->tc - (arrayOffset << 1)); + //glDrawArrays(GL_TRIANGLE_FAN, arrayOffset, cs->nvertices >> 1); + //disableTexture(s, &cubeCap->texture); screenTexEnvMode(s, GL_REPLACE); } else @@ -2354,26 +2363,26 @@ if (hsize == 4) { - glRotatef(90.0f, 0.0f, 1.0f, 0.0f); + glRotatef(360.0f/(float)hsize, 0.0f, 1.0f, 0.0f); if (cs->rotateImages) { - if (soa.xRotate > 45) - glRotatef(-90.0f, 0.0f, 1.0f, 0.0f); + if (soa.xRotate > (360.0f/(float)hsize)/2.0f) + glRotatef(-360.0f/(float)hsize, 0.0f, 1.0f, 0.0f); } else if (cs->neverRotateImages) { - glRotatef(rotations * 90.0f, 0.0f, 1.0f, 0.0f); + glRotatef(rotations * (360.0f/(float)hsize), 0.0f, 1.0f, 0.0f); float previousRotation = IPCS_GetFloat(IPCS_OBJECT(s), cs-> previousRotationAtom); if (cs->invert != 1) previousRotation = -previousRotation; - glRotatef(previousRotation * 90.0f, 0.0f, 1.0f, 0.0f); + glRotatef(previousRotation * (360.0f/(float)hsize), 0.0f, 1.0f, 0.0f); } else { - glRotatef(rotations * 90.0f, 0.0f, 1.0f, 0.0f); + glRotatef(rotations *(360.0f/(float)hsize), 0.0f, 1.0f, 0.0f); } } @@ -2396,16 +2405,14 @@ if (capsReversed()) { glNormal3f(0.0, -1.0, 0.0); - if (hsize == 4) - glRotatef(270.0f, 0.0f, 1.0f, 0.0f); + glRotatef(360.0f-(360.0f/(float)hsize), 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); + glRotatef(-360.0f+(360.0f/(float)hsize), 0.0f, 1.0f, 0.0f); cubeDrawCubeCap(s, hsize, 0, &cs->cubeCapTop, &cs->cubeCapBottom, cs->desktopOpacity); @@ -2417,8 +2424,7 @@ &cs->cubeCapTop, &cs->cubeCapBottom, cs->desktopOpacity); - if (hsize == 4) - glRotatef(270.0f, 0.0f, 1.0f, 0.0f); + glRotatef(360.0f-(360.0f/(float)hsize), 0.0f, 1.0f, 0.0f); glNormal3f(0.0, 1.0, 0.0); cubeDrawCubeCap(s, hsize, cs->nvertices >> 1, @@ -2432,8 +2438,7 @@ cubeDrawCubeCap(s, hsize, 0, &cs->cubeCapTop, &cs->cubeCapBottom, cs->desktopOpacity); - if (hsize == 4) - glRotatef(270.0f, 0.0f, 1.0f, 0.0f); + glRotatef(360.0f-(360.0f/(float)hsize), 0.0f, 1.0f, 0.0f); glNormal3f(0.0, 1.0, 0.0); cubeDrawCubeCap(s, hsize, cs->nvertices >> 1, &cs->cubeCapBottom,