Skip to content

Commit

Permalink
Fixes the bug about gl_FragColor on iOS (#140)
Browse files Browse the repository at this point in the history
  • Loading branch information
finscn authored and bigtimebuddy committed Jan 24, 2018
1 parent 11237c3 commit 4b57d44
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 18 deletions.
6 changes: 4 additions & 2 deletions filters/bulge-pinch/src/bulgePinch.frag
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,10 @@ void main()
coord += center * dimensions.xy;
coord /= filterArea.xy;
vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw);
gl_FragColor = texture2D(uSampler, clampedCoord);
vec4 color = texture2D(uSampler, clampedCoord);
if (coord != clampedCoord) {
gl_FragColor *= max(0.0, 1.0 - length(coord - clampedCoord));
color *= max(0.0, 1.0 - length(coord - clampedCoord));
}

gl_FragColor = color;
}
4 changes: 2 additions & 2 deletions filters/godray/src/gorday.frag
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ uniform float time;
${perlin}

void main(void) {
gl_FragColor = texture2D(uSampler, vTextureCoord);
vec2 coord = vTextureCoord * filterArea.xy / dimensions.xy;

float d;
Expand All @@ -37,5 +36,6 @@ void main(void) {
//fade vertically.
vec4 mist = vec4(noise, noise, noise, 1.0) * (1.0 - coord.y);
mist.a = 1.0;
gl_FragColor += mist;

gl_FragColor = texture2D(uSampler, vTextureCoord) + mist;
}
7 changes: 4 additions & 3 deletions filters/motion-blur/src/motion-blur.frag
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ float offset = -uOffset / length(uVelocity) - 0.5;

void main(void)
{
gl_FragColor = texture2D(uSampler, vTextureCoord);
vec4 color = texture2D(uSampler, vTextureCoord);

if (uKernelSize == 0)
{
gl_FragColor = color;
return;
}

Expand All @@ -33,7 +34,7 @@ void main(void)
break;
}
vec2 bias = velocity * (float(i) / k + offset);
gl_FragColor += texture2D(uSampler, vTextureCoord + bias);
color += texture2D(uSampler, vTextureCoord + bias);
}
gl_FragColor /= kernelSize;
gl_FragColor = color / kernelSize;
}
9 changes: 6 additions & 3 deletions filters/radial-blur/src/radial-blur.frag
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,11 @@ float radius = uRadius / filterArea.x - gradient * 0.5;

void main(void)
{
gl_FragColor = texture2D(uSampler, vTextureCoord);
vec4 color = texture2D(uSampler, vTextureCoord);

if (uKernelSize == 0)
{
gl_FragColor = color;
return;
}

Expand All @@ -45,6 +46,7 @@ void main(void)
float gap = gradient;
float scale = 1.0 - abs(delta / gap);
if (scale <= 0.0) {
gl_FragColor = color;
return;
}
radianStep = uRadian * scale / k;
Expand Down Expand Up @@ -72,7 +74,8 @@ void main(void)
// switch to pre-multiplied alpha to correctly blur transparent images
// sample.rgb *= sample.a;

gl_FragColor += sample;
color += sample;
}
gl_FragColor /= kernelSize;

gl_FragColor = color / kernelSize;
}
8 changes: 5 additions & 3 deletions filters/shockwave/src/shockwave.frag
Original file line number Diff line number Diff line change
Expand Up @@ -55,13 +55,15 @@ void main()
// Do clamp :
vec2 coord = vTextureCoord + offset;
vec2 clampedCoord = clamp(coord, filterClamp.xy, filterClamp.zw);
gl_FragColor = texture2D(uSampler, clampedCoord);
vec4 color = texture2D(uSampler, clampedCoord);
if (coord != clampedCoord) {
gl_FragColor *= max(0.0, 1.0 - length(coord - clampedCoord));
color *= max(0.0, 1.0 - length(coord - clampedCoord));
}

// No clamp :
// gl_FragColor = texture2D(uSampler, vTextureCoord + offset);

gl_FragColor.rgb *= 1.0 + (brightness - 1.0) * p * fade;
color.rgb *= 1.0 + (brightness - 1.0) * p * fade;

gl_FragColor = color;
}
6 changes: 4 additions & 2 deletions filters/tilt-shift/src/tilt-shift.frag
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ void main(void)
total += weight;
}

gl_FragColor = color / total;
gl_FragColor.rgb /= gl_FragColor.a + 0.00001;
color /= total;
color.rgb /= color.a + 0.00001;

gl_FragColor = color;
}
6 changes: 3 additions & 3 deletions filters/zoom-blur/src/zoom-blur.frag
Original file line number Diff line number Diff line change
Expand Up @@ -76,9 +76,9 @@ void main() {
}
}

gl_FragColor = color / total;

color /= total;
// switch back from pre-multiplied alpha
gl_FragColor.rgb /= gl_FragColor.a + 0.00001;
color.rgb /= color.a + 0.00001;

gl_FragColor = color;
}

0 comments on commit 4b57d44

Please sign in to comment.