2016-02-24 04:42:58 +00:00
|
|
|
#version 330 core
|
|
|
|
in vec2 TexCoords;
|
|
|
|
|
2016-02-25 04:37:17 +00:00
|
|
|
uniform sampler2D mask;
|
2016-02-24 04:42:58 +00:00
|
|
|
uniform vec3 textColor;
|
2016-04-11 15:05:19 +00:00
|
|
|
uniform vec3 bgColor;
|
|
|
|
|
|
|
|
// SRC = SRC_ALPHA; DST = 1 - SRC_ALPHA
|
|
|
|
void MyBlend(in vec3 srcValue,
|
|
|
|
in vec3 dstValue,
|
|
|
|
in vec3 srcAlpha,
|
|
|
|
out vec3 blended)
|
|
|
|
{
|
|
|
|
vec3 dstAlpha = vec3(1.0, 1.0, 1.0) - srcAlpha;
|
|
|
|
vec3 preBlended = (srcValue * srcAlpha + dstValue * dstAlpha);
|
|
|
|
|
|
|
|
blended = vec3(min(1.0, preBlended.x),
|
|
|
|
min(1.0, preBlended.y),
|
|
|
|
min(1.0, preBlended.z));
|
|
|
|
}
|
2016-02-24 04:42:58 +00:00
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
2016-04-11 15:05:19 +00:00
|
|
|
// vec4 red = vec4(sampled.rgb, sampled.r * sampled.g * sampled.b);
|
|
|
|
// vec4 sampled = vec4(1.0, 1.0, 1.0, texture(mask, TexCoords));
|
|
|
|
vec3 blended = vec3(1.0, 1.0, 1.0);
|
|
|
|
MyBlend(textColor, bgColor, texture(mask, TexCoords).rgb, blended);
|
|
|
|
|
|
|
|
gl_FragColor = vec4(blended, 1.0);
|
2016-02-24 04:42:58 +00:00
|
|
|
}
|