Graph minor linear optimization: Passing array storage (reduce temp array) and use array ref access.
Graph minor linear optimization: use vertexInTriangle3(..) reduces redundant computations
graph test: TestTextRendererNEWT10 cleanup
Bug 801: Graph TextRenderer Cleanup Part-1a (unclean)

Remark: This commit is unclean and requires 'Part-1b' due to
        merging this commit after more than 2 years!

Graph:
  - Use List<OutlineShape> instead of array
    allowing more flexible memory managment.

  - GLRegion -> Region promotion:
    - Region create(List<OutlineShape> outlineShapes, int renderModes)
    - Region create(OutlineShape outlineShape, int renderModes)

  - Region additions
    - void addOutlineShape(OutlineShape shape)
    - void addOutlineShapes(List<OutlineShape> shapes)

  - RegionRenderer
    - draw(..) remove 'position', redundant
    -

  - Deprecate 'TextRenderer' and 'GlyphString'
    Use Region.create(Font.getOutlineShapes(...)) + RegionRenderer instead.

  - FontInt -> Font promotion (make public)
    - getOutlineShape and getOutlineShapes

  - Font.Glyph additions
    - 'getID(), hashCode()'
    - 'float getScale(float pixelSize)'

  - GlyphShape
    - Add reference to Glyph allowing GlyphString
      to access the font metrics for translation and scaling

    - Experimental pre-scale/translation in GlyphString
      using default font size and it's metrics
Merge branch 'master' into stash_glyphcache

Conflicts:
	make/scripts/tests.sh
	src/jogl/classes/com/jogamp/graph/curve/OutlineShape.java
	src/jogl/classes/com/jogamp/graph/curve/Region.java
	src/jogl/classes/com/jogamp/graph/curve/opengl/GLRegion.java
	src/jogl/classes/com/jogamp/graph/curve/opengl/RegionRenderer.java
	src/jogl/classes/com/jogamp/graph/curve/opengl/Renderer.java
	src/jogl/classes/com/jogamp/graph/curve/opengl/TextRenderer.java
	src/jogl/classes/com/jogamp/graph/font/Font.java
	src/jogl/classes/com/jogamp/opengl/math/VectorUtil.java
	src/jogl/classes/jogamp/graph/curve/text/GlyphShape.java
	src/jogl/classes/jogamp/graph/curve/text/GlyphString.java
	src/jogl/classes/jogamp/graph/font/typecast/TypecastFont.java
	src/jogl/classes/jogamp/graph/font/typecast/TypecastGlyph.java
	src/jogl/classes/jogamp/graph/font/typecast/TypecastRenderer.java
Bug 801: Graph TextRenderer Cleanup Part-1b (clean)

Concludes commit f51933f0ebe9ae030c26c066e59a728ce08b8559
w/ final fixes on merge commit 3352601e0860584509adf2b76f993d03893ded4b.
Bug 802: Graph TextRenderer Performance Part-1 (incomplete, rendering artifacts)

Strategy Change:
  - Font.Glyph itself holds it's OutlineShape
    with it's default scaling.
    Triangulation is done only once per glyph!

  - A CharSequence produces a Region
    by translating and scaling each Glyphs's OutlineShape.
    This removes the need for re-triangulate - see above.
    See: TextRendererUtil

  - The indices of re-added Triangles are
    offset to the new vertices (FIXME, seems not be be accurate yet).

  - OutlineShape's vertices and triangles are reused if 'clean'.

  - Simplified code

  - Reduced copies

API Changes:
  - OutlineShape, Region, ...: See above

  - Removed TextRenderer, GlyphShape and GlyphString: Redundant

  - Added TextRendererUtil to produce the Region from CharSequence

Result:
  - Over 600 fps while changing text for each frame.
    Previously only ~60fps max.

TODO:
  - Region shall not hold the triangles itself,
    but the indices instead.
    This will remove the need to swizzle w/ vertices in the Region Renderer impl
    and easies reusage of OutlineShapes.
