From 4ff8901bee9dd7c85f02ebb03713d475313406d7 Mon Sep 17 00:00:00 2001 From: rachytski Date: Wed, 1 Feb 2012 19:22:04 +0400 Subject: [PATCH] removed TileRenderer::CancelThread. canceling all resource pools in destructor of TilingRenderPolicyXXX. --- map/tile_renderer.cpp | 6 ------ map/tile_renderer.hpp | 1 - map/tiling_render_policy_mt.cpp | 6 ++++++ map/tiling_render_policy_mt.hpp | 2 ++ map/tiling_render_policy_st.cpp | 3 +++ 5 files changed, 11 insertions(+), 7 deletions(-) diff --git a/map/tile_renderer.cpp b/map/tile_renderer.cpp index d23ba690f8..e1a9a994dd 100644 --- a/map/tile_renderer.cpp +++ b/map/tile_renderer.cpp @@ -71,7 +71,6 @@ TileRenderer::TileRenderer( m_queue.AddInitCommand(bind(&TileRenderer::InitializeThreadGL, this, _1)); m_queue.AddFinCommand(bind(&TileRenderer::FinalizeThreadGL, this, _1)); - m_queue.AddCancelCommand(bind(&TileRenderer::CancelThread, this, _1)); m_queue.Start(); } @@ -82,11 +81,6 @@ TileRenderer::~TileRenderer() m_queue.Cancel(); } -void TileRenderer::CancelThread(core::CommandsQueue::Environment const & /*env*/) -{ - m_resourceManager->renderTargetTextures()->Cancel(); -} - void TileRenderer::InitializeThreadGL(core::CommandsQueue::Environment const & env) { ThreadData & threadData = m_threadData[env.threadNum()]; diff --git a/map/tile_renderer.hpp b/map/tile_renderer.hpp index 387a449a11..265a712d37 100644 --- a/map/tile_renderer.hpp +++ b/map/tile_renderer.hpp @@ -62,7 +62,6 @@ protected: void InitializeThreadGL(core::CommandsQueue::Environment const & env); void FinalizeThreadGL(core::CommandsQueue::Environment const & env); - void CancelThread(core::CommandsQueue::Environment const & env); protected: diff --git a/map/tiling_render_policy_mt.cpp b/map/tiling_render_policy_mt.cpp index ce2f27d9c4..499b9c2e01 100644 --- a/map/tiling_render_policy_mt.cpp +++ b/map/tiling_render_policy_mt.cpp @@ -145,6 +145,12 @@ TilingRenderPolicyMT::TilingRenderPolicyMT(VideoTimer * videoTimer, m_windowHandle->setRenderContext(primaryRC); } +TilingRenderPolicyMT::~TilingRenderPolicyMT() +{ + LOG(LINFO, ("cancelling ResourceManager")); + m_resourceManager->cancel(); +} + void TilingRenderPolicyMT::SetRenderFn(TRenderFn renderFn) { RenderPolicy::SetRenderFn(renderFn); diff --git a/map/tiling_render_policy_mt.hpp b/map/tiling_render_policy_mt.hpp index b3c77cf806..66673f9103 100644 --- a/map/tiling_render_policy_mt.hpp +++ b/map/tiling_render_policy_mt.hpp @@ -45,6 +45,8 @@ public: yg::ResourceManager::Params const & rmParams, shared_ptr const & primaryRC); + ~TilingRenderPolicyMT(); + void BeginFrame(shared_ptr const & ev, ScreenBase const & s); void DrawFrame(shared_ptr const & ev, ScreenBase const & s); void EndFrame(shared_ptr const & ev, ScreenBase const & s); diff --git a/map/tiling_render_policy_st.cpp b/map/tiling_render_policy_st.cpp index f3bf1baa0a..b4134c9c38 100644 --- a/map/tiling_render_policy_st.cpp +++ b/map/tiling_render_policy_st.cpp @@ -178,6 +178,9 @@ TilingRenderPolicyST::TilingRenderPolicyST(VideoTimer * videoTimer, TilingRenderPolicyST::~TilingRenderPolicyST() { + LOG(LINFO, ("cancelling ResourceManager")); + m_resourceManager->cancel(); + LOG(LINFO, ("deleting TilingRenderPolicyST")); base_t::CancelQueuedCommands(GetPlatform().CpuCores());