Top Description Fields Constructors Methods
org.lwjgl.opengl

public final Class ARBPixelBufferObject

extends Object
Class Inheritance

Native bindings to the ARB_pixel_buffer_object extension.

This extension expands on the interface provided by the ARB_vertex_buffer_object extension (and later integrated into OpenGL 1.5) in order to permit buffer objects to be used not only with vertex array data, but also with pixel data. The intent is to provide more acceleration opportunities for OpenGL pixel commands.

While a single buffer object can be bound for both vertex arrays and pixel commands, we use the designations vertex buffer object (VBO) and pixel buffer object (PBO) to indicate their particular usage in a given situation.

Recall that buffer objects conceptually are nothing more than arrays of bytes, just like any chunk of memory. ARB_vertex_buffer_object allows GL commands to source data from a buffer object by binding the buffer object to a given target and then overloading a certain set of GL commands' pointer arguments to refer to offsets inside the buffer, rather than pointers to user memory. An offset is encoded in a pointer by adding the offset to a null pointer.

This extension does not add any new functionality to buffer objects themselves. It simply adds two new targets to which buffer objects can be bound: PIXEL_PACK_BUFFER_ARB and PIXEL_UNPACK_BUFFER_ARB. When a buffer object is bound to the PIXEL_PACK_BUFFER_ARB target, commands such as ReadPixels pack (write) their data into a buffer object. When a buffer object is bound to the PIXEL_UNPACK_BUFFER_ARB target, commands such as DrawPixels and TexImage2D unpack (read) their data from a buffer object.

There are a several approaches to improve graphics performance with PBOs. Some of the most interesting approaches are:

Requires OpenGL 1.5 or ARB_vertex_buffer_object. Promoted to core in OpenGL 2.1.

Field Summary

Modifier and TypeField and Description
public static final int
GL_PIXEL_PACK_BUFFER_ARB

Accepted by the target parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferParameteriv, and GetBufferPointerv.

public static final int
GL_PIXEL_PACK_BUFFER_BINDING_ARB

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_PIXEL_UNPACK_BUFFER_ARB

Accepted by the target parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferParameteriv, and GetBufferPointerv.

public static final int
GL_PIXEL_UNPACK_BUFFER_BINDING_ARB

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

Constructor Summary

AccessConstructor and Description
private

Method Summary

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

GL_PIXEL_PACK_BUFFER_ARBback to summary
public static final int GL_PIXEL_PACK_BUFFER_ARB

Accepted by the target parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferParameteriv, and GetBufferPointerv.

GL_PIXEL_PACK_BUFFER_BINDING_ARBback to summary
public static final int GL_PIXEL_PACK_BUFFER_BINDING_ARB

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

GL_PIXEL_UNPACK_BUFFER_ARBback to summary
public static final int GL_PIXEL_UNPACK_BUFFER_ARB

Accepted by the target parameters of BindBuffer, BufferData, BufferSubData, MapBuffer, UnmapBuffer, GetBufferSubData, GetBufferParameteriv, and GetBufferPointerv.

GL_PIXEL_UNPACK_BUFFER_BINDING_ARBback to summary
public static final int GL_PIXEL_UNPACK_BUFFER_BINDING_ARB

Accepted by the pname parameter of GetBooleanv, GetIntegerv, GetFloatv, and GetDoublev.

Constructor Detail

ARBPixelBufferObjectback to summary
private ARBPixelBufferObject()