Top Description Fields Constructors Methods
org.lwjgl.opengl

public Class ARBFramebufferObject

extends Object
Class Inheritance
Imports
java.nio.*, org.lwjgl.system.*

Native bindings to the ARB_framebuffer_object extension.

ARB_framebuffer_object is an extension intended to address the following goals:

ARB_framebuffer_object defines an interface for drawing to rendering destinations other than the buffers provided to the GL by the window-system.

In this extension, these newly defined rendering destinations are known collectively as "framebuffer-attachable images". This extension provides a mechanism for attaching framebuffer-attachable images to the GL framebuffer as one of the standard GL logical buffers: color, depth, and stencil. (Attaching a framebuffer-attachable image to the accum logical buffer is left for a future extension to define). When a framebuffer-attachable image is attached to the framebuffer, it is used as the source and destination of fragment operations as described in Chapter 4.

By allowing the use of a framebuffer-attachable image as a rendering destination, this extension enables a form of "offscreen" rendering. Furthermore, "render to texture" is supported by allowing the images of a texture to be used as framebuffer-attachable images. A particular image of a texture object is selected for use as a framebuffer-attachable image by specifying the mipmap level, cube map face (for a cube map texture), and layer (for a 3D texture) that identifies the image. The "render to texture" semantics of this extension are similar to performing traditional rendering to the framebuffer, followed immediately by a call to CopyTexSubImage. However, by using this extension instead, an application can achieve the same effect, but with the advantage that the GL can usually eliminate the data copy that would have been incurred by calling CopyTexSubImage.

This extension also defines a new GL object type, called a "renderbuffer", which encapsulates a single 2D pixel image. The image of renderbuffer can be used as a framebuffer-attachable image for generalized offscreen rendering and it also provides a means to support rendering to GL logical buffer types which have no corresponding texture format (stencil, accum, etc). A renderbuffer is similar to a texture in that both renderbuffers and textures can be independently allocated and shared among multiple contexts. The framework defined by this extension is general enough that support for attaching images from GL objects other than textures and renderbuffers could be added by layered extensions.

To facilitate efficient switching between collections of framebuffer-attachable images, this extension introduces another new GL object, called a framebuffer object. A framebuffer object contains the state that defines the traditional GL framebuffer, including its set of images. Prior to this extension, it was the window-system which defined and managed this collection of images, traditionally by grouping them into a "drawable". The window-system API's would also provide a function (i.e., WGL#wglMakeCurrent, GLX#glXMakeCurrent, aglSetDrawable, etc.) to bind a drawable with a GL context (as is done in the WGL_ARB_pbuffer extension). In this extension however, this functionality is subsumed by the GL and the GL provides the function BindFramebuffer to bind a framebuffer object to the current context. Later, the context can bind back to the window-system-provided framebuffer in order to display rendered content.

Previous extensions that enabled rendering to a texture have been much more complicated. One example is the combination of ARB_pbuffer and ARB_render_texture, both of which are window-system extensions. This combination requires calling MakeCurrent, an operation that may be expensive, to switch between the window and the pbuffer drawables. An application must create one pbuffer per renderable texture in order to portably use ARB_render_texture. An application must maintain at least one GL context per texture format, because each context can only operate on a single pixelformat or FBConfig. All of these characteristics make ARB_render_texture both inefficient and cumbersome to use.

ARB_framebuffer_object, on the other hand, is both simpler to use and more efficient than ARB_render_texture. The ARB_framebuffer_object API is contained wholly within the GL API and has no (non-portable) window-system components. Under ARB_framebuffer_object, it is not necessary to create a second GL context when rendering to a texture image whose format differs from that of the window. Finally, unlike the pbuffers of ARB_render_texture, a single framebuffer object can facilitate rendering to an unlimited number of texture objects.

This extension differs from EXT_framebuffer_object by splitting the framebuffer object binding point into separate DRAW and READ bindings (incorporating functionality introduced by EXT_framebuffer_blit). This allows copying directly from one framebuffer to another. In addition, a new high performance blit function is added to facilitate these blits and perform some data conversion where allowed.

This extension also enables usage of multisampling in conjunction with renderbuffers (incorporating functionality from EXT_packed_depth_stencil), as follows:

The new operation RenderbufferStorageMultisample() allocates storage for a renderbuffer object that can be used as a multisample buffer. A multisample render buffer image differs from a single-sample render buffer image in that a multisample image has a number of SAMPLES that is greater than zero. No method is provided for creating multisample texture images.

All of the framebuffer-attachable images attached to a framebuffer object must have the same number of SAMPLES or else the framebuffer object is not "framebuffer complete". If a framebuffer object with multisample attachments is "framebuffer complete", then the framebuffer object behaves as if SAMPLE_BUFFERS is one.

In traditional multisample rendering, where DRAW_FRAMEBUFFER_BINDING is zero and SAMPLE_BUFFERS is one, the GL spec states that "the color sample values are resolved to a single, displayable color each time a pixel is updated." There are, however, several modern hardware implementations that do not actually resolve for each sample update, but instead postpones the resolve operation to a later time and resolve a batch of sample updates at a time. This is OK as long as the implementation behaves "as if" it had resolved a sample-at-a-time. Unfortunately, however, honoring the "as if" rule can sometimes degrade performance.

In contrast, when DRAW_FRAMEBUFFER_BINDING is an application-created framebuffer object, MULTISAMPLE is enabled, and SAMPLE_BUFFERS is one, there is no implicit per-sample-update resolve. Instead, the application explicitly controls when the resolve operation is performed. The resolve operation is affected by calling BlitFramebuffer where the source is a multisample application-created framebuffer object and the destination is a single-sample framebuffer object (either application-created or window-system provided).

This design for multisample resolve more closely matches current hardware, but still permits implementations which choose to resolve a single sample at a time. If hardware that implements the multisample resolution "one sample at a time" exposes ARB_framebuffer_object, it could perform the implicit resolve to a driver-managed hidden surface, then read from that surface when the application calls BlitFramebuffer.

Another motivation for granting the application explicit control over the multisample resolve operation has to do with the flexibility afforded by ARB_framebuffer_object. Previously, a drawable (window or pbuffer) had exclusive access to all of its buffers. There was no mechanism for sharing a buffer across multiple drawables. Under ARB_framebuffer_object, however, a mechanism exists for sharing a framebuffer-attachable image across several framebuffer objects, as well as sharing an image between a framebuffer object and a texture. If we had retained the "implicit" resolve from traditional multisampled rendering, and allowed the creation of "multisample" format renderbuffers, then this type of sharing would have lead to two problematic situations:

Using BlitFramebuffer as an explicit resolve to serialize access to the multisampled contents and eliminate the implicit per-sample resolve operation, we avoid both of these problems.

This extension also enables usage of packed depth-stencil formats in renderbuffers (incorporating functionality from EXT_packed_depth_stencil), as follows:

Many OpenGL implementations have chosen to interleave the depth and stencil buffers into one buffer, often with 24 bits of depth precision and 8 bits of stencil data. 32 bits is more than is needed for the depth buffer much of the time; a 24-bit depth buffer, on the other hand, requires that reads and writes of depth data be unaligned with respect to power-of-two boundaries. On the other hand, 8 bits of stencil data is more than sufficient for most applications, so it is only natural to pack the two buffers into a single buffer with both depth and stencil data. OpenGL never provides direct access to the buffers, so the OpenGL implementation can provide an interface to applications where it appears the one merged buffer is composed of two logical buffers.

One disadvantage of this scheme is that OpenGL lacks any means by which this packed data can be handled efficiently. For example, when an application reads from the 24-bit depth buffer, using the type UNSIGNED_SHORT will lose 8 bits of data, while UNSIGNED_INT has 8 too many. Both require expensive format conversion operations. A 24-bit format would be no more suitable, because it would also suffer from the unaligned memory accesses that made the standalone 24-bit depth buffer an unattractive proposition in the first place.

Many applications, such as parallel rendering applications, may also wish to draw to or read back from both the depth and stencil buffers at the same time. Currently this requires two separate operations, reducing performance. Since the buffers are interleaved, drawing to or reading from both should be no more expensive than using just one; in some cases, it may even be cheaper.

This extension provides a new data format, DEPTH_STENCIL, that can be used with the DrawPixels, ReadPixels, and CopyPixels commands, as well as a packed data type, UNSIGNED_INT_24_8, that is meant to be used with DEPTH_STENCIL. No other data types are supported with DEPTH_STENCIL. If ARB_depth_texture or SGIX_depth_texture is supported, DEPTH_STENCIL/UNSIGNED_INT_24_8 data can also be used for textures; this provides a more efficient way to supply data for a 24-bit depth texture.

DEPTH_STENCIL data, when passed through the pixel path, undergoes both depth and stencil operations. The depth data is scaled and biased by the current DEPTH_SCALE and DEPTH_BIAS, while the stencil data is shifted and offset by the current INDEX_SHIFT and INDEX_OFFSET. The stencil data is also put through the stencil-to-stencil pixel map.

