"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
- " vec4 result = canvas * (1.0 - gl_FragColor.a) + gl_FragColor * gl_FragColor.a;\n"
+ " vec4 result = mix(canvas, gl_FragColor, gl_FragColor.a);\n"
" gl_FragColor = mix(canvas, result, alpha);\n"
"}\n";
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = canvas + gl_FragColor;\n"
" result = clamp(result, 0.0, 1.0);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = gl_FragColor - canvas;\n"
" result = clamp(result, 0.0, 1.0);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = canvas * gl_FragColor;\n"
" gl_FragColor = mix(canvas, result, alpha);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = gl_FragColor / canvas;\n"
" if(!canvas.r) result.r = 1.0;\n"
static const char *blend_replace_frag =
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
"}\n";
// MAX
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = max(canvas, gl_FragColor);\n"
" result = clamp(result, 0.0, 1.0);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = min(canvas, gl_FragColor);\n"
" result = clamp(result, 0.0, 1.0);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = (canvas + gl_FragColor) * 0.5;\n"
" result = clamp(result, 0.0, 1.0);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = vec4(canvas.rgb * (1.0 - gl_FragColor.a) +"
" gl_FragColor.rgb * (1.0 - canvas.a) +"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = vec4(canvas.rgb * (1.0 - gl_FragColor.a) +"
" gl_FragColor.rgb * (1.0 - canvas.a) +"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
-// " gl_FragColor.a *= alpha;\n"
// " vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
// " vec4 result = canvas;\n"
// " gl_FragColor = mix(result, canvas, alpha);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = vec4(canvas.rgb * gl_FragColor.a + "
"(1.0 - canvas.a) * gl_FragColor.rgb, gl_FragColor.a);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = canvas * gl_FragColor.a;\n"
" gl_FragColor = mix(canvas, result, alpha);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = canvas * (1.0 - gl_FragColor.a);\n"
" gl_FragColor = mix(canvas, result, alpha);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = vec4(canvas.rgb + (1.0 - canvas.a) * gl_FragColor.rgb, "
" gl_FragColor.a + canvas.a - gl_FragColor.a * canvas.a);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = gl_FragColor;\n"
" gl_FragColor = mix(canvas, result, alpha);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = vec4(gl_FragColor.rgb * canvas.a + "
"canvas.rgb * (1.0 - gl_FragColor.a), canvas.a);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = gl_FragColor * canvas.a;\n"
" gl_FragColor = mix(canvas, result, alpha);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = gl_FragColor * (1.0 - canvas.a);\n"
" gl_FragColor = mix(canvas, result, alpha);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = vec4(gl_FragColor.rgb + (1.0 - gl_FragColor.a) * canvas.rgb, "
"gl_FragColor.a + canvas.a - gl_FragColor.a * canvas.a);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = canvas + gl_FragColor - canvas * gl_FragColor;\n"
" result = clamp(result, 0.0, 1.0);\n"
"uniform vec2 tex2_dimensions;\n"
"uniform float alpha;\n"
"void main() {\n"
- " gl_FragColor.a *= alpha;\n"
" vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
" vec4 result = vec4(gl_FragColor.rgb * (1.0 - canvas.a) + "
"(1.0 - gl_FragColor.a) * canvas.rgb, "