diff --git a/demo2/cover.fs.glsl b/demo2/cover.fs.glsl index 0deaafdc..e2c851bc 100644 --- a/demo2/cover.fs.glsl +++ b/demo2/cover.fs.glsl @@ -15,11 +15,12 @@ precision highp float; uniform sampler2D uStencilTexture; in vec2 vTexCoord; +in float vBackdrop; in vec4 vColor; out vec4 oFragColor; void main() { - float coverage = abs(texture(uStencilTexture, vTexCoord).r); + float coverage = abs(texture(uStencilTexture, vTexCoord).r + vBackdrop); oFragColor = vec4(vColor.rgb, vColor.a * coverage); } diff --git a/demo2/cover.vs.glsl b/demo2/cover.vs.glsl index 49722b0f..dafad025 100644 --- a/demo2/cover.vs.glsl +++ b/demo2/cover.vs.glsl @@ -18,10 +18,12 @@ uniform vec2 uStencilTextureSize; in vec2 aTessCoord; in vec2 aTileOrigin; +in float aBackdrop; in uint aTileIndex; in vec4 aColor; out vec2 vTexCoord; +out float vBackdrop; out vec4 vColor; vec2 computeTileOffset(uint tileIndex, float stencilTextureWidth) { @@ -34,6 +36,7 @@ void main() { vec2 position = aTileOrigin + uTileSize * aTessCoord; vec2 texCoord = computeTileOffset(aTileIndex, uStencilTextureSize.x) + aTessCoord * uTileSize; vTexCoord = texCoord / uStencilTextureSize; + vBackdrop = aBackdrop; vColor = aColor; gl_Position = vec4((position / uFramebufferSize * 2.0 - 1.0) * vec2(1.0, -1.0), 0.0, 1.0); } diff --git a/demo2/index.html b/demo2/index.html index 5510ca0c..78fa63d6 100644 --- a/demo2/index.html +++ b/demo2/index.html @@ -5,10 +5,13 @@