From 800685af3fc7b2eb7e7b48016f805d3559c4e98b Mon Sep 17 00:00:00 2001 From: rachytski Date: Wed, 27 Jun 2012 19:14:36 -0700 Subject: [PATCH] loadSkin always called on the same thread. --- map/drawer_yg.cpp | 4 ++-- map/drawer_yg.hpp | 2 +- map/render_policy_mt.cpp | 3 ++- map/render_policy_st.cpp | 3 ++- map/render_queue_routine.cpp | 2 +- map/simple_render_policy.cpp | 2 +- map/test_render_policy.cpp | 7 +++++-- map/tile_renderer.cpp | 3 ++- map/tiling_render_policy_mt.cpp | 3 ++- map/tiling_render_policy_st.cpp | 3 ++- 10 files changed, 20 insertions(+), 12 deletions(-) diff --git a/map/drawer_yg.cpp b/map/drawer_yg.cpp index 4ab1fb4264..26ec698ffb 100644 --- a/map/drawer_yg.cpp +++ b/map/drawer_yg.cpp @@ -55,8 +55,8 @@ DrawerYG::DrawerYG(params_t const & params) : m_visualScale(params.m_visualScale), m_threadID(params.m_threadID) { m_pScreen = shared_ptr(new yg::gl::Screen(params)); - m_pSkin = shared_ptr(loadSkin(params.m_resourceManager, - params.m_skinName)); + + m_pSkin = params.m_skin; m_pScreen->setSkin(m_pSkin); if (m_pSkin) diff --git a/map/drawer_yg.hpp b/map/drawer_yg.hpp index 2ef52475ac..23a35771f8 100644 --- a/map/drawer_yg.hpp +++ b/map/drawer_yg.hpp @@ -97,8 +97,8 @@ public: struct Params : screen_t::Params { size_t m_threadID; - string m_skinName; double m_visualScale; + shared_ptr m_skin; Params(); }; diff --git a/map/render_policy_mt.cpp b/map/render_policy_mt.cpp index 9f7695251f..b6ae52d019 100644 --- a/map/render_policy_mt.cpp +++ b/map/render_policy_mt.cpp @@ -1,6 +1,7 @@ #include "render_policy_mt.hpp" #include "../yg/internal/opengl.hpp" +#include "../yg/skin.hpp" #include "../platform/platform.hpp" @@ -120,7 +121,7 @@ RenderPolicyMT::RenderPolicyMT(RenderPolicy::Params const & p) dp.m_frameBuffer = make_shared_ptr(new yg::gl::FrameBuffer(p.m_useDefaultFB)); dp.m_resourceManager = m_resourceManager; dp.m_glyphCacheID = m_resourceManager->guiThreadGlyphCacheID(); - dp.m_skinName = SkinName(); + dp.m_skin = make_shared_ptr(yg::loadSkin(m_resourceManager, SkinName())); dp.m_visualScale = VisualScale(); dp.m_isSynchronized = false; dp.m_useGuiResources = true; diff --git a/map/render_policy_st.cpp b/map/render_policy_st.cpp index d396d48183..2bf32bf1c8 100644 --- a/map/render_policy_st.cpp +++ b/map/render_policy_st.cpp @@ -3,6 +3,7 @@ #include "../platform/platform.hpp" #include "../yg/internal/opengl.hpp" +#include "../yg/skin.hpp" #include "queued_renderer.hpp" #include "window_handle.hpp" @@ -122,7 +123,7 @@ RenderPolicyST::RenderPolicyST(Params const & p) dp.m_frameBuffer = make_shared_ptr(new yg::gl::FrameBuffer(p.m_useDefaultFB)); dp.m_resourceManager = m_resourceManager; dp.m_glyphCacheID = m_resourceManager->guiThreadGlyphCacheID(); - dp.m_skinName = SkinName(); + dp.m_skin = make_shared_ptr(yg::loadSkin(m_resourceManager, SkinName())); dp.m_visualScale = VisualScale(); dp.m_isSynchronized = false; dp.m_useGuiResources = true; diff --git a/map/render_queue_routine.cpp b/map/render_queue_routine.cpp index e918e67dc8..f7248e40f5 100644 --- a/map/render_queue_routine.cpp +++ b/map/render_queue_routine.cpp @@ -266,7 +266,7 @@ void RenderQueueRoutine::Do() params.m_doPeriodicalUpdate = m_doPeriodicalUpdate; params.m_auxFrameBuffer = m_auxFrameBuffer; params.m_updateInterval = m_updateInterval; - params.m_skinName = m_skinName; + params.m_skin = make_shared_ptr(yg::loadSkin(m_resourceManager, m_skinName)); params.m_visualScale = m_visualScale; params.m_threadID = 0; params.m_glyphCacheID = m_resourceManager->renderThreadGlyphCacheID(0); diff --git a/map/simple_render_policy.cpp b/map/simple_render_policy.cpp index efaa209554..832b4fbae4 100644 --- a/map/simple_render_policy.cpp +++ b/map/simple_render_policy.cpp @@ -100,7 +100,7 @@ SimpleRenderPolicy::SimpleRenderPolicy(Params const & p) dp.m_frameBuffer = make_shared_ptr(new yg::gl::FrameBuffer(p.m_useDefaultFB)); dp.m_resourceManager = m_resourceManager; dp.m_glyphCacheID = m_resourceManager->guiThreadGlyphCacheID(); - dp.m_skinName = SkinName(); + dp.m_skin = make_shared_ptr(yg::loadSkin(m_resourceManager, SkinName())); dp.m_visualScale = VisualScale(); dp.m_isSynchronized = true; diff --git a/map/test_render_policy.cpp b/map/test_render_policy.cpp index 0108bbcd35..1b247d2232 100644 --- a/map/test_render_policy.cpp +++ b/map/test_render_policy.cpp @@ -1,13 +1,16 @@ #include "test_render_policy.hpp" #include "events.hpp" #include "drawer_yg.hpp" +#include "window_handle.hpp" + #include "../yg/base_texture.hpp" #include "../yg/internal/opengl.hpp" #include "../yg/utils.hpp" +#include "../yg/skin.hpp" #include "../geometry/screenbase.hpp" #include "../platform/platform.hpp" -#include "window_handle.hpp" + #include "../indexer/scales.hpp" TestRenderPolicy::TestRenderPolicy(Params const & p) @@ -101,7 +104,7 @@ TestRenderPolicy::TestRenderPolicy(Params const & p) dp.m_frameBuffer = m_primaryFrameBuffer; dp.m_resourceManager = m_resourceManager; dp.m_glyphCacheID = m_resourceManager->guiThreadGlyphCacheID(); - dp.m_skinName = SkinName(); + dp.m_skin = make_shared_ptr(yg::loadSkin(m_resourceManager, SkinName())); dp.m_visualScale = VisualScale(); dp.m_isSynchronized = true; diff --git a/map/tile_renderer.cpp b/map/tile_renderer.cpp index 147a0bf52d..eb6bd4bd1c 100644 --- a/map/tile_renderer.cpp +++ b/map/tile_renderer.cpp @@ -8,6 +8,7 @@ #include "../yg/rendercontext.hpp" #include "../yg/base_texture.hpp" #include "../yg/packets_queue.hpp" +#include "../yg/skin.hpp" #include "../std/bind.hpp" @@ -56,11 +57,11 @@ TileRenderer::TileRenderer( params.m_glyphCacheID = m_resourceManager->renderThreadGlyphCacheID(i); params.m_threadID = i; params.m_visualScale = visualScale; - params.m_skinName = m_skinName; if (packetsQueues != 0) params.m_renderQueue = packetsQueues[i]; params.m_doUnbindRT = false; params.m_isSynchronized = false; + params.m_skin = make_shared_ptr(yg::loadSkin(m_resourceManager, m_skinName)); /* params.m_isDebugging = true; params.m_drawPathes = false ; params.m_drawAreas = false; diff --git a/map/tiling_render_policy_mt.cpp b/map/tiling_render_policy_mt.cpp index f789a9f4d4..e0a016d4cb 100644 --- a/map/tiling_render_policy_mt.cpp +++ b/map/tiling_render_policy_mt.cpp @@ -3,6 +3,7 @@ #include "../platform/platform.hpp" #include "../yg/internal/opengl.hpp" +#include "../yg/skin.hpp" #include "window_handle.hpp" #include "tile_renderer.hpp" @@ -135,7 +136,7 @@ TilingRenderPolicyMT::TilingRenderPolicyMT(Params const & p) dp.m_frameBuffer = make_shared_ptr(new yg::gl::FrameBuffer(p.m_useDefaultFB)); dp.m_resourceManager = m_resourceManager; dp.m_glyphCacheID = m_resourceManager->guiThreadGlyphCacheID(); - dp.m_skinName = SkinName(); + dp.m_skin = make_shared_ptr(yg::loadSkin(m_resourceManager, SkinName())); dp.m_visualScale = VisualScale(); dp.m_useGuiResources = true; dp.m_isSynchronized = false; diff --git a/map/tiling_render_policy_st.cpp b/map/tiling_render_policy_st.cpp index f493ceca23..8bf1108760 100644 --- a/map/tiling_render_policy_st.cpp +++ b/map/tiling_render_policy_st.cpp @@ -3,6 +3,7 @@ #include "../platform/platform.hpp" #include "../yg/internal/opengl.hpp" +#include "../yg/skin.hpp" #include "window_handle.hpp" #include "queued_renderer.hpp" @@ -148,7 +149,7 @@ TilingRenderPolicyST::TilingRenderPolicyST(Params const & p) dp.m_frameBuffer = make_shared_ptr(new yg::gl::FrameBuffer(p.m_useDefaultFB)); dp.m_resourceManager = m_resourceManager; dp.m_glyphCacheID = m_resourceManager->guiThreadGlyphCacheID(); - dp.m_skinName = SkinName(); + dp.m_skin = make_shared_ptr(yg::loadSkin(m_resourceManager, SkinName())); dp.m_visualScale = VisualScale(); dp.m_useGuiResources = true; dp.m_isSynchronized = false;