Description
Source
Call Graph
Start Line: 100
virtual void BrickApplication::onDisplay()
{
glScissor(xPosition, yPosition, width, height);
glEnable(GL_DEPTH_TEST);
glDepthMask(GL_TRUE);
glStencilMask(~0);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0, 0, width, height);
glScissor (0, 0, width, height);
gluPerspective(45.0, 1.0, 1.5, 20.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glTranslatef(0.0f, 0.0f, -5.0f);
glPushMatrix();
glRotatef(rotation, 0.0f, 1.0f, 0.0f);
// Begins the use of the shader
brickShader->begin();
// Set all the uniforms after begining the shader
brickShader->setUniform3f("BrickColor", 1.0f, 0.3f, 0.2f);
brickShader->setUniform3f("MortarColor", 0.85f, 0.86f, 0.84f);
brickShader->setUniform2f("BrickSize", 0.30f, 0.15f);
brickShader->setUniform2f("BrickPct", 0.90f, 0.85f);
brickShader->setUniform3f("LightPosition", 0.0f, 0.0f, 4.0f);
switch (shape)
{
case SPHERE : glutSolidSphere(1, 24, 24); break;
case CUBE : glutSolidCube(1.5); break;
case TEAPOT : glutSolidTeapot(1); break;
}
// Ends the use of the shader
brickShader->end();
glPopMatrix();
// Show back buffer
glutSwapBuffers();
glDisable(GL_SCISSOR_TEST);
}