/** Renders the GVT tree. */ protected void renderGVTTree() { Rectangle visRect = getRenderRect(); if (gvtRoot == null || visRect.width <= 0 || visRect.height <= 0) { return; } // Renderer setup. if (renderer == null || renderer.getTree() != gvtRoot) { renderer = createImageRenderer(); renderer.setTree(gvtRoot); } // Area of interest computation. AffineTransform inv; try { inv = renderingTransform.createInverse(); } catch (NoninvertibleTransformException e) { throw new IllegalStateException("NoninvertibleTransformEx:" + e.getMessage()); } Shape s = inv.createTransformedShape(visRect); // Rendering thread setup. gvtTreeRenderer = new GVTTreeRenderer( renderer, renderingTransform, doubleBufferedRendering, s, visRect.width, visRect.height); gvtTreeRenderer.setPriority(Thread.MIN_PRIORITY); Iterator it = gvtTreeRendererListeners.iterator(); while (it.hasNext()) { gvtTreeRenderer.addGVTTreeRendererListener((GVTTreeRendererListener) it.next()); } // Disable the dispatch during the rendering // to avoid concurrent access to the GVT tree. if (eventDispatcher != null) { eventDispatcher.setEventDispatchEnabled(false); } gvtTreeRenderer.start(); }
/** * Flush a rectangle of cached image data (preliminary interface, may be removed or modified in * the future). */ public void flush(Rectangle r) { renderer.flush(r); }
/** * Flush any cached image data (preliminary interface, may be removed or modified in the future). */ public void flush() { renderer.flush(); }