github.com/cybriq/giocore@v0.0.7-0.20210703034601-cfb9cb5f3900/gpu/shaders/copy.frag (about) 1 #version 310 es 2 3 // SPDX-License-Identifier: Unlicense OR MIT 4 5 precision highp float; 6 7 layout(location = 0) out vec4 fragColor; 8 9 layout(binding = 0) uniform sampler2D tex; 10 11 precision mediump float; 12 13 vec3 sRGBtoRGB(vec3 rgb) { 14 bvec3 cutoff = greaterThanEqual(rgb, vec3(0.04045)); 15 vec3 below = rgb/vec3(12.92); 16 vec3 above = pow((rgb + vec3(0.055))/vec3(1.055), vec3(2.4)); 17 return mix(below, above, cutoff); 18 } 19 20 void main() { 21 vec4 texel = texelFetch(tex, ivec2(gl_FragCoord.xy), 0); 22 vec3 rgb = sRGBtoRGB(texel.rgb); 23 fragColor = vec4(rgb, texel.a); 24 }