Interface describing print lifecycle to support AWT printing,
e.g. on AWT
javax.media.opengl.GLAutoDrawables.
Implementations
Implementing
javax.media.opengl.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
Container#printAll(Graphics) call with
#setupPrint(double,double,int,int,int) and
#releasePrint()on all
AWTPrintLifecycle elements in the
Container.
To minimize this burden, a user can use
Context#setupPrint(Container,double,double,int,int,int):
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();
}