Do gamma conversion manualy
Requesting sRGB capable framebuffer is unreliable
This commit is contained in:
@@ -4,9 +4,17 @@ uniform sampler2D qt_Texture0;
|
||||
uniform vec3 mtf_param;
|
||||
uniform bool bw;
|
||||
uniform bool invert;
|
||||
uniform bool srgb;
|
||||
in vec2 qt_TexCoord0;
|
||||
out vec4 color;
|
||||
|
||||
vec3 Linear2sRGB(vec3 color)
|
||||
{
|
||||
return mix(12.92 * color.rgb,
|
||||
1.055 * pow(color, vec3(1.0 / 2.4)) - 0.055,
|
||||
greaterThan(color, vec3(0.0031308)));
|
||||
}
|
||||
|
||||
vec4 MTF(vec4 x, vec3 m)
|
||||
{
|
||||
x = (x - m.x) / (m.z - m.x);
|
||||
@@ -22,6 +30,8 @@ void main(void)
|
||||
|
||||
if(invert)color = vec4(1.0) - color;
|
||||
|
||||
if(srgb)color.rgb = Linear2sRGB(color.rgb);
|
||||
|
||||
if(any(lessThan(qt_TexCoord0, vec2(0.0))) || any(greaterThan(qt_TexCoord0, vec2(1.0))))
|
||||
color = vec4(0.0, 0.0, 0.0, 1.0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user