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 / java / awt / AlphaCompositeContext.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.3 KB  |  92 lines

  1. package java.awt;
  2.  
  3. import java.awt.image.BufferedImage;
  4. import java.awt.image.ColorModel;
  5. import java.awt.image.IndexColorModel;
  6. import java.awt.image.Raster;
  7. import java.awt.image.WritableRaster;
  8. import java.util.Hashtable;
  9. import sun.awt.image.IntegerComponentRaster;
  10. import sun.java2d.loops.RasterOutputManager;
  11.  
  12. class AlphaCompositeContext implements CompositeContext {
  13.    ColorModel srcCM;
  14.    ColorModel dstCM;
  15.    boolean srcNeedConvert;
  16.    boolean dstNeedConvert;
  17.    int rule;
  18.    float extraAlpha;
  19.  
  20.    public AlphaCompositeContext(ColorModel var1, ColorModel var2, int var3, float var4) {
  21.       this.srcCM = var1;
  22.       if (this.srcCM.equals(ColorModel.getRGBdefault())) {
  23.          this.srcNeedConvert = false;
  24.       } else {
  25.          this.srcNeedConvert = true;
  26.       }
  27.  
  28.       this.dstCM = var2;
  29.       if (this.dstCM.equals(ColorModel.getRGBdefault())) {
  30.          this.dstNeedConvert = false;
  31.       } else {
  32.          this.dstNeedConvert = true;
  33.       }
  34.  
  35.       this.rule = var3;
  36.       this.extraAlpha = var4;
  37.    }
  38.  
  39.    WritableRaster convertRaster(Raster var1, ColorModel var2, ColorModel var3) {
  40.       if (var2 instanceof IndexColorModel && var3.equals(ColorModel.getRGBdefault())) {
  41.          IndexColorModel var7 = (IndexColorModel)var2;
  42.          BufferedImage var8 = var7.convertToIntDiscrete(var1, false);
  43.          return var8.getRaster();
  44.       } else {
  45.          BufferedImage var4 = new BufferedImage(var3, var3.createCompatibleWritableRaster(var1.getWidth(), var1.getHeight()), var3.isAlphaPremultiplied(), (Hashtable)null);
  46.  
  47.          for(int var5 = 0; var5 < var1.getHeight(); ++var5) {
  48.             for(int var6 = 0; var6 < var1.getWidth(); ++var6) {
  49.                var4.setRGB(var6, var5, var2.getRGB(var1.getDataElements(var6, var5, (Object)null)));
  50.             }
  51.          }
  52.  
  53.          return var4.getRaster();
  54.       }
  55.    }
  56.  
  57.    public void dispose() {
  58.    }
  59.  
  60.    public void compose(Raster var1, Raster var2, WritableRaster var3) {
  61.       WritableRaster var6 = var3;
  62.       if (this.srcNeedConvert) {
  63.          var1 = this.convertRaster((Raster)var1, this.srcCM, ColorModel.getRGBdefault());
  64.          var2 = this.convertRaster((Raster)var2, this.srcCM, ColorModel.getRGBdefault());
  65.       }
  66.  
  67.       if (this.dstNeedConvert && var3 != var1 && var3 != var2) {
  68.          var3 = this.convertRaster(var3, this.dstCM, ColorModel.getRGBdefault());
  69.       }
  70.  
  71.       IntegerComponentRaster var4;
  72.       if (var3 == var1) {
  73.          var4 = (IntegerComponentRaster)var2;
  74.       } else if (var3 == var2) {
  75.          var4 = (IntegerComponentRaster)var1;
  76.       } else {
  77.          var3.setDataElements(0, 0, (Raster)var2);
  78.          var4 = (IntegerComponentRaster)var1;
  79.       }
  80.  
  81.       IntegerComponentRaster var5 = (IntegerComponentRaster)var3;
  82.       int var7 = Math.min(((Raster)var4).getWidth(), ((Raster)var5).getWidth());
  83.       int var8 = Math.min(((Raster)var4).getHeight(), ((Raster)var5).getHeight());
  84.       RasterOutputManager.ARGBpaintARGB(var4, false, var5, this.rule, this.extraAlpha, (byte[])null, 0, 0, 0, 0, 0, 0, var7, var8, 0);
  85.       if (this.dstNeedConvert) {
  86.          var3 = this.convertRaster(var3, ColorModel.getRGBdefault(), this.dstCM);
  87.          var6.setDataElements(0, 0, var3);
  88.       }
  89.  
  90.    }
  91. }
  92.