summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/renderer_impl.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-03-21 12:43:22 +0100
committerKonstantin Käfer <mail@kkaefer.com>2019-04-05 11:49:17 +0200
commit543b678982037595895a474f3a69348dc235e0fa (patch)
tree404902164dd27e409515de5fcf9a43fe81231686 /src/mbgl/renderer/renderer_impl.cpp
parent5270b2ffbd4fca75f93e7052bd928ebed3ea272a (diff)
downloadqtlocation-mapboxgl-543b678982037595895a474f3a69348dc235e0fa.tar.gz
[core] introduce CommandEncoder object
Diffstat (limited to 'src/mbgl/renderer/renderer_impl.cpp')
-rw-r--r--src/mbgl/renderer/renderer_impl.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/mbgl/renderer/renderer_impl.cpp b/src/mbgl/renderer/renderer_impl.cpp
index f5d72712b6..c58f4a091d 100644
--- a/src/mbgl/renderer/renderer_impl.cpp
+++ b/src/mbgl/renderer/renderer_impl.cpp
@@ -310,13 +310,6 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
backend.updateAssumedState();
- // TODO: remove cast
- gl::Context& glContext = static_cast<gl::Context&>(parameters.context);
-
- if (parameters.contextMode == GLContextMode::Shared) {
- glContext.setDirtyState();
- }
-
// Set render tiles to the render items.
for (auto& renderItem : renderItems) {
if (!renderItem.source) {
@@ -372,6 +365,15 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
}
}
+ const auto encoder = parameters.context.createCommandEncoder();
+
+ // TODO: remove cast
+ gl::Context& glContext = static_cast<gl::Context&>(parameters.context);
+
+ if (parameters.contextMode == GLContextMode::Shared) {
+ glContext.setDirtyState();
+ }
+
// - UPLOAD PASS -------------------------------------------------------------------------------
// Uploads all required buffers and images before we do any actual rendering.
{
@@ -595,8 +597,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
observer->onDidFinishRenderingMap();
}
- // Cleanup only after signaling completion
- parameters.context.performCleanup();
+ // CommandEncoder destructor submits render commands.
}
void Renderer::Impl::flush() {