[core] Expose ColorMask in gl::Context::clear()
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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&);
|
||||
|
||||
@@ -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 ----------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user