2014-12-18 22:09:14 +01:00
|
|
|
#ifdef Use_Bindless_Texture
|
2014-08-18 17:49:44 +02:00
|
|
|
layout(bindless_sampler) uniform sampler2D tex;
|
|
|
|
#else
|
2014-01-20 21:42:38 +01:00
|
|
|
uniform sampler2D tex;
|
2014-08-18 17:49:44 +02:00
|
|
|
#endif
|
2016-10-17 08:23:27 +02:00
|
|
|
uniform float custom_alpha;
|
2014-01-20 21:42:38 +01:00
|
|
|
|
|
|
|
in vec2 uv;
|
2014-03-19 01:25:44 +01:00
|
|
|
in vec4 color;
|
2014-01-20 21:42:38 +01:00
|
|
|
out vec4 FragColor;
|
2014-02-28 17:29:05 +01:00
|
|
|
|
2014-01-20 21:42:38 +01:00
|
|
|
|
|
|
|
void main()
|
|
|
|
{
|
2014-06-25 14:53:49 +02:00
|
|
|
vec4 Color = texture(tex, uv);
|
2014-12-18 22:09:14 +01:00
|
|
|
#ifdef Use_Bindless_Texture
|
2016-11-30 15:00:08 +08:00
|
|
|
#ifdef SRGBBindlessFix
|
2014-08-18 17:49:44 +02:00
|
|
|
Color.xyz = pow(Color.xyz, vec3(2.2));
|
2016-11-30 15:00:08 +08:00
|
|
|
#endif
|
2014-08-18 17:49:44 +02:00
|
|
|
#endif
|
2014-06-25 14:53:49 +02:00
|
|
|
Color.xyz *= pow(color.xyz, vec3(2.2));
|
|
|
|
Color.a *= color.a;
|
2014-04-03 14:46:35 +02:00
|
|
|
// Premultiply alpha
|
2016-10-17 01:03:10 +08:00
|
|
|
FragColor = vec4(Color.rgb * (Color.a * custom_alpha), Color.a * custom_alpha);
|
2014-01-20 21:42:38 +01:00
|
|
|
}
|