Skip to content
The Jenkins Controller is preparing for shutdown. No new builds can be started.
Success

Changes

Summary

  1. AWT/GL Printing WIP: Abstract AWT tile painting code out to (details)
  2. Complete commit 54dcdf1f53c9fc1f7124cf77bbf5aa952d42053a, exposing (details)
  3. Fix TileRenderer*: Allow general usage w/ any GL profile, only (details)
  4. TileRenderer*: Fix FBO MSAA use-case, i.e. call swapBuffers() before (details)
  5. TiledPrintingAWTBase: Fix scaling - Fit frame to page, add MSAA (details)
  6. Test: Don't resize frame, tweek print-matrix; AWTPrintLifecycle: Add (details)
  7. doc/Implementation/AWTPrinting: Update to match latest code (details)
  8. Aggregate and cleanup '.ps' and '.pdf' artifacts (printing tests) (details)
  9. AWTPrintLifecycle: Add detailed API doc (details)
  10. Fix some JavaDoc and API doc (reference) bugs .. (details)
  11. doc/Implementation/AWTPrinting.txt: Adding ref to AWTPrintLifecycle (details)
  12. TileRenderer*: Fix pre-swap and post-swap in regards to endTile(..), (details)
  13. TileRenderer*: API doc fixes (details)
  14. Add AWTTilePainter.dumpHintsAndScale(..), removing more duplicated code (details)
  15. build-*.xml: Unify 'javah' tasks where possible, i.e. per destination (details)
  16. TiledPrintingAWTBase/doc: Add description of how-to add a (details)
  17. NewtCanvasAWT: Implement AWTPrintLifecycle and hence support for AWT (details)
Commit 4b5e77961d1c660f3537f4041fc1a3ce47ef105c by Sven Gothel
AWT/GL Printing WIP: Abstract AWT tile painting code out to AWTTilePainter, reused w/ GLCanvas and GLJPanel
The file was addedsrc/jogl/classes/jogamp/opengl/awt/AWTTilePainter.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
Commit 42500210d8a8626ee6c3c1b169eaa9e5fbf85a21 by Sven Gothel
Complete commit 54dcdf1f53c9fc1f7124cf77bbf5aa952d42053a, exposing GL2ES3 in GLProfile (just a query, no new profile)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/acore/TestGPUMemSec01NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/newt/TestElektronenMultipliziererNEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestPNGImage01NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/util/texture/TestJPEGImage01NEWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/awt/AWTGLReadBufferUtil.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/texture/TextureIO.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLContext.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/awt/TestGearsES2GLJPanelsAWT.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLProfile.java (diff)
Commit 6fe3e99dab9721294a3bf72eaea77af33afc9481 by Sven Gothel
Fix TileRenderer*: Allow general usage w/ any GL profile, only image-buffer requires >= GL2ES3; Always set pack-alignment, Set glReadBuffer(..) >= GL2ES3

- Allow general usage w/ any GL profile, only image-buffer requires >= GL2ES3
  Due to GL2ES3.GL_PACK_ROW_LENGTH and image-width != tile-width

- Always set pack-alignment
  Forgot for tile-buffer

- Set glReadBuffer(..) >= GL2ES3
  Required if using FBO offscreen, i.e. MSAA mode.
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/TileRenderer.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/TileRendererBase.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/RandomTileRenderer.java (diff)
Commit 4965923722fe44dfcf7eaff16cd5449707773123 by Sven Gothel
TileRenderer*: Fix FBO MSAA use-case, i.e. call swapBuffers() before endTile(); Enhance unit tests for MSAA, also add TileRendererBase.TileRendererNotify to GearsES2

GL[Auto]Drawable.swapBuffers() must be called before endTile().

This is especially important if using multisampling offscreen FBO drawables,
where swapBuffers() triggers the <i>downsampling</i> to the readable sampling sink.

