Class Component.FlipBufferStrategy

Enclosing class:
Component
protected class Component.FlipBufferStrategy
extends BufferStrategy

Inner class for flipping buffers on a component. That component must be a Canvas or Window or Applet.

Since:
1.4
See Also:
Canvas, Window, Applet, BufferStrategy

Fields

Modifier and Type Field Description
protected BufferCapabilities caps

The buffering capabilities

protected Image drawBuffer

The drawing buffer

protected VolatileImage drawVBuffer

The drawing buffer as a volatile image

protected int numBuffers

The number of buffers

protected boolean validatedContents

Whether or not the drawing buffer has been recently restored from a lost state.

Constructors

Modifier Constructor Description
protected FlipBufferStrategy​(int numBuffers, BufferCapabilities caps)

Creates a new flipping buffer strategy for this component.

Methods

Modifier and Type Method Description
boolean contentsLost()

Returns whether the drawing buffer was lost since the last call to getDrawGraphics.

boolean contentsRestored()

Returns whether the drawing buffer was recently restored from a lost state and reinitialized to the default background color (white).

protected void createBuffers​(int numBuffers, BufferCapabilities caps)

Creates one or more complex, flipping buffers with the given capabilities.

protected void destroyBuffers()

Destroys the buffers created through this object

void dispose()

Releases system resources currently consumed by this BufferStrategy and removes it from the associated Component.

protected void flip​(BufferCapabilities.FlipContents flipAction)

Flipping moves the contents of the back buffer to the front buffer, either by copying or by moving the video pointer.

protected Image getBackBuffer()
BufferCapabilities getCapabilities()

Returns the BufferCapabilities for this BufferStrategy.

Graphics getDrawGraphics()

Creates a graphics context for the drawing buffer.

protected void revalidate()

Restore the drawing buffer if it has been lost

void show()

Makes the next available buffer visible by either blitting or flipping.

Methods declared in class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Fields

numBuffers

protected int numBuffers

The number of buffers

caps

protected BufferCapabilities caps

The buffering capabilities

drawBuffer

protected Image drawBuffer

The drawing buffer

drawVBuffer

protected VolatileImage drawVBuffer

The drawing buffer as a volatile image

validatedContents

protected boolean validatedContents

Whether or not the drawing buffer has been recently restored from a lost state.

Constructors

FlipBufferStrategy

protected FlipBufferStrategy(int numBuffers,
                             BufferCapabilities caps)
                      throws AWTException

Creates a new flipping buffer strategy for this component. The component must be a Canvas or Window or Applet.

Parameters:
numBuffers - the number of buffers
caps - the capabilities of the buffers
Throws:
AWTException - if the capabilities supplied could not be supported or met
ClassCastException - if the component is not a canvas or window.
IllegalStateException - if the component has no peer
IllegalArgumentException - if numBuffers is less than two, or if BufferCapabilities.isPageFlipping is not true.
See Also:
Canvas, Window, Applet, createBuffers(int, BufferCapabilities)

Methods

createBuffers

protected void createBuffers(int numBuffers,
                             BufferCapabilities caps)
                      throws AWTException

Creates one or more complex, flipping buffers with the given capabilities.

Parameters:
numBuffers - number of buffers to create; must be greater than one
caps - the capabilities of the buffers. BufferCapabilities.isPageFlipping must be true.
Throws:
AWTException - if the capabilities supplied could not be supported or met
IllegalStateException - if the component has no peer
IllegalArgumentException - if numBuffers is less than two, or if BufferCapabilities.isPageFlipping is not true.
See Also:
BufferCapabilities.isPageFlipping()

getBackBuffer

protected Image getBackBuffer()
Returns:
direct access to the back buffer, as an image.
Throws:
IllegalStateException - if the buffers have not yet been created

flip

protected void flip(BufferCapabilities.FlipContents flipAction)

Flipping moves the contents of the back buffer to the front buffer, either by copying or by moving the video pointer.

Parameters:
flipAction - an integer value describing the flipping action for the contents of the back buffer. This should be one of the values of the BufferCapabilities.FlipContents property.
Throws:
IllegalStateException - if the buffers have not yet been created
See Also:
BufferCapabilities.getFlipContents()

destroyBuffers

protected void destroyBuffers()

Destroys the buffers created through this object

getCapabilities

public BufferCapabilities getCapabilities()

Description copied from class: BufferStrategy

Returns the BufferCapabilities for this BufferStrategy.

Specified by:
getCapabilities in class BufferStrategy
Returns:
the buffering capabilities of this strategy

getDrawGraphics

public Graphics getDrawGraphics()

Description copied from class: BufferStrategy

Creates a graphics context for the drawing buffer. This method may not be synchronized for performance reasons; use of this method by multiple threads should be handled at the application level. Disposal of the graphics object obtained must be handled by the application.

Specified by:
getDrawGraphics in class BufferStrategy
Returns:
the graphics on the drawing buffer. This method may not be synchronized for performance reasons; use of this method by multiple threads should be handled at the application level. Disposal of the graphics object must be handled by the application.

revalidate

protected void revalidate()

Restore the drawing buffer if it has been lost

contentsLost

public boolean contentsLost()

Description copied from class: BufferStrategy

Returns whether the drawing buffer was lost since the last call to getDrawGraphics. Since the buffers in a buffer strategy are usually type VolatileImage, they may become lost. For a discussion on lost buffers, see VolatileImage.

Specified by:
contentsLost in class BufferStrategy
Returns:
whether the drawing buffer was lost since the last call to getDrawGraphics
See Also:
VolatileImage

contentsRestored

public boolean contentsRestored()

Description copied from class: BufferStrategy

Returns whether the drawing buffer was recently restored from a lost state and reinitialized to the default background color (white). Since the buffers in a buffer strategy are usually type VolatileImage, they may become lost. If a surface has been recently restored from a lost state since the last call to getDrawGraphics, it may require repainting. For a discussion on lost buffers, see VolatileImage.

Specified by:
contentsRestored in class BufferStrategy
Returns:
whether the drawing buffer was recently restored from a lost state and reinitialized to the default background color (white)
See Also:
VolatileImage

show

public void show()

Makes the next available buffer visible by either blitting or flipping.

Specified by:
show in class BufferStrategy

dispose

public void dispose()

Releases system resources currently consumed by this BufferStrategy and removes it from the associated Component. After invoking this method, getBufferStrategy will return null. Trying to use a BufferStrategy after it has been disposed will result in undefined behavior.

Overrides:
dispose in class BufferStrategy
Since:
1.6
See Also:
Window.createBufferStrategy(int), Canvas.createBufferStrategy(int), Window.getBufferStrategy(), Canvas.getBufferStrategy()

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/Component.FlipBufferStrategy.html