summaryrefslogtreecommitdiff
path: root/luma.glsl
diff options
context:
space:
mode:
authorMikhail Burakov <mburakov@mailbox.org>2023-03-14 08:40:53 +0100
committerMikhail Burakov <mburakov@mailbox.org>2023-03-14 08:40:53 +0100
commit1c79dfed2c973b159b8f4a39a8087f772b70ceb0 (patch)
treec7ea2fc1d0d15557c16c16372761e3c1bf1d1903 /luma.glsl
Initial import of streamer source code
Diffstat (limited to 'luma.glsl')
-rw-r--r--luma.glsl30
1 files changed, 30 insertions, 0 deletions
diff --git a/luma.glsl b/luma.glsl
new file mode 100644
index 0000000..cc56377
--- /dev/null
+++ b/luma.glsl
@@ -0,0 +1,30 @@
+/*
+ * Copyright (C) 2023 Mikhail Burakov. This file is part of streamer.
+ *
+ * streamer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * streamer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with streamer. If not, see <https://www.gnu.org/licenses/>.
+ */
+
+uniform sampler2D img_input;
+
+varying mediump vec2 texcoord;
+
+mediump float rgb2luma(in mediump vec4 rgb) {
+ // mburakov: This hardcodes BT.709 full-range.
+ return rgb.r * 0.2126 + rgb.g * 0.7152 + rgb.b * 0.0722;
+}
+
+void main() {
+ mediump vec4 rgb = texture2D(img_input, texcoord);
+ gl_FragColor = vec4(rgb2luma(rgb), 0.0, 0.0, 1.0);
+}