Disable shadows when UBOs are off

This commit is contained in:
Marianne Gagnon 2014-08-01 20:21:10 -04:00
parent edecfbdb59
commit 2a9d63b7ae
5 changed files with 8 additions and 7 deletions

View File

@ -220,7 +220,7 @@ void SunLightProvider::OnSetConstants(IMaterialRendererServices *srv, int)
m_wind[1] += winddir.Z;
srv->setVertexShaderConstant("wind", m_wind, 2);
if (UserConfigParams::m_shadows)
if (UserConfigParams::m_shadows && !UserConfigParams::m_ubo_disabled)
{
srv->setVertexShaderConstant("shadowmat", m_shadowmat.pointer(), 16);
}

View File

@ -276,7 +276,7 @@ void IrrDriver::renderScene(scene::ICameraSceneNode * const camnode, unsigned po
// To avoid wrong culling, use the largest view possible
m_scene_manager->setActiveCamera(m_suncam);
if (!m_mipviz && !m_wireframe && UserConfigParams::m_dynamic_lights &&
UserConfigParams::m_shadows && hasShadow)
UserConfigParams::m_shadows && !UserConfigParams::m_ubo_disabled && hasShadow)
renderShadows();
m_scene_manager->setActiveCamera(camnode);
PROFILER_POP_CPU_MARKER();

View File

@ -172,7 +172,7 @@ void IrrDriver::renderLights(unsigned pointlightcount)
if (!World::getWorld() || World::getWorld()->getTrack()->hasShadows())
{
ScopedGPUTimer timer(irr_driver->getGPUTimer(Q_SUN));
if (World::getWorld() && UserConfigParams::m_shadows)
if (World::getWorld() && UserConfigParams::m_shadows && !UserConfigParams::m_ubo_disabled)
m_post_processing->renderShadowedSunlight(sun_ortho_matrix, m_rtts->getShadowDepthTex());
else
m_post_processing->renderSunlight();

View File

@ -226,7 +226,7 @@ RTT::RTT(size_t width, size_t height)
somevector.push_back(RenderTargetTextures[RTT_TMP_128]);
FrameBuffers.push_back(new FrameBuffer(somevector, 128, 128));
if (UserConfigParams::m_shadows)
if (UserConfigParams::m_shadows && !UserConfigParams::m_ubo_disabled)
{
shadowColorTex = generateRTT3D(GL_TEXTURE_2D_ARRAY, 1024, 1024, 4, GL_R8, GL_RED, GL_UNSIGNED_BYTE);
shadowDepthTex = generateRTT3D(GL_TEXTURE_2D_ARRAY, 1024, 1024, 4, GL_DEPTH24_STENCIL8, GL_DEPTH_STENCIL, GL_UNSIGNED_INT_24_8);
@ -265,7 +265,7 @@ RTT::~RTT()
{
glDeleteTextures(RTT_COUNT, RenderTargetTextures);
glDeleteTextures(1, &DepthStencilTexture);
if (UserConfigParams::m_shadows)
if (UserConfigParams::m_shadows && !UserConfigParams::m_ubo_disabled)
{
delete m_shadow_FBO;
glDeleteTextures(1, &shadowColorTex);

View File

@ -83,7 +83,7 @@ void CustomVideoSettingsDialog::beforeAddingWidgets()
shadows->addLabel( _("Disabled") ); // 0
shadows->addLabel( _("low") ); // 1
shadows->addLabel( _("high") ); // 2
shadows->setValue( UserConfigParams::m_shadows );
shadows->setValue(UserConfigParams::m_shadows && !UserConfigParams::m_ubo_disabled);
getWidget<CheckBoxWidget>("dynamiclight")->setState(UserConfigParams::m_dynamic_lights);
getWidget<CheckBoxWidget>("lightshaft")->setState(UserConfigParams::m_light_shaft);
@ -114,7 +114,8 @@ GUIEngine::EventPropagation CustomVideoSettingsDialog::processEvent(const std::s
if (advanced_pipeline)
{
UserConfigParams::m_shadows =
advanced_pipeline && getWidget<SpinnerWidget>("shadows")->getValue();
advanced_pipeline && getWidget<SpinnerWidget>("shadows")->getValue() &&
getWidget<CheckBoxWidget>("ubo")->getState();
}
else
{