| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
- Contains convenient method to create an NIO backed BufferedImage
'BufferedImage createBufferedImage(int width, int height, int numComponents, Point location)'
Standalone test TestTiledPrintingNIOImageSwingAWT 'prints', i.e. renders offscreen,
the Frame into
- a traditional array-backed BufferedImage
- an NIO-backed backed BufferedImage
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
AWTPrintLifecycle's lifecycle
- AWTPrintLifecycle:
- Should decorate:
PrinterJob.print(..),
instead of within Printable.print(..) { .. container.printAll(..); .. }
This is due to AWT print implementation, i.e.
AWT will issue Printable.print(..) multiple times for 'overlapping'
or non-opaque elements!
- Move from javax.media.opengl.awt -> com.jogamp.nativewindow.awt
- Make _interface_ AWT agnostic, i.e. remove Graphics2D from 'setup(..)'
- Add 'int numSamples' to 'setup(..)' to determine the number of samples
- AWTTilePrinter:
- Use double precision when scaling image-size and clip-rect,
then round them to integer values.
Otherwise AWT will use the bounding box for the clipping-rectangular.
- Clip negative portion of clip-rect,
this removes redundant overpaints, as well as increasing the tile count
due to the increased clipping-size.
- Clip the image-size in the tile-renderer according to the clip-rect.
- DEBUG_TILES: Dump tiles to file
- Use sub-image of final BuffereImage instead
of adding another clipping region. This might increase performance
if no clip-rect has been set.
TODO:
TestTiledPrintingGearsSwingAWT overlapping tests exposes
a 'off by one' bug of the first layer's background!
Note: The GL content seems to be correct though - maybe it's simply an AWT rounding error ..
|
|
|
|
|
|
|
|
| |
Add clipping of the image-size and hence differentiate the image-size and
the size the tile-renderer iterates through.
The original image-size is required for the opengl reshape and rendering,
where the clipping size may restrict the range of rendering.
|
|
|
|
| |
drawable, skip vertical flip and use 1:1 y-coord.
|
|
|
|
| |
FFMPEGNatives.initIDS0() -> FFMPEGStaticNatives.initIDS0(); Cleanup up warnings and includes (clang); Forgot to commit new ffmpeg_static.h
|
| |
|
|
|
|
| |
up warnings and includes (clang).
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
it's working/scaling well; Adding TileRendererBase.TileRendererNotify to RedAquareES2 having a 3rd demo case.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
printer driver on OSX
|
|
|
|
| |
directory and classpath. This hopefully saves a few milliseconds in the build :)
|
|
|
|
| |
GLCanvas/GLJPanel
|
| |
|
|
|
|
| |
pre-swap only for FBO && MSAA. See TileRendererBase.reqPreSwapBuffers(..) API doc.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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' !
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
GLProfile (just a query, no new profile)
|
|
|
|
| |
reused w/ GLCanvas and GLJPanel
|
|
|
|
|
|
| |
unit test to wait for print-job (?)
.. otherwise results are cut-off .. better solution ? callback ?
|
|
|
|
| |
print(Graphics): Don't force on AWT-EDT -> Deadlock; releasePrint(): perform reshape/display!
|
|
|
|
| |
setupPrint()/releasePrint(), modularize unit test TestTiledPrintingGearsAWT
|
| |
|
|
|
|
| |
g.scale(..), pass 'offscreen' w/ manual printing as well
|
|
|
|
| |
drawing image and show same; Test: Add offscreen print and add borders.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
print(..); Test: Add auto-print w/o UI 72dpi and 300dpi
NOTE: Tile raster is added at print plus lots of debug output - WIP!
- Swap to offscreen at setupPrint()
- Swap GLEventListener (GLEL) and GLContext to fixed size offscreen GLAutoDrawable (GLAD)
- Destroy onscreen drawable/context
- Setup TileRenderer w/ offscreen GLAD
- @ releasePrint() restore onscreen ..
This shall ensure we don't hog the GPU resources when
resizing the AWT component (upscaling).
- Use TileRenderer @ print(..)
The clip-rect will be used as the TileRenderer's image-size
and we perform a whole tile-rendering loop.
This helps to limit resources, see above.
- Test: Add auto-print w/o UI 72dpi and 300dpi
|
|
|
|
| |
print)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
always return last result, no overloading of attachToAutoDrawable(..); Fix comments
TileRenderer:
- adds setTileOffset(..)
A tile offset might be required, i.e. via a given rectangular clip bounds
- getParam(pname) shall always return last result
Even when finished tiling, the last value shall be returned,
otherwise a post endTile() is unable to retrieve the value.
- No overloading of attachToAutoDrawable(..)
No reason to complicate usage by mutating semantics,
call setTileSize(..) manually
TileRendererBase:
- Fix API doc: TR_CURRENT_TILE_X_POS, TR_CURRENT_TILE_Y_POS
|
|
|
|
| |
about GLAnimatorControl's which association gets swapped as well.
|
|
|
|
| |
GLOffscreenAutoDrawable switch, forth & back
|
|
|
|
| |
than 72dpi
|
| |
|
| |
|
| |
|
| |
|