onDisplay
Default mainpageExamplesBrickApplicationBrickApplicationonDisplay
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);
}