aboutsummaryrefslogtreecommitdiffstats
path: root/src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java
diff options
context:
space:
mode:
authorRami Santina <[email protected]>2011-05-02 19:28:47 +0300
committerRami Santina <[email protected]>2011-05-02 19:28:47 +0300
commit307ba4ea320a91d5731274ed3191bea840d1fe70 (patch)
treeeb385521092a9db150bcb1963b232e8ba5d5efa4 /src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java
parent73ce473d7bf4de653bb23baa318cc8cdcb03e8ce (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.java29
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();