Class PingPongBuffer

java.lang.Object
gaiasky.util.gdx.contrib.postprocess.utils.PingPongBuffer
All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable

public final class PingPongBuffer extends Object implements com.badlogic.gdx.utils.Disposable
  • Field Details

    • ownResources

      public final boolean ownResources
    • texture1

      public com.badlogic.gdx.graphics.Texture texture1
    • texture2

      public com.badlogic.gdx.graphics.Texture texture2
    • textureDepth

      public com.badlogic.gdx.graphics.Texture textureDepth
    • textureVel

      public com.badlogic.gdx.graphics.Texture textureVel
    • textureNormal

      public com.badlogic.gdx.graphics.Texture textureNormal
    • textureReflectionMap

      public com.badlogic.gdx.graphics.Texture textureReflectionMap
    • width

      public int width
    • height

      public int height
  • Constructor Details

    • PingPongBuffer

      public PingPongBuffer(int width, int height, com.badlogic.gdx.graphics.Pixmap.Format pixmapFormat, boolean hasDepth, boolean hasVelocity, boolean hasNormal, boolean hasReflectionMask, boolean preventFloatBuffer)
      Creates a new ping-pong buffer and owns the resources.
    • PingPongBuffer

      public PingPongBuffer(GaiaSkyFrameBuffer buffer1, GaiaSkyFrameBuffer buffer2)
      Creates a new ping-pong buffer with the given buffers.
  • Method Details

    • createMainFrameBuffer

      public static GaiaSkyFrameBuffer createMainFrameBuffer(int width, int height, boolean hasDepth, boolean hasVelocity, boolean hasNormal, boolean hasReflectionMask, com.badlogic.gdx.graphics.Pixmap.Format frameBufferFormat, boolean preventFloatBuffer)
    • set

      public void set(GaiaSkyFrameBuffer buffer1, GaiaSkyFrameBuffer buffer2)
      An instance of this object can also be used to manipulate some other externally-allocated buffers, applying just the same ping-ponging behavior.

      If this instance of the object was owning the resources, they will be preserved and will be restored by a reset() call.

      Parameters:
      buffer1 - the first buffer
      buffer2 - the second buffer
    • reset

      public void reset()
      Restore the previous buffers if the instance was owning resources.
    • dispose

      public void dispose()
      Free the resources, if any.
      Specified by:
      dispose in interface com.badlogic.gdx.utils.Disposable
    • rebind

      public void rebind()
      When needed graphics memory could be invalidated so buffers should be rebuilt.
    • begin

      public void begin()
      Ensures the initial buffer state is always the same before starting ping-ponging.
    • capture

      public com.badlogic.gdx.graphics.Texture capture()
      Starts and/or continue ping-ponging, begin capturing on the next available buffer, returns the result of the previous call.
      Returns:
      the Texture containing the result.
    • end

      public void end()
      Finishes ping-ponging, must always be called after a call to capture()
    • getSouceTexture

      public com.badlogic.gdx.graphics.Texture getSouceTexture()
      Returns:
      the source texture of the current ping-pong chain.
    • getSourceBuffer

      public GaiaSkyFrameBuffer getSourceBuffer()
      Returns:
      the source buffer of the current ping-pong chain.
    • getResultTexture

      public com.badlogic.gdx.graphics.Texture getResultTexture()
      Returns:
      the result's texture of the latest capture().
    • getResultBuffer

      public GaiaSkyFrameBuffer getResultBuffer()
      Returns:
      Returns the result's buffer of the latest capture().
    • getMainBuffer

      public GaiaSkyFrameBuffer getMainBuffer()
    • getDepthTexture

      public com.badlogic.gdx.graphics.Texture getDepthTexture()
      Returns:
      the depth texture attachment containing the depth buffer