Don't blur behind opaque pixels
This commit is contained in:
parent
74dbf196c1
commit
748a787ba2
4 changed files with 40 additions and 11 deletions
|
|
@ -47,8 +47,17 @@ uniform vec2 bottomRight;
|
|||
uniform vec2 fullSize;
|
||||
uniform float radius;
|
||||
|
||||
uniform int discardOpaque;
|
||||
|
||||
void main() {
|
||||
|
||||
vec4 pixColor = texture2D(tex, v_texcoord);
|
||||
|
||||
if (discardOpaque == 1 && pixColor[3] == 1.0) {
|
||||
discard;
|
||||
return;
|
||||
}
|
||||
|
||||
vec2 pixCoord = fullSize * v_texcoord;
|
||||
|
||||
if (pixCoord[0] < topLeft[0]) {
|
||||
|
|
@ -84,7 +93,7 @@ void main() {
|
|||
}
|
||||
}
|
||||
|
||||
gl_FragColor = texture2D(tex, v_texcoord) * alpha;
|
||||
gl_FragColor = pixColor * alpha;
|
||||
})#";
|
||||
|
||||
inline const std::string TEXFRAGSRCRGBX = R"#(
|
||||
|
|
@ -98,7 +107,14 @@ uniform vec2 bottomRight;
|
|||
uniform vec2 fullSize;
|
||||
uniform float radius;
|
||||
|
||||
uniform int discardOpaque;
|
||||
|
||||
void main() {
|
||||
|
||||
if (discardOpaque == 1) {
|
||||
discard;
|
||||
return;
|
||||
}
|
||||
|
||||
vec2 pixCoord = fullSize * v_texcoord;
|
||||
|
||||
|
|
@ -252,8 +268,17 @@ uniform vec2 bottomRight;
|
|||
uniform vec2 fullSize;
|
||||
uniform float radius;
|
||||
|
||||
uniform int discardOpaque;
|
||||
|
||||
void main() {
|
||||
|
||||
vec4 pixColor = texture2D(texture0, v_texcoord);
|
||||
|
||||
if (discardOpaque == 1 && pixColor[3] == 1.0) {
|
||||
discard;
|
||||
return;
|
||||
}
|
||||
|
||||
vec2 pixCoord = fullSize * v_texcoord;
|
||||
|
||||
if (pixCoord[0] < topLeft[0]) {
|
||||
|
|
@ -289,5 +314,5 @@ void main() {
|
|||
}
|
||||
}
|
||||
|
||||
gl_FragColor = texture2D(texture0, v_texcoord) * alpha;
|
||||
gl_FragColor = pixColor * alpha;
|
||||
})#";
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue