jdk
1/*
2* Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
3* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*
5* This code is free software; you can redistribute it and/or modify it
6* under the terms of the GNU General Public License version 2 only, as
7* published by the Free Software Foundation. Oracle designates this
8* particular file as subject to the "Classpath" exception as provided
9* by Oracle in the LICENSE file that accompanied this code.
10*
11* This code is distributed in the hope that it will be useful, but WITHOUT
12* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14* version 2 for more details (a copy is included in the LICENSE file that
15* accompanied this code).
16*
17* You should have received a copy of the GNU General Public License version
18* 2 along with this work; if not, write to the Free Software Foundation,
19* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20*
21* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22* or visit www.oracle.com if you need additional information or have any
23* questions.
24*/
25
26package java.awt;27
28import java.awt.geom.AffineTransform;29import java.awt.geom.Rectangle2D;30import java.awt.image.ColorModel;31import java.awt.image.Raster;32
33/**
34* The {@code PaintContext} interface defines the encapsulated
35* and optimized environment to generate color patterns in device
36* space for fill or stroke operations on a
37* {@link Graphics2D}. The {@code PaintContext} provides
38* the necessary colors for {@code Graphics2D} operations in the
39* form of a {@link Raster} associated with a {@link ColorModel}.
40* The {@code PaintContext} maintains state for a particular paint
41* operation. In a multi-threaded environment, several
42* contexts can exist simultaneously for a single {@link Paint} object.
43* @see Paint
44*/
45
46public interface PaintContext {47/**48* Releases the resources allocated for the operation.
49*/
50public void dispose();51
52/**53* Returns the {@code ColorModel} of the output. Note that
54* this {@code ColorModel} might be different from the hint
55* specified in the
56* {@link Paint#createContext(ColorModel, Rectangle, Rectangle2D,
57AffineTransform, RenderingHints) createContext} method of
58* {@code Paint}. Not all {@code PaintContext} objects are
59* capable of generating color patterns in an arbitrary
60* {@code ColorModel}.
61* @return the {@code ColorModel} of the output.
62*/
63ColorModel getColorModel();64
65/**66* Returns a {@code Raster} containing the colors generated for
67* the graphics operation.
68* @param x the x coordinate of the area in device space
69* for which colors are generated.
70* @param y the y coordinate of the area in device space
71* for which colors are generated.
72* @param w the width of the area in device space
73* @param h the height of the area in device space
74* @return a {@code Raster} representing the specified
75* rectangular area and containing the colors generated for
76* the graphics operation.
77*/
78Raster getRaster(int x,79int y,80int w,81int h);82
83}
84