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 / image / renderable / RenderableImageProducer.class (.txt) < prev    next >
Encoding:
Java Class File  |  1979-12-31  |  2.7 KB  |  107 lines

  1. package java.awt.image.renderable;
  2.  
  3. import java.awt.image.ColorModel;
  4. import java.awt.image.DataBuffer;
  5. import java.awt.image.ImageConsumer;
  6. import java.awt.image.ImageProducer;
  7. import java.awt.image.Raster;
  8. import java.awt.image.RenderedImage;
  9. import java.awt.image.SampleModel;
  10. import java.util.Enumeration;
  11. import java.util.Vector;
  12.  
  13. public class RenderableImageProducer implements ImageProducer, Runnable {
  14.    RenderableImage rdblImage;
  15.    // $FF: renamed from: rc java.awt.image.renderable.RenderContext
  16.    RenderContext field_0;
  17.    Vector ics = new Vector();
  18.  
  19.    public RenderableImageProducer(RenderableImage var1, RenderContext var2) {
  20.       this.rdblImage = var1;
  21.       this.field_0 = var2;
  22.    }
  23.  
  24.    public synchronized void setRenderContext(RenderContext var1) {
  25.       this.field_0 = var1;
  26.    }
  27.  
  28.    public synchronized void addConsumer(ImageConsumer var1) {
  29.       if (!this.ics.contains(var1)) {
  30.          this.ics.addElement(var1);
  31.       }
  32.  
  33.    }
  34.  
  35.    public synchronized boolean isConsumer(ImageConsumer var1) {
  36.       return this.ics.contains(var1);
  37.    }
  38.  
  39.    public synchronized void removeConsumer(ImageConsumer var1) {
  40.       this.ics.removeElement(var1);
  41.    }
  42.  
  43.    public synchronized void startProduction(ImageConsumer var1) {
  44.       this.addConsumer(var1);
  45.       Thread var2 = new Thread(this, "RenderableImageProducer Thread");
  46.       var2.start();
  47.    }
  48.  
  49.    public void requestTopDownLeftRightResend(ImageConsumer var1) {
  50.    }
  51.  
  52.    public void run() {
  53.       RenderedImage var1;
  54.       if (this.field_0 != null) {
  55.          var1 = this.rdblImage.createRendering(this.field_0);
  56.       } else {
  57.          var1 = this.rdblImage.createDefaultRendering();
  58.       }
  59.  
  60.       ColorModel var2 = var1.getColorModel();
  61.       Raster var3 = var1.getData();
  62.       SampleModel var4 = var3.getSampleModel();
  63.       DataBuffer var5 = var3.getDataBuffer();
  64.       if (var2 == null) {
  65.          var2 = ColorModel.getRGBdefault();
  66.       }
  67.  
  68.       int var6 = var3.getMinX();
  69.       int var7 = var3.getMinY();
  70.       int var8 = var3.getWidth();
  71.       int var9 = var3.getHeight();
  72.       Enumeration var10 = this.ics.elements();
  73.  
  74.       while(var10.hasMoreElements()) {
  75.          ImageConsumer var11 = (ImageConsumer)var10.nextElement();
  76.          var11.setDimensions(var8, var9);
  77.          var11.setHints(30);
  78.       }
  79.  
  80.       int[] var12 = new int[var8];
  81.       int var15 = var4.getNumBands();
  82.       int[] var16 = new int[var15];
  83.  
  84.       for(int var14 = 0; var14 < var9; ++var14) {
  85.          for(int var13 = 0; var13 < var8; ++var13) {
  86.             var4.getPixel(var13, var14, var16, var5);
  87.             var12[var13] = var2.getDataElement(var16, 0);
  88.          }
  89.  
  90.          var10 = this.ics.elements();
  91.  
  92.          while(var10.hasMoreElements()) {
  93.             ImageConsumer var19 = (ImageConsumer)var10.nextElement();
  94.             var19.setPixels(0, var14, var8, 1, var2, var12, 0, var8);
  95.          }
  96.       }
  97.  
  98.       var10 = this.ics.elements();
  99.  
  100.       while(var10.hasMoreElements()) {
  101.          ImageConsumer var20 = (ImageConsumer)var10.nextElement();
  102.          var20.imageComplete(3);
  103.       }
  104.  
  105.    }
  106. }
  107.