MCPcopy Create free account
hub / github.com/OpenDungeons/OpenDungeons / createScene

Method createScene

source/render/RenderManager.cpp:179–230  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

177}
178
179void RenderManager::createScene(Ogre::Viewport* nViewport)
180{
181 OD_LOG_INF("Creating scene...");
182
183 mViewport = nViewport;
184
185 //Set up the shader generator
186 mShaderGenerator = Ogre::RTShader::ShaderGenerator::getSingletonPtr();
187 //shaderGenerator->setTargetLanguage("glsl");
188 Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
189 ResourceManager::getSingleton().getShaderCachePath(), "FileSystem", "Graphics");
190
191 //FIXME - this is a workaround for an issue where the shader cache files are not found.
192 //Haven't found out why this started happening. Think it worked in 3faa1aa285df504350f9704bdf20eb851fc5be3d
193 //atleast.
194 Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
195 ResourceManager::getSingleton().getShaderCachePath() + "../", "FileSystem", "Graphics");
196 mShaderGenerator->setShaderCachePath(ResourceManager::getSingleton().getShaderCachePath());
197
198 mShaderGenerator->addSceneManager(mSceneManager);
199
200 mViewport->setMaterialScheme(Ogre::RTShader::ShaderGenerator::DEFAULT_SCHEME_NAME);
201
202 // Sets the overall world lighting.
203 mSceneManager->setAmbientLight(BASE_AMBIENT_VALUE);
204
205 Ogre::ParticleSystem::setDefaultNonVisibleUpdateTimeout(5);
206
207 // Create the nodes that will follow the mouse pointer.
208 Ogre::Entity* keeperHandEnt = mSceneManager->createEntity("keeperHandEnt", "Keeperhand.mesh");
209 keeperHandEnt->setLightMask(0);
210 keeperHandEnt->setCastShadows(false);
211 mHandAnimationState = keeperHandEnt->getAnimationState("Idle");
212 mHandAnimationState->setTimePosition(0);
213 mHandAnimationState->setLoop(true);
214 mHandAnimationState->setEnabled(true);
215 // Note that we need to render something on OD_RENDER_QUEUE_ID_GUI otherwise, Ogre
216 // will not call the render function with queue id = OD_RENDER_QUEUE_ID_GUI and the
217 // GUI will not be displayed
218 keeperHandEnt->setRenderQueueGroup(OD_RENDER_QUEUE_ID_GUI);
219
220 Ogre::OverlayManager& overlayManager = Ogre::OverlayManager::getSingleton();
221 Ogre::Overlay* handKeeperOverlay = overlayManager.create(keeperHandEnt->getName() + "_Ov");
222 mHandKeeperNode = mSceneManager->createSceneNode(keeperHandEnt->getName() + "_node");
223 mHandKeeperNode->attachObject(keeperHandEnt);
224 mHandKeeperNode->setScale(Ogre::Vector3::UNIT_SCALE * KEEPER_HAND_POS_Z);
225 mHandKeeperNode->setPosition(0.0f, 0.0f, -KEEPER_HAND_POS_Z);
226 handKeeperOverlay->add3D(mHandKeeperNode);
227 handKeeperOverlay->show();
228
229 mHandKeeperNode->setVisible(mHandKeeperHandVisibility == 0);
230}
231
232void RenderManager::setWorldAmbientLightingFactor(float lightFactor)
233{

Callers 1

ODFrameListenerMethod · 0.80

Calls 4

getAnimationStateMethod · 0.80
showMethod · 0.80
setVisibleMethod · 0.80
setPositionMethod · 0.45

Tested by

no test coverage detected