Class StaticRenderer

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

public class StaticRenderer extends Object implements ImageRenderer
Simple implementation of the Renderer that simply does static rendering in an offscreen buffer image.
Version:
$Id: StaticRenderer.java 1804130 2017-08-04 14:41:11Z ssteiner $
  • Field Details

    • rootGN

      protected GraphicsNode rootGN
      Tree this Renderer paints.
    • rootFilter

      protected Filter rootFilter
    • rootCR

      protected CachableRed rootCR
    • lastCR

      protected SoftReference lastCR
    • lastCache

      protected SoftReference lastCache
    • isDoubleBuffered

      protected boolean isDoubleBuffered
      Flag for double buffering.
    • currentBaseRaster

      protected WritableRaster currentBaseRaster
      Offscreen image where the Renderer does its rendering
    • currentRaster

      protected WritableRaster currentRaster
    • currentOffScreen

      protected BufferedImage currentOffScreen
    • workingBaseRaster

      protected WritableRaster workingBaseRaster
    • workingRaster

      protected WritableRaster workingRaster
    • workingOffScreen

      protected BufferedImage workingOffScreen
    • offScreenWidth

      protected int offScreenWidth
    • offScreenHeight

      protected int offScreenHeight
    • renderingHints

      protected RenderingHints renderingHints
      Passed to the GVT tree to describe the rendering environment
    • usr2dev

      protected AffineTransform usr2dev
    • defaultRenderingHints

      protected static RenderingHints defaultRenderingHints
  • Constructor Details

    • StaticRenderer

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

      public StaticRenderer()
      Creates a new StaticRenderer object.
  • Method Details

    • dispose

      public void dispose()
      Disposes all resources of this renderer.
      Specified by:
      dispose in interface ImageRenderer
      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(RenderingHints rh)
      Description copied from interface: ImageRenderer
      Sets the specified rendering hints to be used for future renderings. This replaces current set of rendering hints.
      Specified by:
      setRenderingHints in interface ImageRenderer
      Parameters:
      rh - Set of rendering hints to use for future renderings
    • getRenderingHints

      public RenderingHints getRenderingHints()
      Description copied from interface: ImageRenderer
      Returns the rendering hints this ImageRenderer is using for its rendering.
      Specified by:
      getRenderingHints in interface ImageRenderer
      Returns:
      the RenderingHints which the Renderer is using for its rendering
    • setTransform

      public void setTransform(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 ImageRenderer
      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 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:
      getTransform in interface ImageRenderer
      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 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(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(RectListManager 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(Collection areas)
      Flush a list of rectangles of cached image data.
      Specified by:
      flush in interface ImageRenderer
    • flush

      public void flush(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.