001: /*
002:
003: Licensed to the Apache Software Foundation (ASF) under one or more
004: contributor license agreements. See the NOTICE file distributed with
005: this work for additional information regarding copyright ownership.
006: The ASF licenses this file to You under the Apache License, Version 2.0
007: (the "License"); you may not use this file except in compliance with
008: the License. You may obtain a copy of the License at
009:
010: http://www.apache.org/licenses/LICENSE-2.0
011:
012: Unless required by applicable law or agreed to in writing, software
013: distributed under the License is distributed on an "AS IS" BASIS,
014: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015: See the License for the specific language governing permissions and
016: limitations under the License.
017:
018: */
019: package org.apache.batik.gvt.renderer;
020:
021: import java.awt.geom.AffineTransform;
022: import java.awt.Rectangle;
023: import java.awt.RenderingHints;
024: import java.awt.image.BufferedImage;
025: import java.util.Collection;
026:
027: /**
028: * Interface for GVT Renderers that render into raster images.
029: *
030: * @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
031: * @version $Id: ImageRenderer.java 504760 2007-02-08 01:40:53Z deweese $
032: */
033: public interface ImageRenderer extends Renderer {
034:
035: /**
036: * release resources associated with this object.
037: */
038: void dispose();
039:
040: /**
041: * Update the required size of the offscreen buffer.
042: */
043: void updateOffScreen(int width, int height);
044:
045: /**
046: * Sets the transform from the current user space (as defined by
047: * the top node of the GVT tree, to the associated device space.
048: *
049: * @param usr2dev the new user space to device space transform. If null,
050: * the identity transform will be set.
051: */
052: void setTransform(AffineTransform usr2dev);
053:
054: /**
055: * Returns the transform from the current user space (as defined
056: * by the top node of the GVT tree) to the device space.
057: */
058: public AffineTransform getTransform();
059:
060: /**
061: * Sets the specified rendering hints to be used for future renderings.
062: * This replaces current set of rendering hints.
063: * @param rh the rendering hints to use
064: */
065: void setRenderingHints(RenderingHints rh);
066:
067: /**
068: * Returns the rendering hints this ImageRenderer is using for its
069: * rendering.
070: * @return the rendering hints being used
071: */
072: RenderingHints getRenderingHints();
073:
074: /**
075: * Get the Current offscreen buffer used for rendering
076: */
077: BufferedImage getOffScreen();
078:
079: /**
080: * Tells renderer to clear current contents of offscreen buffer
081: */
082: void clearOffScreen();
083:
084: /**
085: * Flush any cached image data (preliminary interface).
086: */
087: void flush();
088:
089: /**
090: * Flush a rectangle of cached image data (preliminary interface).
091: */
092: void flush(Rectangle r);
093:
094: /**
095: * Flush a list of rectangles of cached image data (preliminary
096: * interface). Each area are transformed via the usr2dev's renderer
097: * transform before the flush(Rectangle) is called.
098: */
099: void flush(Collection areas);
100: }
|