Pro OpenGL ES for iOS

(singke) #1

224 CHAPTER 7: Well-Rendered Miscellany^


glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);

glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

glPushMatrix();

glEnable(GL_STENCIL_TEST); //3
glDisable(GL_DEPTH_TEST);

glVertexPointer(3, GL_FLOAT, 0, cubeVertices);
glEnableClientState(GL_VERTEX_ARRAY);
glColorPointer(4, GL_UNSIGNED_BYTE, 0, cubeColors);
glEnableClientState(GL_COLOR_ARRAY);

glEnableClientState(GL_NORMAL_ARRAY);

//Flip the image.

glTranslatef(0.0,((GLfloat)(sinf(-transY)/2.0)-1.5),z); //4
glRotatef(spinY, 0.0, 1.0, 0.0);

glScalef(1.0, -1.0, 1.0); //5
glFrontFace(GL_CW);

glEnable(GL_BLEND); //6
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_COLOR);

glDrawElements( GL_TRIANGLE_FAN, 6 * 3, GL_UNSIGNED_BYTE, tfan1); //7
glDrawElements( GL_TRIANGLE_FAN, 6 * 3, GL_UNSIGNED_BYTE, tfan2);

glPopMatrix();

glDisable(GL_BLEND); //8
glEnable(GL_DEPTH_TEST);
glDisable(GL_STENCIL_TEST);

//Do the main image.

glPushMatrix();
glScalef(1.0, 1.0, 1.0); //9
glFrontFace(GL_CCW);

glTranslatef(0.0, (GLfloat)1.5*(sinf(transY)/2.0)+0.5,z);

glRotatef(spinY, 0.0, 1.0, 0.0);

glDrawElements( GL_TRIANGLE_FAN, 6 * 3, GL_UNSIGNED_BYTE, tfan1);
glDrawElements( GL_TRIANGLE_FAN, 6 * 3, GL_UNSIGNED_BYTE, tfan2);
Free download pdf