only change pass parameters if we actually need to
This commit is contained in:
@@ -548,7 +548,6 @@ void Map::renderLayers(const std::vector<LayerDescription>& layers) {
|
||||
painter.setStrata(i * strata_thickness);
|
||||
renderLayer(*it, Opaque);
|
||||
}
|
||||
// painter.endPass();
|
||||
if (debug::renderTree) {
|
||||
std::cout << std::string(--indent * 4, ' ') << "}" << std::endl;
|
||||
}
|
||||
@@ -566,7 +565,6 @@ void Map::renderLayers(const std::vector<LayerDescription>& layers) {
|
||||
painter.setStrata(i * strata_thickness);
|
||||
renderLayer(*it, Translucent);
|
||||
}
|
||||
// painter.endPass();
|
||||
if (debug::renderTree) {
|
||||
std::cout << std::string(--indent * 4, ' ') << "}" << std::endl;
|
||||
}
|
||||
|
||||
@@ -144,15 +144,19 @@ void Painter::clear() {
|
||||
}
|
||||
|
||||
void Painter::setOpaque() {
|
||||
pass = Opaque;
|
||||
glDisable(GL_BLEND);
|
||||
depthMask(true);
|
||||
if (pass != Opaque) {
|
||||
pass = Opaque;
|
||||
glDisable(GL_BLEND);
|
||||
depthMask(true);
|
||||
}
|
||||
}
|
||||
|
||||
void Painter::setTranslucent() {
|
||||
pass = Translucent;
|
||||
glEnable(GL_BLEND);
|
||||
depthMask(false);
|
||||
if (pass != Translucent) {
|
||||
pass = Translucent;
|
||||
glEnable(GL_BLEND);
|
||||
depthMask(false);
|
||||
}
|
||||
}
|
||||
|
||||
void Painter::setStrata(float value) {
|
||||
|
||||
@@ -180,10 +180,10 @@ void Painter::renderFill(FillBucket& bucket, const std::string& layer_name, cons
|
||||
return vtxMatrix;
|
||||
}();
|
||||
|
||||
pass = Opaque;
|
||||
setOpaque();
|
||||
renderFill(bucket, modifiedProperties, id, vtxMatrix);
|
||||
|
||||
pass = Translucent;
|
||||
setTranslucent();
|
||||
renderFill(bucket, modifiedProperties, id, vtxMatrix);
|
||||
|
||||
|
||||
|
||||
@@ -27,8 +27,6 @@ void Painter::renderPrerenderedTexture(Bucket &bucket, const GenericProperties &
|
||||
const int buffer = 4096 * properties.prerenderBuffer;
|
||||
|
||||
// draw the texture on a quad
|
||||
depthMask(false);
|
||||
|
||||
useProgram(rasterShader->program);
|
||||
rasterShader->setMatrix(matrix);
|
||||
rasterShader->setOpacity(1);
|
||||
@@ -42,6 +40,4 @@ void Painter::renderPrerenderedTexture(Bucket &bucket, const GenericProperties &
|
||||
bucket.prerendered->bindTexture();
|
||||
coveringRasterArray.bind(*rasterShader, tileStencilBuffer, BUFFER_OFFSET(0));
|
||||
glDrawArrays(GL_TRIANGLES, 0, (GLsizei)tileStencilBuffer.index());
|
||||
|
||||
depthMask(true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user