Shader compilation tool for dali-toolkit
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / graphics / shaders / bloom-view-composite-shader.frag
1 precision mediump float;
2 varying mediump vec2 vTexCoord;
3 uniform sampler2D sTexture;
4 uniform sampler2D sEffect;
5 uniform lowp vec4 uColor;
6 uniform float uBloomIntensity;
7 uniform float uImageIntensity;
8 uniform float uBloomSaturation;
9 uniform float uImageSaturation;
10
11 vec4 ChangeSaturation(vec4 col, float sat)
12 {
13   float grey = dot(col.rgb, vec3(0.3, 0.6, 0.1));
14   return mix(vec4(grey, grey, grey, 1.0), col, sat);
15 }
16
17 void main()
18 {
19   mediump vec4 image;
20   mediump vec4 bloom;
21   image = texture2D(sTexture, vTexCoord);
22   bloom = texture2D(sEffect, vTexCoord);
23   image = ChangeSaturation(image, uImageSaturation) * uImageIntensity;
24   bloom = ChangeSaturation(bloom, uBloomSaturation) * uBloomIntensity;
25   image *= 1.0 - clamp(bloom, 0.0, 1.0); // darken base where bloom is strong, to prevent excessive burn-out of result
26   gl_FragColor = image + bloom;
27 }