home *** CD-ROM | disk | FTP | other *** search
- package sun.java2d.pipe;
-
- import java.awt.BasicStroke;
- import java.awt.Rectangle;
- import java.awt.Shape;
- import java.awt.geom.AffineTransform;
- import java.awt.geom.PathIterator;
- import sun.dc.pr.PRException;
- import sun.dc.pr.Rasterizer;
- import sun.java2d.SunGraphics2D;
-
- public class DuctusClipRenderer extends DuctusRenderer implements CompositePipe {
- CompositePipe outpipe;
-
- public DuctusClipRenderer(CompositePipe var1) {
- this.outpipe = var1;
- }
-
- public Object startSequence(SunGraphics2D var1, Shape var2, Rectangle var3, int[] var4) {
- PathIterator var5 = var1.usrClip.getPathIterator((AffineTransform)null);
- Rasterizer var6 = DuctusRenderer.createShapeRasterizer(var5, (AffineTransform)null, (BasicStroke)null, false, 0.0F);
-
- try {
- var6.setOutputArea((float)var4[0], (float)var4[1], var4[2] - var4[0], var4[3] - var4[1]);
- } catch (PRException var8) {
- DuctusRenderer.dropRasterizer(var6);
- var6 = null;
- }
-
- return new DCRcontext(this, var6, this.outpipe.startSequence(var1, var2, var3, var4));
- }
-
- public boolean needTile(Object var1, int var2, int var3, int var4, int var5) {
- DCRcontext var6 = (DCRcontext)var1;
- Rasterizer var7 = var6.rast;
- var6.state = var7 == null ? 0 : var6.rast.getTileState();
- return this.outpipe.needTile(var6.outcontext, var2, var3, var4, var5) && var6.state != 0;
- }
-
- protected native void mergeAlphas(byte[] var1, byte[] var2, int var3, int var4, int var5, int var6, int var7, int var8);
-
- public void renderPathTile(Object var1, byte[] var2, int var3, int var4, int var5, int var6, int var7, int var8) {
- DCRcontext var10 = (DCRcontext)var1;
- Rasterizer var11 = var10.rast;
- byte[] var9;
- if (var10.state == 1) {
- var11.nextTile();
- var9 = var2;
- } else {
- var9 = var10.alpha;
-
- try {
- DuctusRenderer.getAlpha(var11, var9, 1, var4, 0);
- if (var2 != null) {
- byte var12 = 8;
- this.mergeAlphas(var2, var9, var3, 0, var4, var7, var8, var12);
- }
-
- var3 = 0;
- } catch (PRException var13) {
- DuctusRenderer.dropRasterizer(var11);
- var10.rast = null;
- }
- }
-
- this.outpipe.renderPathTile(var10.outcontext, var9, var3, var4, var5, var6, var7, var8);
- }
-
- public void skipTile(Object var1, int var2, int var3) {
- DCRcontext var4 = (DCRcontext)var1;
- var4.rast.nextTile();
- this.outpipe.skipTile(var4.outcontext, var2, var3);
- }
-
- public void endSequence(Object var1) {
- DCRcontext var2 = (DCRcontext)var1;
- DuctusRenderer.dropRasterizer(var2.rast);
- this.outpipe.endSequence(var2.outcontext);
- }
- }
-