[core] Expose ColorMask in gl::Context::clear()

This commit is contained in:
Bruno de Oliveira Abinader
2017-10-31 15:19:10 +02:00
parent 388610d6aa
commit e350ef37fe
3 changed files with 10 additions and 7 deletions

View File

@@ -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

View File

@@ -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&);

View File

@@ -437,10 +437,7 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
MBGL_DEBUG_GROUP(parameters.context, "clear");
parameters.backend.bind();
parameters.context.clear((parameters.debugOptions & MapDebugOptions::Overdraw)
? Color::black()
: backgroundColor,
1.0f,
0);
? Color::black() : backgroundColor);
}
// - CLIPPING MASKS ----------------------------------------------------------------------------