diff options
author | Sven Gothel <[email protected]> | 2012-02-25 13:57:48 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2012-02-25 13:57:48 +0100 |
commit | 1c8f158c57a13274e3776d3ecb24cbd1c9765741 (patch) | |
tree | f9688983c920aef64827fb5b0346329b1d8f3cf6 /src/jogl/classes/com/jogamp/graph/curve | |
parent | 49114a63102c745b3db204315ad9525d61767d57 (diff) |
Min. Graph Parameter type change: texSize/width/.. for multipass-renderer: int -> int[]
"texWidth desired texture width for multipass-rendering.
The actual used texture-width is written back when mp rendering is enabled, otherwise the store is untouched."
This allows the 'backend' to correct the texSize, ie in regards to GL_MAX_TEXTURE_SIZE .. etc.
Without this write-back, it would re-create the FBO for every frame.
Diffstat (limited to 'src/jogl/classes/com/jogamp/graph/curve')
3 files changed, 15 insertions, 11 deletions
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 749c7ef65..63713887b 100755 --- a/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java +++ b/src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java @@ -114,14 +114,16 @@ public abstract class GLRegion extends Region { * current width/hight of window for multi pass rendering
* of the region.
* @param matrix current {@link PMVMatrix}.
+ * @param rs the RenderState to be used
* @param vp_width current screen width
* @param vp_height current screen height
- * @param width texture width for mp rendering
+ * @param texWidth desired texture width for multipass-rendering.
+ * The actual used texture-width is written back when mp rendering is enabled, otherwise the store is untouched.
*/
- public final void draw(GL2ES2 gl, RenderState rs, int vp_width, int vp_height, int width) {
+ public final void draw(GL2ES2 gl, RenderState rs, int vp_width, int vp_height, int[/*1*/] texWidth) {
update(gl, rs);
- drawImpl(gl, rs, vp_width, vp_height, width);
+ drawImpl(gl, rs, vp_width, vp_height, texWidth);
}
- protected abstract void drawImpl(GL2ES2 gl, RenderState rs, int vp_width, int vp_height, int width);
+ protected abstract void drawImpl(GL2ES2 gl, RenderState rs, int vp_width, int vp_height, int[/*1*/] texWidth);
}
diff --git a/src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java b/src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java index 86d962fd8..2f078d7bb 100644 --- a/src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java +++ b/src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java @@ -54,10 +54,11 @@ public abstract class RegionRenderer extends Renderer { * the triangles of the shapes will be generated, if not yet generated * @param region the OutlineShape to Render. * @param position the initial translation of the outlineShape. - * @param texSize texture size for multipass render + * @param texWidth desired texture width for multipass-rendering. + * The actual used texture-width is written back when mp rendering is enabled, otherwise the store is untouched. * @throws Exception if HwRegionRenderer not initialized */ - public final void draw(GL2ES2 gl, Region region, float[] position, int texSize) { + public final void draw(GL2ES2 gl, Region region, float[] position, int[/*1*/] texWidth) { if(!isInitialized()) { throw new GLException("RegionRenderer: not initialized!"); } @@ -65,14 +66,14 @@ public abstract class RegionRenderer extends Renderer { throw new GLException("Incompatible render modes, : region modes "+region.getRenderModes()+ " doesn't contain renderer modes "+this.getRenderModes()); } - drawImpl(gl, region, position, texSize); + drawImpl(gl, region, position, texWidth); } /** * Usually just dispatched the draw call to the Region's draw implementation, - * e.g. {@link com.jogamp.graph.curve.opengl.GLRegion#draw(GL2ES2, RenderState, int, int, int) GLRegion#draw(GL2ES2, RenderState, int, int, int)}. + * e.g. {@link com.jogamp.graph.curve.opengl.GLRegion#draw(GL2ES2, RenderState, int, int, int[]) GLRegion#draw(GL2ES2, RenderState, int, int, int[])}. */ - protected abstract void drawImpl(GL2ES2 gl, Region region, float[] position, int texSize); + protected abstract void drawImpl(GL2ES2 gl, Region region, float[] position, int[] texWidth); @Override protected void destroyImpl(GL2ES2 gl) { diff --git a/src/jogl/classes/com/jogamp/graph/curve/opengl/TextRenderer.java b/src/jogl/classes/com/jogamp/graph/curve/opengl/TextRenderer.java index b466670cc..8dc41b0c0 100644 --- a/src/jogl/classes/com/jogamp/graph/curve/opengl/TextRenderer.java +++ b/src/jogl/classes/com/jogamp/graph/curve/opengl/TextRenderer.java @@ -59,11 +59,12 @@ public abstract class TextRenderer extends Renderer { * @param str text to be rendered * @param position the lower left corner of the string * @param fontSize font size - * @param texSize texture size for multipass render + * @param texWidth desired texture width for multipass-rendering. + * The actual used texture-width is written back when mp rendering is enabled, otherwise the store is untouched. * @throws Exception if TextRenderer not initialized */ public abstract void drawString3D(GL2ES2 gl, Font font, - String str, float[] position, int fontSize, int texSize); + String str, float[] position, int fontSize, int[/*1*/] texSize); /**Create the resulting {@link GlyphString} that represents * the String wrt to the font. |