diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-03-21 12:43:22 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-04-05 11:49:17 +0200 |
commit | 543b678982037595895a474f3a69348dc235e0fa (patch) | |
tree | 404902164dd27e409515de5fcf9a43fe81231686 /src/mbgl/gl | |
parent | 5270b2ffbd4fca75f93e7052bd928ebed3ea272a (diff) | |
download | qtlocation-mapboxgl-543b678982037595895a474f3a69348dc235e0fa.tar.gz |
[core] introduce CommandEncoder object
Diffstat (limited to 'src/mbgl/gl')
-rw-r--r-- | src/mbgl/gl/command_encoder.cpp | 12 | ||||
-rw-r--r-- | src/mbgl/gl/command_encoder.hpp | 22 | ||||
-rw-r--r-- | src/mbgl/gl/context.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/gl/context.hpp | 2 |
4 files changed, 41 insertions, 0 deletions
diff --git a/src/mbgl/gl/command_encoder.cpp b/src/mbgl/gl/command_encoder.cpp new file mode 100644 index 0000000000..82046202bc --- /dev/null +++ b/src/mbgl/gl/command_encoder.cpp @@ -0,0 +1,12 @@ +#include <mbgl/gl/command_encoder.hpp> +#include <mbgl/gl/context.hpp> + +namespace mbgl { +namespace gl { + +CommandEncoder::~CommandEncoder() { + context.performCleanup(); +} + +} // namespace gl +} // namespace mbgl diff --git a/src/mbgl/gl/command_encoder.hpp b/src/mbgl/gl/command_encoder.hpp new file mode 100644 index 0000000000..0cfe80f433 --- /dev/null +++ b/src/mbgl/gl/command_encoder.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include <mbgl/gfx/command_encoder.hpp> + +namespace mbgl { +namespace gl { + +class Context; + +class CommandEncoder : public gfx::CommandEncoder { +public: + explicit CommandEncoder(gl::Context& context_) : context(context_) { + } + + ~CommandEncoder() override; + +private: + gl::Context& context; +}; + +} // namespace gl +} // namespace mbgl diff --git a/src/mbgl/gl/context.cpp b/src/mbgl/gl/context.cpp index fcaae59804..97c1cd24d7 100644 --- a/src/mbgl/gl/context.cpp +++ b/src/mbgl/gl/context.cpp @@ -6,6 +6,7 @@ #include <mbgl/gl/renderbuffer_resource.hpp> #include <mbgl/gl/draw_scope_resource.hpp> #include <mbgl/gl/texture.hpp> +#include <mbgl/gl/command_encoder.hpp> #include <mbgl/gl/debugging.hpp> #include <mbgl/gl/debugging_extension.hpp> #include <mbgl/gl/vertex_array_extension.hpp> @@ -691,6 +692,10 @@ void Context::setColorMode(const gfx::ColorMode& color) { colorMask = color.mask; } +std::unique_ptr<gfx::CommandEncoder> Context::createCommandEncoder() { + return std::make_unique<gl::CommandEncoder>(*this); +} + void Context::draw(const gfx::DrawMode& drawMode, std::size_t indexOffset, std::size_t indexLength) { diff --git a/src/mbgl/gl/context.hpp b/src/mbgl/gl/context.hpp index 74ea2c076e..d09bf7522e 100644 --- a/src/mbgl/gl/context.hpp +++ b/src/mbgl/gl/context.hpp @@ -214,6 +214,8 @@ private: VertexArray createVertexArray(); bool supportsVertexArrays() const; + std::unique_ptr<gfx::CommandEncoder> createCommandEncoder() override; + friend detail::ProgramDeleter; friend detail::ShaderDeleter; friend detail::BufferDeleter; |