Bug 801 - Cleanup Graph API, Remove Redundancies.
Summary: Cleanup Graph API, Remove Redundancies.
Status: RESOLVED FIXED
Alias: None
Product: Jogl
Classification: JogAmp
Component: graph (show other bugs)
Version: 2
Hardware: All all
: --- enhancement
Assignee: Sven Gothel
URL:
Depends on:
Blocks: 803
  Show dependency treegraph
 
Reported: 2013-08-05 15:30 CEST by Sven Gothel
Modified: 2015-09-27 03:14 CEST (History)
2 users (show)

See Also:
Type: FEATURE
SCM Refs:
f51933f0ebe9ae030c26c066e59a728ce08b8559 3352601e0860584509adf2b76f993d03893ded4b f69df875d0b9f969a816d143ed589b25e50cd9e7 073ac5ab63af792d8468d8bf074b982f7c44ef33 2cafc01f08f9ab05748be6eeb82c417de38b31f7 67ec86e539a3db0d06e5cc3550db453589594384 bd43319992d02f8194dce94587de476ee421891b caa9ba036179d3a644e258c444f5b464df480c27 ea0059f01866bd6257d4a06164db1b6c906a2949 8920cf318b99c4e30e35b37c963609fa12d5ce04 0d7101305ab66c4730ba299f1634889bee5c500a 0af9df19efc3bc31beafdd63e3487b74a97c80a7 7e4ac89fc561f4b106bda377998a8b3e1dee7c1d af621a92250681a83e76293e7d33f685a0fc07e6 4701edd64be6a7c4e57d176344fb29ee71699744 9aba47241419a7115ebb638e4deb04322ff26d8b 183e1bc1868699b99eb9f9c8bf18d646d1120a48 d18df847b17a89fdc4b47fa9cfe010af1a61690b 3dc6b1b9205e3e6e381903f8a1499253f11f64ae 7b1a0c17fe5471557ab5e0db0334bed34edb553a 8bab15934fe63e44084294e315492420e07a902b fe3daea00da48c90a4e0c90cf37514a3ab7093d6 79156e080ef919857f1624543e37b62794fb5a64 200fe22baae4047e6d22152c760662c85be54fba 0799ac2fd303c86b09194cfcdad916cf1f94c96d 68eb9f1ea136428b64fe9246865fbabb8c82f6ac e16e974a3e2b38c65355838eeb010954354097d2 e4641e304fbc64a5d185a39c6ca6357cc678e013 0b61e9a2641e38475a330303e49f6becf99158e1 06fbb390d28bc247945931699e1d59bdd76230c6 5e728baa72517865d602580b920d9bdfdfb26c65 6382ee094953fd4fef35a8e60a29b482ae1b79c3 ec721c80b9e490cbec1ecbf67a5f79bbeb073885 b4817d053d7af20dae33774e430bf79a3d3c6fcd b71f91e67270958bdb2940615a83e4d1ccc9ca0a ec5724493bb9398134553a7354e08497e778a9cb b078f74cc707e7fc962efde08ab5d9cc6667e27c 38febaa43f91e389ffdaf64a2cdd8145629e0b8d b935d5248aef79e2386a284b32f5888348a382d6 e8a5a1cbb988670ca206ab1ac633e19a91bfa478 abc833631e0ab30a06c7aff47a39a551544fd735 9c71f276d1fcc87b69b413847fd1da34b30d0932 71f96087bb8f3d171dba718668db7cd32f254bdf fe47c613e3e07681a5366d6ec3f071fdc4ade65d 1c4a353b7edbbc03440197db3c2dabfc37f8010d 45395696c252c215a8a22d05e5da7e98c662d07e fa9f2883664ba015f778c32df9aa69897db63d55 9a15aad0e5388a4b927e44d3d2ce136f32474bc2 cca2782818bec79f63a5da1719b11e15244dbea2
Workaround: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sven Gothel 2013-08-05 15:30:56 CEST

    
Comment 1 Sven Gothel 2014-06-13 07:48:56 CEST
f69df875d0b9f969a816d143ed589b25e50cd9e7
   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
Comment 2 Sven Gothel 2014-06-13 07:51:23 CEST
f69df875d0b9f969a816d143ed589b25e50cd9e7
  Bug 801: Graph TextRenderer Cleanup Part-1b (clean)
    
    Concludes commit f51933f0ebe9ae030c26c066e59a728ce08b8559
    w/ final fixes on merge commit 3352601e0860584509adf2b76f993d03893ded4b.
Comment 3 Sven Gothel 2014-06-13 08:12:16 CEST
0af9df19efc3bc31beafdd63e3487b74a97c80a7
  Performance Note: ~800-1200 fps on uncached text line


Notable:
  - Enhance Graph core data management (OutlineShape/GLRegion)
  - Reduce data copy and regeneration
  - Enhance text rendering w/ typecast
  - Code cleanup

  - Add frustum culling to GLRegion

  - Test diff AA methods
    - MSAA
    - VBAA (brute-force, Flipquad, RGSS, Quincunx, FXAA2)
        - brute-force >> flipquad > rgss >> quincunx
        - FXAA2 not suitable

  - Shader Management
    - Switch shader instead of branching in shader (performance)

    - Use common shader-stubs for pass-1 and pass-2, 
      assembled in RegionRenderer.useShaderProgram(..)

    - Support regions w/ shaders for
      - plain
      - color textures
      - texture sequence (e.g. GLMediaPlayer)

  - GraphUI
    - Use Quaternions
    - Use Ray picking
    - Add Texture- and MediaPlayer-Button
Comment 4 Sven Gothel 2014-06-13 08:18:19 CEST
This cleanup stage is completed.

Eventual changes in core and/or use-cases
will be referenced in a follow-up bug report.