don't respect opacity when prerendering tile; we do opacity at composite-time
This commit is contained in:
@@ -174,6 +174,12 @@ void Painter::renderFill(FillBucket& bucket, const std::string& layer_name, cons
|
||||
glViewport(0, 0, properties.prerenderSize, properties.prerenderSize);
|
||||
|
||||
|
||||
const FillProperties modifiedProperties = [&]{
|
||||
FillProperties modifiedProperties = properties;
|
||||
modifiedProperties.opacity = 1;
|
||||
return modifiedProperties;
|
||||
}();
|
||||
|
||||
// When drawing the fill, we want to draw a 16.66% buffer around too, so we
|
||||
// essentially downscale everyting, and then upscale it later when rendering.
|
||||
|
||||
@@ -183,9 +189,9 @@ void Painter::renderFill(FillBucket& bucket, const std::string& layer_name, cons
|
||||
matrix::translate(vtxMatrix, vtxMatrix, 0, -4096, 0);
|
||||
|
||||
pass = Opaque;
|
||||
renderFill(bucket, properties, id, vtxMatrix);
|
||||
renderFill(bucket, modifiedProperties, id, vtxMatrix);
|
||||
pass = Translucent;
|
||||
renderFill(bucket, properties, id, vtxMatrix);
|
||||
renderFill(bucket, modifiedProperties, id, vtxMatrix);
|
||||
|
||||
|
||||
bucket.prerendered->blur(*this, properties.prerenderBlur);
|
||||
|
||||
@@ -17,6 +17,7 @@ void Painter::renderPrerenderedTexture(Bucket &bucket, const GenericProperties &
|
||||
glActiveTexture(GL_TEXTURE0);
|
||||
rasterShader->setImage(0);
|
||||
rasterShader->setBuffer(buffer);
|
||||
rasterShader->setOpacity(properties.opacity);
|
||||
bucket.prerendered->bindTexture();
|
||||
coveringRasterArray.bind(*rasterShader, tileStencilBuffer, BUFFER_OFFSET(0));
|
||||
glDrawArrays(GL_TRIANGLES, 0, (GLsizei)tileStencilBuffer.index());
|
||||
|
||||
Reference in New Issue
Block a user