diff options
author | lawl <github@dumbinter.net> | 2022-01-06 10:44:13 +0200 |
---|---|---|
committer | lawl <github@dumbinter.net> | 2022-01-06 16:04:34 +0530 |
commit | 8c34658b64f1efeab501bef57d2bfa9579fe34e2 (patch) | |
tree | 3fef93871214bc85c89ffcd04c6782c8aa3862ce /vendor/gioui.org/shader/gio/material.frag | |
parent | 38787e4195f2a34d7ec4421caf17cb99bc31fa2b (diff) | |
download | noisetorch-8c34658b64f1efeab501bef57d2bfa9579fe34e2.tar.gz noisetorch-8c34658b64f1efeab501bef57d2bfa9579fe34e2.zip |
Chore: Upgrade nucular GUI dependency
Diffstat (limited to 'vendor/gioui.org/shader/gio/material.frag')
-rw-r--r-- | vendor/gioui.org/shader/gio/material.frag | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/vendor/gioui.org/shader/gio/material.frag b/vendor/gioui.org/shader/gio/material.frag new file mode 100644 index 0000000..489461e --- /dev/null +++ b/vendor/gioui.org/shader/gio/material.frag @@ -0,0 +1,32 @@ +#version 310 es + +// SPDX-License-Identifier: Unlicense OR MIT + +precision mediump float; + +layout(binding = 0) uniform sampler2D tex; + +layout(location = 0) in highp vec2 vUV; + +layout(location = 0) out vec4 fragColor; + +layout(push_constant) uniform Color { + // If emulateSRGB is set (!= 0), the input texels are sRGB encoded. We save the + // conversion step below, at the cost of texture filtering in sRGB space. + layout(offset=16) float emulateSRGB; +} _color; + +vec3 RGBtosRGB(vec3 rgb) { + bvec3 cutoff = greaterThanEqual(rgb, vec3(0.0031308)); + vec3 below = vec3(12.92)*rgb; + vec3 above = vec3(1.055)*pow(rgb, vec3(0.41666)) - vec3(0.055); + return mix(below, above, cutoff); +} + +void main() { + vec4 texel = texture(tex, vUV); + if (_color.emulateSRGB == 0.0) { + texel.rgb = RGBtosRGB(texel.rgb); + } + fragColor = texel; +} |