DrawPixels of DEPTH_STENCIL data operates similarly to that of STENCIL_INDEX data, bypassing the OpenGL fragment pipeline entirely, unlike the treatment of DEPTH_COMPONENT data. The stencil and depth masks are applied, as are the pixel ownership and scissor tests, but all other operations are skipped.

ReadPixels of DEPTH_STENCIL data reads back a rectangle from both the depth and stencil buffers.

CopyPixels of DEPTH_STENCIL data copies a rectangle from both the depth and stencil buffers. Like glDrawPixels, it applies both the stencil and depth masks but skips the remainder of the OpenGL fragment pipeline.

glTex[Sub]Image[1,2,3]D of DEPTH_STENCIL data loads depth and stencil data into a depth_stencil texture. GetTexImage of DEPTH_STENCIL data can be used to retrieve depth and stencil data from a depth/stencil texture.

In addition, a new base internal format, DEPTH_STENCIL, can be used by both texture images and renderbuffer storage. When an image with a DEPTH_STENCIL internal format is attached to both the depth and stencil attachment points of a framebuffer object, then it becomes both the depth and stencil buffers of the framebuffer. This fits nicely with hardware that interleaves both depth and stencil data into a single buffer. When a texture with DEPTH_STENCIL data is bound for texturing, only the depth component is accessible through the texture fetcher. The stencil data can be written with TexImage or CopyTexImage, and can be read with GetTexImage. When a DEPTH_STENCIL image is attached to the stencil attachment of the bound framebuffer object, the stencil data can be accessed through any operation that reads from or writes to the framebuffer's stencil buffer.

Glossary of Helpful Terms

Promoted to core in OpenGL 3.0.

Field Summary

Modifier and TypeField and Description
public static final int
GL_COLOR_ATTACHMENT0

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT1

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT10

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT11

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT12

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT13

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT14

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT15

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT2

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT3

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT4

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT5

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT6

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT7

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT8

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_COLOR_ATTACHMENT9

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_DEPTH24_STENCIL8

Accepted by the internalformat parameter of TexImage1D, TexImage2D, TexImage3D, CopyTexImage1D, CopyTexImage2D, and RenderbufferStorage, and returned in the data parameter of GetTexLevelParameter and GetRenderbufferParameteriv.

public static final int
GL_DEPTH_ATTACHMENT

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_DEPTH_STENCIL

Accepted by the format parameter of DrawPixels, ReadPixels, TexImage1D, TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, TexSubImage3D, and GetTexImage, by the type parameter of CopyPixels, by the internalformat parameter of TexImage1D, TexImage2D, TexImage3D, CopyTexImage1D, CopyTexImage2D, and RenderbufferStorage, and returned in the data parameter of GetTexLevelParameter and GetRenderbufferParameteriv.

public static final int
GL_DEPTH_STENCIL_ATTACHMENT

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_DRAW_FRAMEBUFFER

Accepted by the target parameter of BindFramebuffer, CheckFramebufferStatus, FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_DRAW_FRAMEBUFFER_BINDING

Accepted by the pname parameters of GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_FRAMEBUFFER

Accepted by the target parameter of BindFramebuffer, CheckFramebufferStatus, FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL

Accepted by the pname parameter of GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_BINDING

Accepted by the pname parameters of GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_FRAMEBUFFER_COMPLETE

Returned by CheckFramebufferStatus().

public static final int
GL_FRAMEBUFFER_DEFAULT

Returned in params by GetFramebufferAttachmentParameteriv.

public static final int
GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT

Returned by CheckFramebufferStatus().

public static final int
GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER

Returned by CheckFramebufferStatus().

public static final int
GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT

Returned by CheckFramebufferStatus().

public static final int
GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE

Returned by CheckFramebufferStatus().

public static final int
GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER

Returned by CheckFramebufferStatus().

public static final int
GL_FRAMEBUFFER_UNDEFINED

Returned by CheckFramebufferStatus().

public static final int
GL_FRAMEBUFFER_UNSUPPORTED

Returned by CheckFramebufferStatus().

public static final int
GL_INDEX

Returned in params by GetFramebufferAttachmentParameteriv.

public static final int
GL_INVALID_FRAMEBUFFER_OPERATION

Returned by GetError().

public static final int
GL_MAX_COLOR_ATTACHMENTS

Accepted by the pname parameters of GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_MAX_RENDERBUFFER_SIZE

Accepted by the pname parameters of GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_MAX_SAMPLES

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

public static final int
GL_READ_FRAMEBUFFER

Accepted by the target parameter of BindFramebuffer, CheckFramebufferStatus, FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_READ_FRAMEBUFFER_BINDING

