org.lwjgl.opengl
Class Pbuffer

java.lang.Object
  extended by org.lwjgl.opengl.Pbuffer
All Implemented Interfaces:
Drawable

public final class Pbuffer
extends java.lang.Object
implements Drawable

Pbuffer encapsulates an OpenGL pbuffer.

This class is thread-safe.

Version:
$Revision: 3116 $ $Id: Pbuffer.java 3116 2008-08-19 16:46:03Z spasi $
Author:
elias_naur

Field Summary
static int BACK_LEFT_BUFFER
          The Pbuffer back left buffer.
static int BACK_RIGHT_BUFFER
          The Pbuffer back right buffer.
static int CUBE_MAP_FACE
          The render-to-texture cube map face attribute.
static int DEPTH_BUFFER
          The Pbuffer depth buffer.
static int FRONT_LEFT_BUFFER
          The Pbuffer front left buffer.
static int FRONT_RIGHT_BUFFER
          The Pbuffer front right buffer.
static int MIPMAP_LEVEL
          The render-to-texture mipmap level attribute.
static int PBUFFER_SUPPORTED
          Indicates that Pbuffers can be created.
static int RENDER_DEPTH_TEXTURE_SUPPORTED
          Indicates that Pbuffers can be used as depth render-textures.
static int RENDER_TEXTURE_RECTANGLE_SUPPORTED
          Indicates that Pbuffers can be used as non-power-of-two render-textures.
static int RENDER_TEXTURE_SUPPORTED
          Indicates that Pbuffers can be used as render-textures.
static int TEXTURE_CUBE_MAP_NEGATIVE_X
          The render-to-texture cube map negative X face value.
static int TEXTURE_CUBE_MAP_NEGATIVE_Y
          The render-to-texture cube map negative Y face value.
static int TEXTURE_CUBE_MAP_NEGATIVE_Z
          The render-to-texture cube map negative Z face value.
static int TEXTURE_CUBE_MAP_POSITIVE_X
          The render-to-texture cube map positive X face value.
static int TEXTURE_CUBE_MAP_POSITIVE_Y
          The render-to-texture cube map positive Y face value.
static int TEXTURE_CUBE_MAP_POSITIVE_Z
          The render-to-texture cube map positive Z face value.
 
Constructor Summary
Pbuffer(int width, int height, PixelFormat pixel_format, Drawable shared_drawable)
          Create an instance of a Pbuffer with a unique OpenGL context.
Pbuffer(int width, int height, PixelFormat pixel_format, RenderTexture renderTexture, Drawable shared_drawable)
          Create an instance of a Pbuffer with a unique OpenGL context.
Pbuffer(int width, int height, PixelFormat pixel_format, RenderTexture renderTexture, Drawable shared_drawable, ContextAttribs attribs)
          Create an instance of a Pbuffer with a unique OpenGL context.
 
Method Summary
 void bindTexImage(int buffer)
          Binds the currently bound texture to the buffer specified.
 void destroy()
          Destroys the Pbuffer.
static int getCapabilities()
          Gets the Pbuffer capabilities.
 org.lwjgl.opengl.Context getContext()
           
 int getHeight()
           
 int getWidth()
           
 boolean isBufferLost()
          Method to test for validity of the buffer.
 void makeCurrent()
          Method to make the Pbuffer context current.
 void releaseTexImage(int buffer)
          Releases the currently bound texture from the buffer specified.
 void setAttrib(int attrib, int value)
          Sets a render-to-texture attribute.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PBUFFER_SUPPORTED

public static final int PBUFFER_SUPPORTED
Indicates that Pbuffers can be created.

See Also:
Constant Field Values

RENDER_TEXTURE_SUPPORTED

public static final int RENDER_TEXTURE_SUPPORTED
Indicates that Pbuffers can be used as render-textures.

See Also:
Constant Field Values

RENDER_TEXTURE_RECTANGLE_SUPPORTED

public static final int RENDER_TEXTURE_RECTANGLE_SUPPORTED
Indicates that Pbuffers can be used as non-power-of-two render-textures.

See Also:
Constant Field Values

