summaryrefslogtreecommitdiffstats
path: root/awt/java/awt/image/renderable/RenderContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'awt/java/awt/image/renderable/RenderContext.java')
-rw-r--r--awt/java/awt/image/renderable/RenderContext.java196
1 files changed, 196 insertions, 0 deletions
diff --git a/awt/java/awt/image/renderable/RenderContext.java b/awt/java/awt/image/renderable/RenderContext.java
new file mode 100644
index 0000000..3a3b93c
--- /dev/null
+++ b/awt/java/awt/image/renderable/RenderContext.java
@@ -0,0 +1,196 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * @author Igor V. Stolyarov
+ * @version $Revision$
+ */
+package java.awt.image.renderable;
+
+import java.awt.RenderingHints;
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+
+/**
+ * The Class RenderContext stores data on how an image is to be
+ * rendered: the affine transform, the area of interest, and
+ * the rendering hints.
+ */
+public class RenderContext implements Cloneable {
+
+ /** The affine transform. */
+ AffineTransform transform;
+
+ /** The area of interest. */
+ Shape aoi;
+
+ /** The rendering hints. */
+ RenderingHints hints;
+
+ /**
+ * Instantiates a new render context.
+ *
+ * @param usr2dev the affine transform
+ * @param aoi the area of interest
+ * @param hints the rendering hints
+ */
+ public RenderContext(AffineTransform usr2dev, Shape aoi, RenderingHints hints) {
+ this.transform = (AffineTransform)usr2dev.clone();
+ this.aoi = aoi;
+ this.hints = hints;
+ }
+
+ /**
+ * Instantiates a new render context with no specified hints.
+ *
+ * @param usr2dev the affine transform
+ * @param aoi the area of interest
+ */
+ public RenderContext(AffineTransform usr2dev, Shape aoi) {
+ this(usr2dev, aoi, null);
+ }
+
+ /**
+ * Instantiates a new render context with no specified area of interest.
+ *
+ * @param usr2dev the affine transform
+ * @param hints the rendering hints
+ */
+ public RenderContext(AffineTransform usr2dev, RenderingHints hints) {
+ this(usr2dev, null, hints);
+ }
+
+ /**
+ * Instantiates a new render context with no rendering hints or
+ * area of interest.
+ *
+ * @param usr2dev the affine transform
+ */
+ public RenderContext(AffineTransform usr2dev) {
+ this(usr2dev, null, null);
+ }
+
+ @Override
+ public Object clone() {
+ return new RenderContext(transform, aoi, hints);
+ }
+
+ /**
+ * Sets the affine transform for this render context.
+ *
+ * @param newTransform the new affine transform
+ */
+ public void setTransform(AffineTransform newTransform) {
+ transform = (AffineTransform)newTransform.clone();
+ }
+
+ /**
+ * Concatenates the current transform with the specified transform
+ * (so they are applied with the specified transform acting first)
+ * and sets the resulting transform as the affine transform of
+ * this rendering context.
+ *
+ * @param modTransform the new transform which modifies the
+ * current transform
+ *
+ * @deprecated use {@link RenderContext#preConcatenateTransform(AffineTransform)}
+ */
+ @Deprecated
+ public void preConcetenateTransform(AffineTransform modTransform) {
+ preConcatenateTransform(modTransform);
+ }
+
+ /**
+ * Concatenates the current transform with the specified transform
+ * (so they are applied with the specified transform acting first)
+ * and sets the resulting transform as the affine transform of
+ * this rendering context.
+ *
+ * @param modTransform the new transform which modifies the
+ * current transform
+ */
+ public void preConcatenateTransform(AffineTransform modTransform) {
+ transform.preConcatenate(modTransform);
+ }
+
+ /**
+ * Concatenate the specified transform with the current transform.
+ *
+ * @param modTransform the new transform which modifies the
+ * current transform
+ *
+ * @deprecated use {@link RenderContext#concatenateTransform(AffineTransform)}
+ */
+ @Deprecated
+ public void concetenateTransform(AffineTransform modTransform) {
+ concatenateTransform(modTransform);
+ }
+
+ /**
+ * Concatenate the specified transform with the current transform.
+ *
+ * @param modTransform the new transform which modifies the
+ * current transform
+ */
+ public void concatenateTransform(AffineTransform modTransform) {
+ transform.concatenate(modTransform);
+ }
+
+ /**
+ * Gets the transform.
+ *
+ * @return the transform
+ */
+ public AffineTransform getTransform() {
+ return (AffineTransform)transform.clone();
+ }
+
+ /**
+ * Sets the area of interest.
+ *
+ * @param newAoi the new area of interest
+ */
+ public void setAreaOfInterest(Shape newAoi) {
+ aoi = newAoi;
+ }
+
+ /**
+ * Gets the area of interest.
+ *
+ * @return the area of interest
+ */
+ public Shape getAreaOfInterest() {
+ return aoi;
+ }
+
+ /**
+ * Sets the rendering hints.
+ *
+ * @param hints the new rendering hints
+ */
+ public void setRenderingHints(RenderingHints hints) {
+ this.hints = hints;
+ }
+
+ /**
+ * Gets the rendering hints.
+ *
+ * @return the rendering hints
+ */
+ public RenderingHints getRenderingHints() {
+ return hints;
+ }
+}