Accepted by the pname parameters of GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_RENDERBUFFER

Accepted by the target parameter of BindRenderbuffer, RenderbufferStorage, and GetRenderbufferParameteriv, and returned by GetFramebufferAttachmentParameteriv.

public static final int
GL_RENDERBUFFER_ALPHA_SIZE

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_BINDING

Accepted by the pname parameters of GetIntegerv, GetFloatv, and GetDoublev.

public static final int
GL_RENDERBUFFER_BLUE_SIZE

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_DEPTH_SIZE

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_GREEN_SIZE

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_HEIGHT

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_INTERNAL_FORMAT

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_RED_SIZE

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_SAMPLES

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_STENCIL_SIZE

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_RENDERBUFFER_WIDTH

Accepted by the pname parameter of GetRenderbufferParameteriv.

public static final int
GL_STENCIL_ATTACHMENT

Accepted by the attachment parameter of FramebufferTexture{1D|2D|3D}, FramebufferRenderbuffer, and GetFramebufferAttachmentParameteriv.

public static final int
GL_STENCIL_INDEX1

Accepted by the internalformat parameter of RenderbufferStorage.

public static final int
GL_STENCIL_INDEX16

Accepted by the internalformat parameter of RenderbufferStorage.

public static final int
GL_STENCIL_INDEX4

Accepted by the internalformat parameter of RenderbufferStorage.

public static final int
GL_STENCIL_INDEX8

Accepted by the internalformat parameter of RenderbufferStorage.

public static final int
GL_TEXTURE_STENCIL_SIZE

Accepted by the value parameter of GetTexLevelParameter.

public static final int
GL_UNSIGNED_INT_24_8

Accepted by the type parameter of DrawPixels, ReadPixels, TexImage1D, TexImage2D, TexImage3D, TexSubImage1D, TexSubImage2D, TexSubImage3D, and GetTexImage.

public static final int
GL_UNSIGNED_NORMALIZED

Returned in params by GetFramebufferAttachmentParameteriv.

Constructor Summary

AccessConstructor and Description
protected

Method Summary

Modifier and TypeMethod and Description
public static void
glBindFramebuffer(int
the framebuffer target of the binding operation. One of:
FRAMEBUFFERREAD_FRAMEBUFFERDRAW_FRAMEBUFFER
target
,
int
the name of the framebuffer object to bind
framebuffer
)

Binds a framebuffer to a framebuffer target.

public static void
glBindRenderbuffer(int
the renderbuffer target of the binding operation. Must be:
RENDERBUFFER
target
,
int
the name of the renderbuffer object to bind
renderbuffer
)

Binds a renderbuffer to a renderbuffer target.

public static void
glBlitFramebuffer(int
the lower-left coordinate of the source rectangle within the read buffer
srcX0
,
int
the upper-left coordinate of the source rectangle within the read buffer
srcY0
,
int
the lower-right coordinate of the source rectangle within the read buffer
srcX1
,
int
the upper-right coordinate of the source rectangle within the read buffer
srcY1
,
int
the lower-left coordinate of the destination rectangle within the write buffer
dstX0
,
int
the upper-left coordinate of the destination rectangle within the write buffer
dstY0
,
int
the lower-right coordinate of the destination rectangle within the write buffer
dstX1
,
int
the upper-right coordinate of the destination rectangle within the write buffer
dstY1
,
int
the bitwise OR of the flags indicating which buffers are to be copied. One of:
COLOR_BUFFER_BITDEPTH_BUFFER_BITSTENCIL_BUFFER_BIT
mask
,
int
the interpolation to be applied if the image is stretched. One of:
NEARESTLINEAR
filter
)

Copies a block of pixels from the read framebuffer to the draw framebuffer.

public static int
glCheckFramebufferStatus(int
the target of the framebuffer completeness check. One of:
FRAMEBUFFERREAD_FRAMEBUFFERDRAW_FRAMEBUFFER
target
)

Checks the completeness status of a framebuffer.

public static void
glDeleteFramebuffers(IntBuffer
an array containing n framebuffer objects to be deleted
framebuffers
)

Deletes framebuffer objects.

public static void
glDeleteFramebuffers(int framebuffer)

Deletes framebuffer objects.

public static void
glDeleteFramebuffers(int[] framebuffers)

Array version of: DeleteFramebuffers

public static void
glDeleteRenderbuffers(IntBuffer
an array containing n renderbuffer objects to be deleted
renderbuffers
)

Deletes renderbuffer objects.

public static void
glDeleteRenderbuffers(int renderbuffer)

Deletes renderbuffer objects.

public static void
glDeleteRenderbuffers(int[] renderbuffers)