Merge branch 'master' into 2.2-train
Bug 802: Graph TextRenderer Performance Part-2 (fix artifacts, cleanup, incomplete)

- OutlineShape
  - Add DIRTY_VERTICES bit in triangulation,
    which in turn solves the rendering artifact issue.

  - transformOutlines(..) -> protected

  - Note: Always pick triangles first, then vertices.
    The former renders vertices dirty.

- Region
  - Make triangles / vertices accessible

  - Add 'validateIndices()' to add indices for triangles,
    code moved from the GLRegion* impl.
    Shall be refined later!

- GLRegion
  - Passing 'RegionRenderer' instead of RenderState ..
    reducing argument numbers and aligning all related
    'render' methods while giving association to the RegionRenderer.

- Renderer -> RegionRenderer,
  dropping 'intermediate' RegionRenderer

  - Dropping draw() in RegionRenderer, should be issued simply
    by GLRegion in a unique fashion.

- Dropping RegionFactory
  Too simple code as-is, simply invoke in Region.create(..)

- Overall:
  - Add 'final' qualifier

  - Remove overloaded methods
    where rither default args can be used
    or a followup method call completes the 'intention'.
Merge branch 'master' into 2.2-train
Bug 801: Graph TextRenderer Cleanup Part-2: Remove Path2D from Glyph/Typecast* ; Misc Cleanup

Commit c3621221b9a563495b4f54fe60e18e8db8cc57fb introduced
create an OutlineShape per Glyph from it's data w/o going through Path2D.

Misc Cleanup: Remove unused code/fields, use private/final where possible.
Bug 801: Graph TextRenderer Cleanup Part-3: Region.addOutlineShape(..) Push GL data directly incl. all index validations

Region:
  - Remove redundant methods to make
    OutlineShape the unique source.
    - addVertex(..)
    - addTriangles(..)

  - Perform all index validations in addOutlineShape(..)

  - Push OutlineShape's vertex data
    and it's triangle indices directly to VBO.

GLRegion: Add clear(..) method, allowing to clear the region
          for new data, i.e. OutlineShapes
Bug 801: Graph TextRenderer Cleanup Part-4: Text[Render->Region]Util API: Better separation of cached and uncached regions
Bug 801: Graph TextRenderer Cleanup Part-5: *Region API Cleanup (protected impl. part)
Bug 802: Graph TextRenderer Performance Part-3: Reuse 'float[] coordsEx' storage, ease on GC
Bug 801: Graph TextRenderer Cleanup Part-6: Fix TypecastRenderer; Minor Editing

Fix TypecastRenderer:
  - Ensure quad shapes are closed!
  - Revalidate point -> shape interpretation using orig. Typcast code
  - Fix 'midPoint(..)' use float values
Merge branch 'master' into 2.2-train
Bug 801: Outline.setClosed(boolean [closed->closeTail]): Always close, but allow to either close-tail or head; OutlineShape/Triangulator: Pass 'sharpness' (very little effect though)
Bug 801: TextRegionUtil add 'special' for cache-key; Minor edits

Minor edits:
  - Add some docs to curve-shader and remove FIXME remark about gcu_Alpha, which will be used < 1.0.
  - Font: Add more TTF references
Bug 801: Fix TypecastRenderer End-Of-Contour and Shape-Closing; add cubic path

- Fix TypecastRenderer End-Of-Contour (EOC)
  - Iterate through contour block up-until EOC-1,
    not trying to create a new 'path' from EOC.

- Add cubic path
  - Detect a cubic path and use it, i.e. on-off-off-on

- Fix Shape-Closing
  - Close shape at head, not tail, since we add vertices from the head.

- Misc
  - addShape*(..) uses Point parameter 'onCurve' field
    reflecting proper handling.

Status:
  Ubuntu Font: No artifacts

  Lucida: Removed all artifacts, but for character 'M' !?
    - No odd MID point
    - Maybe inside-outside (inner) detection is buggy ?