diff --git a/drape_frontend/backend_renderer.cpp b/drape_frontend/backend_renderer.cpp index 8ee5499542..a89ed863e6 100644 --- a/drape_frontend/backend_renderer.cpp +++ b/drape_frontend/backend_renderer.cpp @@ -8,13 +8,14 @@ namespace df { - BackendRenderer::BackendRenderer(RefPointer commutator, - double visualScale, - int surfaceWidth, - int surfaceHeight) + BackendRenderer::BackendRenderer(RefPointer commutator + ,RefPointer oglcontextfactory + ,double visualScale + ,int surfaceWidth + ,int surfaceHeight) : m_commutator(commutator) { - m_impl.Reset(new BackendRendererImpl(m_commutator, visualScale, surfaceWidth, surfaceHeight)); + m_impl.Reset(new BackendRendererImpl(m_commutator, oglcontextfactory, visualScale, surfaceWidth, surfaceHeight)); } BackendRenderer::~BackendRenderer() diff --git a/drape_frontend/backend_renderer.hpp b/drape_frontend/backend_renderer.hpp index 691f8bcb92..de1f3d6227 100644 --- a/drape_frontend/backend_renderer.hpp +++ b/drape_frontend/backend_renderer.hpp @@ -1,6 +1,7 @@ #pragma once #include "../drape/pointers.hpp" +#include "../drape/oglcontextfactory.hpp" #include "../geometry/screenbase.hpp" @@ -15,10 +16,11 @@ namespace df class BackendRenderer { public: - BackendRenderer(RefPointer commutator, - double visualScale, - int surfaceWidth, - int surfaceHeight); + BackendRenderer(RefPointer commutator + ,RefPointer oglcontextfactory + ,double visualScale + ,int surfaceWidth + ,int surfaceHeight); ~BackendRenderer(); diff --git a/drape_frontend/impl/backend_renderer_impl.cpp b/drape_frontend/impl/backend_renderer_impl.cpp index 4ce59ac8cb..6f1f6d222a 100644 --- a/drape_frontend/impl/backend_renderer_impl.cpp +++ b/drape_frontend/impl/backend_renderer_impl.cpp @@ -1,7 +1,6 @@ #include "backend_renderer_impl.hpp" #include "threads_commutator.hpp" -#include "render_thread.hpp" #include "tile_info.hpp" #include "memory_feature_index.hpp" #include "read_mwm_task.hpp" @@ -43,12 +42,14 @@ namespace namespace df { - BackendRendererImpl::BackendRendererImpl(RefPointer commutator, - double visualScale, - int surfaceWidth, - int surfaceHeight) + BackendRendererImpl::BackendRendererImpl(RefPointer commutator + ,RefPointer oglcontextfactory + ,double visualScale + ,int surfaceWidth + ,int surfaceHeight) : m_engineContext(commutator) , m_commutator(commutator) + , m_contextFactory(oglcontextfactory) { m_scaleProcessor.SetParams(visualScale, ScalesProcessor::CalculateTileSize(surfaceWidth, surfaceHeight)); @@ -208,7 +209,7 @@ namespace df void BackendRendererImpl::ThreadMain() { - InitRenderThread(); + m_contextFactory->getResourcesUploadContext()->makeCurrent(); while (!IsCancelled()) ProcessSingleMessage(true); diff --git a/drape_frontend/impl/backend_renderer_impl.hpp b/drape_frontend/impl/backend_renderer_impl.hpp index 2989c88b7c..341c109e77 100644 --- a/drape_frontend/impl/backend_renderer_impl.hpp +++ b/drape_frontend/impl/backend_renderer_impl.hpp @@ -6,6 +6,7 @@ #include "batchers_pool.hpp" #include "../drape/pointers.hpp" +#include "../drape/oglcontextfactory.hpp" #include "../map/scales_processor.hpp" #include "../map/tiler.hpp" @@ -27,10 +28,12 @@ namespace df public threads::IRoutine { public: - BackendRendererImpl(RefPointer commutator, - double visualScale, - int surfaceWidth, - int surfaceHeight); + BackendRendererImpl(RefPointer commutator + ,RefPointer oglcontextfactory + ,double visualScale + ,int surfaceWidth + ,int surfaceHeight); + ~BackendRendererImpl(); private: @@ -86,5 +89,6 @@ namespace df threads::Thread m_selfThread; MasterPointer m_threadPool; RefPointer m_commutator; + RefPointer m_contextFactory; }; }