MCPcopy Create free account
hub / github.com/OGRECave/ogre / updateShadowSplitOptions

Function updateShadowSplitOptions

OgreMain/src/OgreSceneManager.cpp:881–898  ·  view source on GitHub ↗

-----------------------------------------------------------------------

Source from the content-addressed store, hash-verified

879}
880//-----------------------------------------------------------------------
881static void updateShadowSplitOptions(const SceneManager* sceneManager, RenderQueue* queue)
882{
883 int shadowTechnique = sceneManager->getShadowTechnique();
884 if(!sceneManager->getCurrentViewport()->getShadowsEnabled())
885 shadowTechnique = SHADOWTYPE_NONE;
886
887 bool notIntegrated = (shadowTechnique & SHADOWDETAILTYPE_INTEGRATED) == 0;
888
889 // Stencil Casters can always be receivers
890 queue->setShadowCastersCannotBeReceivers(!(shadowTechnique & SHADOWDETAILTYPE_STENCIL) &&
891 !sceneManager->getShadowTextureSelfShadow());
892
893 // Additive lighting, we need to split everything by illumination stage
894 queue->setSplitPassesByLightingType((shadowTechnique & SHADOWDETAILTYPE_ADDITIVE) && notIntegrated);
895
896 // Tell render queue to split off non-shadowable materials
897 queue->setSplitNoShadowPasses(shadowTechnique && notIntegrated);
898}
899
900void SceneManager::prepareRenderQueue(void)
901{

Callers 1

prepareRenderQueueMethod · 0.85

Tested by

no test coverage detected