summaryrefslogtreecommitdiffstats
path: root/progs/vpglsl
diff options
context:
space:
mode:
authorZack Rusin <zack@kde.org>2010-05-15 00:58:02 -0400
committerZack Rusin <zack@kde.org>2010-05-15 00:58:43 -0400
commitb93fa7e2e807271dd51b9c4ec47b2f86311a61a8 (patch)
treeb230a01cfa20e98f07caa00a4847b8d7fe24e736 /progs/vpglsl
parent4e84dc8729cac4c78e521436ae091638a490da76 (diff)
vpglsl: add some simple tests with function calls
Diffstat (limited to 'progs/vpglsl')
-rw-r--r--progs/vpglsl/func.glsl33
-rw-r--r--progs/vpglsl/func2.glsl54
2 files changed, 87 insertions, 0 deletions
diff --git a/progs/vpglsl/func.glsl b/progs/vpglsl/func.glsl
new file mode 100644
index 00000000000..05539880fd8
--- /dev/null
+++ b/progs/vpglsl/func.glsl
@@ -0,0 +1,33 @@
+#version 120
+const int KernelSize = 16;
+uniform float KernelValue1f[KernelSize];
+
+
+float add_two(float a, float b)
+{
+ if (a > b)
+ return a - b;
+ else
+ return a + b;
+}
+
+vec4 func(vec4 x)
+{
+ int i;
+ vec4 tmp = gl_Color;
+ vec4 sum = x;
+
+ for (i = 0; i < KernelSize; ++i) {
+ sum = vec4( add_two(sum.x, KernelValue1f[i]) );
+ }
+ return sum;
+}
+
+void main(void)
+{
+ vec4 sum = vec4(0.0);
+
+ sum = func(sum);
+ gl_Position = gl_Vertex;
+ gl_FrontColor = sum;
+}
diff --git a/progs/vpglsl/func2.glsl b/progs/vpglsl/func2.glsl
new file mode 100644
index 00000000000..df964ed6f02
--- /dev/null
+++ b/progs/vpglsl/func2.glsl
@@ -0,0 +1,54 @@
+#version 120
+const int KernelSize = 16;
+uniform float KernelValue1f[KernelSize];
+
+
+float add_two(float a, float b)
+{
+ if (a > b)
+ return a - b;
+ else
+ return a + b;
+}
+
+vec4 myfunc(vec4 x, vec4 mult, vec4 c)
+{
+ if (x.x >= 0.5) {
+ return mult * c;
+ } else {
+ return mult + c;
+ }
+}
+
+vec4 func2(vec4 x)
+{
+ int i;
+ vec4 color = vec4(0);
+ for (i = 0; i < KernelSize; ++i) {
+ vec4 tmp = vec4(1./KernelSize);
+ color += myfunc(x, tmp, gl_Color);
+ }
+ return x * color;
+}
+
+vec4 func(vec4 x)
+{
+ int i;
+ vec4 tmp = gl_Color;
+ vec4 sum = x;
+
+ for (i = 0; i < KernelSize; ++i) {
+ sum = vec4( add_two(sum.x, KernelValue1f[i]) );
+ }
+ sum = func2(sum);
+ return sum;
+}
+
+void main(void)
+{
+ vec4 sum = vec4(0.0);
+
+ sum = func(sum);
+ gl_Position = gl_Vertex;
+ gl_FrontColor = sum;
+}