//[-------------------------------------------------------] //[ Private virtual PLEngine::EngineApplication functions ] //[-------------------------------------------------------] void Application66::OnCreateScene(SceneContainer &cContainer) { // Set scene container flags cContainer.SetFlags(SceneNode::NoCulling); // Setup scene surface painter SurfacePainter *pPainter = GetPainter(); if (pPainter && pPainter->IsInstanceOf("PLScene::SPScene")) { SPScene *pSPScene = static_cast<SPScene*>(pPainter); pSPScene->SetRootContainer(cContainer.GetContainer()); pSPScene->SetSceneContainer(&cContainer); } // Within the parent container... SceneContainer *pContainer = cContainer.GetContainer(); if (pContainer) { // Create a 'ingame'-GUI scene node const SNGui *pGuiSceneNode = static_cast<SNGui*>(pContainer->Create("PLFrontendPLGui::SNGui", "GUI")); if (pGuiSceneNode) { // Setup the GUI Gui *pGui = pGuiSceneNode->GetGui(); if (pGui) { // Create the GUI font if (!GuiFont) { GuiFont = new Font(*pGui); GuiFont->LoadFromFile("Data/Fonts/LinLibertine_Re-2.7.9.9.otf", 18); } // Set GUI options pGui->SetMouseVisible(false); // Create ingame GUI container m_pIngameGui = new IngameGui(*this, pGui->GetRootWidget()); m_pIngameGui->SetSize(Vector2i(1024, 768)); m_pIngameGui->SetBackgroundColor(PLGraphics::Color4::Transparent); m_pIngameGui->SetFocus(); m_pIngameGui->SetVisible(true); } } } // Set scene container SetScene(&cContainer); }
/** * @brief * Function that is called to create the application's scene container */ void EngineApplication::OnCreateScene(SceneContainer &cContainer) { // [TODO] Load 'm_sSceneFilename' if provided // Set scene container flags cContainer.SetFlags(SceneNode::NoCulling); // Setup scene surface painter SurfacePainter *pPainter = GetPainter(); if (pPainter && pPainter->IsInstanceOf("PLScene::SPScene")) { SPScene *pSPScene = static_cast<SPScene*>(pPainter); pSPScene->SetRootContainer(cContainer.GetContainer()); pSPScene->SetSceneContainer(&cContainer); } // Configure scene and set the currently used application camera SetCamera(SceneCreator::ConfigureScene(cContainer, "PLEngine::SceneCreatorDefault")); // Set scene container SetScene(&cContainer); }