home *** CD-ROM | disk | FTP | other *** search
/ Maximum CD 2000 February / maximum-cd-2000-02.iso / Flash 4 / data1.cab / App_Files / Players / Flash_Player_Java(tm)_Edition / Flash.jar / Bitmap.class (.txt) next >
Encoding:
Java Class File  |  1998-04-13  |  5.6 KB  |  536 lines

  1. import java.awt.Image;
  2. import java.awt.Point;
  3. import java.awt.image.ColorModel;
  4. import java.awt.image.ImageConsumer;
  5. import java.awt.image.ImageProducer;
  6. import java.util.Hashtable;
  7.  
  8. final class Bitmap implements ImageConsumer {
  9.    // $FF: renamed from: ├ó int
  10.    int field_0;
  11.    // $FF: renamed from: ├ú int
  12.    int field_1;
  13.    // $FF: renamed from: ┼â int
  14.    int field_2;
  15.    // $FF: renamed from: ├¿ byte[]
  16.    byte[] field_3;
  17.    // $FF: renamed from: ├⌐ int[]
  18.    int[] field_4;
  19.    // $FF: renamed from: ┼ä java.awt.image.ColorModel
  20.    ColorModel field_5;
  21.    // $FF: renamed from: ─ì DisplayList
  22.    DisplayList field_6;
  23.    // $FF: renamed from: ┼à boolean
  24.    private boolean field_7;
  25.    // $FF: renamed from: ┼å boolean
  26.    private boolean field_8;
  27.    // $FF: renamed from: ├ë int
  28.    private int field_9;
  29.    // $FF: renamed from: ┼ç java.awt.image.ImageProducer
  30.    private ImageProducer field_10;
  31.    // $FF: renamed from: ┼ê int[][][]
  32.    private static int[][][] field_11 = new int[8][8][4];
  33.    // $FF: renamed from: ┼ë int[]
  34.    private static int[] field_12;
  35.    // $FF: renamed from: n int
  36.    private int field_13;
  37.    // $FF: renamed from: ce int[]
  38.    private int[] field_14;
  39.  
  40.    Bitmap(ImageProducer var1, DisplayList var2) {
  41.       this.field_14 = new int[4];
  42.       this.field_10 = var1;
  43.       this.field_6 = var2;
  44.       var1.startProduction(this);
  45.       this.method_0();
  46.    }
  47.  
  48.    Bitmap(Image var1, DisplayList var2) {
  49.       this(var1.getSource(), var2);
  50.       var1.flush();
  51.    }
  52.  
  53.    Bitmap(int[] var1, int var2, int var3, DisplayList var4) {
  54.       this.field_14 = new int[4];
  55.       this.field_4 = var1;
  56.       this.field_0 = var2;
  57.       this.field_1 = var3;
  58.       this.field_6 = var4;
  59.       this.field_2 = 32;
  60.    }
  61.  
  62.    Bitmap(byte[] var1, int var2, int var3, DisplayList var4) {
  63.       this.field_14 = new int[4];
  64.       this.field_3 = var1;
  65.       this.field_0 = var2;
  66.       this.field_1 = var3;
  67.       this.field_6 = var4;
  68.       this.field_2 = 8;
  69.    }
  70.  
  71.    // $FF: renamed from: ┼â () void
  72.    synchronized void method_0() {
  73.       this.field_8 = true;
  74.  
  75.       try {
  76.          while(this.field_8 && this.field_10 != null) {
  77.             this.wait();
  78.          }
  79.       } catch (InterruptedException var6) {
  80.          this.field_3 = null;
  81.          this.field_4 = null;
  82.          this.field_0 = this.field_1 = 0;
  83.          this.field_7 = false;
  84.       } finally {
  85.          this.field_8 = false;
  86.          this.field_10 = null;
  87.          int[] var10000;
  88.          if (this.field_7 && this.field_4 != null) {
  89.             for(int var3 = this.field_0 * this.field_1; var3 > 0; var10000[var3] |= -16777216) {
  90.                --var3;
  91.                var10000 = this.field_4;
  92.             }
  93.          }
  94.  
  95.       }
  96.  
  97.    }
  98.  
  99.    public synchronized void imageComplete(int var1) {
  100.       this.field_7 = var1 == 3;
  101.       this.field_8 = false;
  102.       switch (var1) {
  103.          case 1:
  104.          default:
  105.             this.field_9 |= 192;
  106.             break;
  107.          case 2:
  108.             this.field_9 |= 16;
  109.             break;
  110.          case 3:
  111.             this.field_9 |= 32;
  112.             break;
  113.          case 4:
  114.             this.field_9 |= 128;
  115.       }
  116.  
  117.       if (this.field_10 != null) {
  118.          this.field_10.removeConsumer(this);
  119.       }
  120.  
  121.       this.field_10 = null;
  122.       this.notify();
  123.    }
  124.  
  125.    public void setColorModel(ColorModel var1) {
  126.       this.field_5 = var1;
  127.    }
  128.  
  129.    public void setDimensions(int var1, int var2) {
  130.       this.field_0 = var1;
  131.       this.field_1 = var2;
  132.    }
  133.  
  134.    public void setHints(int var1) {
  135.    }
  136.  
  137.    public void setPixels(int var1, int var2, int var3, int var4, ColorModel var5, byte[] var6, int var7, int var8) {
  138.       if (this.field_3 == null) {
  139.          this.field_3 = new byte[this.field_0 * this.field_1];
  140.          this.field_2 = 8;
  141.       }
  142.  
  143.       System.arraycopy(var6, var7, this.field_3, this.field_0 * var2 + var1, var8);
  144.    }
  145.  
  146.    public void setPixels(int var1, int var2, int var3, int var4, ColorModel var5, int[] var6, int var7, int var8) {
  147.       if (this.field_4 == null) {
  148.          this.field_4 = new int[this.field_0 * this.field_1];
  149.          this.field_2 = 32;
  150.       }
  151.  
  152.       System.arraycopy(var6, var7, this.field_4, this.field_0 * var2 + var1, var8);
  153.    }
  154.  
  155.    public void setProperties(Hashtable var1) {
  156.    }
  157.  
  158.    // $FF: renamed from: ┼ä () void
  159.    private static void method_1() {
  160.       for(int var0 = 0; var0 < 8; ++var0) {
  161.          for(int var1 = 0; var1 < 8; ++var1) {
  162.             field_11[var0][var1][0] = (8 - var0) * (8 - var1);
  163.             field_11[var0][var1][1] = var0 * (8 - var1);
  164.             field_11[var0][var1][2] = (8 - var0) * var1;
  165.             field_11[var0][var1][3] = var0 * var1;
  166.             int var2 = 0;
  167.             int var3 = 0;
  168.  
  169.             for(int var4 = 0; var4 <= 3; ++var4) {
  170.                field_11[var0][var1][var4] = (field_11[var0][var1][var4] + 4) / 8;
  171.                var3 += field_11[var0][var1][var4];
  172.                if (field_11[var0][var1][var4] > field_11[var0][var1][var2]) {
  173.                   var2 = var4;
  174.                }
  175.             }
  176.  
  177.             int var5 = 8 - var3;
  178.             int[] var10000 = field_11[var0][var1];
  179.             var10000[var2] += var5;
  180.          }
  181.       }
  182.  
  183.    }
  184.  
  185.    // $FF: renamed from: ┼à (int, int) int
  186.    static int method_2(int var0, int var1) {
  187.       int var2 = var0 / var1;
  188.       if (var0 < 0) {
  189.          --var2;
  190.       }
  191.  
  192.       return var0 - var2 * var1;
  193.    }
  194.  
  195.    // $FF: renamed from: ┼å (int, int) int
  196.    static int method_3(int var0, int var1) {
  197.       int var2 = var0 / var1;
  198.       if (var0 < 0) {
  199.          --var2;
  200.       }
  201.  
  202.       return var0 - var2 * var1;
  203.    }
  204.  
  205.    // $FF: renamed from: ┼ç (int, int, int) int
  206.    private int method_4(int var1, int var2, int var3) {
  207.       if (var2 <= 0) {
  208.          if (var2 < 0) {
  209.             while(var1 < 0) {
  210.                var1 += var3;
  211.             }
  212.  
  213.             int var5 = (var1 - var2 - 1) / -var2;
  214.             if (this.field_13 > var5) {
  215.                this.field_13 = var5;
  216.             }
  217.          }
  218.       } else {
  219.          while(var1 > var3) {
  220.             var1 -= var3;
  221.          }
  222.  
  223.          int var4 = (var3 - var1 + var2 - 1) / var2;
  224.          if (this.field_13 > var4) {
  225.             this.field_13 = var4;
  226.          }
  227.       }
  228.  
  229.       return var1;
  230.    }
  231.  
  232.    // $FF: renamed from: ┼ê (int, int) int
  233.    int method_5(int var1, int var2) {
  234.       if (var1 < 0) {
  235.          var1 = 0;
  236.       }
  237.  
  238.       if (var2 < 0) {
  239.          var2 = 0;
  240.       }
  241.  
  242.       if (var2 >= this.field_1) {
  243.          var2 = this.field_1 - 1;
  244.       }
  245.  
  246.       if (var1 >= this.field_0) {
  247.          var1 = this.field_0 - 1;
  248.       }
  249.  
  250.       int var3 = var2 * this.field_0;
  251.       return this.field_2 == 8 ? this.field_6.├ñ(this.field_3[var3 + var1]) : this.field_4[var3 + var1];
  252.    }
  253.  
  254.    // $FF: renamed from: ┼ë (int, int) int
  255.    int method_6(int var1, int var2) {
  256.       int var3 = var1 >> 16;
  257.       int var4 = var2 >> 16;
  258.       int var5 = (var1 & '\uffff') >> 13;
  259.       int var6 = (var2 & '\uffff') >> 13;
  260.       this.field_14[0] = field_11[var5][var6][0];
  261.       this.field_14[1] = field_11[var5][var6][1];
  262.       this.field_14[2] = field_11[var5][var6][2];
  263.       this.field_14[3] = field_11[var5][var6][3];
  264.       if (var3 < 0) {
  265.          var3 = 0;
  266.          int[] var10000 = this.field_14;
  267.          var10000[0] += this.field_14[1];
  268.          this.field_14[1] = 0;
  269.          var10000 = this.field_14;
  270.          var10000[2] += this.field_14[3];
  271.          this.field_14[3] = 0;
  272.       } else if (var3 >= this.field_0 - 1) {
  273.          var3 = this.field_0 - 2;
  274.          int[] var21 = this.field_14;
  275.          var21[1] += this.field_14[0];
  276.          this.field_14[0] = 0;
  277.          var21 = this.field_14;
  278.          var21[3] += this.field_14[2];
  279.          this.field_14[2] = 0;
  280.       }
  281.  
  282.       if (var4 < 0) {
  283.          var4 = 0;
  284.          int[] var23 = this.field_14;
  285.          var23[0] += this.field_14[2];
  286.          this.field_14[2] = 0;
  287.          var23 = this.field_14;
  288.          var23[1] += this.field_14[3];
  289.          this.field_14[3] = 0;
  290.       } else if (var4 >= this.field_1 - 1) {
  291.          var4 = this.field_1 - 2;
  292.          int[] var25 = this.field_14;
  293.          var25[2] += this.field_14[0];
  294.          this.field_14[0] = 0;
  295.          var25 = this.field_14;
  296.          var25[3] += this.field_14[1];
  297.          this.field_14[1] = 0;
  298.       }
  299.  
  300.       long var7 = 0L;
  301.       int var9 = var4 * this.field_0;
  302.       if (this.field_2 != 8) {
  303.          int var10 = var9 + var3;
  304.          int var11 = this.field_4[var10];
  305.          var7 = (long)((var11 & 16711680) << 5 | (var11 & '\uff00') << 2 | (var11 & 255) >>> 1) * (long)this.field_14[0];
  306.          var11 = this.field_4[var10 + 1];
  307.          var7 += (long)((var11 & 16711680) << 5 | (var11 & '\uff00') << 2 | (var11 & 255) >>> 1) * (long)this.field_14[1];
  308.          var10 += this.field_0;
  309.          var11 = this.field_4[var10];
  310.          var7 += (long)((var11 & 16711680) << 5 | (var11 & '\uff00') << 2 | (var11 & 255) >>> 1) * (long)this.field_14[2];
  311.          var11 = this.field_4[var10 + 1];
  312.          var7 += (long)((var11 & 16711680) << 5 | (var11 & '\uff00') << 2 | (var11 & 255) >>> 1) * (long)this.field_14[3];
  313.       }
  314.  
  315.       int var16 = (int)var7;
  316.       return var16 >>> 8 & 16711680 | var16 >>> 5 & '\uff00' | var16 >>> 2 & 255;
  317.    }
  318.  
  319.    // $FF: renamed from: ┼è (RColor, java.awt.Point, int, byte[], int) void
  320.    void method_7(RColor var1, Point var2, int var3, byte[] var4, int var5) {
  321.       if (var1.─┤ == 0) {
  322.          int var6 = (var2.y >> 16) * this.field_0;
  323.          if (Math.abs(var1.─│ - 65536) < 256) {
  324.             var6 += var2.x >> 16;
  325.  
  326.             for(var2.x += var3 * var1.─│; var3-- > 0; var4[var5++] = (byte)this.field_6.├Ñ(this.field_4[var6++])) {
  327.             }
  328.  
  329.          } else {
  330.             while(var3-- > 0) {
  331.                var4[var5++] = (byte)this.field_6.├Ñ(this.field_4[var6 + (var2.x >> 16)]);
  332.                var2.x += var1.─│;
  333.             }
  334.  
  335.          }
  336.       } else {
  337.          while(var3-- > 0) {
  338.             var4[var5++] = (byte)this.field_6.├Ñ(this.field_4[(var2.y >> 16) * this.field_0 + (var2.x >> 16)]);
  339.             var2.x += var1.─│;
  340.             var2.y += var1.─┤;
  341.          }
  342.  
  343.       }
  344.    }
  345.  
  346.    // $FF: renamed from: ┼ï (RColor, java.awt.Point, int, int[], int) void
  347.    void method_8(RColor var1, Point var2, int var3, int[] var4, int var5) {
  348.       if (var1.─┤ == 0) {
  349.          int var6 = (var2.y >> 16) * this.field_0;
  350.          if (Math.abs(var1.─│ - 65536) < 256) {
  351.             var6 += var2.x >> 16;
  352.  
  353.             for(var2.x += var3 * var1.─│; var3-- > 0; var4[var5++] = this.field_4[var6++]) {
  354.             }
  355.  
  356.          } else {
  357.             while(var3-- > 0) {
  358.                var4[var5++] = this.field_4[var6 + (var2.x >> 16)];
  359.                var2.x += var1.─│;
  360.             }
  361.  
  362.          }
  363.       } else {
  364.          while(var3-- > 0) {
  365.             var4[var5++] = this.field_4[(var2.y >> 16) * this.field_0 + (var2.x >> 16)];
  366.             var2.x += var1.─│;
  367.             var2.y += var1.─┤;
  368.          }
  369.  
  370.       }
  371.    }
  372.  
  373.    // $FF: renamed from: ┼î (RColor, java.awt.Point, int, int[]) void
  374.    private void method_9(RColor var1, Point var2, int var3, int[] var4) {
  375.       int var5 = 0;
  376.       if (var1.─┤ == 0) {
  377.          int var8 = (var2.y >> 16) * this.field_0;
  378.  
  379.          for(int var7 = var3; var7 > 0; --var7) {
  380.             var4[var5] = this.field_4[var8 + (var2.x >> 16)];
  381.             ++var5;
  382.             var2.x += var1.─│;
  383.          }
  384.  
  385.       } else {
  386.          for(int var6 = var3; var6 > 0; --var6) {
  387.             var4[var5] = this.field_4[(var2.y >> 16) * this.field_0 + (var2.x >> 16)];
  388.             ++var5;
  389.             var2.x += var1.─│;
  390.             var2.y += var1.─┤;
  391.          }
  392.  
  393.       }
  394.    }
  395.  
  396.    // $FF: renamed from: ├Ü (int, int, int, RColor) void
  397.    void method_10(int var1, int var2, int var3, RColor var4) {
  398.       Point var5 = new Point(0, 0);
  399.       byte[] var6 = this.field_6.├¿;
  400.       int[] var7 = this.field_6.├⌐;
  401.       var5.x = var2 << 16;
  402.       var5.y = this.field_6.├▓ << 16;
  403.       var4.─«.─£(var5, var5);
  404.       int var8 = this.field_0 << 16;
  405.       int var9 = this.field_1 << 16;
  406.       if (var4.─ª == 65) {
  407.          int var13 = this.field_0;
  408.          int var14 = this.field_1;
  409.          if (var4.─▒) {
  410.             --var14;
  411.             --var13;
  412.          }
  413.  
  414.          Point var15 = new Point(0, 0);
  415.          int var16 = var3 - var2;
  416.          var15.x = var5.x + var4.─│ * var16;
  417.          var15.y = var5.y + var4.─┤ * var16;
  418.  
  419.          label109:
  420.          while(true) {
  421.             int var10 = var5.x >> 16;
  422.             int var11 = var5.y >> 16;
  423.             if (var10 >= 0 && var11 >= 0 && var10 < var13 && var11 < var14 || var2 >= var3) {
  424.                while(true) {
  425.                   var10 = var15.x >> 16;
  426.                   var11 = var15.y >> 16;
  427.                   if (var10 >= 0 && var11 >= 0 && var10 < var13 && var11 < var14 || var2 >= var3) {
  428.                      break label109;
  429.                   }
  430.  
  431.                   int var23;
  432.                   if (var4.─▒) {
  433.                      var23 = this.method_6(var15.x, var15.y);
  434.                   } else {
  435.                      var23 = this.method_5(var10, var11);
  436.                   }
  437.  
  438.                   --var3;
  439.                   if (var4.cx != null) {
  440.                      var23 = var4.cx.├ï(var23);
  441.                   }
  442.  
  443.                   if (var6 != null) {
  444.                      var6[var3 + var1] = (byte)var23;
  445.                   } else {
  446.                      var7[var3 + var1] = var23;
  447.                   }
  448.  
  449.                   var15.x -= var4.─│;
  450.                   var15.y -= var4.─┤;
  451.                }
  452.             }
  453.  
  454.             int var12;
  455.             if (var4.─▒) {
  456.                var12 = this.method_6(var5.x, var5.y);
  457.             } else {
  458.                var12 = this.method_5(var10, var11);
  459.             }
  460.  
  461.             if (var4.cx != null) {
  462.                var12 = var4.cx.├ï(var12);
  463.             }
  464.  
  465.             if (var6 != null) {
  466.                var6[var2 + var1] = (byte)this.field_6.├Ñ(var12);
  467.             } else {
  468.                var7[var2 + var1] = var12;
  469.             }
  470.  
  471.             var5.x += var4.─│;
  472.             var5.y += var4.─┤;
  473.             ++var2;
  474.          }
  475.       } else {
  476.          var5.x = method_2(var5.x, var8);
  477.          var5.y = method_2(var5.y, var9);
  478.       }
  479.  
  480.       if (var4.─▓) {
  481.          for(; var2 < var3; var2 += this.field_13) {
  482.             this.field_13 = Math.min(var3 - var2, 256);
  483.             var5.x = this.method_4(var5.x, var4.─│, var8);
  484.             var5.y = this.method_4(var5.y, var4.─┤, var9);
  485.             if (var6 != null) {
  486.                this.method_7(var4, var5, this.field_13, var6, var2 + var1);
  487.             } else {
  488.                this.method_8(var4, var5, this.field_13, var7, var2 + var1);
  489.             }
  490.          }
  491.  
  492.       } else {
  493.          for(; var2 < var3; var2 += this.field_13) {
  494.             this.field_13 = Math.min(var3 - var2, 256);
  495.             var5.x = this.method_4(var5.x, var4.─│, var8);
  496.             var5.y = this.method_4(var5.y, var4.─┤, var9);
  497.             if (var6 != null) {
  498.                this.method_9(var4, var5, this.field_13, field_12);
  499.             } else {
  500.                this.method_9(var4, var5, this.field_13, field_12);
  501.             }
  502.  
  503.             if (var4.cx != null) {
  504.                var4.cx.├ï(field_12, this.field_13);
  505.             }
  506.  
  507.             if (var6 != null) {
  508.                int var19 = var2 + var1;
  509.                int var22 = 0;
  510.  
  511.                for(int var25 = this.field_13; var25 > 0; ++var22) {
  512.                   var6[var19] = (byte)this.field_6.├Ñ(field_12[var22]);
  513.                   --var25;
  514.                   ++var19;
  515.                }
  516.             } else {
  517.                int var18 = var2 + var1;
  518.                int var21 = 0;
  519.  
  520.                for(int var24 = this.field_13; var24 > 0; ++var21) {
  521.                   var7[var18] = field_12[var21];
  522.                   --var24;
  523.                   ++var18;
  524.                }
  525.             }
  526.          }
  527.  
  528.       }
  529.    }
  530.  
  531.    static {
  532.       method_1();
  533.       field_12 = new int[256];
  534.    }
  535. }
  536.