summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Mönicke <thomas.moenicke@mapbox.com>2020-01-31 16:01:11 +0200
committerThomas Mönicke <thomas.moenicke@mapbox.com>2020-02-03 16:07:44 +0200
commit7e59c4207ddc205f0be2d69365784f2bb74aaf95 (patch)
tree22290865254b1f372702fdb420b809d5e8f4eb09
parent0b727108c8517be7fc2d03d5843aefd94cb789be (diff)
downloadqtlocation-mapboxgl-7e59c4207ddc205f0be2d69365784f2bb74aaf95.tar.gz
[build] Adding a build flag to build without GL if needed
-rw-r--r--CMakeLists.txt2
-rw-r--r--cmake/mbgl.cmake4
-rw-r--r--include/mbgl/platform/gl_functions.hpp6
-rw-r--r--next/CMakeLists.txt169
-rw-r--r--next/test/CMakeLists.txt7
-rw-r--r--src/mbgl/platform/gl_functions.cpp6
-rw-r--r--src/mbgl/renderer/layers/render_custom_layer.cpp47
7 files changed, 143 insertions, 98 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2547cfd5ca..9244a5e501 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -163,6 +163,8 @@ endif()
include(platform/${MBGL_PLATFORM}/config.cmake)
+add_definitions(-DMBGL_RENDER_BACKEND_OPENGL=1)
+
if(WITH_EGL)
add_definitions(-DMBGL_WITH_EGL=1)
endif()
diff --git a/cmake/mbgl.cmake b/cmake/mbgl.cmake
index 1b4338a0bb..279ead6eb2 100644
--- a/cmake/mbgl.cmake
+++ b/cmake/mbgl.cmake
@@ -6,6 +6,10 @@ if (NOT MBGL_PLATFORM)
endif()
endif()
+if(MBGL_WITH_OPENGL)
+ add_definitions(-DMBGL_RENDER_BACKEND_OPENGL=1)
+endif()
+
if(WITH_NODEJS)
find_program(NodeJS_EXECUTABLE NAMES nodejs node)
if (NOT NodeJS_EXECUTABLE)
diff --git a/include/mbgl/platform/gl_functions.hpp b/include/mbgl/platform/gl_functions.hpp
index fab3e3aa36..5e6b080f49 100644
--- a/include/mbgl/platform/gl_functions.hpp
+++ b/include/mbgl/platform/gl_functions.hpp
@@ -14,6 +14,8 @@
namespace mbgl {
namespace platform {
+#ifdef MBGL_RENDER_BACKEND_OPENGL
+
using GLbitfield = unsigned int;
using GLboolean = unsigned char;
using GLchar = char;
@@ -328,10 +330,12 @@ extern void (* const glPointSize)(GLfloat);
extern void (* const glRasterPos4d)(GLdouble, GLdouble, GLdouble, GLdouble);
#endif
+#endif // MBGL_RENDER_BACKEND_OPENGL
+
#ifndef NDEBUG
/// Check for GL errors and print on the console.
void glCheckError(const char *cmd, const char *file, int line);
#endif
} // namespace platform
-} // namespace mbgl \ No newline at end of file
+} // namespace mbgl
diff --git a/next/CMakeLists.txt b/next/CMakeLists.txt
index 95b330992b..9b57650d22 100644
--- a/next/CMakeLists.txt
+++ b/next/CMakeLists.txt
@@ -23,6 +23,7 @@ option(MBGL_WITH_COVERAGE "Enable code coverage collection" OFF)
option(MBGL_WITH_QT "Build Mapbox GL Qt bindings" OFF)
option(MBGL_WITH_SANITIZER "Use [address|thread|undefined] here" OFF)
option(MBGL_WITH_RTTI "Compile with runtime type information" OFF)
+option(MBGL_WITH_OPENGL "Build with OpenGL renderer" ON)
add_library(
mbgl-compiler-options INTERFACE
@@ -93,13 +94,10 @@ add_library(
${MBGL_ROOT}/include/mbgl/actor/message.hpp
${MBGL_ROOT}/include/mbgl/actor/scheduler.hpp
${MBGL_ROOT}/include/mbgl/annotation/annotation.hpp
- ${MBGL_ROOT}/include/mbgl/gfx/backend.hpp
${MBGL_ROOT}/include/mbgl/gfx/backend_scope.hpp
${MBGL_ROOT}/include/mbgl/gfx/renderable.hpp
${MBGL_ROOT}/include/mbgl/gfx/renderer_backend.hpp
${MBGL_ROOT}/include/mbgl/gfx/rendering_stats.hpp
- ${MBGL_ROOT}/include/mbgl/gl/renderable_resource.hpp
- ${MBGL_ROOT}/include/mbgl/gl/renderer_backend.hpp
${MBGL_ROOT}/include/mbgl/layermanager/background_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/circle_layer_factory.hpp
${MBGL_ROOT}/include/mbgl/layermanager/custom_layer_factory.hpp
@@ -124,7 +122,6 @@ add_library(
${MBGL_ROOT}/include/mbgl/math/log2.hpp
${MBGL_ROOT}/include/mbgl/math/minmax.hpp
${MBGL_ROOT}/include/mbgl/math/wrap.hpp
- ${MBGL_ROOT}/include/mbgl/platform/gl_functions.hpp
${MBGL_ROOT}/include/mbgl/platform/thread.hpp
${MBGL_ROOT}/include/mbgl/renderer/query.hpp
${MBGL_ROOT}/include/mbgl/renderer/renderer.hpp
@@ -324,48 +321,6 @@ add_library(
${MBGL_ROOT}/src/mbgl/gfx/upload_pass.hpp
${MBGL_ROOT}/src/mbgl/gfx/vertex_buffer.hpp
${MBGL_ROOT}/src/mbgl/gfx/vertex_vector.hpp
- ${MBGL_ROOT}/src/mbgl/gl/attribute.cpp
- ${MBGL_ROOT}/src/mbgl/gl/attribute.hpp
- ${MBGL_ROOT}/src/mbgl/gl/command_encoder.cpp
- ${MBGL_ROOT}/src/mbgl/gl/command_encoder.hpp
- ${MBGL_ROOT}/src/mbgl/gl/context.cpp
- ${MBGL_ROOT}/src/mbgl/gl/context.hpp
- ${MBGL_ROOT}/src/mbgl/gl/debugging_extension.cpp
- ${MBGL_ROOT}/src/mbgl/gl/debugging_extension.hpp
- ${MBGL_ROOT}/src/mbgl/gl/defines.hpp
- ${MBGL_ROOT}/src/mbgl/gl/draw_scope_resource.hpp
- ${MBGL_ROOT}/src/mbgl/gl/enum.cpp
- ${MBGL_ROOT}/src/mbgl/gl/enum.hpp
- ${MBGL_ROOT}/src/mbgl/gl/extension.hpp
- ${MBGL_ROOT}/src/mbgl/gl/framebuffer.hpp
- ${MBGL_ROOT}/src/mbgl/gl/index_buffer_resource.cpp
- ${MBGL_ROOT}/src/mbgl/gl/index_buffer_resource.hpp
- ${MBGL_ROOT}/src/mbgl/gl/object.cpp
- ${MBGL_ROOT}/src/mbgl/gl/object.hpp
- ${MBGL_ROOT}/src/mbgl/gl/offscreen_texture.cpp
- ${MBGL_ROOT}/src/mbgl/gl/offscreen_texture.hpp
- ${MBGL_ROOT}/src/mbgl/gl/program.hpp
- ${MBGL_ROOT}/src/mbgl/gl/render_pass.cpp
- ${MBGL_ROOT}/src/mbgl/gl/render_pass.hpp
- ${MBGL_ROOT}/src/mbgl/gl/renderbuffer_resource.hpp
- ${MBGL_ROOT}/src/mbgl/gl/renderer_backend.cpp
- ${MBGL_ROOT}/src/mbgl/gl/state.hpp
- ${MBGL_ROOT}/src/mbgl/gl/texture.cpp
- ${MBGL_ROOT}/src/mbgl/gl/texture.hpp
- ${MBGL_ROOT}/src/mbgl/gl/texture_resource.cpp
- ${MBGL_ROOT}/src/mbgl/gl/texture_resource.hpp
- ${MBGL_ROOT}/src/mbgl/gl/types.hpp
- ${MBGL_ROOT}/src/mbgl/gl/uniform.cpp
- ${MBGL_ROOT}/src/mbgl/gl/uniform.hpp
- ${MBGL_ROOT}/src/mbgl/gl/upload_pass.cpp
- ${MBGL_ROOT}/src/mbgl/gl/upload_pass.hpp
- ${MBGL_ROOT}/src/mbgl/gl/value.cpp
- ${MBGL_ROOT}/src/mbgl/gl/value.hpp
- ${MBGL_ROOT}/src/mbgl/gl/vertex_array.cpp
- ${MBGL_ROOT}/src/mbgl/gl/vertex_array.hpp
- ${MBGL_ROOT}/src/mbgl/gl/vertex_array_extension.hpp
- ${MBGL_ROOT}/src/mbgl/gl/vertex_buffer_resource.cpp
- ${MBGL_ROOT}/src/mbgl/gl/vertex_buffer_resource.hpp
${MBGL_ROOT}/src/mbgl/layermanager/background_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/circle_layer_factory.cpp
${MBGL_ROOT}/src/mbgl/layermanager/custom_layer_factory.cpp
@@ -401,7 +356,6 @@ add_library(
${MBGL_ROOT}/src/mbgl/map/transform_state.hpp
${MBGL_ROOT}/src/mbgl/map/zoom_history.hpp
${MBGL_ROOT}/src/mbgl/math/log2.cpp
- ${MBGL_ROOT}/src/mbgl/platform/gl_functions.cpp
${MBGL_ROOT}/src/mbgl/programs/attributes.hpp
${MBGL_ROOT}/src/mbgl/programs/background_pattern_program.hpp
${MBGL_ROOT}/src/mbgl/programs/background_program.cpp
@@ -423,37 +377,6 @@ add_library(
${MBGL_ROOT}/src/mbgl/programs/fill_pattern_program.hpp
${MBGL_ROOT}/src/mbgl/programs/fill_program.cpp
${MBGL_ROOT}/src/mbgl/programs/fill_program.hpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/background.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/background_pattern.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/circle.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/clipping_mask.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/collision_box.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/collision_circle.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/debug.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/fill.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/fill_extrusion.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/fill_extrusion_pattern.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/fill_outline.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/fill_outline_pattern.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/fill_pattern.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/heatmap.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/heatmap_texture.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/hillshade.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/hillshade_prepare.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/line.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/line_gradient.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/line_pattern.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/line_sdf.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/preludes.hpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/raster.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/shader_source.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/shader_source.hpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/shaders.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/shaders.hpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/symbol_icon.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/symbol_sdf_icon.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/symbol_sdf_text.cpp
- ${MBGL_ROOT}/src/mbgl/programs/gl/symbol_text_and_icon.cpp
${MBGL_ROOT}/src/mbgl/programs/heatmap_program.cpp
${MBGL_ROOT}/src/mbgl/programs/heatmap_program.hpp
${MBGL_ROOT}/src/mbgl/programs/heatmap_texture_program.cpp
@@ -883,8 +806,98 @@ add_library(
${MBGL_ROOT}/src/mbgl/util/work_request.cpp
${MBGL_ROOT}/src/parsedate/parsedate.cpp
${MBGL_ROOT}/src/parsedate/parsedate.hpp
+ ${MBGL_ROOT}/src/mbgl/platform/gl_functions.cpp
+ ${MBGL_ROOT}/include/mbgl/platform/gl_functions.hpp
)
+if(MBGL_WITH_OPENGL)
+ message("-- Configuring GL-Native with OpenGL renderer backend")
+ target_compile_definitions(
+ mbgl-core
+ PRIVATE MBGL_RENDER_BACKEND_OPENGL=1
+ )
+ target_sources(
+ mbgl-core
+ PRIVATE
+ ${MBGL_ROOT}/include/mbgl/gfx/backend.hpp
+ ${MBGL_ROOT}/include/mbgl/gl/renderable_resource.hpp
+ ${MBGL_ROOT}/include/mbgl/gl/renderer_backend.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/attribute.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/attribute.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/command_encoder.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/command_encoder.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/context.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/context.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/debugging_extension.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/debugging_extension.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/defines.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/draw_scope_resource.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/enum.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/enum.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/extension.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/framebuffer.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/index_buffer_resource.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/index_buffer_resource.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/object.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/object.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/offscreen_texture.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/offscreen_texture.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/program.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/render_pass.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/render_pass.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/renderbuffer_resource.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/renderer_backend.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/state.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/texture.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/texture.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/texture_resource.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/texture_resource.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/types.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/uniform.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/uniform.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/upload_pass.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/upload_pass.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/value.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/value.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/vertex_array.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/vertex_array.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/vertex_array_extension.hpp
+ ${MBGL_ROOT}/src/mbgl/gl/vertex_buffer_resource.cpp
+ ${MBGL_ROOT}/src/mbgl/gl/vertex_buffer_resource.hpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/background.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/background_pattern.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/circle.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/clipping_mask.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/collision_box.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/collision_circle.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/debug.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/fill.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/fill_extrusion.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/fill_extrusion_pattern.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/fill_outline.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/fill_outline_pattern.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/fill_pattern.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/heatmap.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/heatmap_texture.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/hillshade.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/hillshade_prepare.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/line.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/line_gradient.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/line_pattern.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/line_sdf.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/preludes.hpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/raster.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/shader_source.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/shader_source.hpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/shaders.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/shaders.hpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/symbol_icon.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/symbol_sdf_icon.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/symbol_sdf_text.cpp
+ ${MBGL_ROOT}/src/mbgl/programs/gl/symbol_text_and_icon.cpp
+ )
+endif()
+
if(EXISTS ${MBGL_ROOT}/.git/HEAD)
execute_process(
COMMAND
diff --git a/next/test/CMakeLists.txt b/next/test/CMakeLists.txt
index dc6ea3987c..ce980f78d1 100644
--- a/next/test/CMakeLists.txt
+++ b/next/test/CMakeLists.txt
@@ -110,6 +110,13 @@ add_library(
${MBGL_ROOT}/test/util/url.test.cpp
)
+if(MBGL_WITH_OPENGL)
+ target_compile_definitions(
+ mbgl-test
+ PRIVATE MBGL_RENDER_BACKEND_OPENGL=1
+ )
+endif()
+
if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL Android)
message("Target platform does not support HTTP tests or dependencies not found.")
diff --git a/src/mbgl/platform/gl_functions.cpp b/src/mbgl/platform/gl_functions.cpp
index 6eb7790ca2..1f6e8da593 100644
--- a/src/mbgl/platform/gl_functions.cpp
+++ b/src/mbgl/platform/gl_functions.cpp
@@ -7,9 +7,15 @@ namespace platform {
#ifndef NDEBUG
void glCheckError(const char* cmd, const char* file, int line) {
+#ifdef MBGL_RENDER_BACKEND_OPENGL
if (GLenum err = glGetError()) {
Log::Warning(Event::OpenGL, "Error %d: %s - %s:%d", err, cmd, file, line);
}
+#else
+ (void)cmd;
+ (void)file;
+ (void)line;
+#endif
}
#endif
diff --git a/src/mbgl/renderer/layers/render_custom_layer.cpp b/src/mbgl/renderer/layers/render_custom_layer.cpp
index c53286a2a0..b891869353 100644
--- a/src/mbgl/renderer/layers/render_custom_layer.cpp
+++ b/src/mbgl/renderer/layers/render_custom_layer.cpp
@@ -1,13 +1,15 @@
-#include <mbgl/renderer/layers/render_custom_layer.hpp>
-#include <mbgl/renderer/paint_parameters.hpp>
-#include <mbgl/gfx/renderer_backend.hpp>
#include <mbgl/gfx/backend_scope.hpp>
-#include <mbgl/renderer/bucket.hpp>
+#include <mbgl/gfx/renderer_backend.hpp>
+#include <mbgl/map/transform_state.hpp>
#include <mbgl/platform/gl_functions.hpp>
+#include <mbgl/renderer/bucket.hpp>
+#include <mbgl/renderer/layers/render_custom_layer.hpp>
+#include <mbgl/renderer/paint_parameters.hpp>
#include <mbgl/style/layers/custom_layer_impl.hpp>
-#include <mbgl/map/transform_state.hpp>
+#ifdef MBGL_RENDER_BACKEND_OPENGL
#include <mbgl/gl/context.hpp>
#include <mbgl/gl/renderable_resource.hpp>
+#endif
#include <mbgl/util/mat4.hpp>
namespace mbgl {
@@ -68,17 +70,19 @@ void RenderCustomLayer::render(PaintParameters& paintParameters) {
MBGL_CHECK_ERROR(host->initialize());
}
+ const TransformState& state = paintParameters.state;
+#ifdef MBGL_RENDER_BACKEND_OPENGL
// TODO: remove cast
auto& glContext = static_cast<gl::Context&>(paintParameters.context);
- const TransformState& state = paintParameters.state;
-
- // Reset GL state to a known state so the CustomLayer always has a clean slate.
- glContext.bindVertexArray = 0;
- glContext.setDepthMode(paintParameters.depthModeForSublayer(0, gfx::DepthMaskType::ReadOnly));
- glContext.setStencilMode(gfx::StencilMode::disabled());
- glContext.setColorMode(paintParameters.colorModeForRenderPass());
- glContext.setCullFaceMode(gfx::CullFaceMode::disabled());
-
+ if (gfx::Backend::GetType() == gfx::Backend::Type::OpenGL) {
+ // Reset GL state to a known state so the CustomLayer always has a clean slate.
+ glContext.bindVertexArray = 0;
+ glContext.setDepthMode(paintParameters.depthModeForSublayer(0, gfx::DepthMaskType::ReadOnly));
+ glContext.setStencilMode(gfx::StencilMode::disabled());
+ glContext.setColorMode(paintParameters.colorModeForRenderPass());
+ glContext.setCullFaceMode(gfx::CullFaceMode::disabled());
+ }
+#endif
CustomLayerRenderParameters parameters;
parameters.width = state.getSize().width;
@@ -94,11 +98,16 @@ void RenderCustomLayer::render(PaintParameters& paintParameters) {
parameters.projectionMatrix = projMatrix;
MBGL_CHECK_ERROR(host->render(parameters));
-
- // Reset the view back to our original one, just in case the CustomLayer changed
- // the viewport or Framebuffer.
- paintParameters.backend.getDefaultRenderable().getResource<gl::RenderableResource>().bind();
- glContext.setDirtyState();
+#ifdef MBGL_RENDER_BACKEND_OPENGL
+ if (gfx::Backend::GetType() == gfx::Backend::Type::OpenGL) {
+ // Reset the view back to our original one, just in case the CustomLayer changed
+ // the viewport or Framebuffer.
+ paintParameters.backend.getDefaultRenderable().getResource<gl::RenderableResource>().bind();
+ glContext.setDirtyState();
+ }
+#else
+ (void)&paintParameters;
+#endif
}
} // namespace mbgl