org.lwjgl.opengl
Class Pbuffer

java.lang.Object
  extended by org.lwjgl.opengl.Pbuffer

public final class Pbuffer
extends java.lang.Object

Pbuffer encapsulates an OpenGL pbuffer.

This class is thread-safe.

Version:
$Revision: 3334 $ $Id: Pbuffer.java 3334 2010-04-22 23:21:48Z 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.
protected  org.lwjgl.opengl.Context context
          The OpenGL Context.
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.
protected  org.lwjgl.opengl.PeerInfo peer_info
          Handle to the native GL rendering context
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.
protected  void checkDestroyed()
           
 org.lwjgl.opengl.Context createSharedContext()
          [INTERNAL USE ONLY] Creates a new Context that is shared with the Drawable's Context.
 void destroy()
          Destroys the Drawable.
static int getCapabilities()
          Gets the Pbuffer capabilities.
 org.lwjgl.opengl.Context getContext()
          [INTERNAL USE ONLY] Returns the Drawable's Context.
 int getHeight()
           
 int getWidth()
           
 boolean isBufferLost()
          Method to test for validity of the buffer.
 boolean isCurrent()
          Returns true if the Drawable's context is current in the current thread.
 void makeCurrent()
          Makes the Drawable's context current in the current thread.
 void releaseContext()
          If the Drawable's context is current in the current thread, no context will be current after a call to this method.
 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.
 void setCLSharingProperties(PointerBuffer properties)
          Sets the appropriate khr_gl_sharing properties in the target PointerBuffer, so that if it is used in a clCreateContext(FromType) call, the created CL context will be sharing objects with this Drawable's GL context.
 
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

peer_info

protected org.lwjgl.opengl.PeerInfo peer_info
Handle to the native GL rendering context


context

protected org.lwjgl.opengl.Context context
The OpenGL Context.

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

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.

getCapabilities

public static int getCapabilities()
Gets the Pbuffer capabilities.

Returns:
a bitmask of Pbuffer capabilities.

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.

getContext

public org.lwjgl.opengl.Context getContext()
[INTERNAL USE ONLY] Returns the Drawable's Context.

Returns:
the Drawable's Context

createSharedContext

public org.lwjgl.opengl.Context createSharedContext()
                                             throws LWJGLException
[INTERNAL USE ONLY] Creates a new Context that is shared with the Drawable's Context.

Returns:
a Context shared with the Drawable's Context.
Throws:
LWJGLException

isCurrent

public boolean isCurrent()
                  throws LWJGLException
Description copied from interface: Drawable
Returns true if the Drawable's context is current in the current thread.

Throws:
LWJGLException

makeCurrent

public void makeCurrent()
                 throws LWJGLException
Description copied from interface: Drawable
Makes the Drawable's context current in the current thread.

Throws:
LWJGLException

releaseContext

public void releaseContext()
                    throws LWJGLException
Description copied from interface: Drawable
If the Drawable's context is current in the current thread, no context will be current after a call to this method.

Throws:
LWJGLException

destroy

public void destroy()
Description copied from interface: Drawable
Destroys the Drawable.


setCLSharingProperties

public void setCLSharingProperties(PointerBuffer properties)
                            throws LWJGLException
Description copied from interface: Drawable
Sets the appropriate khr_gl_sharing properties in the target PointerBuffer, so that if it is used in a clCreateContext(FromType) call, the created CL context will be sharing objects with this Drawable's GL context. After a call to this method, the target buffer position will have advanced by 2 to 4 positions, depending on the implementation.

Parameters:
properties - The target properties buffer. It must have at least 4 positions remaining.
Throws:
LWJGLException

checkDestroyed

protected final void checkDestroyed()


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