Otherwise, we will be 'one tile behind' !
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/RandomTileRenderer.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/es2/GearsES2.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/TileRendererBase.java (diff)
The file was removedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledRendering2GL2NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledRendering1GL2NEWT.java (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledRendering2NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestRandomTiledRendering2GL2NEWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/Gears.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/TileRenderer.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestRandomTiledRendering3GL2AWT.java (diff)
Commit 9b5cee85c299e72735bebbfea5c23d3c71bc704e by Sven Gothel
TiledPrintingAWTBase: Fix scaling - Fit frame to page, add MSAA RenderingHints test; setupPrint(Graphics2D): Query RenderingHints to use MSAA rendering

- AWTPrintLifecycle.setupPrint(Graphics2D): Query RenderingHints to use MSAA rendering
  - Impl. in GLCanvas
  - TODO GLJPanel (would need a new offscreen buffer)

- TiledPrintingAWTBase:
  - Fix scaling - Fit frame to page
  - add MSAA RenderingHints test

- GLCanvas: Remove dumpStack() DEBUG output
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/AWTPrintLifecycle.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledPrintingGearsAWT.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/demos/gl2/awt/TestGearsAWT.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TiledPrintingAWTBase.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/GLFBODrawableImpl.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledPrintingGearsSwingAWT.java (diff)
Commit 76048cd784ea6df32f19e97bb228e4ead880ea07 by Sven Gothel
Test: Don't resize frame, tweek print-matrix; AWTPrintLifecycle: Add scale and convenient AWT container traversal context; GLCanvas/GLJPanel properly handle existing MSAA and req. AA;

- Test: Don't resize frame, tweek print-matrix
  - Use scaleComp72 to scale the frame to fit on page,
    i.e. global print matrix

  - Use scaleGLMatXY = 72.0 / glDPI
    to locally scale on the GL drawable as being passed to AWTPrintLifecycle.setup(..)

  - Hence frame stays untouched/stable, no need for 'offscreen' print test,
    which is removed.

- AWTPrintLifecycle: Add scale and convenient AWT container traversal context
  Use a simple decoration for all AWTPrintLifecycle impl. components within a container:

    final AWTPrintLifecycle.Context ctx = AWTPrintLifecycle.Context.setupPrint(frame, g2d, scaleGLMatXY, scaleGLMatXY);
    try {
    } finally {
       ctx.releasePrint();
    }

- GLCanvas/GLJPanel properly handle existing MSAA and req. AA;
  - GLCanvas: Workaround bug where onscreen MSAA cannot switch to offscreen FBO,
              i.e. stay 'onscreen'
  - GLJPanel: Use new offscreen FBO if MSAA is requested and not yet used.

- GLJPanel.Offscreen.postGL(): always swapBufer(), was missing for !GLSL swapping

Results GLCanvas / GLJPanel:
  - Good scaling
  - Stable behavior / visibility
  - High DPI mode works
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/AWTPrintLifecycle.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/awt/AWTMisc.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/jogl/classes/jogamp/opengl/awt/AWTTilePainter.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TiledPrintingAWTBase.java (diff)
The file was modifiedmake/scripts/tests.sh (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledPrintingGearsSwingAWT.java (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledPrintingGearsAWT.java (diff)
Commit b42918e0271e66829cd630dedfe12a81e0281aec by Sven Gothel
doc/Implementation/AWTPrinting: Update to match latest code
The file was modifieddoc/Implementation/AWTPrinting.txt (diff)
Commit df0f31459ec65835cd9e1741dbbd2b9d10aa0cd6 by Sven Gothel
Aggregate and cleanup '.ps' and '.pdf' artifacts (printing tests)
The file was modifiedmake/build-test.xml (diff)
Commit c654bf3605ff4dca6d8231c2fe8b4db8e6b22b4c by Sven Gothel
AWTPrintLifecycle: Add detailed API doc
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/AWTPrintLifecycle.java (diff)
Commit 6c823db5c504d29a4a54c6756e4e3113848d39dd by Sven Gothel
Fix some JavaDoc and API doc (reference) bugs ..
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLCapabilities.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLBase.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLDebugMessage.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLDrawable.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/windows/GDISurface.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLFBODrawable.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLContext.java (diff)
The file was modifiedsrc/nativewindow/classes/jogamp/nativewindow/WrappedSurface.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLProfile.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLAutoDrawable.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/GLDrawableFactory.java (diff)
Commit 78b65d52385f4a15e4357d0444ea9daec54fb173 by Sven Gothel
doc/Implementation/AWTPrinting.txt: Adding ref to AWTPrintLifecycle
The file was modifieddoc/Implementation/AWTPrinting.txt (diff)
Commit 8313200af6da93f83bc70a645e79bfdeb22f05d4 by Sven Gothel
TileRenderer*: Fix pre-swap and post-swap in regards to endTile(..), i.e. pre-swap only for FBO && MSAA. See TileRendererBase.reqPreSwapBuffers(..) API doc.
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledRendering2NEWT.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/TileRendererBase.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/RandomTileRenderer.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/TileRenderer.java (diff)
Commit d0e0b963da223e00359cad194061f5a967b2caae by Sven Gothel
TileRenderer*: API doc fixes
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/RandomTileRenderer.java (diff)
The file was modifiedsrc/jogl/classes/com/jogamp/opengl/util/TileRendererBase.java (diff)
Commit c9935d087350630f25046b5b757941fbef3a6044 by Sven Gothel
Add AWTTilePainter.dumpHintsAndScale(..), removing more duplicated code from GLCanvas/GLJPanel
The file was modifiedsrc/jogl/classes/jogamp/opengl/awt/AWTTilePainter.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLCanvas.java (diff)
The file was modifiedsrc/jogl/classes/javax/media/opengl/awt/GLJPanel.java (diff)
Commit 2a595c3d163d375a3fabc8c8b754492c0f2926d5 by Sven Gothel
build-*.xml: Unify 'javah' tasks where possible, i.e. per destination directory and classpath. This hopefully saves a few milliseconds in the build :)
The file was modifiedmake/build-nativewindow.xml (diff)
The file was modifiedmake/build-jogl.xml (diff)
The file was modifiedmake/build-newt.xml (diff)
Commit 541701f5803c5005864efcb09a0c4aacecb470f9 by Sven Gothel
TiledPrintingAWTBase/doc: Add description of how-to add a 'print-to-file' printer driver on OSX
The file was modifieddoc/Implementation/AWTPrinting.txt (diff)
The file was modifiedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TiledPrintingAWTBase.java (diff)
Commit fb6440fb6e4fac31d03799d5cf804d02c78f2c38 by Sven Gothel
NewtCanvasAWT: Implement AWTPrintLifecycle and hence support for AWT printing.

Note: Same bug existing as w/ GLCanvas, i.e.
  'GLDrawableUtil.swapGLContextAndAllGLEventListener(gladPre, gladNew)':
  If 'gladPre' is onscreen and using MSAA (on NV/GLX),
  the ctx cannot be made current in it's new 'gladNew' location.

  Same workaround applied, i.e. use onscreen drawable while printing.
The file was modifiedmake/scripts/tests.sh (diff)
The file was addedsrc/test/com/jogamp/opengl/test/junit/jogl/tile/TestTiledPrintingGearsNewtAWT.java (diff)
The file was modifiedsrc/newt/classes/com/jogamp/newt/awt/NewtCanvasAWT.java (diff)