diff --git a/modules/gfx/src/scene.cc b/modules/gfx/src/scene.cc index a79bee3a3e2e6ef2a0f67a519ab8216fa1395547..a6fbd0d6898852d38a14478d35a0ddeac96ce718 100644 --- a/modules/gfx/src/scene.cc +++ b/modules/gfx/src/scene.cc @@ -1428,7 +1428,6 @@ void Scene::PopView() zfar_=scene_view_stack_.top().zfar; scene_view_stack_.pop(); ResetProjection(); - update_fog(); RequestRedraw(); } } @@ -1484,7 +1483,6 @@ float Scene::GetFOV() const void Scene::SetFogNearOffset(float o) { fnear_=o; - update_fog(); RequestRedraw(); } @@ -1496,7 +1494,6 @@ float Scene::GetFogNearOffset() const void Scene::SetFogFarOffset(float o) { ffar_=o; - update_fog(); RequestRedraw(); } @@ -1509,7 +1506,6 @@ void Scene::SetFogOffsets(float no, float fo) { fnear_=no; ffar_=fo; - update_fog(); RequestRedraw(); } @@ -1798,7 +1794,7 @@ void Scene::set_near(float n) if(znear_>zfar_-0.1) { znear_=zfar_-0.1; } - update_fog(); + RequestRedraw(); } void Scene::set_far(float f) @@ -1807,19 +1803,9 @@ void Scene::set_far(float f) if(znear_>zfar_-0.1) { zfar_=znear_+0.1; } - update_fog(); -} - -void Scene::update_fog() -{ - if(gl_init_) { - this->ActivateGLContext(); - glFogf(GL_FOG_START,znear_+fnear_); - glFogf(GL_FOG_END,zfar_+ffar_); - } + RequestRedraw(); } - namespace { class DirtyAll: public GfxNodeVisitor { @@ -2113,6 +2099,9 @@ void Scene::render_scene() render_bg(); + glFogf(GL_FOG_START,znear_+fnear_); + glFogf(GL_FOG_END,zfar_+ffar_); + glMultMatrix(transform_.GetTransposedMatrix().Data()); #if OST_SHADER_SUPPORT_ENABLED diff --git a/modules/gfx/src/scene.hh b/modules/gfx/src/scene.hh index 714e60a637567086c9e4c6b1a0313411ef3c7c6c..6ae5033f81dd4d023300df48894898864cbb31f0 100644 --- a/modules/gfx/src/scene.hh +++ b/modules/gfx/src/scene.hh @@ -601,7 +601,6 @@ private: void set_near(float n); void set_far(float f); - void update_fog(); void flag_all_dirty(); void prep_glyphs(); void prep_blur();