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 / loops / RasterOutputManager$RenderImageCachedState.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.0 KB  |  107 lines

  1. package sun.java2d.loops;
  2.  
  3. import java.awt.image.BufferedImage;
  4. import java.lang.ref.Reference;
  5. import java.lang.ref.WeakReference;
  6. import sun.java2d.SunGraphics2D;
  7.  
  8. class RasterOutputManager$RenderImageCachedState {
  9.    private SunGraphics2D dest2D;
  10.    private LockableRaster lrDst;
  11.    private Object[] opState;
  12.    private WeakReference[] srcImage;
  13.    private WeakReference[] lrSrc;
  14.    // $FF: synthetic field
  15.    private final RasterOutputManager this$0;
  16.  
  17.    RasterOutputManager$RenderImageCachedState(RasterOutputManager var1, SunGraphics2D var2) {
  18.       this.this$0 = var1;
  19.       this.dest2D = var2;
  20.    }
  21.  
  22.    LockableRaster getDstLR() {
  23.       if (null == this.lrDst) {
  24.          this.lrDst = new LockableRaster(this.dest2D);
  25.       }
  26.  
  27.       return this.lrDst;
  28.    }
  29.  
  30.    LockableRaster getSrcLR(BufferedImage var1) {
  31.       int var2 = this.getIndex(var1);
  32.       WeakReference var3 = this.lrSrc[var2];
  33.       LockableRaster var4 = null;
  34.       if (null != var3) {
  35.          var4 = (LockableRaster)((Reference)var3).get();
  36.       }
  37.  
  38.       if (null == var4) {
  39.          var4 = new LockableRaster(var1);
  40.          this.lrSrc[var2] = new WeakReference(var4);
  41.       }
  42.  
  43.       return var4;
  44.    }
  45.  
  46.    void setOpState(BufferedImage var1, Object var2) {
  47.       int var3 = this.getIndex(var1);
  48.       this.opState[var3] = var2;
  49.    }
  50.  
  51.    Object getOpState(BufferedImage var1) {
  52.       int var2 = this.getIndex(var1);
  53.       return this.opState[var2];
  54.    }
  55.  
  56.    boolean validate(SunGraphics2D var1) {
  57.       return var1 == this.dest2D;
  58.    }
  59.  
  60.    private synchronized int getIndex(BufferedImage var1) {
  61.       if (null == this.srcImage) {
  62.          this.srcImage = new WeakReference[10];
  63.          this.opState = new Object[10];
  64.          this.lrSrc = new WeakReference[10];
  65.          this.srcImage[0] = new WeakReference(var1);
  66.          return 0;
  67.       } else {
  68.          for(int var2 = 0; var2 < this.srcImage.length; ++var2) {
  69.             WeakReference var3 = this.srcImage[var2];
  70.             if (null != var3) {
  71.                BufferedImage var4 = (BufferedImage)((Reference)var3).get();
  72.                if (var4 == var1) {
  73.                   return var2;
  74.                }
  75.             }
  76.          }
  77.  
  78.          for(int var8 = 0; var8 < this.srcImage.length; ++var8) {
  79.             WeakReference var9 = this.srcImage[var8];
  80.             BufferedImage var5 = null;
  81.             if (null != var9) {
  82.                var5 = (BufferedImage)((Reference)var9).get();
  83.             }
  84.  
  85.             if (var5 == null) {
  86.                this.srcImage[var8] = new WeakReference(var1);
  87.                return var8;
  88.             }
  89.          }
  90.  
  91.          int var10 = this.srcImage.length;
  92.          int var11 = var10 + 10;
  93.          Object[] var6 = new Object[var11];
  94.          System.arraycopy(this.opState, 0, var6, 0, var10);
  95.          this.opState = var6;
  96.          WeakReference[] var7 = new WeakReference[var11];
  97.          System.arraycopy(this.lrSrc, 0, var7, 0, var10);
  98.          this.lrSrc = var7;
  99.          var7 = new WeakReference[var11];
  100.          System.arraycopy(this.srcImage, 0, var7, 0, var10);
  101.          this.srcImage = var7;
  102.          this.srcImage[var10] = new WeakReference(var1);
  103.          return var10;
  104.       }
  105.    }
  106. }
  107.