java.awt

Class Component.FlipBufferStrategy

Enclosing Class:
Component

protected class Component.FlipBufferStrategy
extends BufferStrategy

This class provides support for flipping component buffers. It can only be used on Canvases and Windows.
Since:
1.4

Field Summary

protected BufferCapabilities
caps
The capabilities of this buffering strategy.
protected Image
drawBuffer
An Image reference to the drawing buffer.
protected VolatileImage
drawVBuffer
A VolatileImage reference to the drawing buffer.
protected int
numBuffers
The number of buffers.
protected boolean
validatedContents
Whether or not the image buffer resources are allocated and ready to be drawn into.

Constructor Summary

FlipBufferStrategy(int numBuffers, BufferCapabilities caps)
Creates a flipping buffer strategy.

Method Summary

boolean
contentsLost()
Returns whether or not the image buffer resources have been lost.
boolean
contentsRestored()
Returns whether or not the image buffer resources have been restored.
protected void
createBuffers(int numBuffers, BufferCapabilities caps)
Creates a multi-buffer flipping strategy.
protected void
destroyBuffers()
Release the back buffer's resources.
protected void
flip(BufferCapabilities.FlipContents flipAction)
Perform a flip operation to transfer the contents of the back buffer to the front buffer.
protected Image
getBackBuffer()
Return a direct reference to the back buffer image.
BufferCapabilities
getCapabilities()
Retrieves the capabilities of this buffer strategy.
Graphics
getDrawGraphics()
Retrieves a graphics object that can be used to draw into this strategy's image buffer.
protected void
revalidate()
Re-create the image buffer resources if they've been lost.
void
show()
Bring the contents of the back buffer to the front buffer.

Methods inherited from class java.awt.image.BufferStrategy

contentsLost, contentsRestored, getCapabilities, getDrawGraphics, show

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

caps

protected BufferCapabilities caps
The capabilities of this buffering strategy.

drawBuffer

protected Image drawBuffer
An Image reference to the drawing buffer.

drawVBuffer

protected VolatileImage drawVBuffer
A VolatileImage reference to the drawing buffer.

numBuffers

protected int numBuffers
The number of buffers.

validatedContents

protected boolean validatedContents
Whether or not the image buffer resources are allocated and ready to be drawn into.

Constructor Details

FlipBufferStrategy

protected FlipBufferStrategy(int numBuffers,
                             BufferCapabilities caps)
            throws AWTException
Creates a flipping buffer strategy. The only supported strategy for FlipBufferStrategy itself is a double-buffer page flipping strategy. It forms the basis for more complex derived strategies.
Parameters:
numBuffers - the number of buffers
caps - the capabilities of this buffering strategy
Throws:
AWTException - if the requested number-of-buffers/capabilities combination is not supported

Method Details

contentsLost

public boolean contentsLost()
Returns whether or not the image buffer resources have been lost.
Overrides:
contentsLost in interface BufferStrategy
Returns:
true if the resources have been lost, false otherwise

contentsRestored

public boolean contentsRestored()
Returns whether or not the image buffer resources have been restored.
Overrides:
contentsRestored in interface BufferStrategy
Returns:
true if the resources have been restored, false otherwise

createBuffers

protected void createBuffers(int numBuffers,
                             BufferCapabilities caps)
            throws AWTException
Creates a multi-buffer flipping strategy. The number of buffers must be greater than one and the buffer capabilities must specify page flipping.
Parameters:
numBuffers - the number of flipping buffers; must be greater than one
caps - the buffering capabilities; caps.isPageFlipping() must return true
Throws:
IllegalArgumentException - if numBuffers is not greater than one or if the page flipping capability is not requested
AWTException - if the requested flipping strategy is not supported

destroyBuffers

protected void destroyBuffers()
Release the back buffer's resources.

flip

protected void flip(BufferCapabilities.FlipContents flipAction)
Perform a flip operation to transfer the contents of the back buffer to the front buffer.

getBackBuffer

protected Image getBackBuffer()
Return a direct reference to the back buffer image.
Returns:
a direct reference to the back buffer image.

getCapabilities

public BufferCapabilities getCapabilities()
Retrieves the capabilities of this buffer strategy.
Overrides:
getCapabilities in interface BufferStrategy
Returns:
the capabilities of this buffer strategy

getDrawGraphics

public Graphics getDrawGraphics()
Retrieves a graphics object that can be used to draw into this strategy's image buffer.
Overrides:
getDrawGraphics in interface BufferStrategy
Returns:
a graphics object

revalidate

protected void revalidate()
Re-create the image buffer resources if they've been lost.

show

public void show()
Bring the contents of the back buffer to the front buffer.
Overrides:
show in interface BufferStrategy

Component.java -- a graphics component Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2006 Free Software Foundation 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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.