-namespace {
-
-static const char fragment_src[] =
- "uniform sampler2D texture;\n"
- "uniform float peak;\n"
- "uniform float brightness;\n"
- "varying vec2 texcoord;\n"
- "void main()\n"
- "{\n"
- " vec4 sample = texture2D(texture, texcoord);\n"
- " float maxc = max(sample.r, max(sample.g, sample.b));\n"
- " if(maxc>1.0-peak)\n"
- " {\n"
- " vec3 saturated = sample.rgb/maxc;\n"
- " if(maxc>1.0+peak)\n"
- " {\n"
- " gl_FragColor.rgb = mix(vec3(1.0), saturated, 1.0/pow(brightness, maxc-1-peak));\n"
- " }\n"
- " else\n"
- " {\n"
- " float x = (1.0+peak-maxc)/(2.0*peak);\n"
- " gl_FragColor.rgb = saturated.rgb*(1.0-peak+(1-x*x)*peak);\n"
- " }\n"
- " gl_FragColor.a = sample.a;\n"
- " }\n"
- " else\n"
- " gl_FragColor = sample;\n"
- "}";
-
-}
-