home *** CD-ROM | disk | FTP | other *** search
/ S283 Planetary Science &n…he Search for Life DVD 2 / DVD-ROM.iso / install / jre1_3 / lib / rt.jar / sun / java2d / pipe / DuctusClipRenderer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.0 KB  |  81 lines

  1. package sun.java2d.pipe;
  2.  
  3. import java.awt.BasicStroke;
  4. import java.awt.Rectangle;
  5. import java.awt.Shape;
  6. import java.awt.geom.AffineTransform;
  7. import java.awt.geom.PathIterator;
  8. import sun.dc.pr.PRException;
  9. import sun.dc.pr.Rasterizer;
  10. import sun.java2d.SunGraphics2D;
  11.  
  12. public class DuctusClipRenderer extends DuctusRenderer implements CompositePipe {
  13.    CompositePipe outpipe;
  14.  
  15.    public DuctusClipRenderer(CompositePipe var1) {
  16.       this.outpipe = var1;
  17.    }
  18.  
  19.    public Object startSequence(SunGraphics2D var1, Shape var2, Rectangle var3, int[] var4) {
  20.       PathIterator var5 = var1.usrClip.getPathIterator((AffineTransform)null);
  21.       Rasterizer var6 = DuctusRenderer.createShapeRasterizer(var5, (AffineTransform)null, (BasicStroke)null, false, 0.0F);
  22.  
  23.       try {
  24.          var6.setOutputArea((float)var4[0], (float)var4[1], var4[2] - var4[0], var4[3] - var4[1]);
  25.       } catch (PRException var8) {
  26.          DuctusRenderer.dropRasterizer(var6);
  27.          var6 = null;
  28.       }
  29.  
  30.       return new DCRcontext(this, var6, this.outpipe.startSequence(var1, var2, var3, var4));
  31.    }
  32.  
  33.    public boolean needTile(Object var1, int var2, int var3, int var4, int var5) {
  34.       DCRcontext var6 = (DCRcontext)var1;
  35.       Rasterizer var7 = var6.rast;
  36.       var6.state = var7 == null ? 0 : var6.rast.getTileState();
  37.       return this.outpipe.needTile(var6.outcontext, var2, var3, var4, var5) && var6.state != 0;
  38.    }
  39.  
  40.    protected native void mergeAlphas(byte[] var1, byte[] var2, int var3, int var4, int var5, int var6, int var7, int var8);
  41.  
  42.    public void renderPathTile(Object var1, byte[] var2, int var3, int var4, int var5, int var6, int var7, int var8) {
  43.       DCRcontext var10 = (DCRcontext)var1;
  44.       Rasterizer var11 = var10.rast;
  45.       byte[] var9;
  46.       if (var10.state == 1) {
  47.          var11.nextTile();
  48.          var9 = var2;
  49.       } else {
  50.          var9 = var10.alpha;
  51.  
  52.          try {
  53.             DuctusRenderer.getAlpha(var11, var9, 1, var4, 0);
  54.             if (var2 != null) {
  55.                byte var12 = 8;
  56.                this.mergeAlphas(var2, var9, var3, 0, var4, var7, var8, var12);
  57.             }
  58.  
  59.             var3 = 0;
  60.          } catch (PRException var13) {
  61.             DuctusRenderer.dropRasterizer(var11);
  62.             var10.rast = null;
  63.          }
  64.       }
  65.  
  66.       this.outpipe.renderPathTile(var10.outcontext, var9, var3, var4, var5, var6, var7, var8);
  67.    }
  68.  
  69.    public void skipTile(Object var1, int var2, int var3) {
  70.       DCRcontext var4 = (DCRcontext)var1;
  71.       var4.rast.nextTile();
  72.       this.outpipe.skipTile(var4.outcontext, var2, var3);
  73.    }
  74.  
  75.    public void endSequence(Object var1) {
  76.       DCRcontext var2 = (DCRcontext)var1;
  77.       DuctusRenderer.dropRasterizer(var2.rast);
  78.       this.outpipe.endSequence(var2.outcontext);
  79.    }
  80. }
  81.