summaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorfitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-05 01:22:12 +0000
committerfitzsim <fitzsim@138bc75d-0d04-0410-961f-82ee72b054a4>2005-05-05 01:22:12 +0000
commit94098bfbd36dae4a61ebb967629269953c797a9b (patch)
treee9191d306e19647b195bc68ff0ae76fe51b250bd /libjava/java
parenta8abbd9d1d832c63d27584b5f2f63b978b1b18c4 (diff)
downloadgcc-94098bfbd36dae4a61ebb967629269953c797a9b.tar.gz
2005-05-04 Thomas Fitzsimmons <fitzsim@redhat.com>
* java/awt/image/BufferStrategy.java: Document. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@99250 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/awt/image/BufferStrategy.java78
1 files changed, 74 insertions, 4 deletions
diff --git a/libjava/java/awt/image/BufferStrategy.java b/libjava/java/awt/image/BufferStrategy.java
index 88d4912307f..d0e74c0795e 100644
--- a/libjava/java/awt/image/BufferStrategy.java
+++ b/libjava/java/awt/image/BufferStrategy.java
@@ -1,5 +1,5 @@
-/* BufferStrategy.java --
- Copyright (C) 2002 Free Software Foundation, Inc.
+/* BufferStrategy.java -- describes image buffering resources
+ Copyright (C) 2002, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,15 +41,85 @@ package java.awt.image;
import java.awt.BufferCapabilities;
import java.awt.Graphics;
-/** STUBS ONLY */
+/**
+ * This class describes a strategy for managing image buffering
+ * resources on a Canvas or Window. A given buffer strategy may make
+ * use of hardware acceleration or take advantage of features of the
+ * native graphics system. Examples of buffering strategies are
+ * double or triple buffering using either flipping or blitting. For
+ * the details of these algorithms see BufferCapabilities.
+ *
+ * To use a buffer strategy, you retrieve it from either the current
+ * GraphicsConfiguration or from the Component on which you'd like to
+ * draw. Then you can query the strategy's capabilities to make sure
+ * they're suitable.
+ *
+ * If the strategy's capabilities are suitable, you can obtain a
+ * graphics object and use it to draw with this strategy. Drawing
+ * with a buffer strategy requires extra care, however. You'll need
+ * to manually cause the next buffer to be shown on the output device.
+ * And since buffer strategies are usually implemented with a
+ * VolatileImage, you must frequently check that the contents of the
+ * buffer are valid and that the buffer still exists.
+ *
+ * A buffer strategy is usually implemented using a VolatileImage.
+ *
+ * @see VolatileImage
+ * @since 1.4
+ */
public abstract class BufferStrategy
{
+ /**
+ * Creates a new buffer strategy.
+ */
public BufferStrategy()
{
}
+
+ /**
+ * Retrieves the capabilities of this buffer strategy.
+ *
+ * @return this buffer strategy's capabilities
+ */
public abstract BufferCapabilities getCapabilities();
+
+ /**
+ * Retrieves a graphics object that can be used to draw using this
+ * buffer strategy. This method may not be synchronized so be
+ * careful when calling it from multiple threads. You also must
+ * manually dispose of this graphics object.
+ *
+ * @return a graphics object that can be used to draw using this
+ * buffer strategy
+ */
public abstract Graphics getDrawGraphics();
+
+ /**
+ * Returns whether or not the buffer's resources have been reclaimed
+ * by the native graphics system since the last call to
+ * getDrawGraphics. If the buffer resources have been lost then
+ * you'll need to obtain new resources before drawing again. For
+ * details, see the documentation for VolatileImage.
+ *
+ * @return true if the contents were lost since the last call to
+ * getDrawGraphics, false otherwise
+ */
public abstract boolean contentsLost();
+
+ /**
+ * Returns whether or not the buffer's resources were re-created and
+ * cleared to the default background color since the last call to
+ * getDrawGraphics. If the buffer's resources have recently been
+ * re-created and initialized then the buffer's image may need to be
+ * re-rendered. For details, see the documentation for
+ * VolatileImage.
+ */
public abstract boolean contentsRestored();
+
+ /**
+ * Applies this buffer strategy. In other words, this method brings
+ * the contents of the back or intermediate buffers to the front
+ * buffer.
+ */
public abstract void show();
-} // class BufferStrategy
+}