From d0b8be1501d9c680fda01cb795b92c421f84da35 Mon Sep 17 00:00:00 2001 From: rachytski Date: Tue, 18 Dec 2012 22:38:50 +0300 Subject: [PATCH] added settings for specifying which resource pool to use and specified that CoverageGenerator should use pools different from TileRenderer and GUI thread. --- graphics/geometry_batcher.cpp | 22 ++-------------------- graphics/geometry_batcher.hpp | 9 +-------- graphics/pipeline_manager.cpp | 9 +++++++-- graphics/pipeline_manager.hpp | 3 +++ map/coverage_generator.cpp | 2 ++ map/render_policy.cpp | 3 ++- map/tiling_render_policy_mt.cpp | 3 ++- map/tiling_render_policy_st.cpp | 3 ++- 8 files changed, 21 insertions(+), 33 deletions(-) diff --git a/graphics/geometry_batcher.cpp b/graphics/geometry_batcher.cpp index 8f52b1f884..a0baccf79e 100644 --- a/graphics/geometry_batcher.cpp +++ b/graphics/geometry_batcher.cpp @@ -20,39 +20,21 @@ namespace graphics { - GeometryBatcher::Params::Params() - : m_useGuiResources(false) - {} - - GeometryBatcher::GeometryBatcher(Params const & params) + GeometryBatcher::GeometryBatcher(base_t::Params const & params) : base_t(params), - m_isAntiAliased(true), - m_useGuiResources(params.m_useGuiResources) + m_isAntiAliased(true) { base_t::applyStates(); /// TODO: Perform this after full initialization. for (size_t i = 0; i < pipelinesCount(); ++i) - { - if (m_useGuiResources) - { - GeometryPipeline & p = pipeline(i); - if (p.textureType() != EStaticTexture) - { - p.setTextureType(ESmallTexture); - p.setStorageType(ESmallStorage); - } - } - addClearPageFn(i, bind(&GeometryBatcher::flush, this, i), 100); - } /// 1 to turn antialiasing on /// 2 to switch it off m_aaShift = m_isAntiAliased ? 1 : 2; } - void GeometryBatcher::beginFrame() { base_t::beginFrame(); diff --git a/graphics/geometry_batcher.hpp b/graphics/geometry_batcher.hpp index 842175b3f9..0f2800d8a6 100644 --- a/graphics/geometry_batcher.hpp +++ b/graphics/geometry_batcher.hpp @@ -29,7 +29,6 @@ namespace graphics bool m_isAntiAliased; bool m_isSynchronized; - bool m_useGuiResources; int m_aaShift; @@ -44,13 +43,7 @@ namespace graphics int verticesLeft(int pipelineID) const; int indicesLeft(int pipelineID) const; - struct Params : public base_t::Params - { - bool m_useGuiResources; - Params(); - }; - - GeometryBatcher(Params const & params); + GeometryBatcher(base_t::Params const & params); void beginFrame(); void endFrame(); diff --git a/graphics/pipeline_manager.cpp b/graphics/pipeline_manager.cpp index 3e619281ec..e7f28e3452 100644 --- a/graphics/pipeline_manager.cpp +++ b/graphics/pipeline_manager.cpp @@ -14,6 +14,11 @@ namespace graphics { + PipelinesManager::Params::Params() + : m_storageType(ELargeStorage), + m_textureType(ELargeTexture) + {} + PipelinesManager::PipelinesManager(Params const & p) : base_t(p) { @@ -27,8 +32,8 @@ namespace graphics m_dynamicPagesCount = 2; m_startDynamicPage = reservePipelines(m_dynamicPagesCount, - ELargeTexture, - ELargeStorage); + p.m_textureType, + p.m_storageType); m_dynamicPage = m_startDynamicPage; } diff --git a/graphics/pipeline_manager.hpp b/graphics/pipeline_manager.hpp index 6137be4cb5..8e38aaa732 100644 --- a/graphics/pipeline_manager.hpp +++ b/graphics/pipeline_manager.hpp @@ -104,7 +104,10 @@ namespace graphics struct Params : public base_t::Params { + EStorageType m_storageType; + ETextureType m_textureType; string m_skinName; + Params(); }; PipelinesManager(Params const & params); diff --git a/map/coverage_generator.cpp b/map/coverage_generator.cpp index a046eb21a2..7516bcada0 100644 --- a/map/coverage_generator.cpp +++ b/map/coverage_generator.cpp @@ -57,6 +57,8 @@ ScreenCoverage * CoverageGenerator::CreateCoverage() params.m_isSynchronized = false; params.m_threadSlot = m_resourceManager->cacheThreadSlot(); params.m_renderContext = m_renderContext; + params.m_storageType = graphics::EMediumStorage; + params.m_textureType = graphics::EMediumTexture; params.m_skinName = m_skinName; shared_ptr screen(new graphics::Screen(params)); diff --git a/map/render_policy.cpp b/map/render_policy.cpp index 514ed62691..0cae75de76 100644 --- a/map/render_policy.cpp +++ b/map/render_policy.cpp @@ -50,7 +50,8 @@ void RenderPolicy::InitCacheScreen() cp.m_doUnbindRT = false; cp.m_threadSlot = m_resourceManager->guiThreadSlot(); - cp.m_useGuiResources = true; + cp.m_storageType = graphics::ESmallStorage; + cp.m_textureType = graphics::ESmallTexture; cp.m_skinName = m_skinName; cp.m_isSynchronized = false; cp.m_resourceManager = m_resourceManager; diff --git a/map/tiling_render_policy_mt.cpp b/map/tiling_render_policy_mt.cpp index 41f1d0b69e..ab78262a76 100644 --- a/map/tiling_render_policy_mt.cpp +++ b/map/tiling_render_policy_mt.cpp @@ -126,7 +126,8 @@ TilingRenderPolicyMT::TilingRenderPolicyMT(Params const & p) dp.m_threadSlot = m_resourceManager->guiThreadSlot(); dp.m_skinName = SkinName(); dp.m_visualScale = VisualScale(); - dp.m_useGuiResources = true; + dp.m_storageType = ESmallStorage; + dp.m_textureType = ESmallTexture; dp.m_isSynchronized = false; dp.m_fastSolidPath = true; dp.m_renderContext = p.m_primaryRC; diff --git a/map/tiling_render_policy_st.cpp b/map/tiling_render_policy_st.cpp index 529a81cfe2..aca3750dee 100644 --- a/map/tiling_render_policy_st.cpp +++ b/map/tiling_render_policy_st.cpp @@ -117,7 +117,8 @@ TilingRenderPolicyST::TilingRenderPolicyST(Params const & p) dp.m_threadSlot = m_resourceManager->guiThreadSlot(); dp.m_skinName = SkinName(); dp.m_visualScale = VisualScale(); - dp.m_useGuiResources = true; + dp.m_storageType = graphics::ESmallStorage; + dp.m_textureType = graphics::ESmallTexture; dp.m_isSynchronized = false; dp.m_fastSolidPath = true; dp.m_renderContext = p.m_primaryRC;