diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mbgl/gfx/command_encoder.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/gl/command_encoder.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/gl/command_encoder.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/renderer/renderer_impl.cpp | 4 |
4 files changed, 12 insertions, 0 deletions
diff --git a/src/mbgl/gfx/command_encoder.hpp b/src/mbgl/gfx/command_encoder.hpp index 145c2bef82..46ae551982 100644 --- a/src/mbgl/gfx/command_encoder.hpp +++ b/src/mbgl/gfx/command_encoder.hpp @@ -9,6 +9,7 @@ namespace gfx { class RenderPassDescriptor; class RenderPass; +class Renderable; class CommandEncoder { protected: @@ -28,6 +29,7 @@ public: } virtual std::unique_ptr<RenderPass> createRenderPass(const char* name, const RenderPassDescriptor&) = 0; + virtual void present(Renderable&) = 0; }; } // namespace gfx diff --git a/src/mbgl/gl/command_encoder.cpp b/src/mbgl/gl/command_encoder.cpp index 26d1008789..37c4479734 100644 --- a/src/mbgl/gl/command_encoder.cpp +++ b/src/mbgl/gl/command_encoder.cpp @@ -1,6 +1,7 @@ #include <mbgl/gl/command_encoder.hpp> #include <mbgl/gl/render_pass.hpp> #include <mbgl/gl/context.hpp> +#include <mbgl/gl/renderable_resource.hpp> #include <mbgl/gl/debugging_extension.hpp> #include <mbgl/platform/gl_functions.hpp> @@ -19,6 +20,10 @@ CommandEncoder::createRenderPass(const char* name, const gfx::RenderPassDescript return std::make_unique<gl::RenderPass>(*this, name, descriptor); } +void CommandEncoder::present(gfx::Renderable& renderable) { + renderable.getResource<gl::RenderableResource>().swap(); +} + void CommandEncoder::pushDebugGroup(const char* name) { (void)name; #ifndef NDEBUG diff --git a/src/mbgl/gl/command_encoder.hpp b/src/mbgl/gl/command_encoder.hpp index 8074000034..31d67d13a6 100644 --- a/src/mbgl/gl/command_encoder.hpp +++ b/src/mbgl/gl/command_encoder.hpp @@ -18,6 +18,7 @@ public: friend class RenderPass; std::unique_ptr<gfx::RenderPass> createRenderPass(const char* name, const gfx::RenderPassDescriptor&) override; + void present(gfx::Renderable&) override; private: void pushDebugGroup(const char* name) override; diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp index b14a255024..52a2342454 100644 --- a/src/mbgl/renderer/renderer_impl.cpp +++ b/src/mbgl/renderer/renderer_impl.cpp @@ -493,6 +493,10 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) { observer->onDidFinishRenderingMap(); } + if (updateParameters.mode == MapMode::Continuous) { + parameters.encoder->present(parameters.backend.getDefaultRenderable()); + } + // CommandEncoder destructor submits render commands. } |