[Vulkan] Builtin shaders and shaders offline compilation script
[platform/core/uifw/dali-core.git] / dali / graphics / vulkan / shaders / text-visual-multi-color-text-shader.frag
1 #version 430
2
3 layout( location = 0 ) in vec2 vTexCoord;
4
5 // uniforms
6 layout( set = 0, binding = 1, std140 ) uniform FragData
7 {
8   vec4 uAtlasRect;
9   vec4 uColor;
10   vec3 mixColor;
11   float opacity;
12   float preMultipliedAlpha;
13 };
14
15 layout( set = 0, binding = 2 ) uniform sampler2D sTexture;
16
17 layout( location = 0 ) out vec4 fragColor;
18
19 vec4 visualMixColor()
20 {
21   return vec4( mixColor * mix( 1.0, opacity, preMultipliedAlpha ), opacity );
22 }
23
24 void main()
25 {
26   vec2 texCoord = clamp( mix( uAtlasRect.xy, uAtlasRect.zw, vTexCoord ), uAtlasRect.xy, uAtlasRect.zw );
27   vec4 textTexture = texture( sTexture, texCoord );
28   textTexture.rgb *= mix( 1.0, textTexture.a, preMultipliedAlpha );
29
30   fragColor = textTexture * uColor * visualMixColor();
31 }