java.awt

## Class Component.FlipBufferStrategy

- java.lang.Object
- - java.awt.image.BufferStrategy
  - - java.awt.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`.

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

### Field Summary

Fields
`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.

### Constructor Summary

Constructors
`protected` `Component.FlipBufferStrategy(int numBuffers, BufferCapabilities caps)` Creates a new flipping buffer strategy for this component.

### Method Summary

Methods
`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 inherited from class java.lang.Object

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

### Field Detail

#### 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.

### Constructor Detail

#### Component.FlipBufferStrategy

    protected Component.FlipBufferStrategy(int numBuffers,
                                BufferCapabilities caps)
                                    throws AWTException

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

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.
See Also:
  `Canvas`, `Window`

### Method Detail

#### 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()`

Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved.