aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/jogamp/graph/curve/opengl
diff options
context:
space:
mode:
authorRami Santina <[email protected]>2011-10-02 02:35:46 +0200
committerSven Gothel <[email protected]>2011-10-02 02:35:46 +0200
commit2689d5d6c892d197ba10240ee4c2e281032e6ade (patch)
tree5aff4821a62a7535360907958e10301b825f7494 /src/jogl/classes/jogamp/graph/curve/opengl
parent5e06a8d665c65554904f9358e5dc0fb01c120639 (diff)
tegra2: split fragment shaders into two (a - 1st pass, b - 2nd pass) ; disabled discard
- 1st pass (a) and 2nd pass (b), split at branch. - all include are on one level. - disabled discard, as it seems to be problematic Todo: - verify discard / pass-split on tegra2 - refect second pass usage (b) in implementation
Diffstat (limited to 'src/jogl/classes/jogamp/graph/curve/opengl')
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/attributes.glsl2
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/consts.glsl2
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.fp4
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.vp3
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-sp-xxx.vp1
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01a-xxx.fp53
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01b-xxx.fp (renamed from src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-xxx.fp)52
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer02-es2.fp4
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/precision.glsl10
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl4
-rw-r--r--src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl4
11 files changed, 72 insertions, 67 deletions
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/attributes.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/attributes.glsl
index c8c076ba1..108247c9c 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/attributes.glsl
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/attributes.glsl
@@ -2,8 +2,6 @@
#ifndef attributes_glsl
#define attributes_glsl
-#include precision.glsl
-
// attribute vec3 gca_Vertices;
attribute vec4 gca_Vertices;
attribute vec2 gca_TexCoords;
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/consts.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/consts.glsl
index c399f0f57..58c4fe50c 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/consts.glsl
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/consts.glsl
@@ -2,8 +2,6 @@
#ifndef consts_glsl
#define consts_glsl
-#include precision.glsl
-
const int MAX_TEXTURE_UNITS = 8; // <= gl_MaxTextureImageUnits
// const int MAX_LIGHTS = 8;
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.fp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.fp
index 94e62c042..adf2c62bd 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.fp
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.fp
@@ -6,5 +6,9 @@
// #extension OES_standard_derivatives : require
#extension GL_OES_standard_derivatives : enable
+precision mediump float;
+precision mediump int;
+precision mediump sampler2D;
+
#include curverenderer01-xxx.fp
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.vp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.vp
index 8c0585b1d..15ce8cc2b 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.vp
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-es2.vp
@@ -2,5 +2,8 @@
#version 100
+precision mediump float;
+precision mediump int;
+
#include curverenderer01-xxx.vp
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-sp-xxx.vp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-sp-xxx.vp
index 8bf3beea1..530b24f64 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-sp-xxx.vp
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-sp-xxx.vp
@@ -1,4 +1,5 @@
//Copyright 2010 JogAmp Community. All rights reserved.
+
#ifdef GL_ES
precision lowp float;
precision lowp int;
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01a-xxx.fp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01a-xxx.fp
new file mode 100644
index 000000000..fba2edb64
--- /dev/null
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01a-xxx.fp
@@ -0,0 +1,53 @@
+//Copyright 2010 JogAmp Community. All rights reserved.
+
+#include uniforms.glsl
+#include varyings.glsl
+
+const vec3 b_color = vec3(1.0, 1.0, 1.0);
+const vec4 tex_weights = vec4(0.075, 0.06, 0.045, 0.025);
+
+void main (void)
+{
+ vec2 rtex = vec2(abs(gcv_TexCoord.x),abs(gcv_TexCoord.y));
+ vec3 c = gcu_ColorStatic.rgb;
+
+ float alpha = 0.0;
+
+ if((gcv_TexCoord.x == 0.0) && (gcv_TexCoord.y == 0.0)) {
+ alpha = gcu_Alpha;
+ }
+ else if ((gcv_TexCoord.x > 0.0) && (rtex.y > 0.0 || rtex.x == 1.0)) {
+ vec2 dtx = dFdx(rtex);
+ vec2 dty = dFdy(rtex);
+
+ rtex.y -= 0.1;
+
+ if(rtex.y < 0.0) {
+ /** discard freezes NV tegra2 compiler (TODO: dbl check)
+ if(gcv_TexCoord.y < 0.0) {
+ discard;
+ } else {
+ rtex.y = 0.0;
+ }*/
+ rtex.y = 0.0;
+ }
+
+ vec2 f = vec2((dtx.y - dtx.x + 2.0*rtex.x*dtx.x), (dty.y - dty.x + 2.0*rtex.x*dty.x));
+ float position = rtex.y - (rtex.x * (1.0 - rtex.x));
+ float d = position/(length(f));
+
+ float a = (0.5 - d * sign(gcv_TexCoord.y));
+
+ if (a >= 1.0) {
+ alpha = gcu_Alpha;
+ } else if (a <= 0.0) {
+ // discard; // freezes NV tegra2 compiler (TODO: dbl check)
+ alpha = 0.0;
+ } else {
+ alpha = gcu_Alpha * a;
+ // ?? mix(b_color,gcu_ColorStatic.rgb, a);
+ }
+ }
+
+ gl_FragColor = vec4(c, alpha);
+}
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-xxx.fp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01b-xxx.fp
index af980da10..59401289c 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-xxx.fp
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01b-xxx.fp
@@ -2,6 +2,7 @@
#include uniforms.glsl
#include varyings.glsl
+#include consts.glsl
const vec3 b_color = vec3(1.0, 1.0, 1.0);
const vec4 tex_weights = vec4(0.075, 0.06, 0.045, 0.025);
@@ -10,22 +11,14 @@ void main (void)
{
vec2 rtex = vec2(abs(gcv_TexCoord.x),abs(gcv_TexCoord.y));
vec3 c = gcu_ColorStatic.rgb;
-
+
float alpha = 0.0;
- if((gcv_TexCoord.x == 0.0) && (gcv_TexCoord.y == 0.0)) {
- alpha = gcu_Alpha;
- }
- else if((gcv_TexCoord.x >= 5.0)) {
vec2 dfx = dFdx(gcv_TexCoord);
vec2 dfy = dFdy(gcv_TexCoord);
- vec2 size;
- //#if __VERSION__ < 130
- size = 1.0/gcu_TextureSize;
- //#else
- // size = 1.0/textureSize(gcu_TextureUnit,0);
- //#endif
+ vec2 size = 1.0/gcu_TextureSize;
+
rtex -= 5.0;
vec4 t = texture2D(gcu_TextureUnit, rtex)* 0.18;
@@ -49,43 +42,12 @@ void main (void)
t += texture2D(gcu_TextureUnit, rtex + 4.0*size*(vec2(0, 1)))*tex_weights.w;
t += texture2D(gcu_TextureUnit, rtex - 4.0*size*(vec2(0, 1)))*tex_weights.w;
+ /** discard freezes NV tegra2 compiler (TODO: dbl check)
if(t.w == 0.0){
discard;
- }
+ } */
c = t.xyz;
alpha = gcu_Alpha * t.w;
- }
- ///////////////////////////////////////////////////////////
- else if ((gcv_TexCoord.x > 0.0) && (rtex.y > 0.0 || rtex.x == 1.0)) {
- vec2 dtx = dFdx(rtex);
- vec2 dty = dFdy(rtex);
-
- rtex.y -= 0.1;
-
- if(rtex.y < 0.0) {
- if(gcv_TexCoord.y < 0.0) {
- discard;
- } else {
- rtex.y = 0.0;
- }
- }
-
- vec2 f = vec2((dtx.y - dtx.x + 2.0*rtex.x*dtx.x), (dty.y - dty.x + 2.0*rtex.x*dty.x));
- float position = rtex.y - (rtex.x * (1.0 - rtex.x));
- float d = position/(length(f));
-
- float a = (0.5 - d * sign(gcv_TexCoord.y));
-
- if (a >= 1.0) {
- alpha = gcu_Alpha;
- } else if (a <= 0.0) {
- discard;
- } else {
- alpha = gcu_Alpha * a;
- // ?? mix(b_color,gcu_ColorStatic.rgb, a);
- }
- }
-
- gl_FragColor = vec4(c, alpha);
+ gl_FragColor = vec4(c, alpha);
}
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer02-es2.fp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer02-es2.fp
index 80702d721..9a2128765 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer02-es2.fp
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer02-es2.fp
@@ -6,5 +6,9 @@
// #extension OES_standard_derivatives : require
#extension GL_OES_standard_derivatives : enable
+precision mediump float;
+precision mediump int;
+precision mediump sampler2D;
+
#include curverenderer02-xxx.fp
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/precision.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/precision.glsl
deleted file mode 100644
index 9924bd790..000000000
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/precision.glsl
+++ /dev/null
@@ -1,10 +0,0 @@
-#ifndef precision_glsl
-#define precision_glsl
-
-#ifdef GL_ES
- precision mediump float;
- precision mediump int;
- precision mediump sampler2D;
-#endif
-
-#endif // precision_glsl
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl
index 5d1177310..9d8ea75ea 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/uniforms.glsl
@@ -2,10 +2,6 @@
#ifndef uniforms_glsl
#define uniforms_glsl
-#include precision.glsl
-
-// #include consts.glsl
-
uniform mat4 gcu_PMVMatrix[3]; // P, Mv, and Mvi
uniform vec3 gcu_ColorStatic;
uniform float gcu_Alpha;
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl
index adb40ad11..7a9bc5a07 100644
--- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl
+++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/varyings.glsl
@@ -2,10 +2,6 @@
#ifndef varyings_glsl
#define varyings_glsl
-#include precision.glsl
-
-#include consts.glsl
-
//varying vec4 gcv_FrontColor;
varying vec2 gcv_TexCoord;