From bd43319992d02f8194dce94587de476ee421891b Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Thu, 27 Feb 2014 23:57:39 +0100 Subject: Bug 801: Graph TextRenderer Cleanup Part-5: *Region API Cleanup (protected impl. part) --- .../classes/com/jogamp/graph/curve/Region.java | 14 +++---------- .../com/jogamp/graph/curve/opengl/GLRegion.java | 23 +++++++++++++--------- .../jogamp/graph/curve/opengl/VBORegion2PES2.java | 13 +++++------- .../jogamp/graph/curve/opengl/VBORegionSPES2.java | 13 +++++------- 4 files changed, 27 insertions(+), 36 deletions(-) diff --git a/src/jogl/classes/com/jogamp/graph/curve/Region.java b/src/jogl/classes/com/jogamp/graph/curve/Region.java index 359c63c80..d23de2077 100644 --- a/src/jogl/classes/com/jogamp/graph/curve/Region.java +++ b/src/jogl/classes/com/jogamp/graph/curve/Region.java @@ -110,18 +110,10 @@ public abstract class Region { this.renderModes = regionRenderModes; } - /** - * Returns true, if the implementation uses indices to render the vertices, - * otherwise false. - *

- * Impacts {@link #validateIndices()} and {@link #addOutlineShape(OutlineShape, AffineTransform)} .., - * i.e. defines unique indices if this method returns true. - *

- */ - public abstract boolean usesIndices(); + // FIXME: Better handling of impl. buffer growth .. ! - public abstract void pushVertex(float[] coords, float[] texParams); - public abstract void pushIndex(int idx); + protected abstract void pushVertex(float[] coords, float[] texParams); + protected abstract void pushIndex(int idx); /** * Return bit-field of render modes, see {@link #create(int)}. diff --git a/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java b/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java index 7bf2ee6e1..6d0e5e538 100644 --- a/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java +++ b/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java @@ -61,18 +61,15 @@ public abstract class GLRegion extends Region { super(renderModes); } - /** Updates a graph region by updating the ogl related - * objects for use in rendering if {@link #isDirty()}. - *

Allocates the ogl related data and initializes it the 1st time.

- *

Called by {@link #draw(GL2ES2, RenderState, int, int, int)}.

- * @param rs TODO + /** + * Updates a graph region by updating the ogl related + * objects for use in rendering if {@link #isDirty()}. + *

Allocates the ogl related data and initializes it the 1st time.

+ *

Called by {@link #draw(GL2ES2, RenderState, int, int, int)}.

*/ protected abstract void update(GL2ES2 gl, RegionRenderer renderer); - /** Delete and clean the associated OGL - * objects - */ - public abstract void destroy(GL2ES2 gl, RegionRenderer renderer); + protected abstract void destroyImpl(GL2ES2 gl, RegionRenderer renderer); protected abstract void clearImpl(final GL2ES2 gl, final RegionRenderer renderer); @@ -84,6 +81,14 @@ public abstract class GLRegion extends Region { clearImpl(); } + /** + * Delete and clear the associated OGL objects. + */ + public final void destroy(GL2ES2 gl, RegionRenderer renderer) { + clear(gl, renderer); + destroyImpl(gl, renderer); + } + /** * Renders the associated OGL objects specifying * current width/hight of window for multi pass rendering diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PES2.java b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PES2.java index 9c3e3f2c2..df3be2e06 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PES2.java +++ b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegion2PES2.java @@ -82,7 +82,7 @@ public class VBORegion2PES2 extends GLRegion { } @Override - public final void clearImpl(final GL2ES2 gl, final RegionRenderer renderer) { + protected final void clearImpl(final GL2ES2 gl, final RegionRenderer renderer) { indicesTxtBuffer.seal(gl, false); indicesTxtBuffer.rewind(); verticeTxtAttr.seal(gl, false); @@ -92,10 +92,7 @@ public class VBORegion2PES2 extends GLRegion { } @Override - public final boolean usesIndices() { return true; } - - @Override - public final void pushVertex(float[] coords, float[] texParams) { + protected final void pushVertex(float[] coords, float[] texParams) { verticeTxtAttr.putf(coords[0]); verticeTxtAttr.putf(coords[1]); verticeTxtAttr.putf(coords[2]); @@ -105,12 +102,12 @@ public class VBORegion2PES2 extends GLRegion { } @Override - public final void pushIndex(int idx) { + protected final void pushIndex(int idx) { indicesTxtBuffer.puts((short)idx); } @Override - public void update(final GL2ES2 gl, final RegionRenderer renderer) { + protected void update(final GL2ES2 gl, final RegionRenderer renderer) { if(null == indicesFbo) { final ShaderState st = renderer.getShaderState(); @@ -276,7 +273,7 @@ public class VBORegion2PES2 extends GLRegion { } @Override - public void destroy(final GL2ES2 gl, final RegionRenderer renderer) { + protected void destroyImpl(final GL2ES2 gl, final RegionRenderer renderer) { if(DEBUG_INSTANCE) { System.err.println("VBORegion2PES2 Destroy: " + this); } diff --git a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java index af0c4c980..f4c40b0e5 100644 --- a/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java +++ b/src/jogl/classes/jogamp/graph/curve/opengl/VBORegionSPES2.java @@ -56,7 +56,7 @@ public class VBORegionSPES2 extends GLRegion { } @Override - public final void clearImpl(final GL2ES2 gl, final RegionRenderer renderer) { + protected final void clearImpl(final GL2ES2 gl, final RegionRenderer renderer) { indicesBuffer.seal(gl, false); indicesBuffer.rewind(); verticeAttr.seal(gl, false); @@ -66,10 +66,7 @@ public class VBORegionSPES2 extends GLRegion { } @Override - public final boolean usesIndices() { return true; } - - @Override - public final void pushVertex(float[] coords, float[] texParams) { + protected final void pushVertex(float[] coords, float[] texParams) { verticeAttr.putf(coords[0]); verticeAttr.putf(coords[1]); verticeAttr.putf(coords[2]); @@ -79,12 +76,12 @@ public class VBORegionSPES2 extends GLRegion { } @Override - public final void pushIndex(int idx) { + protected final void pushIndex(int idx) { indicesBuffer.puts((short)idx); } @Override - public void update(final GL2ES2 gl, final RegionRenderer renderer) { + protected void update(final GL2ES2 gl, final RegionRenderer renderer) { if( !buffersAttached ) { final ShaderState st = renderer.getShaderState(); st.ownAttribute(verticeAttr, true); @@ -119,7 +116,7 @@ public class VBORegionSPES2 extends GLRegion { } @Override - public void destroy(final GL2ES2 gl, final RegionRenderer renderer) { + protected void destroyImpl(final GL2ES2 gl, final RegionRenderer renderer) { if(DEBUG_INSTANCE) { System.err.println("VBORegionSPES2 Destroy: " + this); } -- cgit v1.2.3