-// DST_IN
-static const char *blend_dst_in_frag =
- "uniform sampler2D tex2;\n"
- "uniform vec2 tex2_dimensions;\n"
- "uniform float alpha;\n"
- "void main() {\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"
- "}\n";
-
-// DST_OUT
-static const char *blend_dst_out_frag =
- "uniform sampler2D tex2;\n"
- "uniform vec2 tex2_dimensions;\n"
- "uniform float alpha;\n"
- "void main() {\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"
- "}\n";
-
-// DST_OVER
-static const char *blend_dst_over_frag =
- "uniform sampler2D tex2;\n"
- "uniform vec2 tex2_dimensions;\n"
- "uniform float alpha;\n"
- "void main() {\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"
- " gl_FragColor = mix(canvas, result, alpha);\n"
- "}\n";
-
-// SRC
-static const char *blend_src_frag =
- "uniform sampler2D tex2;\n"
- "uniform vec2 tex2_dimensions;\n"
- "uniform float alpha;\n"
- "void main() {\n"
- " vec4 canvas = texture2D(tex2, gl_FragCoord.xy / tex2_dimensions);\n"
- " vec4 result = gl_FragColor;\n"
- " gl_FragColor = mix(canvas, result, alpha);\n"
- "}\n";
-
-// SRC_ATOP
-static const char *blend_src_atop_frag =
- "uniform sampler2D tex2;\n"
- "uniform vec2 tex2_dimensions;\n"
- "uniform float alpha;\n"
- "void main() {\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"
- " gl_FragColor = mix(canvas, result, alpha);\n"
- "}\n";
-
-// SRC_IN
-static const char *blend_src_in_frag =
- "uniform sampler2D tex2;\n"
- "uniform vec2 tex2_dimensions;\n"
- "uniform float alpha;\n"
- "void main() {\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"
- "}\n";
-
-// SRC_OUT
-static const char *blend_src_out_frag =
- "uniform sampler2D tex2;\n"
- "uniform vec2 tex2_dimensions;\n"
- "uniform float alpha;\n"
- "void main() {\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"
- "}\n";
-
-// SRC_OVER
-static const char *blend_src_over_frag =