Class ARBFramebufferNoAttachments
Framebuffer objects as introduced by ARB_framebuffer_object and OpenGL 3.0 provide a generalized mechanism for rendering to off-screen surfaces.
Each framebuffer object may have depth, stencil and zero or more color attachments that can be written to by the GL. The size of the framebuffer (width,
height, layer count, sample count) is derived from the attachments of that framebuffer. In unextended OpenGL 4.2, it is not legal to render into a
framebuffer object that has no attachments. Such a framebuffer would be considered incomplete with the FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT
status.
With OpenGL 4.2 and ARB_shader_image_load_store, fragment shaders are capable of doing random access writes to buffer and texture memory via
image loads, stores, and atomics. This ability enables algorithms using the conventional rasterizer to generate a collection of fragments, where each
fragment shader invocation will write its outputs to buffer or texture memory using image stores or atomics. Such algorithms may have no need to write
color or depth values to a conventional framebuffer. However, a framebuffer with no attachments will be considered incomplete and no rasterization or
fragment shader exectuion will occur. To avoid such errors, an application may be required to create an otherwise unnecessary "dummy" texture and attach
it to the framebuffer (possibly with color writes masked off). If the algorithm requires the rasterizer to operate over a large number of pixels, this
dummy texture will needlessly consume a significant amount of memory.
This extension enables the algorithms described above to work even with a framebuffer with no attachments. Applications can specify default width, height, layer count, and sample count parameters for a framebuffer object. When a framebuffer with no attachments is bound, it will be considered complete as long as the application has specified non-zero default width and height parameters. For the purposes of rasterization, the framebuffer will be considered to have a width, height, layer count, and sample count derived from its default parameters. Framebuffers with one or more attachments are not affected by these default parameters; the size of the framebuffer will still be derived from the sizes of the attachments in that case.
Additionally, this extension provides queryable implementation-dependent maximums for framebuffer width, height, layer count, and sample count, which may differ from similar limits on textures and renderbuffers. These maximums will be used to error-check the default framebuffer parameters and also permit implementations to expose the ability to rasterize to an attachment-less framebuffer larger than the maximum supported texture size.
Requires OpenGL 3.0 or ARB_framebuffer_object. Promoted to core in OpenGL 4.3.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.static final intAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.static final intAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.static final intAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.static final intAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.static final intAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetInteger64v, GetFloatv, and GetDoublev.static final intAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetInteger64v, GetFloatv, and GetDoublev.static final intAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetInteger64v, GetFloatv, and GetDoublev.static final intAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetInteger64v, GetFloatv, and GetDoublev. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidglFramebufferParameteri(int target, int pname, int param) Sets a named parameter of a framebuffer.static intglGetFramebufferParameteri(int target, int pname) Retrieves a named parameter from a framebuffer.static voidglGetFramebufferParameteriv(int target, int pname, int[] params) Array version of:GetFramebufferParameterivstatic voidglGetFramebufferParameteriv(int target, int pname, IntBuffer params) Retrieves a named parameter from a framebuffer.static intglGetNamedFramebufferParameteriEXT(int framebuffer, int pname) DSA version ofGetFramebufferParameteriv.static voidglGetNamedFramebufferParameterivEXT(int framebuffer, int pname, int[] params) Array version of:GetNamedFramebufferParameterivEXTstatic voidglGetNamedFramebufferParameterivEXT(int framebuffer, int pname, IntBuffer params) DSA version ofGetFramebufferParameteriv.static voidglNamedFramebufferParameteriEXT(int framebuffer, int pname, int param) DSA version ofFramebufferParameteri.static voidnglGetFramebufferParameteriv(int target, int pname, long params) Unsafe version of:GetFramebufferParameterivstatic voidnglGetNamedFramebufferParameterivEXT(int framebuffer, int pname, long params) Unsafe version of:GetNamedFramebufferParameterivEXT
-
Field Details
-
GL_FRAMEBUFFER_DEFAULT_WIDTH
public static final int GL_FRAMEBUFFER_DEFAULT_WIDTHAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.- See Also:
-
GL_FRAMEBUFFER_DEFAULT_HEIGHT
public static final int GL_FRAMEBUFFER_DEFAULT_HEIGHTAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.- See Also:
-
GL_FRAMEBUFFER_DEFAULT_LAYERS
public static final int GL_FRAMEBUFFER_DEFAULT_LAYERSAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.- See Also:
-
GL_FRAMEBUFFER_DEFAULT_SAMPLES
public static final int GL_FRAMEBUFFER_DEFAULT_SAMPLESAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.- See Also:
-
GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
public static final int GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONSAccepted by thepnameparameter of FramebufferParameteri, GetFramebufferParameteriv, NamedFramebufferParameteriEXT, and GetNamedFramebufferParameterivEXT.- See Also:
-
GL_MAX_FRAMEBUFFER_WIDTH
public static final int GL_MAX_FRAMEBUFFER_WIDTHAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetInteger64v, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_FRAMEBUFFER_HEIGHT
public static final int GL_MAX_FRAMEBUFFER_HEIGHTAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetInteger64v, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_FRAMEBUFFER_LAYERS
public static final int GL_MAX_FRAMEBUFFER_LAYERSAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetInteger64v, GetFloatv, and GetDoublev.- See Also:
-
GL_MAX_FRAMEBUFFER_SAMPLES
public static final int GL_MAX_FRAMEBUFFER_SAMPLESAccepted by thepnameparameter of GetIntegerv, GetBooleanv, GetInteger64v, GetFloatv, and GetDoublev.- See Also:
-
-
Method Details
-
glFramebufferParameteri
public static void glFramebufferParameteri(int target, int pname, int param) Sets a named parameter of a framebuffer.- Parameters:
target- target of the operation. One of:READ_FRAMEBUFFERDRAW_FRAMEBUFFERFRAMEBUFFERpname- a token indicating the parameter to be modified. One of:FRAMEBUFFER_DEFAULT_WIDTHFRAMEBUFFER_DEFAULT_HEIGHTFRAMEBUFFER_DEFAULT_LAYERSFRAMEBUFFER_DEFAULT_SAMPLESFRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONSparam- the new value for the parameter namedpname
-
nglGetFramebufferParameteriv
public static void nglGetFramebufferParameteriv(int target, int pname, long params) Unsafe version of:GetFramebufferParameteriv -
glGetFramebufferParameteriv
Retrieves a named parameter from a framebuffer.- Parameters:
target- target of the operation. One of:READ_FRAMEBUFFERDRAW_FRAMEBUFFERFRAMEBUFFERpname- a token indicating the parameter to be retrieved. One of:FRAMEBUFFER_DEFAULT_WIDTHFRAMEBUFFER_DEFAULT_HEIGHTFRAMEBUFFER_DEFAULT_LAYERSFRAMEBUFFER_DEFAULT_SAMPLESFRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONSparams- a variable to receive the value of the parameter namedpname
-
glGetFramebufferParameteri
public static int glGetFramebufferParameteri(int target, int pname) Retrieves a named parameter from a framebuffer.- Parameters:
target- target of the operation. One of:READ_FRAMEBUFFERDRAW_FRAMEBUFFERFRAMEBUFFERpname- a token indicating the parameter to be retrieved. One of:FRAMEBUFFER_DEFAULT_WIDTHFRAMEBUFFER_DEFAULT_HEIGHTFRAMEBUFFER_DEFAULT_LAYERSFRAMEBUFFER_DEFAULT_SAMPLESFRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
-
glNamedFramebufferParameteriEXT
public static void glNamedFramebufferParameteriEXT(int framebuffer, int pname, int param) DSA version ofFramebufferParameteri.- Parameters:
framebuffer- the framebuffer objectpname- a token indicating the parameter to be modified. One of:FRAMEBUFFER_DEFAULT_WIDTHFRAMEBUFFER_DEFAULT_HEIGHTFRAMEBUFFER_DEFAULT_LAYERSFRAMEBUFFER_DEFAULT_SAMPLESFRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONSparam- the new value for the parameter namedpname
-
nglGetNamedFramebufferParameterivEXT
public static void nglGetNamedFramebufferParameterivEXT(int framebuffer, int pname, long params) Unsafe version of:GetNamedFramebufferParameterivEXT -
glGetNamedFramebufferParameterivEXT
public static void glGetNamedFramebufferParameterivEXT(int framebuffer, int pname, IntBuffer params) DSA version ofGetFramebufferParameteriv.- Parameters:
framebuffer- the framebuffer objectpname- a token indicating the parameter to be retrieved. One of:FRAMEBUFFER_DEFAULT_WIDTHFRAMEBUFFER_DEFAULT_HEIGHTFRAMEBUFFER_DEFAULT_LAYERSFRAMEBUFFER_DEFAULT_SAMPLESFRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONSparams- a variable to receive the value of the parameter namedpname
-
glGetNamedFramebufferParameteriEXT
public static int glGetNamedFramebufferParameteriEXT(int framebuffer, int pname) DSA version ofGetFramebufferParameteriv.- Parameters:
framebuffer- the framebuffer objectpname- a token indicating the parameter to be retrieved. One of:FRAMEBUFFER_DEFAULT_WIDTHFRAMEBUFFER_DEFAULT_HEIGHTFRAMEBUFFER_DEFAULT_LAYERSFRAMEBUFFER_DEFAULT_SAMPLESFRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
-
glGetFramebufferParameteriv
public static void glGetFramebufferParameteriv(int target, int pname, int[] params) Array version of:GetFramebufferParameteriv -
glGetNamedFramebufferParameterivEXT
public static void glGetNamedFramebufferParameterivEXT(int framebuffer, int pname, int[] params) Array version of:GetNamedFramebufferParameterivEXT
-