aboutsummaryrefslogtreecommitdiff
path: root/vendor/gioui.org/shader/gio/copy.frag
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/gioui.org/shader/gio/copy.frag')
-rw-r--r--vendor/gioui.org/shader/gio/copy.frag24
1 files changed, 24 insertions, 0 deletions
diff --git a/vendor/gioui.org/shader/gio/copy.frag b/vendor/gioui.org/shader/gio/copy.frag
new file mode 100644
index 0000000..048d9e7
--- /dev/null
+++ b/vendor/gioui.org/shader/gio/copy.frag
@@ -0,0 +1,24 @@
+#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;
+
+vec3 sRGBtoRGB(vec3 rgb) {
+ bvec3 cutoff = greaterThanEqual(rgb, vec3(0.04045));
+ vec3 below = rgb/vec3(12.92);
+ vec3 above = pow((rgb + vec3(0.055))/vec3(1.055), vec3(2.4));
+ return mix(below, above, cutoff);
+}
+
+void main() {
+ vec4 texel = texture(tex, vUV);
+ texel.rgb = sRGBtoRGB(texel.rgb);
+ fragColor = texel;
+}