ShaderManager::GraphicsLevel ShaderManager::setGraphicsLevel(ShaderManager::GraphicsLevel newLevel) { if (newLevel > mBestGraphicsLevel) { S_LOG_FAILURE("Cannot set graphics level " << mGraphicSchemes[newLevel]); return mGraphicsLevel; } S_LOG_INFO("Using graphics level " << mGraphicSchemes[newLevel]); Ogre::MaterialManager::getSingleton().setActiveScheme(mGraphicSchemes[newLevel]); Ogre::RenderWindow* window = EmberOgre::getSingleton().getRenderWindow(); for (int i = 0; i < window->getNumViewports(); ++i) { window->getViewport(i)->setMaterialScheme(mGraphicSchemes[newLevel]); } switch (newLevel) { case LEVEL_EXPERIMENTAL: case LEVEL_HIGH: setPSSMShadows(); break; case LEVEL_MEDIUM: case LEVEL_LOW: case LEVEL_DEFAULT: setNoShadows(); break; } mGraphicsLevel = newLevel; EventLevelChanged.emit(); return mGraphicsLevel; }
CRenderableQueueMember::CRenderableQueueMember(){ setNoShadows(false); }