feat(jdk8): move files to new folder to avoid resources compiled.
This commit is contained in:
272
jdkSrc/jdk8/java/awt/image/renderable/RenderContext.java
Normal file
272
jdkSrc/jdk8/java/awt/image/renderable/RenderContext.java
Normal file
@@ -0,0 +1,272 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/* ********************************************************************
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
*** COPYRIGHT (c) Eastman Kodak Company, 1997 ***
|
||||
*** As an unpublished work pursuant to Title 17 of the United ***
|
||||
*** States Code. All rights reserved. ***
|
||||
**********************************************************************
|
||||
**********************************************************************
|
||||
**********************************************************************/
|
||||
|
||||
package java.awt.image.renderable;
|
||||
import java.util.*;
|
||||
import java.awt.geom.*;
|
||||
import java.awt.*;
|
||||
import java.awt.image.*;
|
||||
|
||||
/**
|
||||
* A RenderContext encapsulates the information needed to produce a
|
||||
* specific rendering from a RenderableImage. It contains the area to
|
||||
* be rendered specified in rendering-independent terms, the
|
||||
* resolution at which the rendering is to be performed, and hints
|
||||
* used to control the rendering process.
|
||||
*
|
||||
* <p> Users create RenderContexts and pass them to the
|
||||
* RenderableImage via the createRendering method. Most of the methods of
|
||||
* RenderContexts are not meant to be used directly by applications,
|
||||
* but by the RenderableImage and operator classes to which it is
|
||||
* passed.
|
||||
*
|
||||
* <p> The AffineTransform parameter passed into and out of this class
|
||||
* are cloned. The RenderingHints and Shape parameters are not
|
||||
* necessarily cloneable and are therefore only reference copied.
|
||||
* Altering RenderingHints or Shape instances that are in use by
|
||||
* instances of RenderContext may have undesired side effects.
|
||||
*/
|
||||
public class RenderContext implements Cloneable {
|
||||
|
||||
/** Table of hints. May be null. */
|
||||
RenderingHints hints;
|
||||
|
||||
/** Transform to convert user coordinates to device coordinates. */
|
||||
AffineTransform usr2dev;
|
||||
|
||||
/** The area of interest. May be null. */
|
||||
Shape aoi;
|
||||
|
||||
// Various constructors that allow different levels of
|
||||
// specificity. If the Shape is missing the whole renderable area
|
||||
// is assumed. If hints is missing no hints are assumed.
|
||||
|
||||
/**
|
||||
* Constructs a RenderContext with a given transform.
|
||||
* The area of interest is supplied as a Shape,
|
||||
* and the rendering hints are supplied as a RenderingHints object.
|
||||
*
|
||||
* @param usr2dev an AffineTransform.
|
||||
* @param aoi a Shape representing the area of interest.
|
||||
* @param hints a RenderingHints object containing rendering hints.
|
||||
*/
|
||||
public RenderContext(AffineTransform usr2dev,
|
||||
Shape aoi,
|
||||
RenderingHints hints) {
|
||||
this.hints = hints;
|
||||
this.aoi = aoi;
|
||||
this.usr2dev = (AffineTransform)usr2dev.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a RenderContext with a given transform.
|
||||
* The area of interest is taken to be the entire renderable area.
|
||||
* No rendering hints are used.
|
||||
*
|
||||
* @param usr2dev an AffineTransform.
|
||||
*/
|
||||
public RenderContext(AffineTransform usr2dev) {
|
||||
this(usr2dev, null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a RenderContext with a given transform and rendering hints.
|
||||
* The area of interest is taken to be the entire renderable area.
|
||||
*
|
||||
* @param usr2dev an AffineTransform.
|
||||
* @param hints a RenderingHints object containing rendering hints.
|
||||
*/
|
||||
public RenderContext(AffineTransform usr2dev, RenderingHints hints) {
|
||||
this(usr2dev, null, hints);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a RenderContext with a given transform and area of interest.
|
||||
* The area of interest is supplied as a Shape.
|
||||
* No rendering hints are used.
|
||||
*
|
||||
* @param usr2dev an AffineTransform.
|
||||
* @param aoi a Shape representing the area of interest.
|
||||
*/
|
||||
public RenderContext(AffineTransform usr2dev, Shape aoi) {
|
||||
this(usr2dev, aoi, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the rendering hints of this <code>RenderContext</code>.
|
||||
* @return a <code>RenderingHints</code> object that represents
|
||||
* the rendering hints of this <code>RenderContext</code>.
|
||||
* @see #setRenderingHints(RenderingHints)
|
||||
*/
|
||||
public RenderingHints getRenderingHints() {
|
||||
return hints;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the rendering hints of this <code>RenderContext</code>.
|
||||
* @param hints a <code>RenderingHints</code> object that represents
|
||||
* the rendering hints to assign to this <code>RenderContext</code>.
|
||||
* @see #getRenderingHints
|
||||
*/
|
||||
public void setRenderingHints(RenderingHints hints) {
|
||||
this.hints = hints;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current user-to-device AffineTransform contained
|
||||
* in the RenderContext to a given transform.
|
||||
*
|
||||
* @param newTransform the new AffineTransform.
|
||||
* @see #getTransform
|
||||
*/
|
||||
public void setTransform(AffineTransform newTransform) {
|
||||
usr2dev = (AffineTransform)newTransform.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifies the current user-to-device transform by prepending another
|
||||
* transform. In matrix notation the operation is:
|
||||
* <pre>
|
||||
* [this] = [modTransform] x [this]
|
||||
* </pre>
|
||||
*
|
||||
* @param modTransform the AffineTransform to prepend to the
|
||||
* current usr2dev transform.
|
||||
* @since 1.3
|
||||
*/
|
||||
public void preConcatenateTransform(AffineTransform modTransform) {
|
||||
this.preConcetenateTransform(modTransform);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifies the current user-to-device transform by prepending another
|
||||
* transform. In matrix notation the operation is:
|
||||
* <pre>
|
||||
* [this] = [modTransform] x [this]
|
||||
* </pre>
|
||||
* This method does the same thing as the preConcatenateTransform
|
||||
* method. It is here for backward compatibility with previous releases
|
||||
* which misspelled the method name.
|
||||
*
|
||||
* @param modTransform the AffineTransform to prepend to the
|
||||
* current usr2dev transform.
|
||||
* @deprecated replaced by
|
||||
* <code>preConcatenateTransform(AffineTransform)</code>.
|
||||
*/
|
||||
@Deprecated
|
||||
public void preConcetenateTransform(AffineTransform modTransform) {
|
||||
usr2dev.preConcatenate(modTransform);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifies the current user-to-device transform by appending another
|
||||
* transform. In matrix notation the operation is:
|
||||
* <pre>
|
||||
* [this] = [this] x [modTransform]
|
||||
* </pre>
|
||||
*
|
||||
* @param modTransform the AffineTransform to append to the
|
||||
* current usr2dev transform.
|
||||
* @since 1.3
|
||||
*/
|
||||
public void concatenateTransform(AffineTransform modTransform) {
|
||||
this.concetenateTransform(modTransform);
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifies the current user-to-device transform by appending another
|
||||
* transform. In matrix notation the operation is:
|
||||
* <pre>
|
||||
* [this] = [this] x [modTransform]
|
||||
* </pre>
|
||||
* This method does the same thing as the concatenateTransform
|
||||
* method. It is here for backward compatibility with previous releases
|
||||
* which misspelled the method name.
|
||||
*
|
||||
* @param modTransform the AffineTransform to append to the
|
||||
* current usr2dev transform.
|
||||
* @deprecated replaced by
|
||||
* <code>concatenateTransform(AffineTransform)</code>.
|
||||
*/
|
||||
@Deprecated
|
||||
public void concetenateTransform(AffineTransform modTransform) {
|
||||
usr2dev.concatenate(modTransform);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the current user-to-device AffineTransform.
|
||||
*
|
||||
* @return a reference to the current AffineTransform.
|
||||
* @see #setTransform(AffineTransform)
|
||||
*/
|
||||
public AffineTransform getTransform() {
|
||||
return (AffineTransform)usr2dev.clone();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the current area of interest. The old area is discarded.
|
||||
*
|
||||
* @param newAoi The new area of interest.
|
||||
* @see #getAreaOfInterest
|
||||
*/
|
||||
public void setAreaOfInterest(Shape newAoi) {
|
||||
aoi = newAoi;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ares of interest currently contained in the
|
||||
* RenderContext.
|
||||
*
|
||||
* @return a reference to the area of interest of the RenderContext,
|
||||
* or null if none is specified.
|
||||
* @see #setAreaOfInterest(Shape)
|
||||
*/
|
||||
public Shape getAreaOfInterest() {
|
||||
return aoi;
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes a copy of a RenderContext. The area of interest is copied
|
||||
* by reference. The usr2dev AffineTransform and hints are cloned,
|
||||
* while the area of interest is copied by reference.
|
||||
*
|
||||
* @return the new cloned RenderContext.
|
||||
*/
|
||||
public Object clone() {
|
||||
RenderContext newRenderContext = new RenderContext(usr2dev,
|
||||
aoi, hints);
|
||||
return newRenderContext;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user