offScreenCanvas.waitForOffScreenRendering();
// If latch count becomes equal to 0 during the past instructions or in the coming 10 milliseconds,
// this means that a rendering error happened
if (latch.await(10, TimeUnit.MILLISECONDS)) {
throw new IllegalRenderingStateException("Off screen rendering unavailable");
}
return offScreenCanvas.getOffScreenBuffer().getImage();
} catch (InterruptedException ex) {
IllegalRenderingStateException ex2 =
new IllegalRenderingStateException("Off screen rendering interrupted");
ex2.initCause(ex);
throw ex2;
} finally {
if (offScreenCanvas != null) {
view.removeCanvas3D(offScreenCanvas);
try {