Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--graphics/opengl/renderer.cpp5
-rw-r--r--graphics/opengl/renderer.hpp6
-rw-r--r--map/coverage_generator.cpp1
-rw-r--r--map/tile_renderer.cpp6
-rw-r--r--map/tiling_render_policy_mt.cpp3
-rw-r--r--map/tiling_render_policy_st.cpp2
-rw-r--r--qt_tstfrm/tstwidgets.cpp3
7 files changed, 24 insertions, 2 deletions
diff --git a/graphics/opengl/renderer.cpp b/graphics/opengl/renderer.cpp
index f8702cd5f0..9f888dcf64 100644
--- a/graphics/opengl/renderer.cpp
+++ b/graphics/opengl/renderer.cpp
@@ -367,6 +367,11 @@ namespace graphics
void Renderer::setPixelPrecision(bool flag)
{
glUseSharpGeometryFn(flag);
+ RenderContext * Renderer::renderContext() const
+ {
+ return m_renderContext.get();
+ }
+
int Renderer::threadSlot() const
{
return m_threadSlot;
diff --git a/graphics/opengl/renderer.hpp b/graphics/opengl/renderer.hpp
index 18ccb9b3dc..9ff15d5671 100644
--- a/graphics/opengl/renderer.hpp
+++ b/graphics/opengl/renderer.hpp
@@ -92,6 +92,7 @@ namespace graphics
struct Params
{
+ shared_ptr<RenderContext> m_renderContext;
shared_ptr<ResourceManager> m_resourceManager;
shared_ptr<FrameBuffer> m_frameBuffer;
bool m_isDebugging;
@@ -125,6 +126,8 @@ namespace graphics
int m_threadSlot;
+ shared_ptr<RenderContext> m_renderContext;
+
public:
static const graphics::Color s_bgColor;
@@ -182,6 +185,9 @@ namespace graphics
void setPixelPrecision(bool flag);
+
+ RenderContext * renderContext() const;
+
int threadSlot() const;
};
}
diff --git a/map/coverage_generator.cpp b/map/coverage_generator.cpp
index 1c7018a2a9..f96f61baf9 100644
--- a/map/coverage_generator.cpp
+++ b/map/coverage_generator.cpp
@@ -60,6 +60,7 @@ ScreenCoverage * CoverageGenerator::CreateCoverage()
params.m_doUnbindRT = false;
params.m_isSynchronized = false;
params.m_threadSlot = m_resourceManager->cacheThreadSlot();
+ params.m_renderContext = m_renderContext;
shared_ptr<graphics::Screen> screen(new graphics::Screen(params));
shared_ptr<graphics::Skin> skin(loadSkin(m_resourceManager, m_skinName));
diff --git a/map/tile_renderer.cpp b/map/tile_renderer.cpp
index 5be34bf3ba..f39d325d90 100644
--- a/map/tile_renderer.cpp
+++ b/map/tile_renderer.cpp
@@ -49,6 +49,9 @@ TileRenderer::TileRenderer(
for (unsigned i = 0; i < m_threadData.size(); ++i)
{
+ if (!packetsQueues)
+ m_threadData[i].m_renderContext = m_primaryContext->createShared();
+
Drawer::Params params;
params.m_resourceManager = m_resourceManager;
@@ -61,6 +64,7 @@ TileRenderer::TileRenderer(
params.m_doUnbindRT = false;
params.m_isSynchronized = false;
params.m_skin = make_shared_ptr(graphics::loadSkin(m_resourceManager, m_skinName));
+ params.m_renderContext = m_threadData[i].m_renderContext;
/* params.m_isDebugging = true;
params.m_drawPathes = false ;
params.m_drawAreas = false;
@@ -69,8 +73,6 @@ TileRenderer::TileRenderer(
m_threadData[i].m_drawerParams = params;
m_threadData[i].m_drawer = 0;
- if (!packetsQueues)
- 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 graphics::gl::RenderBuffer(tileWidth, tileHeight, true));
diff --git a/map/tiling_render_policy_mt.cpp b/map/tiling_render_policy_mt.cpp
index 62c8e431cc..4252382510 100644
--- a/map/tiling_render_policy_mt.cpp
+++ b/map/tiling_render_policy_mt.cpp
@@ -12,6 +12,8 @@ TilingRenderPolicyMT::TilingRenderPolicyMT(Params const & p)
: BasicTilingRenderPolicy(p,
false)
{
+ int cpuCores = GetPlatform().CpuCores();
+
graphics::ResourceManager::Params rmp = p.m_rmParams;
rmp.checkDeviceCaps();
@@ -141,6 +143,7 @@ TilingRenderPolicyMT::TilingRenderPolicyMT(Params const & p)
dp.m_useGuiResources = true;
dp.m_isSynchronized = false;
dp.m_fastSolidPath = true;
+ dp.m_renderContext = p.m_primaryRC;
m_drawer.reset(new Drawer(dp));
diff --git a/map/tiling_render_policy_st.cpp b/map/tiling_render_policy_st.cpp
index 97929cd4c2..f581de3be9 100644
--- a/map/tiling_render_policy_st.cpp
+++ b/map/tiling_render_policy_st.cpp
@@ -151,6 +151,8 @@ TilingRenderPolicyST::TilingRenderPolicyST(Params const & p)
dp.m_useGuiResources = true;
dp.m_isSynchronized = false;
dp.m_fastSolidPath = true;
+ dp.m_renderContext = p.m_primaryRC;
+
// p.m_isDebugging = true;
m_drawer.reset(new Drawer(dp));
diff --git a/qt_tstfrm/tstwidgets.cpp b/qt_tstfrm/tstwidgets.cpp
index dc114763c6..a761246138 100644
--- a/qt_tstfrm/tstwidgets.cpp
+++ b/qt_tstfrm/tstwidgets.cpp
@@ -42,6 +42,8 @@ void GLDrawWidget::initializeGL()
m_primaryContext = make_shared_ptr(new qt::gl::RenderContext(this));
+ m_primaryContext->startThreadDrawing();
+
graphics::ResourceManager::Params rmp;
rmp.m_rtFormat = graphics::Data8Bpp;
@@ -142,6 +144,7 @@ void GLDrawWidget::initializeGL()
params.m_resourceManager = m_resourceManager;
params.m_frameBuffer = m_frameBuffer;
params.m_threadSlot = m_resourceManager->guiThreadSlot();
+ params.m_renderContext = m_primaryContext;
m_p = make_shared_ptr(new graphics::Screen(params));