Package org.apache.batik.gvt.renderer
Class MacRenderer
- java.lang.Object
-
- org.apache.batik.gvt.renderer.MacRenderer
-
- All Implemented Interfaces:
ImageRenderer,Renderer
public class MacRenderer extends java.lang.Object implements ImageRenderer
Simple implementation of the Renderer that supports dynamic updates.- Version:
- $Id: MacRenderer.java 1804130 2017-08-04 14:41:11Z ssteiner $
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static intCOPY_LINE_OVERHEAD(package private) static intCOPY_OVERHEADprotected java.awt.image.BufferedImagecurrImgprotected RectListManagerdamagedAreasprotected static java.awt.RenderingHintsdefaultRenderingHints(package private) static java.awt.geom.AffineTransformIDENTITYstatic intIMAGE_TYPEprotected booleanisDoubleBufferedprotected intoffScreenHeightprotected intoffScreenWidthprotected java.awt.RenderingHintsrenderingHintsprotected GraphicsNoderootGNstatic java.awt.ColorTRANSPARENT_WHITEprotected java.awt.geom.AffineTransformusr2devprotected java.awt.image.BufferedImageworkImg
-
Constructor Summary
Constructors Constructor Description MacRenderer()Constructs a new dynamic renderer with the specified buffer image.MacRenderer(java.awt.RenderingHints rh, java.awt.geom.AffineTransform at)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclearOffScreen()Sets up and clears the current offscreen buffer.voiddispose()release resources associated with this object.voidflush()Flush any cached image data (preliminary interface).voidflush(java.awt.Rectangle r)Flush a rectangle of cached image data (preliminary interface).voidflush(java.util.Collection areas)Flush a list of rectangles of cached image data.java.awt.image.BufferedImagegetOffScreen()Returns the current offscreen image.java.awt.RenderingHintsgetRenderingHints()Returns the rendering hints this ImageRenderer is using for its rendering.java.awt.geom.AffineTransformgetTransform()Returns the transform from the current user space (as defined by the top node of the GVT tree) to the device space.GraphicsNodegetTree()Returns the GVT tree associated with this rendererbooleanisDoubleBuffered()Returns true if the Renderer is currently doubleBuffering is rendering requests.voidrepaint(java.awt.Shape area)Repaints the associated GVT tree at least underarea.voidrepaint(RectListManager devRLM)Repaints the associated GVT tree under the list ofareas.voidsetDoubleBuffered(boolean isDoubleBuffered)Turns on/off double buffering in renderer.voidsetRenderingHints(java.awt.RenderingHints rh)Sets the specified rendering hints to be used for future renderings.voidsetTransform(java.awt.geom.AffineTransform usr2dev)Sets the transform from the current user space (as defined by the top node of the GVT tree, to the associated device space.voidsetTree(GraphicsNode treeRoot)This associates the given GVT Tree with this renderer.voidupdateOffScreen(int width, int height)Update the size of the image to be returned by getOffScreen.protected voidupdateWorkingBuffers()
-
-
-
Field Detail
-
COPY_OVERHEAD
static final int COPY_OVERHEAD
- See Also:
- Constant Field Values
-
COPY_LINE_OVERHEAD
static final int COPY_LINE_OVERHEAD
- See Also:
- Constant Field Values
-
IDENTITY
static final java.awt.geom.AffineTransform IDENTITY
-
renderingHints
protected java.awt.RenderingHints renderingHints
-
usr2dev
protected java.awt.geom.AffineTransform usr2dev
-
rootGN
protected GraphicsNode rootGN
-
offScreenWidth
protected int offScreenWidth
-
offScreenHeight
protected int offScreenHeight
-
isDoubleBuffered
protected boolean isDoubleBuffered
-
currImg
protected java.awt.image.BufferedImage currImg
-
workImg
protected java.awt.image.BufferedImage workImg
-
damagedAreas
protected RectListManager damagedAreas
-
IMAGE_TYPE
public static int IMAGE_TYPE
-
TRANSPARENT_WHITE
public static java.awt.Color TRANSPARENT_WHITE
-
defaultRenderingHints
protected static java.awt.RenderingHints defaultRenderingHints
-
-
Method Detail
-
dispose
public void dispose()
Description copied from interface:ImageRendererrelease resources associated with this object.- Specified by:
disposein interfaceImageRenderer- Specified by:
disposein interfaceRenderer
-
setTree
public void setTree(GraphicsNode treeRoot)
This associates the given GVT Tree with this renderer. Any previous tree association is forgotten. Not certain if this should be just GraphicsNode, or CanvasGraphicsNode.
-
getTree
public GraphicsNode getTree()
Returns the GVT tree associated with this renderer
-
setTransform
public void setTransform(java.awt.geom.AffineTransform usr2dev)
Sets the transform from the current user space (as defined by the top node of the GVT tree, to the associated device space.- Specified by:
setTransformin interfaceImageRenderer- Specified by:
setTransformin interfaceRenderer- Parameters:
usr2dev- the new user space to device space transform. If null, the identity transform will be set.
-
getTransform
public java.awt.geom.AffineTransform getTransform()
Returns the transform from the current user space (as defined by the top node of the GVT tree) to the device space.- Specified by:
getTransformin interfaceImageRenderer- Specified by:
getTransformin interfaceRenderer
-
setRenderingHints
public void setRenderingHints(java.awt.RenderingHints rh)
Description copied from interface:ImageRendererSets the specified rendering hints to be used for future renderings. This replaces current set of rendering hints.- Specified by:
setRenderingHintsin interfaceImageRenderer- Parameters:
rh- Set of rendering hints to use for future renderings
-
getRenderingHints
public java.awt.RenderingHints getRenderingHints()
Description copied from interface:ImageRendererReturns the rendering hints this ImageRenderer is using for its rendering.- Specified by:
getRenderingHintsin interfaceImageRenderer- Returns:
- the RenderingHints which the Renderer is using for its rendering
-
isDoubleBuffered
public boolean isDoubleBuffered()
Returns true if the Renderer is currently doubleBuffering is rendering requests. If it is then getOffscreen will only return completed renderings (or null if nothing is available).- Specified by:
isDoubleBufferedin interfaceRenderer
-
setDoubleBuffered
public void setDoubleBuffered(boolean isDoubleBuffered)
Turns on/off double buffering in renderer. Turning off double buffering makes it possible to see the ongoing results of a render operation.- Specified by:
setDoubleBufferedin interfaceRenderer- Parameters:
isDoubleBuffered- the new value for double buffering
-
updateOffScreen
public void updateOffScreen(int width, int height)Update the size of the image to be returned by getOffScreen. Note that this change will not be reflected by calls to getOffscreen until either clearOffScreen has completed (when isDoubleBuffered is false) or reapint has completed (when isDoubleBuffered is true).- Specified by:
updateOffScreenin interfaceImageRenderer
-
getOffScreen
public java.awt.image.BufferedImage getOffScreen()
Returns the current offscreen image. The exact symantics of this vary base on the value of isDoubleBuffered. If isDoubleBuffered is false this will return the image currently being worked on as soon as it is available. if isDoubleBuffered is false this will return the most recently completed result of repaint.- Specified by:
getOffScreenin interfaceImageRenderer
-
clearOffScreen
public void clearOffScreen()
Sets up and clears the current offscreen buffer. When not double buffering one should call this method before calling getOffscreen to get the offscreen being drawn into. This ensures the buffer is up to date and doesn't contain junk. When double buffering this call can effectively be skipped, since getOffscreen will only refect the new rendering after repaint completes.- Specified by:
clearOffScreenin interfaceImageRenderer
-
flush
public void flush()
Description copied from interface:ImageRendererFlush any cached image data (preliminary interface).- Specified by:
flushin interfaceImageRenderer
-
flush
public void flush(java.awt.Rectangle r)
Description copied from interface:ImageRendererFlush a rectangle of cached image data (preliminary interface).- Specified by:
flushin interfaceImageRenderer
-
flush
public void flush(java.util.Collection areas)
Flush a list of rectangles of cached image data.- Specified by:
flushin interfaceImageRenderer
-
updateWorkingBuffers
protected void updateWorkingBuffers()
-
repaint
public void repaint(java.awt.Shape area)
Description copied from interface:RendererRepaints the associated GVT tree at least underarea.
-
repaint
public void repaint(RectListManager devRLM)
Repaints the associated GVT tree under the list ofareas. If double buffered is true and this method completes cleanly it will set the result of the repaint as the image returned by getOffscreen otherwise the old image will still be returned. If double buffered is false it is possible some effects of the failed rendering will be visible in the image returned by getOffscreen.
-
-