void RenderMethod_GrassFFP::pass_opaque() { CHECK_GL_ERROR(); // Setup state glPushAttrib(GL_ALL_ATTRIB_BITS); glColor4fv(white); glEnable(GL_TEXTURE_2D); glDisable(GL_CULL_FACE); glEnable(GL_LIGHTING); glEnable(GL_COLOR_MATERIAL); // Setup client state glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); // Alpha-test pass glEnable(GL_ALPHA_TEST); glAlphaFunc(GL_GREATER, 0.1f); renderChunks(); //Restore client state glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); // Restore settings glPopAttrib(); CHECK_GL_ERROR(); }
void RenderMethod_PhongPoint_CG::pass_opaque() { CHECK_GL_ERROR(); // Setup state glPushAttrib(GL_ALL_ATTRIB_BITS); glColor4fv(white); glEnable(GL_LIGHTING); glEnable(GL_COLOR_MATERIAL); glEnable(GL_TEXTURE_2D); // Setup client state glEnableClientState(GL_VERTEX_ARRAY); glEnableClientState(GL_NORMAL_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); // Render the geometry chunks renderChunks(); // Restore client state glDisableClientState(GL_VERTEX_ARRAY); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_NORMAL_ARRAY); // Restore settings glPopAttrib(); CHECK_GL_ERROR(); }