bool RenderFunc() { hge->Gfx_BeginScene(); hge->Gfx_Clear(0); if (menu) { HANDLE mutex1 = OpenMutex(MUTEX_ALL_ACCESS, FALSE, NAME_MUTEX1); if (mutex1) WaitForSingleObject(mutex1, INFINITE); RenderGUI(); ReleaseMutex(mutex1); if (menu == 4) { text->printf(SCREEN_WIDTH/2, 200, HGETEXT_CENTER, "NESTERENKO DIMA"); text->printf(SCREEN_WIDTH/2, 250, HGETEXT_CENTER, "COMPUTER ACADEMY \"STEP\""); } } else { world->Render(); mouse_cursor->Render(mouse_pos.x, mouse_pos.y); if (text) { char str[8]; int life; HANDLE mutex = OpenMutex(MUTEX_ALL_ACCESS, FALSE, NAME_MUTEX2); if (mutex) WaitForSingleObject(mutex, INFINITE); life = player->GetLife(); ReleaseMutex(mutex); hard->Render(32, 32); text->printf(74, 16, HGETEXT_LEFT, "%d", life); if (level_end == 1) { text->printf(SCREEN_WIDTH/2, SCREEN_HEIGHT/2, HGETEXT_CENTER, "GO TO NEXT LEVEL!!!"); } else if (level_end == 2) { text->printf(SCREEN_WIDTH/2, SCREEN_HEIGHT/2, HGETEXT_CENTER, "YOU WIN!!!"); } if (ENTITY_DEATH == player->GetState()) { text->printf(SCREEN_WIDTH/2, SCREEN_HEIGHT/2, HGETEXT_CENTER, "Please press a space....."); } } } hge->Gfx_EndScene(); return false; }
HAL() { int i; Message("I'm sorry dave, I can't do that...",600); i=systemtime+400; while (systemtime<i) { RenderMap(); RenderGUI(); ShowPage(); } Message("Just kidding! :)",200); }
void GameplayScreen::Render(Game* game) { // Clear color SDL_SetRenderDrawColor(game->renderer, 0, 0, 0, 255); // black SDL_RenderClear(game->renderer); // Render each remaining pellet on the board for (std::vector<Pellet*>::iterator iter = levelManager->GetPellets().begin(); iter != levelManager->GetPellets().end(); ++iter) { (*iter)->Render(game->renderer); } // Render the player levelManager->GetPlayer()->Render(game->renderer); // Render the AI for (std::vector<Ghost*>::iterator iter = levelManager->GetGhosts().begin(); iter != levelManager->GetGhosts().end(); ++iter) { (*iter)->Render(game->renderer); } // Render the walls for (std::vector<Sprite*>::iterator iter = levelManager->GetWalls().begin(); iter != levelManager->GetWalls().end(); ++iter) { (*iter)->Render(game->renderer); } // Render the GUI elements RenderGUI(game->renderer); // Draw additional information for debugging if (isDebugging) { DrawDebug(game->renderer); } // Update the screen SDL_RenderPresent(game->renderer); }
void SceneManagerCMPlay::Render() { SceneManagerGameplay::Render(); Mtx44 perspective; perspective.SetToPerspective(45.0f, 4.0f / 3.0f, 0.1f, 10000.0f); //perspective.SetToOrtho(-80, 80, -60, 60, -1000, 1000); projectionStack.LoadMatrix(perspective); // Set up the view viewStack.LoadIdentity(); viewStack.LookAt(tpCamera.getPosition().x, tpCamera.getPosition().y, tpCamera.getPosition().z, tpCamera.getTarget().x, tpCamera.getTarget().y, tpCamera.getTarget().z, tpCamera.getUp().x, tpCamera.getUp().y, tpCamera.getUp().z); // Model matrix : an identity matrix (model will be at the origin) modelStack.LoadIdentity(); RenderLight(); RenderBG(); RenderStaticObject(); RenderMobileObject(); RenderGUI(); }
void VoxGame::Render() { if (m_pVoxWindow->GetMinimized()) { // Don't call any render functions if minimized return; } glShader* pShader = NULL; // Begin rendering m_pRenderer->BeginScene(true, true, true); // Shadow rendering to the shadow frame buffer if (m_shadows) { RenderShadows(); } // SSAO frame buffer rendering start if (m_deferredRendering) { m_pRenderer->StartRenderingToFrameBuffer(m_SSAOFrameBuffer); } // --------------------------------------- // Render 3d // --------------------------------------- m_pRenderer->PushMatrix(); // Set the default projection mode m_pRenderer->SetProjectionMode(PM_PERSPECTIVE, m_defaultViewport); // Set back culling as default m_pRenderer->SetCullMode(CM_BACK); // Set default depth test m_pRenderer->EnableDepthTest(DT_LESS); // Set the lookat camera m_pGameCamera->Look(); // Enable the lights m_pRenderer->PushMatrix(); m_pRenderer->EnableLight(m_defaultLight, 0); m_pRenderer->PopMatrix(); // Multisampling MSAA if (m_multiSampling) { m_pRenderer->EnableMultiSampling(); } else { m_pRenderer->DisableMultiSampling(); } // Render the lights (DEBUG) m_pRenderer->PushMatrix(); m_pRenderer->SetCullMode(CM_BACK); m_pRenderer->SetRenderMode(RM_SOLID); m_pRenderer->RenderLight(m_defaultLight); m_pRenderer->PopMatrix(); if (m_shadows) { m_pRenderer->BeginGLSLShader(m_shadowShader); pShader = m_pRenderer->GetShader(m_shadowShader); GLuint shadowMapUniform = glGetUniformLocationARB(pShader->GetProgramObject(), "ShadowMap"); m_pRenderer->PrepareShaderTexture(7, shadowMapUniform); m_pRenderer->BindRawTextureId(m_pRenderer->GetDepthTextureFromFrameBuffer(m_shadowFrameBuffer)); glUniform1iARB(glGetUniformLocationARB(pShader->GetProgramObject(), "renderShadow"), m_shadows); glUniform1iARB(glGetUniformLocationARB(pShader->GetProgramObject(), "alwaysShadow"), false); } else { m_pRenderer->BeginGLSLShader(m_defaultShader); } // Render world //RenderWorld(); // Render the chunks m_pChunkManager->Render(); // Render the player if (m_cameraMode == CameraMode_FirstPerson) { m_pPlayer->RenderFirstPerson(); } else { m_pPlayer->Render(); } // Render the block particles m_pBlockParticleManager->Render(); if (m_shadows) { m_pRenderer->EndGLSLShader(m_shadowShader); } else { m_pRenderer->EndGLSLShader(m_defaultShader); } // Debug rendering if(m_debugRender) { m_pLightingManager->DebugRender(); m_pBlockParticleManager->RenderDebug(); m_pPlayer->RenderDebug(); m_pChunkManager->RenderDebug(); } m_pRenderer->PopMatrix(); // Render the deferred lighting pass if (m_dynamicLighting) { RenderDeferredLighting(); } // --------------------------------------- // Render 2d // --------------------------------------- m_pRenderer->PushMatrix(); m_pRenderer->PopMatrix(); // SSAO frame buffer rendering stop if (m_deferredRendering) { m_pRenderer->StopRenderingToFrameBuffer(m_SSAOFrameBuffer); } // --------------------------------------- // Render transparency // --------------------------------------- RenderTransparency(); // Render the SSAO texture if (m_deferredRendering) { RenderSSAOTexture(); if (m_multiSampling && m_fxaaShader != -1) { RenderFXAATexture(); } if(m_blur) { RenderFirstPassFullScreen(); RenderSecondPassFullScreen(); } } // Disable multisampling for 2d gui and text m_pRenderer->DisableMultiSampling(); // Render debug information and text RenderDebugInformation(); // Render the chunks 2d if (m_debugRender) { //m_pChunkManager->Render2D(m_pGameCamera, m_defaultViewport, m_defaultFont); } // Render the GUI RenderGUI(); // End rendering m_pRenderer->EndScene(); // Pass render call to the window class, allow to swap buffers m_pVoxWindow->Render(); }
void VoxGame::Render() { if (m_pVoxWindow->GetMinimized()) { // Don't call any render functions if minimized return; } // Begin rendering m_pRenderer->BeginScene(true, true, true); // Shadow rendering to the shadow frame buffer if (m_shadows) { RenderShadows(); } // --------------------------------------- // Render 3d // --------------------------------------- m_pRenderer->PushMatrix(); // Set the default projection mode m_pRenderer->SetProjectionMode(PM_PERSPECTIVE, m_defaultViewport); // Set back culling as default m_pRenderer->SetCullMode(CM_BACK); // Set default depth test m_pRenderer->EnableDepthTest(DT_LESS); // Set the lookat camera m_pGameCamera->Look(); // Enable the lights m_pRenderer->PushMatrix(); m_pRenderer->EnableLight(m_defaultLight, 0); m_pRenderer->PopMatrix(); // Multisampling MSAA if (m_multiSampling) { m_pRenderer->EnableMultiSampling(); } else { m_pRenderer->DisableMultiSampling(); } // Water reflections if (m_waterRender && m_pChunkManager->IsUnderWater(m_pGameCamera->GetPosition()) == false && m_gameMode != GameMode_FrontEnd) { RenderWaterReflections(); } // SSAO frame buffer rendering start if (m_deferredRendering) { m_pRenderer->StartRenderingToFrameBuffer(m_SSAOFrameBuffer); } m_pRenderer->SetClearColour(0.0f, 0.0f, 0.0f, 1.0f); m_pRenderer->ClearScene(true, true, true); // Render the lights (DEBUG) m_pRenderer->PushMatrix(); m_pRenderer->SetCullMode(CM_BACK); m_pRenderer->SetRenderMode(RM_SOLID); m_pRenderer->RenderLight(m_defaultLight); m_pRenderer->PopMatrix(); // Render the skybox RenderSkybox(); BeginShaderRender(); { // Render the chunks m_pChunkManager->Render(false); } EndShaderRender(); // NPC sub selection - For character creation screen m_pNPCManager->RenderSubSelectionNormalNPCs(); // Render items outline and silhouette before the world/chunks m_pItemManager->Render(true, false, false, false); m_pItemManager->Render(false, false, true, false); // NPCs (only non outline and hover) m_pNPCManager->RenderOutlineNPCs(); m_pNPCManager->Render(false, false, true, false, false, false); // Enemies outline m_pEnemyManager->RenderOutlineEnemies(); m_pEnemyManager->Render(false, false, true, false); BeginShaderRender(); { // Scenery m_pSceneryManager->Render(false, false, false, false, false); // Projectiles m_pProjectileManager->Render(); // Items m_pItemManager->Render(false, false, false, false); // NPCs m_pNPCManager->ResetNumRenderNPCs(); m_pNPCManager->Render(false, false, false, false, true, false); // Enemies m_pEnemyManager->Render(false, false, false, false); // NPCs (only outline and hover) m_pNPCManager->Render(false, false, false, true, false, false); m_pNPCManager->RenderSubSelectionOverlayNPCs(); } EndShaderRender(); // Player selection block m_pPlayer->RenderSelectionBlock(); // Render the block particles m_pBlockParticleManager->Render(false); // Render the instanced objects if(m_instanceRender) { m_pInstanceManager->Render(); } // Frontend m_pFrontendManager->Render(); BeginShaderRender(); { if (m_gameMode != GameMode_FrontEnd) { // Render the player if (m_cameraMode != CameraMode_FirstPerson) { m_pPlayer->Render(); } } } EndShaderRender(); // Render the transparency items above the water render, so that they appear properly under water if (m_waterRender && m_gameMode != GameMode_FrontEnd) { if (m_cameraMode != CameraMode_FirstPerson) { m_pPlayer->RenderFace(); } m_pNPCManager->RenderFaces(); m_pEnemyManager->RenderFaces(); if (m_cameraMode != CameraMode_FirstPerson) { m_pPlayer->RenderWeaponTrails(); } m_pNPCManager->RenderWeaponTrails(); m_pEnemyManager->RenderWeaponTrails(); // Render water RenderWater(); } // Debug rendering if(m_debugRender) { m_pLightingManager->DebugRender(); m_pBlockParticleManager->RenderDebug(); if (m_gameMode != GameMode_FrontEnd) { m_pPlayer->RenderDebug(); } m_pNPCManager->RenderDebug(); m_pEnemyManager->RenderDebug(); m_pSceneryManager->RenderDebug(); m_pItemManager->RenderDebug(); m_pChunkManager->RenderDebug(); m_pProjectileManager->RenderDebug(); m_pBiomeManager->RenderDebug(); if (m_gameMode == GameMode_FrontEnd) { m_pFrontendManager->RenderDebug(); } } // Render player first person viewport if (m_gameMode != GameMode_FrontEnd) { if (m_cameraMode == CameraMode_FirstPerson) { RenderFirstPersonViewport(); } } // SSAO frame buffer rendering stop if (m_deferredRendering) { m_pRenderer->StopRenderingToFrameBuffer(m_SSAOFrameBuffer); } m_pRenderer->PopMatrix(); // Render the deferred lighting pass if (m_dynamicLighting) { RenderDeferredLighting(); } // Render other viewports // Paperdoll for CharacterGUI RenderPaperdollViewport(); // Portrait for HUD if (m_pVoxSettings->m_renderGUI) { RenderPortraitViewport(); } // --------------------------------------- // Render transparency // --------------------------------------- RenderTransparency(); // Render the SSAO texture if (m_deferredRendering) { RenderSSAOTexture(); if (m_multiSampling && m_fxaaShader != -1) { RenderFXAATexture(); } if(m_blur || m_pChunkManager->IsUnderWater(m_pGameCamera->GetPosition())) { RenderFirstPassFullScreen(); RenderSecondPassFullScreen(); } } // --------------------------------------- // Render 2d // --------------------------------------- m_pRenderer->PushMatrix(); // Crosshair if (m_cameraMode == CameraMode_FirstPerson && m_bPaused == false) { if (m_pPlayer->IsDead() == false) { RenderCrosshair(); } } // Text effects m_pTextEffectsManager->Render(); // Cinematic mode (letter box) RenderCinematicLetterBox(); // Render the HUD if (m_pVoxSettings->m_renderGUI) { RenderHUD(); } m_pRenderer->PopMatrix(); // Disable multisampling for 2d gui and text m_pRenderer->DisableMultiSampling(); // Render other deferred rendering pipelines // Paperdoll SSAO for CharacterGUI RenderDeferredRenderingPaperDoll(); // Portrait SSAO for HUD if (m_pVoxSettings->m_renderGUI) { RenderDeferredRenderingPortrait(); } // Render the chunks 2d (debug text information) if (m_debugRender) { //m_pChunkManager->Render2D(m_pGameCamera, m_defaultViewport, m_defaultFont); } // Frontend 2D if(m_gameMode == GameMode_FrontEnd) { m_pRenderer->PushMatrix(); m_pRenderer->SetProjectionMode(PM_2D, m_defaultViewport); m_pRenderer->SetCullMode(CM_BACK); m_pRenderer->SetLookAtCamera(vec3(0.0f, 0.0f, 250.0f), vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 1.0f, 0.0f)); m_pFrontendManager->Render2D(); m_pRenderer->PopMatrix(); } // Render the GUI RenderGUI(); // Custom cursor if (m_pVoxSettings->m_customCursors && m_bCustomCursorOn) { if (m_gameMode != GameMode_FrontEnd || m_pFrontendManager->GetFrontendScreen() != FrontendScreen_Intro) { RenderCustomCursor(); } } // Render debug information and text RenderDebugInformation(); // Update the NPC screen positions for select character screen m_pNPCManager->UpdateScreenCoordinates2d(m_pGameCamera); // End rendering m_pRenderer->EndScene(); // Pass render call to the window class, allow to swap buffers m_pVoxWindow->Render(); }