RENDER_DEPTH_TEXTURE_SUPPORTED

public static final int RENDER_DEPTH_TEXTURE_SUPPORTED
Indicates that Pbuffers can be used as depth render-textures.

See Also:
Constant Field Values

MIPMAP_LEVEL

public static final int MIPMAP_LEVEL
The render-to-texture mipmap level attribute.

See Also:
Constant Field Values

CUBE_MAP_FACE

public static final int CUBE_MAP_FACE
The render-to-texture cube map face attribute.

See Also:
Constant Field Values

TEXTURE_CUBE_MAP_POSITIVE_X

public static final int TEXTURE_CUBE_MAP_POSITIVE_X
The render-to-texture cube map positive X face value.

See Also:
Constant Field Values

TEXTURE_CUBE_MAP_NEGATIVE_X

public static final int TEXTURE_CUBE_MAP_NEGATIVE_X
The render-to-texture cube map negative X face value.

See Also:
Constant Field Values

TEXTURE_CUBE_MAP_POSITIVE_Y

public static final int TEXTURE_CUBE_MAP_POSITIVE_Y
The render-to-texture cube map positive Y face value.

See Also:
Constant Field Values

TEXTURE_CUBE_MAP_NEGATIVE_Y

public static final int TEXTURE_CUBE_MAP_NEGATIVE_Y
The render-to-texture cube map negative Y face value.

See Also:
Constant Field Values

TEXTURE_CUBE_MAP_POSITIVE_Z

public static final int TEXTURE_CUBE_MAP_POSITIVE_Z
The render-to-texture cube map positive Z face value.

See Also:
Constant Field Values

TEXTURE_CUBE_MAP_NEGATIVE_Z

public static final int TEXTURE_CUBE_MAP_NEGATIVE_Z
The render-to-texture cube map negative Z face value.

See Also:
Constant Field Values

FRONT_LEFT_BUFFER

public static final int FRONT_LEFT_BUFFER
The Pbuffer front left buffer.

See Also:
Constant Field Values

FRONT_RIGHT_BUFFER

public static final int FRONT_RIGHT_BUFFER
The Pbuffer front right buffer.

See Also:
Constant Field Values

BACK_LEFT_BUFFER

public static final int BACK_LEFT_BUFFER
The Pbuffer back left buffer.

See Also:
Constant Field Values

BACK_RIGHT_BUFFER

public static final int BACK_RIGHT_BUFFER
The Pbuffer back right buffer.

See Also:
Constant Field Values

DEPTH_BUFFER

public static final int DEPTH_BUFFER
The Pbuffer depth buffer.

See Also:
Constant Field Values
Constructor Detail

Pbuffer

public Pbuffer(int width,
               int height,
               PixelFormat pixel_format,
               Drawable shared_drawable)
        throws LWJGLException
Create an instance of a Pbuffer with a unique OpenGL context. The buffer is single-buffered.

NOTE: The Pbuffer will have its own context that shares display lists and textures with shared_context, or, if shared_context is null, the Display context if it is created. The Pbuffer will have its own OpenGL state. Therefore, state changes to a pbuffer will not be seen in the window context and vice versa.

Parameters:
width - Pbuffer width
height - Pbuffer height
pixel_format - Minimum Pbuffer context properties
shared_drawable - If non-null the Pbuffer will share display lists and textures with it. Otherwise, the Pbuffer will share with the Display context (if created).
Throws:
LWJGLException

Pbuffer

public Pbuffer(int width,
               int height,
               PixelFormat pixel_format,
               RenderTexture renderTexture,
               Drawable shared_drawable)
        throws LWJGLException
Create an instance of a Pbuffer with a unique OpenGL context. The buffer is single-buffered.

NOTE: The Pbuffer will have its own context that shares display lists and textures with shared_context, or, if shared_context is null, the Display context if it is created. The Pbuffer will have its own OpenGL state. Therefore, state changes to a pbuffer will not be seen in the window context and vice versa.

