org.apache.batik.gvt.renderer
Class StaticRenderer

java.lang.Object
  |
  +--org.apache.batik.gvt.renderer.StaticRenderer
All Implemented Interfaces:
ImageRenderer, Renderer
Direct Known Subclasses:
DynamicRenderer

public class StaticRenderer
extends java.lang.Object
implements ImageRenderer

Simple implementation of the Renderer that simply does static rendering in an offscreen buffer image.


Field Summary
protected  java.awt.image.WritableRaster currentBaseRaster
          Offscreen image where the Renderer does its rendering
protected  java.awt.image.BufferedImage currentOffScreen
           
protected  java.awt.image.WritableRaster currentRaster
           
protected static java.awt.RenderingHints defaultRenderingHints
           
protected  boolean isDoubleBuffered
          Flag for double buffering.
protected  java.lang.ref.SoftReference lastCache
           
protected  java.lang.ref.SoftReference lastCR
           
protected  int offScreenHeight
           
protected  int offScreenWidth
           
protected  java.awt.RenderingHints renderingHints
          Passed to the GVT tree to describe the rendering environment
protected  CachableRed rootCR
           
protected  Filter rootFilter
           
protected  GraphicsNode rootGN
          Tree this Renderer paints.
protected  java.awt.geom.AffineTransform usr2dev
           
protected  java.awt.image.WritableRaster workingBaseRaster
           
protected  java.awt.image.BufferedImage workingOffScreen
           
protected  java.awt.image.WritableRaster workingRaster
           
 
Constructor Summary
StaticRenderer()
           
StaticRenderer(java.awt.RenderingHints rh, java.awt.geom.AffineTransform at)
           
 
Method Summary
 void clearOffScreen()
          Sets up and clears the current offscreen buffer.
 void dispose()
          Disposes all resources of this renderer.
 void flush()
          Flush any cached image data.
 void flush(java.util.List areas)
          Flush a list of rectangles of cached image data.
 void flush(java.awt.Rectangle r)
          Flush a rectangle of cached image data.
 java.awt.image.BufferedImage getOffScreen()
          Returns the current offscreen image.
 java.awt.RenderingHints getRenderingHints()
           
 java.awt.geom.AffineTransform getTransform()
          Returns a copy of the transform from the current user space (as defined by the top node of the GVT tree) to the device space (1 unit = 1/72nd of an inch / 1 pixel, roughly speaking
 GraphicsNode getTree()
          Returns the GVT tree associated with this renderer
 boolean isDoubleBuffered()
          Returns true if the Renderer is currently doubleBuffering is rendering requests.
protected  CachableRed renderGNR()
           
 void repaint(java.util.List areas)
          Repaints the associated GVT tree under the list of areas.
 void repaint(java.awt.Shape area)
          Repaints the associated GVT tree under area.
 void setDoubleBuffered(boolean isDoubleBuffered)
          Turns on/off double buffering in renderer.
 void setRenderingHints(java.awt.RenderingHints rh)
           
 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.
 void setTree(GraphicsNode rootGN)
          This associates the given GVT Tree with this renderer.
protected  CachableRed setupCache(CachableRed img)
           
 void updateOffScreen(int width, int height)
          Update the size of the image to be returned by getOffScreen.
protected  void updateWorkingBuffers()
          Internal method used to synchronize local state in response to various set methods.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rootGN

protected GraphicsNode rootGN
Tree this Renderer paints.

rootFilter

protected Filter rootFilter

rootCR

protected CachableRed rootCR

lastCR

protected java.lang.ref.SoftReference lastCR

lastCache

protected java.lang.ref.SoftReference lastCache

isDoubleBuffered

protected boolean isDoubleBuffered
Flag for double buffering.

currentBaseRaster

protected java.awt.image.WritableRaster currentBaseRaster
Offscreen image where the Renderer does its rendering

currentRaster

protected java.awt.image.WritableRaster currentRaster

currentOffScreen

protected java.awt.image.BufferedImage currentOffScreen

workingBaseRaster

protected java.awt.image.WritableRaster workingBaseRaster

workingRaster

protected java.awt.image.WritableRaster workingRaster

workingOffScreen

protected java.awt.image.BufferedImage workingOffScreen

offScreenWidth

protected int offScreenWidth

offScreenHeight

protected int offScreenHeight

renderingHints

protected java.awt.RenderingHints renderingHints
Passed to the GVT tree to describe the rendering environment

usr2dev

protected java.awt.geom.AffineTransform usr2dev

defaultRenderingHints

protected static java.awt.RenderingHints defaultRenderingHints
Constructor Detail

StaticRenderer

public StaticRenderer(java.awt.RenderingHints rh,
                      java.awt.geom.AffineTransform at)
Parameters:
rh - Hints for rendering.
at - Starting user to device coordinate system transform.

StaticRenderer

public StaticRenderer()
Parameters:
offScreen - image where the Renderer should do its rendering
Method Detail

dispose

public void dispose()
Disposes all resources of this renderer.
Specified by:
dispose in interface Renderer

setTree

public void setTree(GraphicsNode rootGN)
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.
Specified by:
setTree in interface Renderer

getTree

public GraphicsNode getTree()
Description copied from interface: Renderer
Returns the GVT tree associated with this renderer
Specified by:
getTree in interface Renderer
Returns:
the GVT tree associated with this renderer

setRenderingHints

public void setRenderingHints(java.awt.RenderingHints rh)
Parameters:
rh - Set of rendering hints to use for future renderings

getRenderingHints

public java.awt.RenderingHints getRenderingHints()
Returns:
the RenderingHints which the Renderer is using for its rendering

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:
setTransform in interface Renderer
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 a copy of the transform from the current user space (as defined by the top node of the GVT tree) to the device space (1 unit = 1/72nd of an inch / 1 pixel, roughly speaking
Specified by:
getTransform in interface Renderer

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:
isDoubleBuffered in interface Renderer

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:
setDoubleBuffered in interface Renderer
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:
updateOffScreen in interface ImageRenderer

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:
getOffScreen in interface ImageRenderer

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:
clearOffScreen in interface ImageRenderer

repaint

public void repaint(java.awt.Shape area)
Repaints the associated GVT tree under area. 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.
Specified by:
repaint in interface Renderer
Parameters:
area - region to be repainted, in the current user space coordinate system.

repaint

public void repaint(java.util.List areas)
Repaints the associated GVT tree under the list of areas. 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.
Specified by:
repaint in interface Renderer
Parameters:
areas - a List of regions to be repainted, in the current user space coordinate system.

flush

public void flush()
Flush any cached image data.
Specified by:
flush in interface ImageRenderer

flush

public void flush(java.util.List areas)
Flush a list of rectangles of cached image data.
Specified by:
flush in interface ImageRenderer

flush

public void flush(java.awt.Rectangle r)
Flush a rectangle of cached image data.
Specified by:
flush in interface ImageRenderer

setupCache

protected CachableRed setupCache(CachableRed img)

renderGNR

protected CachableRed renderGNR()

updateWorkingBuffers

protected void updateWorkingBuffers()
Internal method used to synchronize local state in response to various set methods.


Copyright © 2002 Apache Software Foundation. All Rights Reserved.