01: /*
02: * Copyright 1997-1999 Sun Microsystems, Inc. All Rights Reserved.
03: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
04: *
05: * This code is free software; you can redistribute it and/or modify it
06: * under the terms of the GNU General Public License version 2 only, as
07: * published by the Free Software Foundation. Sun designates this
08: * particular file as subject to the "Classpath" exception as provided
09: * by Sun 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22: * CA 95054 USA or visit www.sun.com if you need additional information or
23: * have any questions.
24: */
25:
26: package sun.java2d.pipe;
27:
28: import java.awt.Rectangle;
29: import java.awt.Shape;
30: import sun.java2d.SunGraphics2D;
31:
32: /**
33: * This class implements a CompositePipe that renders path alpha tiles
34: * into a destination that supports direct alpha compositing of a solid
35: * color, according to one of the rules in the AlphaComposite class.
36: */
37: public class AlphaColorPipe implements CompositePipe {
38: public AlphaColorPipe() {
39: }
40:
41: public Object startSequence(SunGraphics2D sg, Shape s,
42: Rectangle dev, int[] abox) {
43: return sg;
44: }
45:
46: public boolean needTile(Object context, int x, int y, int w, int h) {
47: return true;
48: }
49:
50: public void renderPathTile(Object context, byte[] atile,
51: int offset, int tilesize, int x, int y, int w, int h) {
52: SunGraphics2D sg = (SunGraphics2D) context;
53:
54: sg.alphafill.MaskFill(sg, sg.getSurfaceData(), sg.composite, x,
55: y, w, h, atile, offset, tilesize);
56: }
57:
58: public void skipTile(Object context, int x, int y) {
59: return;
60: }
61:
62: public void endSequence(Object context) {
63: return;
64: }
65: }
|