The renderTexture parameter defines the necessary state for enabling render-to-texture. When this parameter is null, render-to-texture is not available. Before using render-to-texture, the Pbuffer capabilities must be queried to ensure that it is supported. Currently only windows platform can support this feature, so it is recommended that EXT_framebuffer_object or similar is used if available, for maximum portability.

Parameters:
width - Pbuffer width
height - Pbuffer height
pixel_format - Minimum Pbuffer context properties
renderTexture -
shared_drawable - If non-null the Pbuffer will share display lists and textures with it. Otherwise, the Pbuffer will share with the Display context (if created).
Throws:
LWJGLException

Pbuffer

public Pbuffer(int width,
               int height,
               PixelFormat pixel_format,
               RenderTexture renderTexture,
               Drawable shared_drawable,
               ContextAttribs attribs)
        throws LWJGLException
Create an instance of a Pbuffer with a unique OpenGL context. The buffer is single-buffered.

NOTE: The Pbuffer will have its own context that shares display lists and textures with shared_context, or, if shared_context is null, the Display context if it is created. The Pbuffer will have its own OpenGL state. Therefore, state changes to a pbuffer will not be seen in the window context and vice versa.

The renderTexture parameter defines the necessary state for enabling render-to-texture. When this parameter is null, render-to-texture is not available. Before using render-to-texture, the Pbuffer capabilities must be queried to ensure that it is supported. Currently only windows platform can support this feature, so it is recommended that EXT_framebuffer_object or similar is used if available, for maximum portability.

Parameters:
width - Pbuffer width
height - Pbuffer height
pixel_format - Minimum Pbuffer context properties
renderTexture -
shared_drawable - If non-null the Pbuffer will share display lists and textures with it. Otherwise, the Pbuffer will share with the Display context (if created).
attribs - The ContextAttribs to use when creating the context. (optional, may be null)
Throws:
LWJGLException
Method Detail

getContext

public org.lwjgl.opengl.Context getContext()
Specified by:
getContext in interface Drawable

isBufferLost

public boolean isBufferLost()
Method to test for validity of the buffer. If this function returns true, the buffer contents is lost. The buffer can still be used, but the results are undefined. The application is expected to release the buffer if needed, destroy it and recreate a new buffer.

Returns:
true if the buffer is lost and destroyed, false if the buffer is valid.

makeCurrent

public void makeCurrent()
                 throws LWJGLException
Method to make the Pbuffer context current. All subsequent OpenGL calls will go to this buffer.

Throws:
LWJGLException - if the context could not be made current

getCapabilities

public static int getCapabilities()
Gets the Pbuffer capabilities.

Returns:
a bitmask of Pbuffer capabilities.

destroy

public void destroy()
Destroys the Pbuffer. After this call, there will be no valid GL rendering context - regardless of whether this Pbuffer was the current rendering context or not.


setAttrib

public void setAttrib(int attrib,
                      int value)
Sets a render-to-texture attribute.

The attrib parameter can be one of MIPMAP_LEVEL and CUBE_MAP_FACE. When the attrib parameter is CUBE_MAP_FACE then the value parameter can be on of the following:

TEXTURE_CUBE_MAP_POSITIVE_X TEXTURE_CUBE_MAP_NEGATIVE_X TEXTURE_CUBE_MAP_POSITIVE_Y TEXTURE_CUBE_MAP_NEGATIVE_Y TEXTURE_CUBE_MAP_POSITIVE_Z TEXTURE_CUBE_MAP_NEGATIVE_Z

Parameters:
attrib -
value -

bindTexImage

public void bindTexImage(int buffer)
Binds the currently bound texture to the buffer specified. The buffer can be one of the following:

FRONT_LEFT_BUFFER FRONT_RIGHT_BUFFER BACK_LEFT_BUFFER BACK_RIGHT_BUFFER DEPTH_BUFFER

Parameters:
buffer -

releaseTexImage

public void releaseTexImage(int buffer)
Releases the currently bound texture from the buffer specified.

Parameters:
buffer -

getHeight

public int getHeight()
Returns:
Returns the height.

getWidth

public int getWidth()
Returns:
Returns the width.


Copyright © 2002-2009 lwjgl.org. All Rights Reserved.