-----------------------------------------------------------------------
| 1498 | } |
| 1499 | //----------------------------------------------------------------------- |
| 1500 | void SceneManager::_renderQueueGroupObjects(RenderQueueGroup* pGroup, |
| 1501 | QueuedRenderableCollection::OrganisationMode om) |
| 1502 | { |
| 1503 | bool doShadows = pGroup->getShadowsEnabled() && mCurrentViewport->getShadowsEnabled(); |
| 1504 | |
| 1505 | // Modulative texture shadows in use |
| 1506 | if (isShadowTechniqueTextureBased() && mIlluminationStage == IRS_RENDER_TO_TEXTURE) |
| 1507 | { |
| 1508 | // Shadow caster pass |
| 1509 | if (mCurrentViewport->getShadowsEnabled()) |
| 1510 | { |
| 1511 | mTextureShadowRenderer.renderTextureShadowCasterQueueGroupObjects(pGroup, om); |
| 1512 | } |
| 1513 | return; |
| 1514 | } |
| 1515 | |
| 1516 | // Ordinary + receiver pass |
| 1517 | if (doShadows && isShadowTechniqueInUse() && !isShadowTechniqueIntegrated()) |
| 1518 | { |
| 1519 | if(isShadowTechniqueStencilBased()) |
| 1520 | mStencilShadowRenderer.render(pGroup, om); |
| 1521 | else |
| 1522 | mTextureShadowRenderer.render(pGroup, om); |
| 1523 | |
| 1524 | auto visitor = mActiveQueuedRenderableVisitor; |
| 1525 | for (const auto& pg : pGroup->getPriorityGroups()) |
| 1526 | { |
| 1527 | visitor->renderTransparents(pg.second, om); |
| 1528 | } |
| 1529 | return; |
| 1530 | } |
| 1531 | |
| 1532 | // No shadows, ordinary pass |
| 1533 | renderBasicQueueGroupObjects(pGroup, om); |
| 1534 | } |
| 1535 | //----------------------------------------------------------------------- |
| 1536 | void SceneManager::renderBasicQueueGroupObjects(RenderQueueGroup* pGroup, |
| 1537 | QueuedRenderableCollection::OrganisationMode om) |
nothing calls this directly
no test coverage detected