Fixed CEngine trying to use unsupported values as defaults, closes #552

Also fixed the settings buttons not being disabled properly
master
krzys-h 2015-08-14 12:03:53 +02:00
parent 222517a5e7
commit 1d6c3cc748
2 changed files with 9 additions and 1 deletions

View File

@ -288,6 +288,13 @@ bool CEngine::Create()
m_size = m_app->GetVideoConfig().size;
m_mouseSize = Math::Point(0.04f, 0.04f * (m_size.x / m_size.y));
// Use the setters to set defaults, because they automatically disable what is not supported
SetShadowMapping(m_shadowMapping);
SetShadowMappingQuality(m_qualityShadows);
SetShadowMappingOffscreen(m_offscreenShadowRendering);
SetShadowMappingOffscreenResolution(m_offscreenShadowRenderingResolution);
SetMultiSample(m_multisample);
m_modelManager = MakeUnique<COldModelManager>(this);
m_pyroManager = MakeUnique<CPyroManager>();
m_lightMan = MakeUnique<CLightManager>(this);

View File

@ -417,13 +417,14 @@ void CScreenSetupGraphics::UpdateSetupButtons()
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING));
if ( pc != 0 )
{
pc->SetState(STATE_ENABLE, m_engine->IsShadowMappingSupported());
pc->SetState(STATE_CHECK, m_engine->GetShadowMapping());
}
pc = static_cast<CCheck*>(pw->SearchControl(EVENT_INTERFACE_SHADOW_MAPPING_QUALITY));
if ( pc != 0 )
{
pc->SetState(STATE_ENABLE, m_engine->GetShadowMapping());
pc->SetState(STATE_ENABLE, m_engine->GetShadowMapping() && m_engine->IsShadowMappingQualitySupported());
pc->SetState(STATE_CHECK, m_engine->GetShadowMapping() && m_engine->GetShadowMappingQuality());
}