summaryrefslogtreecommitdiffstats
path: root/res/effectlib/monoChannel.glsllib
diff options
context:
space:
mode:
Diffstat (limited to 'res/effectlib/monoChannel.glsllib')
-rw-r--r--res/effectlib/monoChannel.glsllib28
1 files changed, 28 insertions, 0 deletions
diff --git a/res/effectlib/monoChannel.glsllib b/res/effectlib/monoChannel.glsllib
new file mode 100644
index 0000000..07d6452
--- /dev/null
+++ b/res/effectlib/monoChannel.glsllib
@@ -0,0 +1,28 @@
+#ifndef MONO_CHANNEL_GLSLLIB
+#define MONO_CHANNEL_GLSLLIB
+
+#ifdef UIC_DEFINE_API
+#define mono_alpha 0
+#define mono_average 1
+#define mono_luminance 2
+#define mono_maximum 3
+#endif
+
+float monoChannel( in vec4 t, in int monoSource )
+{
+ switch( monoSource )
+ {
+ case mono_alpha :
+ return( t.w );
+ case mono_average :
+ return( ( t.x + t.y + t.z ) / 3.0f );
+ case mono_luminance :
+ return( luminance( t.xyz ) );
+ case mono_maximum :
+ return( max( t.x, max( t.y, t.z ) ) );
+ default :
+ return( 1.0f );
+ }
+}
+
+#endif