home *** CD-ROM | disk | FTP | other *** search
- package sun.java2d.loops;
-
- import java.awt.image.BufferedImage;
- import java.lang.ref.Reference;
- import java.lang.ref.WeakReference;
- import sun.java2d.SunGraphics2D;
-
- class RasterOutputManager$RenderImageCachedState {
- private SunGraphics2D dest2D;
- private LockableRaster lrDst;
- private Object[] opState;
- private WeakReference[] srcImage;
- private WeakReference[] lrSrc;
- // $FF: synthetic field
- private final RasterOutputManager this$0;
-
- RasterOutputManager$RenderImageCachedState(RasterOutputManager var1, SunGraphics2D var2) {
- this.this$0 = var1;
- this.dest2D = var2;
- }
-
- LockableRaster getDstLR() {
- if (null == this.lrDst) {
- this.lrDst = new LockableRaster(this.dest2D);
- }
-
- return this.lrDst;
- }
-
- LockableRaster getSrcLR(BufferedImage var1) {
- int var2 = this.getIndex(var1);
- WeakReference var3 = this.lrSrc[var2];
- LockableRaster var4 = null;
- if (null != var3) {
- var4 = (LockableRaster)((Reference)var3).get();
- }
-
- if (null == var4) {
- var4 = new LockableRaster(var1);
- this.lrSrc[var2] = new WeakReference(var4);
- }
-
- return var4;
- }
-
- void setOpState(BufferedImage var1, Object var2) {
- int var3 = this.getIndex(var1);
- this.opState[var3] = var2;
- }
-
- Object getOpState(BufferedImage var1) {
- int var2 = this.getIndex(var1);
- return this.opState[var2];
- }
-
- boolean validate(SunGraphics2D var1) {
- return var1 == this.dest2D;
- }
-
- private synchronized int getIndex(BufferedImage var1) {
- if (null == this.srcImage) {
- this.srcImage = new WeakReference[10];
- this.opState = new Object[10];
- this.lrSrc = new WeakReference[10];
- this.srcImage[0] = new WeakReference(var1);
- return 0;
- } else {
- for(int var2 = 0; var2 < this.srcImage.length; ++var2) {
- WeakReference var3 = this.srcImage[var2];
- if (null != var3) {
- BufferedImage var4 = (BufferedImage)((Reference)var3).get();
- if (var4 == var1) {
- return var2;
- }
- }
- }
-
- for(int var8 = 0; var8 < this.srcImage.length; ++var8) {
- WeakReference var9 = this.srcImage[var8];
- BufferedImage var5 = null;
- if (null != var9) {
- var5 = (BufferedImage)((Reference)var9).get();
- }
-
- if (var5 == null) {
- this.srcImage[var8] = new WeakReference(var1);
- return var8;
- }
- }
-
- int var10 = this.srcImage.length;
- int var11 = var10 + 10;
- Object[] var6 = new Object[var11];
- System.arraycopy(this.opState, 0, var6, 0, var10);
- this.opState = var6;
- WeakReference[] var7 = new WeakReference[var11];
- System.arraycopy(this.lrSrc, 0, var7, 0, var10);
- this.lrSrc = var7;
- var7 = new WeakReference[var11];
- System.arraycopy(this.srcImage, 0, var7, 0, var10);
- this.srcImage = var7;
- this.srcImage[var10] = new WeakReference(var1);
- return var10;
- }
- }
- }
-