From 15c5e6919905455567482e41b1cdbae9bd936bf1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20Kapu=C5=9Bci=C5=84ski?= Date: Sat, 30 Jan 2016 23:58:26 +0100 Subject: [PATCH] Fix for visibility distance setting --- src/graphics/engine/engine.cpp | 14 ++++---------- src/graphics/engine/engine.h | 1 - 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/graphics/engine/engine.cpp b/src/graphics/engine/engine.cpp index 29c6f927..80d08f84 100644 --- a/src/graphics/engine/engine.cpp +++ b/src/graphics/engine/engine.cpp @@ -131,7 +131,6 @@ CEngine::CEngine(CApplication *app, CSystemUtils* systemUtils) m_drawWorld = true; m_drawFront = false; m_particleDensity = 1.0f; - m_lastClippingDistance = 1.0f; m_clippingDistance = 1.0f; m_terrainVision = 1000.0f; m_textureMipmapLevel = 1; @@ -2590,8 +2589,10 @@ void CEngine::SetFocus(float focus) m_focus = focus; m_size = m_app->GetVideoConfig().size; - float aspect = (static_cast(m_size.x)) / m_size.y; - Math::LoadProjectionMatrix(m_matProj, m_focus, aspect, 0.5f, m_deepView[0]); + float farPlane = m_deepView[0] * m_clippingDistance; + + float aspect = static_cast(m_size.x) / static_cast(m_size.y); + Math::LoadProjectionMatrix(m_matProj, m_focus, aspect, 0.5f, farPlane); } float CEngine::GetFocus() @@ -2829,7 +2830,6 @@ void CEngine::SetClippingDistance(float value) { if (value < 0.5f) value = 0.5f; if (value > 2.0f) value = 2.0f; - m_lastClippingDistance = m_clippingDistance; m_clippingDistance = value; } @@ -3055,13 +3055,7 @@ void CEngine::UpdateMatProj() void CEngine::ApplyChange() { - m_deepView[0] /= m_lastClippingDistance; - m_deepView[1] /= m_lastClippingDistance; - SetFocus(m_focus); - - m_deepView[0] *= m_clippingDistance; - m_deepView[1] *= m_clippingDistance; } diff --git a/src/graphics/engine/engine.h b/src/graphics/engine/engine.h index 9aebe83f..ede90170 100644 --- a/src/graphics/engine/engine.h +++ b/src/graphics/engine/engine.h @@ -1386,7 +1386,6 @@ protected: bool m_fog; float m_particleDensity; float m_clippingDistance; - float m_lastClippingDistance; bool m_lightMode; bool m_editIndentMode; int m_editIndentValue;