diff options
author | Rami Santina <[email protected]> | 2011-05-02 19:28:47 +0300 |
---|---|---|
committer | Rami Santina <[email protected]> | 2011-05-02 19:28:47 +0300 |
commit | 307ba4ea320a91d5731274ed3191bea840d1fe70 (patch) | |
tree | eb385521092a9db150bcb1963b232e8ba5d5efa4 /src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java | |
parent | 73ce473d7bf4de653bb23baa318cc8cdcb03e8ce (diff) |
Added nonuniform weight impl; misc enhancements/cleanups
Seperate texcoords from shaprness
Added NonUniform weight shader impl for region impl only (not text)
Refactor p1y --> weight (equiv to nurbs weight)
cleanup shader uniforms (rename/remove unneeded)
Enhanced blending of text
GPURegionNewtDemo01 - added weight W/Q to manipulate weight
refactor r2t --> vbaa (matching algorithm name)
Diffstat (limited to 'src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java')
-rw-r--r-- | src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java | 29 |
1 files changed, 23 insertions, 6 deletions
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 69fdd5c4a..03a696f35 100644 --- a/src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java +++ b/src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java @@ -41,17 +41,34 @@ import com.jogamp.graph.geom.Vertex; public abstract class RegionRenderer extends Renderer { + private boolean uniform = true; /** - * Create a Hardware accelerated Text Renderer. + * Create a Hardware accelerated Region Renderer. * @param rs the used {@link RenderState} - * @param renderType either {@link com.jogamp.graph.curve.Region#SINGLE_PASS} or {@link com.jogamp.graph.curve.Region#TWO_PASS} + * @param type either {@link com.jogamp.graph.curve.Region#SINGLE_PASS} or {@link com.jogamp.graph.curve.Region#TWO_PASS} + * @return an instance of Region Renderer */ public static RegionRenderer create(RenderState rs, int type) { - return new jogamp.graph.curve.opengl.RegionRendererImpl01(rs, type); + return new jogamp.graph.curve.opengl.RegionRendererImpl01(rs, type, true); } - protected RegionRenderer(RenderState rs, int type) { + /** Create a Hardware accelerated Region Renderer. + * @param rs the used {@link RenderState} + * @param type either {@link com.jogamp.graph.curve.Region#SINGLE_PASS} or {@link com.jogamp.graph.curve.Region#TWO_PASS} + * @param unifrom flag true unifrom weights for offcurve vertex, else otherwise. + * @return an instance of Region Renderer + */ + public static RegionRenderer create(RenderState rs, int type, boolean unifrom) { + return new jogamp.graph.curve.opengl.RegionRendererImpl01(rs, type, unifrom); + } + + protected RegionRenderer(RenderState rs, int type, boolean unifrom) { super(rs, type); + this.uniform = unifrom; + } + + public boolean isUniform(){ + return uniform; } /** Render an array of {@link OutlineShape}s combined in one region @@ -97,7 +114,7 @@ public abstract class RegionRenderer extends Renderer { Region region = RegionFactory.create(rs, renderType); outlineShape.transformOutlines(OutlineShape.QUADRATIC_NURBS); - ArrayList<Triangle> triangles = (ArrayList<Triangle>) outlineShape.triangulate(rs.getSharpness().floatValue()); + ArrayList<Triangle> triangles = (ArrayList<Triangle>) outlineShape.triangulate(); ArrayList<Vertex> vertices = (ArrayList<Vertex>) outlineShape.getVertices(); region.addVertices(vertices); region.addTriangles(triangles); @@ -118,7 +135,7 @@ public abstract class RegionRenderer extends Renderer { for(OutlineShape outlineShape:outlineShapes){ outlineShape.transformOutlines(OutlineShape.QUADRATIC_NURBS); - ArrayList<Triangle> triangles = outlineShape.triangulate(rs.getSharpness().floatValue()); + ArrayList<Triangle> triangles = outlineShape.triangulate(); region.addTriangles(triangles); ArrayList<Vertex> vertices = outlineShape.getVertices(); |