aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/awt/image/ImageConsumer.java201
-rw-r--r--libjava/java/awt/image/ImageObserver.java137
-rw-r--r--libjava/java/awt/image/ImageProducer.java87
3 files changed, 372 insertions, 53 deletions
diff --git a/libjava/java/awt/image/ImageConsumer.java b/libjava/java/awt/image/ImageConsumer.java
index 26519cb..25073ff 100644
--- a/libjava/java/awt/image/ImageConsumer.java
+++ b/libjava/java/awt/image/ImageConsumer.java
@@ -1,35 +1,186 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* ImageConsumer.java -- Java interface for image consumption
+ Copyright (C) 1999 Free Software Foundation, Inc.
- This file is part of libgcj.
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
package java.awt.image;
+
import java.util.Hashtable;
+/**
+ * An object implementing the <code>ImageProducer</code> interface can
+ * use objects implementing this interface to deliver the image data.
+ *
+ * @author C. Brian Jones (cbj@gnu.org)
+ */
public interface ImageConsumer
{
+ /**
+ * The pixel order may be random. This should be
+ * the default assumption of the <code>ImageConsumer</code>.
+ *
+ * @see #setHints
+ */
+ public static final int RANDOMPIXELORDER = 1;
+
+ /**
+ * The pixel order is top-down, left-right.
+ *
+ * @see #setHints
+ */
+ public static final int TOPDOWNLEFTRIGHT = 2;
+
+ /**
+ * The pixel order is in multiples of complete scanlines.
+ *
+ * @see #setHints
+ */
+ public static final int COMPLETESCANLINES = 4;
+
+ /**
+ * The pixels will be delivered in a single pass. There is at
+ * most one call to <code>setPixels</code> for any single pixel.
+ *
+ * @see #setHints
+ * @see #setPixels
+ */
+ public static final int SINGLEPASS = 8;
+
+ /**
+ * The pixels will be delivered with multiple calls to
+ * <code>setPixels</code>. The image contains a single frame
+ * which ends when <code>imageComplete</code> is called with the
+ * <code>STATICIMAGEDONE</code> flag. If the image is constantly
+ * changing such as with video then the end of each frame is
+ * marked by a similar call to <code>imageComplete</code> with the
+ * <code>SINGLEFRAMEDONE</code> flag.
+ *
+ * @see #setHints
+ * @see #imageComplete
+ */
+ public static final int SINGLEFRAME = 16;
+
+ /**
+ * Indicates an error occurred while producing an image.
+ *
+ * @see #imageComplete
+ */
+ public static final int IMAGEERROR = 1;
- public static final int RANDOMPIXELORDER = 1 << 0,
- TOPDOWNLEFTRIGHT = 1 << 1,
- COMPLETESCANLINES = 1 << 2,
- SINGLEPASS = 1 << 3,
- SINGLEFRAME = 1 << 4;
-
- public static final int IMAGEERROR = 1,
- SINGLEFRAMEDONE = 2,
- STATICIMAGEDONE = 3,
- IMAGEABORTED = 4;
-
- public void setDimensions(int width, int height);
- public void setProperties(Hashtable props);
- public void setColorModel(ColorModel model);
- public void setHints(int hintflags);
- public void setPixels(int x, int y, int w, int h, ColorModel model,
- byte[] pixels, int off, int scansize);
- public void setPixels(int x, int y, int w, int h, ColorModel model,
- int[] pixels, int off, int scansize);
- public void imageComplete(int status);
+ /**
+ * A single frame is complete but more will follow.
+ *
+ * @see #imageComplete
+ */
+ public static final int SINGLEFRAMEDONE = 2;
+
+ /**
+ * The image is complete and no more pixels or frames will follow.
+ *
+ * @see #imageComplete
+ */
+ public static final int STATICIMAGEDONE = 3;
+
+ /**
+ * Production of the image has been aborted.
+ *
+ * @see #imageComplete
+ */
+ public static final int IMAGEABORTED = 4;
+
+ /**
+ * An <code>ImageProducer</code> indicates the size of the image
+ * being produced using this method.
+ *
+ * @param width the width of the image
+ * @param height the height of the image
+ */
+ public abstract void setDimensions(int width, int height);
+
+ /**
+ * An <code>ImageProducer</code> can set a list of properties
+ * associated with this image by using this method.
+ *
+ * @param props the list of properties associated with this image
+ */
+ public abstract void setProperties(Hashtable props);
+
+ /**
+ * This <code>ColorModel</code> should indicate the model used by
+ * the majority of calls to <code>setPixels</code>. Each call to
+ * <code>setPixels</code> could however indicate a different
+ * <code>ColorModel</code>.
+ *
+ * @param model the color model to be used most often by setPixels
+ * @see ColorModel
+ */
+ public abstract void setColorModel(ColorModel model);
+
+ /**
+ * The <code>ImageProducer</code> should call this method with a
+ * bit mask of hints from any of <code>RANDOMPIXELORDER</code>,
+ * <code>TOPDOWNLEFTRIGHT</code>, <code>COMPLETESCANLINES</code>,
+ * <code>SINGLEPASS</code>, <code>SINGLEFRAME</code>.
+ *
+ * @param flags a bit mask of hints
+ */
+ public abstract void setHints(int flags);
+
+ /**
+ * This function delivers a rectangle of pixels where any
+ * pixel(m,n) is stored in the array as a <code>byte</code> at
+ * index (n * scansize + m + offset).
+ */
+ public abstract void setPixels(int x, int y, int w, int h,
+ ColorModel model, byte[] pixels, int offset, int scansize);
+
+ /**
+ * This function delivers a rectangle of pixels where any
+ * pixel(m,n) is stored in the array as an <code>int</code> at
+ * index (n * scansize + m + offset).
+ */
+ public abstract void setPixels(int x, int y, int w, int h,
+ ColorModel model, int[] pixels, int offset, int scansize);
+
+ /**
+ * The <code>ImageProducer</code> calls this method to indicate a
+ * single frame or the entire image is complete. The method is
+ * also used to indicate an error in loading or producing the
+ * image.
+ */
+ public abstract void imageComplete(int status);
}
+
diff --git a/libjava/java/awt/image/ImageObserver.java b/libjava/java/awt/image/ImageObserver.java
index 770e28c..6c4673e 100644
--- a/libjava/java/awt/image/ImageObserver.java
+++ b/libjava/java/awt/image/ImageObserver.java
@@ -1,28 +1,129 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* ImageObserver.java -- Java interface for asynchronous updates to an image
+ Copyright (C) 1999 Free Software Foundation, Inc.
- This file is part of libgcj.
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
package java.awt.image;
import java.awt.Image;
-public interface ImageObserver
+/**
+ * An object implementing the <code>ImageObserver</code> interface can
+ * receive updates on image construction from an
+ * <code>ImageProducer</code> asynchronously.
+ *
+ * @see ImageProducer
+ * @author C. Brian Jones (cbj@gnu.org)
+ */
+public interface ImageObserver
{
- int WIDTH = 1 << 0;
- int HEIGHT = 1 << 1;
- int PROPERTIES = 1 << 2;
- int SOMEBITS = 1 << 3;
- int FRAMEBITS = 1 << 4;
- int ALLBITS = 1 << 5;
- int ERROR = 1 << 6;
- int ABORT = 1 << 7;
-
- boolean imageUpdate(Image image, int infoFlags, int x, int y, int width,
- int height);
-}
+ /**
+ * The width of the image has been provided as the
+ * <code>width</code> argument to <code>imageUpdate</code>.
+ *
+ * @see #imageUpdate
+ */
+ public static final int WIDTH = 1;
+
+ /**
+ * The height of the image has been provided as the
+ * <code>height</code> argument to <code>imageUpdate</code>.
+ *
+ * @see #imageUpdate
+ */
+ public static final int HEIGHT = 2;
+ /**
+ * The properties of the image have been provided.
+ *
+ * @see #imageUpdate
+ * @see java.awt.Image#getProperty (java.lang.String, java.awt.image.ImageObserver)
+ */
+ public static final int PROPERTIES = 4;
+ /**
+ * More pixels are now available for drawing a scaled variation of
+ * the image.
+ *
+ * @see #imageUpdate
+ */
+ public static final int SOMEBITS = 8;
+
+ /**
+ * All the pixels needed to draw a complete frame of a multi-frame
+ * image are available.
+ *
+ * @see #imageUpdate
+ */
+ public static final int FRAMEBITS = 16;
+
+ /**
+ * An image with a single frame, a static image, is complete.
+ *
+ * @see #imageUpdate
+ */
+ public static final int ALLBITS = 32;
+
+ /**
+ * An error was encountered while producing the image.
+ *
+ * @see #imageUpdate
+ */
+ public static final int ERROR = 64;
+
+ /**
+ * Production of the image was aborted.
+ *
+ * @see #imageUpdate
+ */
+ public static final int ABORT = 128;
+
+ /**
+ * This is a callback method for an asynchronous image producer to
+ * provide updates on the production of the image as it happens.
+ *
+ * @param image the image the update refers to
+ * @param flags a bit mask indicating what is provided with this update
+ * @param x the x coordinate of the image
+ * @param y the y coordinate of the image
+ * @param width the width of the image
+ * @param height the height of the image
+ *
+ * @see java.awt.Image
+ */
+ public abstract boolean imageUpdate(Image image, int flags, int x,
+ int y, int width, int height);
+}
diff --git a/libjava/java/awt/image/ImageProducer.java b/libjava/java/awt/image/ImageProducer.java
index c8cfe12..1bc1736 100644
--- a/libjava/java/awt/image/ImageProducer.java
+++ b/libjava/java/awt/image/ImageProducer.java
@@ -1,18 +1,85 @@
-/* Copyright (C) 2000 Free Software Foundation
+/* ImageProducer.java -- Java interface for image production
+ Copyright (C) 1999 Free Software Foundation, Inc.
- This file is part of libgcj.
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
package java.awt.image;
+/**
+ * An object implementing the <code>ImageProducer</code> interface can
+ * produce data for images. Each image has a corresponding
+ * <code>ImageProducer</code> which is needed for things such as
+ * resizing the image.
+ *
+ * @see ImageConsumer
+ * @author C. Brian Jones (cbj@gnu.org)
+ */
public interface ImageProducer
{
- void addConsumer(ImageConsumer ic);
- boolean isConsumer(ImageConsumer ic);
- void removeConsumer(ImageConsumer ic);
- void startProduction(ImageConsumer ic);
- void requestTopDownLeftRightResend(ImageConsumer ic);
+ /**
+ * Used to register an <code>ImageConsumer</code> with this
+ * <code>ImageProducer</code>.
+ */
+ public abstract void addConsumer(ImageConsumer ic);
+
+ /**
+ * Used to determine if the given <code>ImageConsumer</code> is
+ * already registered with this <code>ImageProducer</code>.
+ */
+ public abstract boolean isConsumer(ImageConsumer ic);
+
+ /**
+ * Used to remove an <code>ImageConsumer</code> from the list of
+ * registered consumers for this <code>ImageProducer</code>.
+ */
+ public abstract void removeConsumer(ImageConsumer ic);
+
+ /**
+ * Used to register an <code>ImageConsumer</code> with this
+ * <code>ImageProducer</code> and then immediately start
+ * reconstruction of the image data to be delivered to all
+ * registered consumers.
+ */
+ public abstract void startProduction(ImageConsumer ic);
+
+ /**
+ * Used to register an <code>ImageConsumer</code> with this
+ * <code>ImageProducer</code> and then request that this producer
+ * resend the image data in the order top-down, left-right.
+ */
+ public abstract void requestTopDownLeftRightResend(ImageConsumer ic);
}
+