23 * questions.
24 */
25
26 package sun.awt.image;
27
28 import java.util.Hashtable;
29 import java.awt.image.ImageConsumer;
30 import java.awt.image.ImageProducer;
31 import java.awt.image.Raster;
32 import java.awt.image.WritableRaster;
33 import java.awt.image.ColorModel;
34 import java.awt.image.IndexColorModel;
35 import java.awt.image.DirectColorModel;
36 import java.awt.image.BufferedImage;
37 import java.awt.image.DataBuffer;
38
39 public class OffScreenImageSource implements ImageProducer {
40 BufferedImage image;
41 int width;
42 int height;
43 Hashtable properties;
44
45 public OffScreenImageSource(BufferedImage image,
46 Hashtable properties) {
47 this.image = image;
48 if (properties != null) {
49 this.properties = properties;
50 } else {
51 this.properties = new Hashtable();
52 }
53 width = image.getWidth();
54 height = image.getHeight();
55 }
56
57 public OffScreenImageSource(BufferedImage image) {
58 this(image, null);
59 }
60
61 // We can only have one consumer since we immediately return the data...
62 private ImageConsumer theConsumer;
63
64 public synchronized void addConsumer(ImageConsumer ic) {
65 theConsumer = ic;
66 produce();
67 }
68
69 public synchronized boolean isConsumer(ImageConsumer ic) {
70 return (ic == theConsumer);
71 }
|
23 * questions.
24 */
25
26 package sun.awt.image;
27
28 import java.util.Hashtable;
29 import java.awt.image.ImageConsumer;
30 import java.awt.image.ImageProducer;
31 import java.awt.image.Raster;
32 import java.awt.image.WritableRaster;
33 import java.awt.image.ColorModel;
34 import java.awt.image.IndexColorModel;
35 import java.awt.image.DirectColorModel;
36 import java.awt.image.BufferedImage;
37 import java.awt.image.DataBuffer;
38
39 public class OffScreenImageSource implements ImageProducer {
40 BufferedImage image;
41 int width;
42 int height;
43 Hashtable<?, ?> properties;
44
45 public OffScreenImageSource(BufferedImage image,
46 Hashtable<?, ?> properties) {
47 this.image = image;
48 if (properties != null) {
49 this.properties = properties;
50 } else {
51 this.properties = new Hashtable<String, Object>();
52 }
53 width = image.getWidth();
54 height = image.getHeight();
55 }
56
57 public OffScreenImageSource(BufferedImage image) {
58 this(image, null);
59 }
60
61 // We can only have one consumer since we immediately return the data...
62 private ImageConsumer theConsumer;
63
64 public synchronized void addConsumer(ImageConsumer ic) {
65 theConsumer = ic;
66 produce();
67 }
68
69 public synchronized boolean isConsumer(ImageConsumer ic) {
70 return (ic == theConsumer);
71 }
|