summaryrefslogtreecommitdiff
path: root/src/mbgl/gl
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/gl')
-rw-r--r--src/mbgl/gl/context.cpp9
-rw-r--r--src/mbgl/gl/context.hpp3
2 files changed, 9 insertions, 3 deletions
diff --git a/src/mbgl/gl/context.cpp b/src/mbgl/gl/context.cpp
index 22b446e6d0..e04f134f39 100644
--- a/src/mbgl/gl/context.cpp
+++ b/src/mbgl/gl/context.cpp
@@ -590,13 +590,14 @@ void Context::setDirtyState() {
void Context::clear(optional<mbgl::Color> color,
optional<float> depth,
- optional<int32_t> stencil) {
+ optional<int32_t> stencil,
+ optional<ColorMode::Mask> colorMask_) {
GLbitfield mask = 0;
if (color) {
mask |= GL_COLOR_BUFFER_BIT;
clearColor = *color;
- colorMask = { true, true, true, true };
+ colorMask = colorMask_ ? *colorMask_ : value::ColorMask::Default;
}
if (depth) {
@@ -612,6 +613,10 @@ void Context::clear(optional<mbgl::Color> color,
}
MBGL_CHECK_ERROR(glClear(mask));
+
+ if (colorMask_) {
+ colorMask = value::ColorMask::Default;
+ }
}
#if not MBGL_USE_GLES2
diff --git a/src/mbgl/gl/context.hpp b/src/mbgl/gl/context.hpp
index 528113cbba..2d650e7ecb 100644
--- a/src/mbgl/gl/context.hpp
+++ b/src/mbgl/gl/context.hpp
@@ -146,7 +146,8 @@ public:
void clear(optional<mbgl::Color> color,
optional<float> depth,
- optional<int32_t> stencil);
+ optional<int32_t> stencil,
+ optional<ColorMode::Mask> colorMask = value::ColorMask::Default);
void setDrawMode(const Points&);
void setDrawMode(const Lines&);