diff --git a/map/tile_renderer.cpp b/map/tile_renderer.cpp index ce58836b0a..994551d9d7 100644 --- a/map/tile_renderer.cpp +++ b/map/tile_renderer.cpp @@ -48,7 +48,6 @@ TileRenderer::TileRenderer( params.m_resourceManager = m_resourceManager; params.m_frameBuffer = make_shared_ptr(new yg::gl::FrameBuffer()); - params.m_frameBuffer->setDepthBuffer(make_shared_ptr(new yg::gl::RenderBuffer(tileWidth, tileHeight, true))); params.m_glyphCacheID = m_resourceManager->renderThreadGlyphCacheID(i); params.m_threadID = i; @@ -67,6 +66,7 @@ TileRenderer::TileRenderer( m_threadData[i].m_drawer = 0; m_threadData[i].m_renderContext = m_primaryContext->createShared(); m_threadData[i].m_dummyRT = m_resourceManager->createRenderTarget(2, 2); + m_threadData[i].m_depthBuffer = make_shared_ptr(new yg::gl::RenderBuffer(tileWidth, tileHeight, true)); } m_queue.AddInitCommand(bind(&TileRenderer::InitializeThreadGL, this, _1)); @@ -97,6 +97,7 @@ void TileRenderer::InitializeThreadGL(core::CommandsQueue::Environment const & e threadData.m_renderContext->makeCurrent(); threadData.m_drawer = new DrawerYG(threadData.m_drawerParams); threadData.m_drawer->onSize(tileWidth, tileHeight); + threadData.m_drawer->screen()->setDepthBuffer(threadData.m_depthBuffer); } void TileRenderer::FinalizeThreadGL(core::CommandsQueue::Environment const & env) diff --git a/map/tile_renderer.hpp b/map/tile_renderer.hpp index 5e1a8d7d6c..d44b8183fe 100644 --- a/map/tile_renderer.hpp +++ b/map/tile_renderer.hpp @@ -42,6 +42,7 @@ protected: DrawerYG::params_t m_drawerParams; shared_ptr m_dummyRT; shared_ptr m_renderContext; + shared_ptr m_depthBuffer; }; buffer_vector m_threadData; diff --git a/map/tiling_render_policy_st.cpp b/map/tiling_render_policy_st.cpp index d66cbe82f7..6a48a9675f 100644 --- a/map/tiling_render_policy_st.cpp +++ b/map/tiling_render_policy_st.cpp @@ -248,6 +248,8 @@ void TilingRenderPolicyST::DrawFrame(shared_ptr const & e, ScreenBas pDrawer->endFrame(); // yg::gl::g_doLogOGLCalls = false; + + m_resourceManager->updatePoolState(); } int TilingRenderPolicyST::GetDrawScale(ScreenBase const & s) const diff --git a/yg/resource_manager.cpp b/yg/resource_manager.cpp index 9c2d10abdd..294c7db54c 100644 --- a/yg/resource_manager.cpp +++ b/yg/resource_manager.cpp @@ -665,7 +665,7 @@ namespace yg int ResourceManager::renderThreadGlyphCacheID(int threadNum) const { - ASSERT(threadNum < m_params.m_glyphCacheParams.m_renderThreadCount, ()); + ASSERT(threadNum < m_params.m_glyphCacheParams.m_renderThreadCount, (threadNum, m_params.m_glyphCacheParams.m_renderThreadCount)); return 1 + threadNum; }