home *** CD-ROM | disk | FTP | other *** search
- import java.awt.Image;
- import java.awt.Point;
- import java.awt.image.ColorModel;
- import java.awt.image.ImageConsumer;
- import java.awt.image.ImageProducer;
- import java.util.Hashtable;
-
- final class Bitmap implements ImageConsumer {
- // $FF: renamed from: â int
- int field_0;
- // $FF: renamed from: ã int
- int field_1;
- // $FF: renamed from: Ń int
- int field_2;
- // $FF: renamed from: è byte[]
- byte[] field_3;
- // $FF: renamed from: é int[]
- int[] field_4;
- // $FF: renamed from: ń java.awt.image.ColorModel
- ColorModel field_5;
- // $FF: renamed from: ─ì DisplayList
- DisplayList field_6;
- // $FF: renamed from: Ņ boolean
- private boolean field_7;
- // $FF: renamed from: ņ boolean
- private boolean field_8;
- // $FF: renamed from: É int
- private int field_9;
- // $FF: renamed from: Ň java.awt.image.ImageProducer
- private ImageProducer field_10;
- // $FF: renamed from: ň int[][][]
- private static int[][][] field_11 = new int[8][8][4];
- // $FF: renamed from: ʼn int[]
- private static int[] field_12;
- // $FF: renamed from: n int
- private int field_13;
- // $FF: renamed from: ce int[]
- private int[] field_14;
-
- Bitmap(ImageProducer var1, DisplayList var2) {
- this.field_14 = new int[4];
- this.field_10 = var1;
- this.field_6 = var2;
- var1.startProduction(this);
- this.method_0();
- }
-
- Bitmap(Image var1, DisplayList var2) {
- this(var1.getSource(), var2);
- var1.flush();
- }
-
- Bitmap(int[] var1, int var2, int var3, DisplayList var4) {
- this.field_14 = new int[4];
- this.field_4 = var1;
- this.field_0 = var2;
- this.field_1 = var3;
- this.field_6 = var4;
- this.field_2 = 32;
- }
-
- Bitmap(byte[] var1, int var2, int var3, DisplayList var4) {
- this.field_14 = new int[4];
- this.field_3 = var1;
- this.field_0 = var2;
- this.field_1 = var3;
- this.field_6 = var4;
- this.field_2 = 8;
- }
-
- // $FF: renamed from: Ń () void
- synchronized void method_0() {
- this.field_8 = true;
-
- try {
- while(this.field_8 && this.field_10 != null) {
- this.wait();
- }
- } catch (InterruptedException var6) {
- this.field_3 = null;
- this.field_4 = null;
- this.field_0 = this.field_1 = 0;
- this.field_7 = false;
- } finally {
- this.field_8 = false;
- this.field_10 = null;
- int[] var10000;
- if (this.field_7 && this.field_4 != null) {
- for(int var3 = this.field_0 * this.field_1; var3 > 0; var10000[var3] |= -16777216) {
- --var3;
- var10000 = this.field_4;
- }
- }
-
- }
-
- }
-
- public synchronized void imageComplete(int var1) {
- this.field_7 = var1 == 3;
- this.field_8 = false;
- switch (var1) {
- case 1:
- default:
- this.field_9 |= 192;
- break;
- case 2:
- this.field_9 |= 16;
- break;
- case 3:
- this.field_9 |= 32;
- break;
- case 4:
- this.field_9 |= 128;
- }
-
- if (this.field_10 != null) {
- this.field_10.removeConsumer(this);
- }
-
- this.field_10 = null;
- this.notify();
- }
-
- public void setColorModel(ColorModel var1) {
- this.field_5 = var1;
- }
-
- public void setDimensions(int var1, int var2) {
- this.field_0 = var1;
- this.field_1 = var2;
- }
-
- public void setHints(int var1) {
- }
-
- public void setPixels(int var1, int var2, int var3, int var4, ColorModel var5, byte[] var6, int var7, int var8) {
- if (this.field_3 == null) {
- this.field_3 = new byte[this.field_0 * this.field_1];
- this.field_2 = 8;
- }
-
- System.arraycopy(var6, var7, this.field_3, this.field_0 * var2 + var1, var8);
- }
-
- public void setPixels(int var1, int var2, int var3, int var4, ColorModel var5, int[] var6, int var7, int var8) {
- if (this.field_4 == null) {
- this.field_4 = new int[this.field_0 * this.field_1];
- this.field_2 = 32;
- }
-
- System.arraycopy(var6, var7, this.field_4, this.field_0 * var2 + var1, var8);
- }
-
- public void setProperties(Hashtable var1) {
- }
-
- // $FF: renamed from: ń () void
- private static void method_1() {
- for(int var0 = 0; var0 < 8; ++var0) {
- for(int var1 = 0; var1 < 8; ++var1) {
- field_11[var0][var1][0] = (8 - var0) * (8 - var1);
- field_11[var0][var1][1] = var0 * (8 - var1);
- field_11[var0][var1][2] = (8 - var0) * var1;
- field_11[var0][var1][3] = var0 * var1;
- int var2 = 0;
- int var3 = 0;
-
- for(int var4 = 0; var4 <= 3; ++var4) {
- field_11[var0][var1][var4] = (field_11[var0][var1][var4] + 4) / 8;
- var3 += field_11[var0][var1][var4];
- if (field_11[var0][var1][var4] > field_11[var0][var1][var2]) {
- var2 = var4;
- }
- }
-
- int var5 = 8 - var3;
- int[] var10000 = field_11[var0][var1];
- var10000[var2] += var5;
- }
- }
-
- }
-
- // $FF: renamed from: Ņ (int, int) int
- static int method_2(int var0, int var1) {
- int var2 = var0 / var1;
- if (var0 < 0) {
- --var2;
- }
-
- return var0 - var2 * var1;
- }
-
- // $FF: renamed from: ņ (int, int) int
- static int method_3(int var0, int var1) {
- int var2 = var0 / var1;
- if (var0 < 0) {
- --var2;
- }
-
- return var0 - var2 * var1;
- }
-
- // $FF: renamed from: Ň (int, int, int) int
- private int method_4(int var1, int var2, int var3) {
- if (var2 <= 0) {
- if (var2 < 0) {
- while(var1 < 0) {
- var1 += var3;
- }
-
- int var5 = (var1 - var2 - 1) / -var2;
- if (this.field_13 > var5) {
- this.field_13 = var5;
- }
- }
- } else {
- while(var1 > var3) {
- var1 -= var3;
- }
-
- int var4 = (var3 - var1 + var2 - 1) / var2;
- if (this.field_13 > var4) {
- this.field_13 = var4;
- }
- }
-
- return var1;
- }
-
- // $FF: renamed from: ň (int, int) int
- int method_5(int var1, int var2) {
- if (var1 < 0) {
- var1 = 0;
- }
-
- if (var2 < 0) {
- var2 = 0;
- }
-
- if (var2 >= this.field_1) {
- var2 = this.field_1 - 1;
- }
-
- if (var1 >= this.field_0) {
- var1 = this.field_0 - 1;
- }
-
- int var3 = var2 * this.field_0;
- return this.field_2 == 8 ? this.field_6.ä(this.field_3[var3 + var1]) : this.field_4[var3 + var1];
- }
-
- // $FF: renamed from: ʼn (int, int) int
- int method_6(int var1, int var2) {
- int var3 = var1 >> 16;
- int var4 = var2 >> 16;
- int var5 = (var1 & '\uffff') >> 13;
- int var6 = (var2 & '\uffff') >> 13;
- this.field_14[0] = field_11[var5][var6][0];
- this.field_14[1] = field_11[var5][var6][1];
- this.field_14[2] = field_11[var5][var6][2];
- this.field_14[3] = field_11[var5][var6][3];
- if (var3 < 0) {
- var3 = 0;
- int[] var10000 = this.field_14;
- var10000[0] += this.field_14[1];
- this.field_14[1] = 0;
- var10000 = this.field_14;
- var10000[2] += this.field_14[3];
- this.field_14[3] = 0;
- } else if (var3 >= this.field_0 - 1) {
- var3 = this.field_0 - 2;
- int[] var21 = this.field_14;
- var21[1] += this.field_14[0];
- this.field_14[0] = 0;
- var21 = this.field_14;
- var21[3] += this.field_14[2];
- this.field_14[2] = 0;
- }
-
- if (var4 < 0) {
- var4 = 0;
- int[] var23 = this.field_14;
- var23[0] += this.field_14[2];
- this.field_14[2] = 0;
- var23 = this.field_14;
- var23[1] += this.field_14[3];
- this.field_14[3] = 0;
- } else if (var4 >= this.field_1 - 1) {
- var4 = this.field_1 - 2;
- int[] var25 = this.field_14;
- var25[2] += this.field_14[0];
- this.field_14[0] = 0;
- var25 = this.field_14;
- var25[3] += this.field_14[1];
- this.field_14[1] = 0;
- }
-
- long var7 = 0L;
- int var9 = var4 * this.field_0;
- if (this.field_2 != 8) {
- int var10 = var9 + var3;
- int var11 = this.field_4[var10];
- var7 = (long)((var11 & 16711680) << 5 | (var11 & '\uff00') << 2 | (var11 & 255) >>> 1) * (long)this.field_14[0];
- var11 = this.field_4[var10 + 1];
- var7 += (long)((var11 & 16711680) << 5 | (var11 & '\uff00') << 2 | (var11 & 255) >>> 1) * (long)this.field_14[1];
- var10 += this.field_0;
- var11 = this.field_4[var10];
- var7 += (long)((var11 & 16711680) << 5 | (var11 & '\uff00') << 2 | (var11 & 255) >>> 1) * (long)this.field_14[2];
- var11 = this.field_4[var10 + 1];
- var7 += (long)((var11 & 16711680) << 5 | (var11 & '\uff00') << 2 | (var11 & 255) >>> 1) * (long)this.field_14[3];
- }
-
- int var16 = (int)var7;
- return var16 >>> 8 & 16711680 | var16 >>> 5 & '\uff00' | var16 >>> 2 & 255;
- }
-
- // $FF: renamed from: Ŋ (RColor, java.awt.Point, int, byte[], int) void
- void method_7(RColor var1, Point var2, int var3, byte[] var4, int var5) {
- if (var1.─┤ == 0) {
- int var6 = (var2.y >> 16) * this.field_0;
- if (Math.abs(var1.─│ - 65536) < 256) {
- var6 += var2.x >> 16;
-
- for(var2.x += var3 * var1.ij; var3-- > 0; var4[var5++] = (byte)this.field_6.å(this.field_4[var6++])) {
- }
-
- } else {
- while(var3-- > 0) {
- var4[var5++] = (byte)this.field_6.å(this.field_4[var6 + (var2.x >> 16)]);
- var2.x += var1.─│;
- }
-
- }
- } else {
- while(var3-- > 0) {
- var4[var5++] = (byte)this.field_6.å(this.field_4[(var2.y >> 16) * this.field_0 + (var2.x >> 16)]);
- var2.x += var1.─│;
- var2.y += var1.─┤;
- }
-
- }
- }
-
- // $FF: renamed from: ŋ (RColor, java.awt.Point, int, int[], int) void
- void method_8(RColor var1, Point var2, int var3, int[] var4, int var5) {
- if (var1.─┤ == 0) {
- int var6 = (var2.y >> 16) * this.field_0;
- if (Math.abs(var1.─│ - 65536) < 256) {
- var6 += var2.x >> 16;
-
- for(var2.x += var3 * var1.─│; var3-- > 0; var4[var5++] = this.field_4[var6++]) {
- }
-
- } else {
- while(var3-- > 0) {
- var4[var5++] = this.field_4[var6 + (var2.x >> 16)];
- var2.x += var1.─│;
- }
-
- }
- } else {
- while(var3-- > 0) {
- var4[var5++] = this.field_4[(var2.y >> 16) * this.field_0 + (var2.x >> 16)];
- var2.x += var1.─│;
- var2.y += var1.─┤;
- }
-
- }
- }
-
- // $FF: renamed from: Ō (RColor, java.awt.Point, int, int[]) void
- private void method_9(RColor var1, Point var2, int var3, int[] var4) {
- int var5 = 0;
- if (var1.─┤ == 0) {
- int var8 = (var2.y >> 16) * this.field_0;
-
- for(int var7 = var3; var7 > 0; --var7) {
- var4[var5] = this.field_4[var8 + (var2.x >> 16)];
- ++var5;
- var2.x += var1.─│;
- }
-
- } else {
- for(int var6 = var3; var6 > 0; --var6) {
- var4[var5] = this.field_4[(var2.y >> 16) * this.field_0 + (var2.x >> 16)];
- ++var5;
- var2.x += var1.─│;
- var2.y += var1.─┤;
- }
-
- }
- }
-
- // $FF: renamed from: Ú (int, int, int, RColor) void
- void method_10(int var1, int var2, int var3, RColor var4) {
- Point var5 = new Point(0, 0);
- byte[] var6 = this.field_6.è;
- int[] var7 = this.field_6.é;
- var5.x = var2 << 16;
- var5.y = this.field_6.├▓ << 16;
- var4.─«.─£(var5, var5);
- int var8 = this.field_0 << 16;
- int var9 = this.field_1 << 16;
- if (var4.─ª == 65) {
- int var13 = this.field_0;
- int var14 = this.field_1;
- if (var4.─▒) {
- --var14;
- --var13;
- }
-
- Point var15 = new Point(0, 0);
- int var16 = var3 - var2;
- var15.x = var5.x + var4.─│ * var16;
- var15.y = var5.y + var4.─┤ * var16;
-
- label109:
- while(true) {
- int var10 = var5.x >> 16;
- int var11 = var5.y >> 16;
- if (var10 >= 0 && var11 >= 0 && var10 < var13 && var11 < var14 || var2 >= var3) {
- while(true) {
- var10 = var15.x >> 16;
- var11 = var15.y >> 16;
- if (var10 >= 0 && var11 >= 0 && var10 < var13 && var11 < var14 || var2 >= var3) {
- break label109;
- }
-
- int var23;
- if (var4.─▒) {
- var23 = this.method_6(var15.x, var15.y);
- } else {
- var23 = this.method_5(var10, var11);
- }
-
- --var3;
- if (var4.cx != null) {
- var23 = var4.cx.Ë(var23);
- }
-
- if (var6 != null) {
- var6[var3 + var1] = (byte)var23;
- } else {
- var7[var3 + var1] = var23;
- }
-
- var15.x -= var4.─│;
- var15.y -= var4.─┤;
- }
- }
-
- int var12;
- if (var4.─▒) {
- var12 = this.method_6(var5.x, var5.y);
- } else {
- var12 = this.method_5(var10, var11);
- }
-
- if (var4.cx != null) {
- var12 = var4.cx.Ë(var12);
- }
-
- if (var6 != null) {
- var6[var2 + var1] = (byte)this.field_6.å(var12);
- } else {
- var7[var2 + var1] = var12;
- }
-
- var5.x += var4.─│;
- var5.y += var4.─┤;
- ++var2;
- }
- } else {
- var5.x = method_2(var5.x, var8);
- var5.y = method_2(var5.y, var9);
- }
-
- if (var4.─▓) {
- for(; var2 < var3; var2 += this.field_13) {
- this.field_13 = Math.min(var3 - var2, 256);
- var5.x = this.method_4(var5.x, var4.─│, var8);
- var5.y = this.method_4(var5.y, var4.─┤, var9);
- if (var6 != null) {
- this.method_7(var4, var5, this.field_13, var6, var2 + var1);
- } else {
- this.method_8(var4, var5, this.field_13, var7, var2 + var1);
- }
- }
-
- } else {
- for(; var2 < var3; var2 += this.field_13) {
- this.field_13 = Math.min(var3 - var2, 256);
- var5.x = this.method_4(var5.x, var4.─│, var8);
- var5.y = this.method_4(var5.y, var4.─┤, var9);
- if (var6 != null) {
- this.method_9(var4, var5, this.field_13, field_12);
- } else {
- this.method_9(var4, var5, this.field_13, field_12);
- }
-
- if (var4.cx != null) {
- var4.cx.Ë(field_12, this.field_13);
- }
-
- if (var6 != null) {
- int var19 = var2 + var1;
- int var22 = 0;
-
- for(int var25 = this.field_13; var25 > 0; ++var22) {
- var6[var19] = (byte)this.field_6.å(field_12[var22]);
- --var25;
- ++var19;
- }
- } else {
- int var18 = var2 + var1;
- int var21 = 0;
-
- for(int var24 = this.field_13; var24 > 0; ++var21) {
- var7[var18] = field_12[var21];
- --var24;
- ++var18;
- }
- }
- }
-
- }
- }
-
- static {
- method_1();
- field_12 = new int[256];
- }
- }
-