/* * 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 Alexey A. Petrenko * @version $Revision$ */ package java.awt; import java.awt.geom.AffineTransform; import java.awt.image.BufferedImage; import java.awt.image.ColorModel; import java.awt.image.VolatileImage; import org.apache.harmony.awt.internal.nls.Messages; /** * The GraphicsConfiguration class contains the characteristics of graphics * devices such as a printer or monitor, and represents device's capabilities * and modes. Many GraphicsConfiguration objects can be associated with single * graphics device. * * @since Android 1.0 */ public abstract class GraphicsConfiguration { /** * Constructor could not be used directly and should be obtained in extended * classes. */ protected GraphicsConfiguration() { } /** * Creates BufferedImage image object with a data layout and color model * compatible with this GraphicsConfiguration with specified width and * height parameters. * * @param width * the width of BufferedImage. * @param height * the height of BufferedImage. * @return the BufferedImage object with specified width and height * parameters. */ public abstract BufferedImage createCompatibleImage(int width, int height); /** * Creates a BufferedImage that has the specified width, height, * transparency and has a data layout and color model compatible with this * GraphicsConfiguration. * * @param width * the width of image. * @param height * the height of image. * @param transparency * the transparency mode. * @return the BufferedImage object. */ public abstract BufferedImage createCompatibleImage(int width, int height, int transparency); /** * Creates a VolatileImage that has the specified width and height and has a * data layout and color model compatible with this GraphicsConfiguration. * * @param width * the width of image. * @param height * the height of image. * @return the VolatileImage object. */ public abstract VolatileImage createCompatibleVolatileImage(int width, int height); /** * Creates a VolatileImage that supports the specified width, height, * transparency and has a data layout and color model compatible with this * GraphicsConfiguration. * * @param width * the width of image. * @param height * the height of image. * @param transparency * the transparency mode. * @return the VolatileImage object. */ public abstract VolatileImage createCompatibleVolatileImage(int width, int height, int transparency); /** * Gets the bounds of area covered by the GraphicsConfiguration in the * device coordinates space. * * @return the Rectangle of GraphicsConfiguration's bounds. */ public abstract Rectangle getBounds(); /** * Gets the ColorModel of the GraphicsConfiguration. * * @return the ColorModel object of the GraphicsConfiguration. */ public abstract ColorModel getColorModel(); /** * Gets the ColorModel of the GraphicsConfiguration which supports specified * Transparency. * * @param transparency * the Transparency mode: OPAQUE, BITMASK, or TRANSLUCENT. * @return the ColorModel of the GraphicsConfiguration which supports * specified Transparency. */ public abstract ColorModel getColorModel(int transparency); /** * Gets the default AffineTransform of the GraphicsConfiguration. This * method translates user coordinates to device coordinates. * * @return the default AffineTransform of the GraphicsConfiguration. */ public abstract AffineTransform getDefaultTransform(); /** * Gets the GraphicsDevice of the GraphicsConfiguration. * * @return the GraphicsDevice of the GraphicsConfiguration. */ public abstract GraphicsDevice getDevice(); /** * Gets the normalizing AffineTransform of the GraphicsConfiguration. * * @return the normalizing AffineTransform of the GraphicsConfiguration. */ public abstract AffineTransform getNormalizingTransform(); /** * Creates VolatileImage with specified width, height, ImageCapabilities; a * data layout and color model compatible with this GraphicsConfiguration. * * @param width * the width of image. * @param height * the height of image. * @param caps * the ImageCapabilities object. * @return the VolatileImage which data layout and color model compatible * with this GraphicsConfiguration. * @throws AWTException * if ImageCapabilities is not supported by the * GraphicsConfiguration. */ public VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps) throws AWTException { VolatileImage res = createCompatibleVolatileImage(width, height); if (!res.getCapabilities().equals(caps)) { // awt.14A=Can not create VolatileImage with specified capabilities throw new AWTException(Messages.getString("awt.14A")); //$NON-NLS-1$ } return res; } /** * Creates a VolatileImage with specified width, height, transparency and * ImageCapabilities; a data layout and color model compatible with this * GraphicsConfiguration. * * @param width * the width of image. * @param height * the height of image. * @param caps * the ImageCapabilities object. * @param transparency * the Transparency mode: OPAQUE, BITMASK, or TRANSLUCENT. * @return the VolatileImage which data layout and color model compatible * with this GraphicsConfiguration. * @throws AWTException * if ImageCapabilities is not supported by the * GraphicsConfiguration. */ public VolatileImage createCompatibleVolatileImage(int width, int height, ImageCapabilities caps, int transparency) throws AWTException { VolatileImage res = createCompatibleVolatileImage(width, height, transparency); if (!res.getCapabilities().equals(caps)) { // awt.14A=Can not create VolatileImage with specified capabilities throw new AWTException(Messages.getString("awt.14A")); //$NON-NLS-1$ } return res; } /** * Gets the buffering capabilities of the GraphicsConfiguration. * * @return the BufferCapabilities object. */ public BufferCapabilities getBufferCapabilities() { return new BufferCapabilities(new ImageCapabilities(false), new ImageCapabilities(false), BufferCapabilities.FlipContents.UNDEFINED); } /** * Gets the image capabilities of the GraphicsConfiguration. * * @return the ImageCapabilities object. */ public ImageCapabilities getImageCapabilities() { return new ImageCapabilities(false); } }