summaryrefslogtreecommitdiff
path: root/src/mbgl/gfx
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/gfx')
-rw-r--r--src/mbgl/gfx/context.hpp14
-rw-r--r--src/mbgl/gfx/context_impl.hpp23
-rw-r--r--src/mbgl/gfx/types.hpp4
3 files changed, 6 insertions, 35 deletions
diff --git a/src/mbgl/gfx/context.hpp b/src/mbgl/gfx/context.hpp
index 118df30a26..53cd318642 100644
--- a/src/mbgl/gfx/context.hpp
+++ b/src/mbgl/gfx/context.hpp
@@ -1,5 +1,6 @@
#pragma once
+#include <mbgl/gfx/backend.hpp>
#include <mbgl/gfx/renderbuffer.hpp>
#include <mbgl/gfx/command_encoder.hpp>
#include <mbgl/gfx/draw_scope.hpp>
@@ -17,12 +18,11 @@ class OffscreenTexture;
class Context {
protected:
- Context(ContextType type_, uint32_t maximumVertexBindingCount_)
- : backend(type_), maximumVertexBindingCount(maximumVertexBindingCount_) {
+ Context(uint32_t maximumVertexBindingCount_)
+ : maximumVertexBindingCount(maximumVertexBindingCount_) {
}
public:
- const ContextType backend;
static constexpr const uint32_t minimumRequiredVertexBindingCount = 8;
const uint32_t maximumVertexBindingCount;
bool supportsHalfFloatTextures = false;
@@ -80,11 +80,9 @@ protected:
public:
template <typename Name>
- std::unique_ptr<Program<Name>> createProgram(const ProgramParameters&);
-
-private:
- template <typename Backend, typename Name>
- std::unique_ptr<Program<Name>> createProgram(const ProgramParameters&);
+ std::unique_ptr<Program<Name>> createProgram(const ProgramParameters& programParameters) {
+ return Backend::Create<Program<Name>, const ProgramParameters&>(programParameters);
+ }
public:
virtual std::unique_ptr<CommandEncoder> createCommandEncoder() = 0;
diff --git a/src/mbgl/gfx/context_impl.hpp b/src/mbgl/gfx/context_impl.hpp
deleted file mode 100644
index 0145535bb3..0000000000
--- a/src/mbgl/gfx/context_impl.hpp
+++ /dev/null
@@ -1,23 +0,0 @@
-#pragma once
-
-#include <mbgl/gfx/context.hpp>
-
-namespace mbgl {
-
-namespace gl {
-class Context;
-} // namespace gl
-
-namespace gfx {
-
-template <typename Name>
-std::unique_ptr<Program<Name>> Context::createProgram(const ProgramParameters& programParameters) {
- if (backend == ContextType::OpenGL) {
- return createProgram<gl::Context, Name>(programParameters);
- }
- assert(false);
- return nullptr;
-}
-
-} // namespace gfx
-} // namespace mbgl
diff --git a/src/mbgl/gfx/types.hpp b/src/mbgl/gfx/types.hpp
index 24209c5cc5..cafb2f3f84 100644
--- a/src/mbgl/gfx/types.hpp
+++ b/src/mbgl/gfx/types.hpp
@@ -5,10 +5,6 @@
namespace mbgl {
namespace gfx {
-enum class ContextType : uint8_t {
- OpenGL,
-};
-
enum class PrimitiveType : uint8_t {
Point,
Line,