Ejemplo n.º 1
0
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++;
}