From 4741118b61301ce374cee0f2fb13f4f01b852cd3 Mon Sep 17 00:00:00 2001 From: krzys-h <krzys_h@interia.pl> Date: Mon, 20 Jul 2015 20:47:44 +0200 Subject: [PATCH] Added new options to configuration presets --- src/graphics/engine/engine.cpp | 10 ++++------ src/ui/maindialog.cpp | 15 ++++++++++++++- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index 9f640073..e1c57d8a 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -124,7 +124,7 @@ CEngine::CEngine(CApplication *app) m_offscreenShadowRenderingResolution = 1024; m_qualityShadows = true; m_shadowRange = 0.0f; - m_multisample = 1; + m_multisample = 2; m_totoMode = true; m_lensMode = true; @@ -2583,12 +2583,9 @@ float CEngine::GetShadowRange() void CEngine::SetMultiSample(int value) { - bool changed = m_multisample != value; + if(value == m_multisample) return; m_multisample = value; - if(changed) - { - m_device->DeleteFramebuffer("multisample"); - } + m_device->DeleteFramebuffer("multisample"); } int CEngine::GetMultiSample() @@ -3751,6 +3748,7 @@ void CEngine::UseShadowMapping(bool enable) void CEngine::UseMSAA(bool enable) { + m_multisample = Math::Min(m_device->GetMaxSamples(), m_multisample); if (m_multisample < 2) return; if (enable) diff --git a/src/ui/maindialog.cpp b/src/ui/maindialog.cpp index 55055e51..43219bb7 100644 --- a/src/ui/maindialog.cpp +++ b/src/ui/maindialog.cpp @@ -5355,7 +5355,7 @@ void CMainDialog::ChangeSetupQuality(int quality) bool bEnable; float value; - bEnable = (quality >= 0); + bEnable = true; //(quality >= 0); m_engine->SetShadow(bEnable); m_engine->SetGroundSpot(bEnable); m_engine->SetDirty(bEnable); @@ -5386,6 +5386,19 @@ void CMainDialog::ChangeSetupQuality(int quality) if ( quality > 0 ) value = 1.0f; m_engine->SetGadgetQuantity(value); + if ( quality < 0 ) m_engine->SetMultiSample(1); + if ( quality == 0 ) m_engine->SetMultiSample(2); + if ( quality > 0 ) m_engine->SetMultiSample(4); + + if ( quality < 0 ) { m_engine->SetTextureFilterMode(Gfx::TEX_FILTER_BILINEAR); } + if ( quality == 0 ) { m_engine->SetTextureFilterMode(Gfx::TEX_FILTER_TRILINEAR); m_engine->SetTextureMipmapLevel(4); m_engine->SetTextureAnisotropyLevel(4); } + if ( quality > 0 ) { m_engine->SetTextureFilterMode(Gfx::TEX_FILTER_TRILINEAR); m_engine->SetTextureMipmapLevel(8); m_engine->SetTextureAnisotropyLevel(8); } + + if ( quality < 0 ) { m_engine->SetShadowMapping(false); m_engine->SetShadowMappingQuality(false); } + else { m_engine->SetShadowMapping(true); m_engine->SetShadowMappingQuality(true); m_engine->SetShadowMappingOffscreen(true); } + if ( quality == 0 ) m_engine->SetShadowMappingOffscreenResolution(1024); + if ( quality > 0 ) m_engine->SetShadowMappingOffscreenResolution(2048); + // TODO: first execute adapt? //m_engine->FirstExecuteAdapt(false); }