Array version of: DeleteRenderbuffers

public static void
public static void
public static void
public static void
glFramebufferTexture3D(int
the framebuffer target. One of:
FRAMEBUFFERREAD_FRAMEBUFFERDRAW_FRAMEBUFFER
target
,
int attachment, int
the type of texture
textarget
,
int
the texture object to attach to the framebuffer attachment point named by attachment
texture
,
int
the mipmap level of texture to attach
level
,
int
the layer of a 2-dimensional image within the 3-dimensional texture.
layer
)

Attaches a layer of a 3D texture object as a logical buffer to the currently bound framebuffer object.

public static void
public static void
glGenerateMipmap(int
the target to which the texture whose mimaps to generate is bound. One of:
TEXTURE_1DTEXTURE_2DTEXTURE_3DTEXTURE_1D_ARRAYTEXTURE_2D_ARRAYTEXTURE_CUBE_MAP
target
)

Generate mipmaps for a specified texture target.

public static void
glGenFramebuffers(IntBuffer
a buffer in which the generated framebuffer object names are stored
framebuffers
)

Generates framebuffer object names.

public static int
glGenFramebuffers()

Generates framebuffer object names.

public static void
glGenFramebuffers(int[] framebuffers)

Array version of: GenFramebuffers

public static void
glGenRenderbuffers(IntBuffer
a buffer in which the generated renderbuffer object names are stored
renderbuffers
)

Generates renderbuffer object names.

public static int
glGenRenderbuffers()

Generates renderbuffer object names.

public static void
glGenRenderbuffers(int[] renderbuffers)

Array version of: GenRenderbuffers

public static int
public static void
public static void
glGetFramebufferAttachmentParameteriv(int target, int attachment, int pname, int[] params)

Array version of: GetFramebufferAttachmentParameteriv

public static int
glGetRenderbufferParameteri(int
the target of the query operation. Must be:
RENDERBUFFER
target
,
int pname)

Retrieves information about a bound renderbuffer object.

public static void
glGetRenderbufferParameteriv(int
the target of the query operation. Must be:
RENDERBUFFER
target
,
int pname, IntBuffer
an array to receive the value of the queried parameter
params
)

Retrieves information about a bound renderbuffer object.

public static void
glGetRenderbufferParameteriv(int target, int pname, int[] params)

Array version of: GetRenderbufferParameteriv

public static boolean
glIsFramebuffer(int
a value that may be the name of a framebuffer object
framebuffer
)

Determines if a name corresponds to a framebuffer object.

public static boolean
glIsRenderbuffer(int
a value that may be the name of a renderbuffer object
renderbuffer
)

Determines if a name corresponds to a renderbuffer object.

public static void
glRenderbufferStorage(int
the target of the allocation. Must be:
RENDERBUFFER
target
,
int
the internal format to use for the renderbuffer object's image. Must be a color-renderable, depth-renderable, or stencil-renderable format.
internalformat
,
int
the width of the renderbuffer, in pixels
width
,
int
the height of the renderbuffer, in pixels
height
)

Establishes data storage, format and dimensions of a renderbuffer object's image.

public static void
glRenderbufferStorageMultisample(int
the target of the allocation. Must be:
RENDERBUFFER
target
,
int
the number of samples to be used for the renderbuffer object's storage
samples
,
int
the internal format to use for the renderbuffer object's image. Must be a color-renderable, depth-renderable, or stencil-renderable format.
internalformat
,
int
the width of the renderbuffer, in pixels
width
,
int
the height of the renderbuffer, in pixels
height
)

Establishes data storage, format, dimensions and sample count of a renderbuffer object's image.

public static void
nglDeleteFramebuffers(int
the number of framebuffer objects to be deleted
n
,
long framebuffers)

Unsafe version of: DeleteFramebuffers

public static void
nglDeleteRenderbuffers(int
the number of renderbuffer objects to be deleted
n
,
long renderbuffers)

Unsafe version of: DeleteRenderbuffers

public static void
nglGenFramebuffers(int
the number of framebuffer object names to generate
n
,
long framebuffers)

Unsafe version of: GenFramebuffers

public static void
nglGenRenderbuffers(int
the number of renderbuffer object names to generate
n
,
long renderbuffers)

Unsafe version of: GenRenderbuffers

public static void
nglGetFramebufferAttachmentParameteriv(int target, int attachment, int pname, long params)

Unsafe version of: GetFramebufferAttachmentParameteriv

public static void
nglGetRenderbufferParameteriv(int target, int pname, long params)

Unsafe version of: GetRenderbufferParameteriv

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait