diff options
Diffstat (limited to 'src/jogl/classes/jogamp/graph/curve/opengl/shader')
7 files changed, 56 insertions, 10 deletions
diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp index b9974b97d..cfec523e9 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp +++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass1.vp @@ -23,10 +23,7 @@ void main(void) gcv_CurveParam = gca_CurveParams; } #endif -#ifdef USE_AABBOX_CLIPPING - gcv_ClipBBoxCoord = (gcu_PMVMatrix02[1] * gca_Vertices).xyz; // Mv -#endif - + #ifdef USE_COLOR_TEXTURE gcv_ColorTexCoord = ( gca_Vertices.xy - gcu_ColorTexBBox[0] ) / ( gcu_ColorTexBBox[1] - gcu_ColorTexBBox[0] ); #endif diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-msaa.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-msaa.glsl index 36d70cbdf..3d4cdc887 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-msaa.glsl +++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-msaa.glsl @@ -1,4 +1,14 @@ - // Pass-2: Dump Texture + // Pass-2: Dump Texture +#ifdef USE_AABBOX_CLIPPING + if( is_inside(gcv_ClipBBoxCoord, gcu_ClipBBox[0], gcu_ClipBBox[1]) < 0.5 ) { + #if USE_DISCARD + discard; // discard freezes NV tegra2 compiler + #else + mgl_FragColor = vec4(0); + #endif + } else +#endif + { vec4 t = texture2D(gcu_FboTexUnit, gcv_FboTexCoord.st); #if USE_DISCARD if( 0.0 == t.a ) { @@ -9,4 +19,5 @@ #else mgl_FragColor = t; #endif + } diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_even.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_even.glsl index e83e21a55..5e14a1a23 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_even.glsl +++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_even.glsl @@ -1,6 +1,16 @@ - // Pass-2: AA on Texture - // Note: gcv_FboTexCoord is in center of sample pixels. + // Pass-2: AA on Texture + // Note: gcv_FboTexCoord is in center of sample pixels. +#ifdef USE_AABBOX_CLIPPING + if( is_inside(gcv_ClipBBoxCoord, gcu_ClipBBox[0], gcu_ClipBBox[1]) < 0.5 ) { + #if USE_DISCARD + discard; // discard freezes NV tegra2 compiler + #else + mgl_FragColor = vec4(0); + #endif + } else +#endif + { // float sample_count = gcu_FboTexSize.z; vec2 psize = 1.0 / gcu_FboTexSize.xy; // pixel size @@ -97,4 +107,5 @@ #else mgl_FragColor = t; #endif + } diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_odd.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_odd.glsl index a3c61e595..b7d2e0e4e 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_odd.glsl +++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_bforce_odd.glsl @@ -1,6 +1,16 @@ - // Pass-2: AA on Texture - // Note: gcv_FboTexCoord is in center of sample pixels. + // Pass-2: AA on Texture + // Note: gcv_FboTexCoord is in center of sample pixels. +#ifdef USE_AABBOX_CLIPPING + if( is_inside(gcv_ClipBBoxCoord, gcu_ClipBBox[0], gcu_ClipBBox[1]) < 0.5 ) { + #if USE_DISCARD + discard; // discard freezes NV tegra2 compiler + #else + mgl_FragColor = vec4(0); + #endif + } else +#endif + { // float sample_count = gcu_FboTexSize.z; vec2 psize = 1.0 / gcu_FboTexSize.xy; // pixel size @@ -88,4 +98,5 @@ #else mgl_FragColor = t; #endif + } diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_flipquad3.glsl b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_flipquad3.glsl index bc0044aab..da0306425 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_flipquad3.glsl +++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2-vbaa_flipquad3.glsl @@ -4,6 +4,16 @@ // // Same as flipquad - but w/ rgss coordinates +#ifdef USE_AABBOX_CLIPPING + if( is_inside(gcv_ClipBBoxCoord, gcu_ClipBBox[0], gcu_ClipBBox[1]) < 0.5 ) { + #if USE_DISCARD + discard; // discard freezes NV tegra2 compiler + #else + mgl_FragColor = vec4(0); + #endif + } else +#endif + { // float sample_count = gcu_FboTexSize.z; vec2 psize = 1.0 / gcu_FboTexSize.xy; // pixel size @@ -108,4 +118,4 @@ #else mgl_FragColor = t; #endif - + } diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp index 64857c9ce..e4087cbd6 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp +++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-pass2.vp @@ -13,5 +13,10 @@ void main(void) { // gl_Position = gcu_PMVMatrix01[0] * gcu_PMVMatrix01[1] * vec4(gca_FboVertices, 1); gl_Position = gcu_PMVMatrix01[0] * gcu_PMVMatrix01[1] * gca_FboVertices; + +#ifdef USE_AABBOX_CLIPPING + gcv_ClipBBoxCoord = (gcu_PMVMatrix01[1] * gca_FboVertices).xyz; // Mv +#endif + gcv_FboTexCoord = gca_FboTexCoords; } diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp index 9518834b0..2f07ad7d0 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp +++ b/src/jogl/classes/jogamp/graph/curve/opengl/shader/curverenderer01-single.vp @@ -23,6 +23,7 @@ void main(void) gcv_CurveParam = gca_CurveParams; } #endif + #ifdef USE_AABBOX_CLIPPING gcv_ClipBBoxCoord = (gcu_PMVMatrix01[1] * gca_Vertices).xyz; // Mv #endif |