summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/painter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/painter.cpp')
-rw-r--r--src/mbgl/renderer/painter.cpp24
1 files changed, 3 insertions, 21 deletions
diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp
index 8011dfd05f..a39a68415a 100644
--- a/src/mbgl/renderer/painter.cpp
+++ b/src/mbgl/renderer/painter.cpp
@@ -80,10 +80,6 @@ void Painter::setup() {
// Set clear values
config.clearColor = { 0.0f, 0.0f, 0.0f, 0.0f };
config.clearDepth = 1.0f;
- config.clearStencil = 0x0;
-
- // Stencil test
- MBGL_CHECK_ERROR(glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE));
// Depth test
glDepthFunc(GL_LEQUAL);
@@ -148,24 +144,16 @@ void Painter::changeMatrix() {
void Painter::clear() {
MBGL_DEBUG_GROUP("clear");
- config.stencilTest = true;
- config.stencilMask = 0xFF;
config.depthTest = false;
config.depthMask = GL_TRUE;
config.clearColor = { 0.0f, 0.0f, 0.0f, 0.0f };
- MBGL_CHECK_ERROR(glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
+ MBGL_CHECK_ERROR(glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT));
}
void Painter::setStrata(float value) {
strata = value;
}
-void Painter::prepareTile(const Tile& tile) {
- const GLint ref = (GLint)tile.clip.reference.to_ulong();
- const GLuint mask = (GLuint)tile.clip.mask.to_ulong();
- config.stencilFunc = { GL_EQUAL, ref, mask };
-}
-
void Painter::render(const Style& style, TransformState state_, const FrameData& frame_, const TimePoint& time) {
state = state_;
frame = frame_;
@@ -206,21 +194,17 @@ void Painter::render(const Style& style, TransformState state_, const FrameData&
}
- // - CLIPPING MASKS ----------------------------------------------------------------------------
- // Draws the clipping masks to the stencil buffer.
+ // - MATRIX UPDATES ----------------------------------------------------------------------------
+ // Updates all matrices for all tiles.
{
MBGL_DEBUG_GROUP("clip");
// Update all clipping IDs.
- ClipIDGenerator generator;
for (const auto& source : sources) {
- generator.update(source->getLoadedTiles());
source->updateMatrices(projMatrix, state);
}
clear();
-
- drawClippingMasks(sources);
}
frameHistory.record(time, state.getNormalizedZoom());
@@ -291,7 +275,6 @@ void Painter::renderPass(RenderPass pass_,
if (item.hasRenderPass(pass)) {
MBGL_DEBUG_GROUP(item.layer.id + " - " + std::string(item.tile->id));
setStrata(i * strataThickness);
- prepareTile(*item.tile);
item.bucket->render(*this, item.layer, item.tile->id, item.tile->matrix);
}
} else {
@@ -460,7 +443,6 @@ void Painter::renderBackground(const StyleLayer &layer_desc) {
backgroundArray.bind(*plainShader, backgroundBuffer, BUFFER_OFFSET(0));
}
- config.stencilTest = false;
config.depthTest = true;
config.depthRange = { strata + strata_epsilon, 1.0f };
MBGL_CHECK_ERROR(glDrawArrays(GL_TRIANGLE_STRIP, 0, 4));