diff options
Diffstat (limited to 'vendor/gioui.org/shader/gio/zmaterial.frag.0.glsl150')
-rw-r--r-- | vendor/gioui.org/shader/gio/zmaterial.frag.0.glsl150 | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/vendor/gioui.org/shader/gio/zmaterial.frag.0.glsl150 b/vendor/gioui.org/shader/gio/zmaterial.frag.0.glsl150 new file mode 100644 index 0000000..6b8bed3 --- /dev/null +++ b/vendor/gioui.org/shader/gio/zmaterial.frag.0.glsl150 @@ -0,0 +1,36 @@ +#version 150 + +struct Color +{ + float emulateSRGB; +}; + +uniform Color _color; + +uniform sampler2D tex; + +in vec2 vUV; +out vec4 fragColor; + +vec3 RGBtosRGB(vec3 rgb) +{ + bvec3 cutoff = greaterThanEqual(rgb, vec3(0.003130800090730190277099609375)); + vec3 below = vec3(12.9200000762939453125) * rgb; + vec3 above = (vec3(1.05499994754791259765625) * pow(rgb, vec3(0.416660010814666748046875))) - vec3(0.054999999701976776123046875); + return vec3(cutoff.x ? above.x : below.x, cutoff.y ? above.y : below.y, cutoff.z ? above.z : below.z); +} + +void main() +{ + vec4 texel = texture(tex, vUV); + if (_color.emulateSRGB == 0.0) + { + vec3 param = texel.xyz; + vec3 _71 = RGBtosRGB(param); + texel.x = _71.x; + texel.y = _71.y; + texel.z = _71.z; + } + fragColor = texel; +} + |