void App::DisplayCB() { glClear(GL_COLOR_BUFFER_BIT); m_pShaderBackend->SetCameraPos(m_pCamera->GetPosition()); m_pShaderBackend->SetViewProjectionMatrix(m_ProjectionMatrix * m_pCamera->GetViewMatrix()); m_pShaderBackend->SetPlayerPosition(m_pGame->GetPlayerCenter()); m_pShaderBackend->SetBulletPositions(m_pGame->GetBulletPositions()); m_pShaderBackend->SetExplosionData(m_pGame->GetExplosionData()); m_pShaderBackend->SetPickupData(m_pGame->GetPickupData()); m_pShaderBackend->EnableLighting(true); m_pShaderBackend->RenderGameLevel(m_pGame->GetCurrentLevel()); std::vector<Sprite*> sprites = m_pGame->GetSprites(); for (std::vector<Sprite*>::iterator it = sprites.begin(); it != sprites.end(); ++it) { m_pShaderBackend->RenderSprite(*it); } m_pShaderBackend->EnableLighting(false); std::vector<IHUDElement*> elements = m_pGame->GetHUDElements(); for (std::vector<IHUDElement*>::iterator it = elements.begin(); it != elements.end(); ++it) { m_pShaderBackend->RenderHUDElement(*it); } glutSwapBuffers(); m_FramesThisSecond++; }