From 5f80dad7fd03ca811f2b0561269be0180970dbf8 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 10 Mar 2010 15:37:18 -0500 Subject: fpglsl: add some for and while loops --- progs/fpglsl/for.glsl | 11 +++++++++++ progs/fpglsl/while.glsl | 7 +++++++ 2 files changed, 18 insertions(+) create mode 100644 progs/fpglsl/for.glsl create mode 100644 progs/fpglsl/while.glsl (limited to 'progs/fpglsl') diff --git a/progs/fpglsl/for.glsl b/progs/fpglsl/for.glsl new file mode 100644 index 0000000000..6aa03d6ef4 --- /dev/null +++ b/progs/fpglsl/for.glsl @@ -0,0 +1,11 @@ +uniform int KernelSizeInt; + +void main() { + int i; + vec4 sum = vec4(0.0); + for (i = 0; i < KernelSizeInt; ++i) { + sum.g += 0.25; + } + sum.a = 1; + gl_FragColor = sum; +} diff --git a/progs/fpglsl/while.glsl b/progs/fpglsl/while.glsl new file mode 100644 index 0000000000..05fb860ddc --- /dev/null +++ b/progs/fpglsl/while.glsl @@ -0,0 +1,7 @@ +void main() { + float sum = 0.0; + while (sum < 0.499999) { + sum += 0.1; + } + gl_FragColor = vec4(sum); +} -- cgit v1.2.3 From 1ad0a0fd8fb5314e33c1b4f82c9e487c05f80fb8 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 10 Mar 2010 15:42:26 -0500 Subject: fpglsl: set an integer uniform required by the loop example --- progs/fpglsl/fp-tri.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'progs/fpglsl') diff --git a/progs/fpglsl/fp-tri.c b/progs/fpglsl/fp-tri.c index c9b08fbbad..8af09845dd 100644 --- a/progs/fpglsl/fp-tri.c +++ b/progs/fpglsl/fp-tri.c @@ -128,6 +128,11 @@ static void setup_uniforms() } + { + GLint loci = glGetUniformLocationARB(program, "KernelSizeInt"); + if (loci >= 0) + glUniform1i(loci, 4); + } { GLint loc1f = glGetUniformLocationARB(program, "KernelValue1f"); GLint loc2f = glGetUniformLocationARB(program, "KernelValue2f"); -- cgit v1.2.3 From a44f362567f6ed4054e88d8afc94d38f19ed6269 Mon Sep 17 00:00:00 2001 From: Zack Rusin Date: Wed, 10 Mar 2010 16:31:18 -0500 Subject: fpglsl: a few more useful glsl tests --- progs/fpglsl/dowhile.glsl | 8 ++++++++ progs/fpglsl/dowhile2.glsl | 10 ++++++++++ progs/fpglsl/forbreak.glsl | 13 +++++++++++++ progs/fpglsl/simpleif.glsl | 6 ++++++ progs/fpglsl/while2.glsl | 9 +++++++++ 5 files changed, 46 insertions(+) create mode 100644 progs/fpglsl/dowhile.glsl create mode 100644 progs/fpglsl/dowhile2.glsl create mode 100644 progs/fpglsl/forbreak.glsl create mode 100644 progs/fpglsl/simpleif.glsl create mode 100644 progs/fpglsl/while2.glsl (limited to 'progs/fpglsl') diff --git a/progs/fpglsl/dowhile.glsl b/progs/fpglsl/dowhile.glsl new file mode 100644 index 0000000000..ed9d729675 --- /dev/null +++ b/progs/fpglsl/dowhile.glsl @@ -0,0 +1,8 @@ +void main() { + float sum = 0.0; + do { + sum += 0.1; + break; + } while (true); + gl_FragColor = vec4(sum); +} diff --git a/progs/fpglsl/dowhile2.glsl b/progs/fpglsl/dowhile2.glsl new file mode 100644 index 0000000000..f3e00b8e86 --- /dev/null +++ b/progs/fpglsl/dowhile2.glsl @@ -0,0 +1,10 @@ +void main() { + float sum = 0.0; + do { + sum += 0.1; + if (sum < 0.499999) + continue; + break; + } while (true); + gl_FragColor = vec4(sum); +} diff --git a/progs/fpglsl/forbreak.glsl b/progs/fpglsl/forbreak.glsl new file mode 100644 index 0000000000..87669c6575 --- /dev/null +++ b/progs/fpglsl/forbreak.glsl @@ -0,0 +1,13 @@ +uniform int KernelSizeInt; + +void main() { + int i; + vec4 sum = vec4(0.0); + for (i = 0; i < KernelSizeInt; ++i) { + sum.g += 0.25; + if (i > 0) + break; + } + sum.a = 1; + gl_FragColor = sum; +} diff --git a/progs/fpglsl/simpleif.glsl b/progs/fpglsl/simpleif.glsl new file mode 100644 index 0000000000..922421b410 --- /dev/null +++ b/progs/fpglsl/simpleif.glsl @@ -0,0 +1,6 @@ +void main() { + // this should always be true + if (gl_FragCoord.x >= 0.0) { + gl_FragColor = vec4(0.5, 0.0, 0.5, 1.0); + } +} diff --git a/progs/fpglsl/while2.glsl b/progs/fpglsl/while2.glsl new file mode 100644 index 0000000000..19c8904e28 --- /dev/null +++ b/progs/fpglsl/while2.glsl @@ -0,0 +1,9 @@ +void main() { + float sum = 0.0; + while (true) { + sum += 0.1; + if (sum > 0.8) + break; + } + gl_FragColor = vec4(sum); +} -- cgit v1.2.3 From 8f7e06ddf646d6ec001a19a4b571595e50ba28b4 Mon Sep 17 00:00:00 2001 From: Vinson Lee Date: Thu, 11 Mar 2010 00:10:26 -0800 Subject: progs/fpglsl: Fix GLSL compilation failures on Mac OS X. --- progs/fpglsl/for.glsl | 2 +- progs/fpglsl/forbreak.glsl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'progs/fpglsl') diff --git a/progs/fpglsl/for.glsl b/progs/fpglsl/for.glsl index 6aa03d6ef4..862ca8bd6c 100644 --- a/progs/fpglsl/for.glsl +++ b/progs/fpglsl/for.glsl @@ -6,6 +6,6 @@ void main() { for (i = 0; i < KernelSizeInt; ++i) { sum.g += 0.25; } - sum.a = 1; + sum.a = 1.0; gl_FragColor = sum; } diff --git a/progs/fpglsl/forbreak.glsl b/progs/fpglsl/forbreak.glsl index 87669c6575..0b8d957cb0 100644 --- a/progs/fpglsl/forbreak.glsl +++ b/progs/fpglsl/forbreak.glsl @@ -8,6 +8,6 @@ void main() { if (i > 0) break; } - sum.a = 1; + sum.a = 1.0; gl_FragColor = sum; } -- cgit v1.2.3