38 lines
720 B
GLSL
38 lines
720 B
GLSL
#version 130
|
|
|
|
uniform sampler2D qt_Texture0;
|
|
varying vec2 qt_TexCoord0;
|
|
uniform vec2 scale;
|
|
uniform float a;
|
|
uniform int stretch;
|
|
|
|
void main(void)
|
|
{
|
|
vec4 color = texture2D(qt_Texture0, qt_TexCoord0);
|
|
|
|
switch(stretch)
|
|
{
|
|
case 0:
|
|
break;
|
|
case 1:
|
|
color = sqrt(color);
|
|
break;
|
|
case 2:
|
|
color = pow(color, vec4(a));
|
|
break;
|
|
case 3:
|
|
color = log(a*color + 1.0) / log(vec4(a+1));
|
|
break;
|
|
case 4:
|
|
{
|
|
float l = color.r*0.2126f + color.g*0.7152f + color.b*0.7152f;
|
|
color *= asinh(l / a) / asinh(1 / a);
|
|
}
|
|
break;
|
|
}
|
|
|
|
color = color*scale.x + scale.y;
|
|
//float color = pow(c, 0.4545);
|
|
gl_FragColor = color;
|
|
}
|