Package com.jogamp.nativewindow.awt
Interface AWTPrintLifecycle
- All Known Implementing Classes:
GLCanvas,GLJPanel,NewtCanvasAWT
public interface AWTPrintLifecycle
Interface describing print lifecycle to support AWT printing,
e.g. on AWT
GLAutoDrawables.
Implementations
Implementing GLAutoDrawable classes based on AWT
supporting Component.print(Graphics) shall implement this interface.
Usage
Users attempting to print an AWT Container containing AWTPrintLifecycle elements
shall consider decorating the Component.printAll(Graphics) call with
setupPrint(..) and releasePrint()
on all AWTPrintLifecycle elements in the Container.
To minimize this burden, a user can use Context.setupPrint(..):
Container cont;
double scaleGLMatXY = 72.0/glDPI;
int numSamples = 0; // leave multisampling as-is
PrinterJob job;
...
final AWTPrintLifecycle.Context ctx = AWTPrintLifecycle.Context.setupPrint(cont, scaleGLMatXY, scaleGLMatXY, numSamples);
try {
AWTEDTExecutor.singleton.invoke(true, new Runnable() {
public void run() {
try {
job.print();
} catch (PrinterException ex) {
ex.printStackTrace();
}
} });
} finally {
ctx.releasePrint();
}
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic classConvenientAWTPrintLifecyclecontext simplifying callingsetupPrint(..)andreleasePrint()on allAWTPrintLifecycleelements of aContainer. -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoidShall be called afterPrinterJob.print().voidsetupPrint(double scaleMatX, double scaleMatY, int numSamples, int tileWidth, int tileHeight) Shall be called beforePrinterJob.print().
-
Field Details
-
DEFAULT_PRINT_TILE_SIZE
static final int DEFAULT_PRINT_TILE_SIZE- See Also:
-
-
Method Details
-
setupPrint
void setupPrint(double scaleMatX, double scaleMatY, int numSamples, int tileWidth, int tileHeight) Shall be called beforePrinterJob.print().See Usage.
- Parameters:
scaleMatX-Graphics2Dscaling factor, i.e. rendering 1/scaleMatX * width pixelsscaleMatY-Graphics2Dscaling factor, i.e. rendering 1/scaleMatY * height pixelsnumSamples- multisampling value: < 0 turns off, == 0 leaves as-is, > 0 enables using given num samplestileWidth- custom tile width fortile renderer, pass -1 for default.tileHeight- custom tile height fortile renderer, pass -1 for default. FIXME: Add border size !
-
releasePrint
void releasePrint()Shall be called afterPrinterJob.print().See Usage.
-