java.awt.image
     Class  VolatileImage
   
   public abstract
     class 
   VolatileImage
   
   
      
      extends Image
      
      
        implements Transparency
      
   
   
   
   
 VolatileImage represents a hardware-accelerated graphics buffer.
 The native graphics system may free or damage the resources
 occupied by a VolatileImage at any time.  As such, one must
 frequently check the "validity" of the image buffer's resources.
 A volatile image's "validity" depends on multiple factors.  Its
 resources may have become unavailble in which case you must
 reallocate them.  If you move the image from one output device to
 another, you may need to recreate the image's resources if the new
 output device's capabilities don't match the old one's.  Finally,
 if the contents of the image's buffer have been damaged you must
 re-render the image.
 VolatileImages should always be created using either
 Component.createVolatileImage or
 GraphicsConfiguration.createCompatibleVolatileImage.
   
   
   
   
   
   
   public static final int IMAGE_INCOMPATIBLE
   
 One of validate's possible return values.  Indicates that the
 image buffer type is unsupported by the current graphics
 configuration.  The graphics configuration may have changed, for
 example if the image moved from one output device to another.
 This return value implies that the image buffer's resources
 should be re-acquired.
   
   public static final int IMAGE_OK
   
 One of validate's possible return values.  Indicates that the
 image buffer matches its graphics configuration's capabilities
 and that its resources are initialized and ready to be drawn
 into.  Also implies that any existing image rendered to the
 buffer is intact and need not be re-rendered.
   
   public static final int IMAGE_RESTORED
   
 One of validate's possible return values.  Indicates that the
 image buffer has been restored, meaning that it is valid and
 ready-to-use but that its previous contents have been lost.  This
 return value implies that the image needs to be re-rendered.
   
   protected int transparency
   
 This image's transparency type.  One of Transparency.BITMASK,
 Transparency.OPAQUE or Transparency.TRANSLUCENT.
Since: 1.5 
 
   
   
   public  VolatileImage()
   
 Default constructor.  VolatileImages should not be created
 directly.  Rather, you should use Component.createVolatileImage
 or GraphicsConfiguration.createCompatibleVolatileImage.
   
   
   public abstract  boolean contentsLost()
   
 Returns true if the contents of the image buffer have been
 damaged or if the image buffer's resources have been reclaimed by
 the graphics system.  You should call this method after a series
 of rendering operations to or from the image, to see if the image
 buffer needs to be revalidated or the image re-rendered.
Returns: true if the validate should be called, false otherwise 
 
   
   
   
 Returns a Graphics2D object that can be used to draw onto this
 image.
Returns: a Graphics2D object that can be used to draw onto this
 image 
 
   
   public  void flush()
   
 Releases the system resources taken by this image.
   
   
   
 Returns the capabilities of this image buffer.
Returns: the capabilities of this image buffer 
 
   
   
   
 Returns a Graphics2D object that can be used to draw onto this
 image.  This method is present for backwards-compatibility.  It
 simply returns the result of createGraphics.
Returns: a Graphics2D object that can be used to draw onto this
 image 
 
   
   public abstract  int getHeight()
   
 Returns the height of this image buffer.
Returns: the height of this VolatileImage 
 
   
   
   
 Returns an image representing the current state of the volatile
 image buffer.  The returned image is static meaning that it is
 not updated after being created.  It is a snapshot of the
 volatile image buffer at the time getSnapshot is called.
 This method, which reads pixels from the volatile image buffer,
 may be less-performant than methods that write pixels since
 VolatileImages are typically optimized for writing.
Returns: a BufferedImage representing this VolatileImage 
 
   
   
   
 Calling this method is equivalent to calling
 getSnapshot().getSource().  The ImageProducer produces pixels
 from the BufferedImage snapshot and not from the VolatileImage
 itself.  Thus, changes to the VolatileImage that occur after this
 ImageProducer has been retrieved will not be reflected in the
 produced pixels.
 This method, which reads pixels from the volatile image buffer,
 may be less-performant than methods that write pixels since
 VolatileImages are typically optimized for writing.
Returns: an ImageProducer for a static BufferedImage snapshot of
 this image buffer 
 
   
   public  int getTransparency()
   
 Returns the transparency type of this image.
Returns: Transparency.OPAQUE, Transparency.BITMASK or
 Transparency.TRANSLUCENT 
 
   
   public abstract  int getWidth()
   
 Returns the width of this image buffer.
Returns: the width of this VolatileImage 
 
   
   
   
 Validates and restores this image.  If the image buffer has
 become unavailable for further use since the last call to
 validate, validate will allocate a new image buffer.  The image
 is also "validated" against the GraphicsConfiguration parameter.
 "Validating" the image means checking that the capabilities it
 requires of the output device are indeed supported by the given
 output device.  If the image's characteristics, which can be
 highly output device-specific, are not supported by the graphics
 configuration, then IMAGE_INCOMPATIBLE will be returned.  This
 can happen, for example, if this image was created on one output
 device, then validated against a different output device with
 different capabilities.  Calling validate with a NULL gc argument
 causes validate to skip the validation test.
Parameters: gc graphics configuration against which to validate or
 NULL
 
Returns: a code indicating the result of validation. One of:
 
   IMAGE_OK if the image did not need to be
   validated and didn't need to be restored 
   IMAGE_RESTORED if the image may need to be
   re-rendered. 
   IMAGE_INCOMPATIBLE if this image's
   requirements are not fulfilled by the graphics configuration
   parameter.  This implies that you need to create a new
   VolatileImage for the different GraphicsConfiguration or
   Component. This return value implies nothing about whether the
   image is valid or needs to be re-rendered.