ruffle/render/webgl/shaders/bitmap.frag

31 lines
665 B
GLSL

#version 100
#ifdef GL_FRAGMENT_PRECISION_HIGH
precision highp float;
#else
precision mediump float;
#endif
uniform mat4 view_matrix;
uniform mat4 world_matrix;
uniform vec4 mult_color;
uniform vec4 add_color;
uniform mat3 u_matrix;
uniform sampler2D u_texture;
varying vec2 frag_uv;
void main() {
vec4 color = texture2D(u_texture, frag_uv);
// Unmultiply alpha before apply color transform.
if( color.a > 0.0 ) {
color.rgb /= color.a;
color = clamp(mult_color * color + add_color, 0.0, 1.0);
float alpha = clamp(color.a, 0.0, 1.0);
color = vec4(color.rgb * alpha, alpha);
}
gl_FragColor = color;
}