Signature
glGetFramebufferAttachmentParameteriv(
GLenum (
target
)
,
GLenum (
attachment
)
,
GLenum (
pname
)
,
GLint *(
params
)
)-> void
Parameters
Variables | Description |
---|---|
target |
Specifies the target of the query operation.
|
attachment |
Specifies the attachment within
target
|
pname |
Specifies the parameter of
attachment
to query.
|
params |
Specifies the address of a variable receive the value of
pname
for
attachment
.
|
Description
glGetFramebufferAttachmentParameteriv
returns information about attachments of a bound framebuffer
object.
target
specifies the framebuffer binding point and must be
GL_DRAW_FRAMEBUFFER
,
GL_READ_FRAMEBUFFER
or
GL_FRAMEBUFFER
.
GL_FRAMEBUFFER
is equivalent
to
GL_DRAW_FRAMEBUFFER
.
If the default framebuffer is bound to
target
then
attachment
must be one of
GL_BACK
, identifying a color buffer,
GL_DEPTH
, identifying the depth buffer,
or
GL_STENCIL
, identifying the stencil buffer.
If a framebuffer object is bound, then
attachment
must be one of
GL_COLOR_ATTACHMENT
i
,
GL_DEPTH_ATTACHMENT
,
GL_STENCIL_ATTACHMENT
, or
GL_DEPTH_STENCIL_ATTACHMENT
.
i
in
GL_COLOR_ATTACHMENT
i
must be in the range zero to the value of
GL_MAX_COLOR_ATTACHMENTS
minus one.
If
attachment
is
GL_DEPTH_STENCIL_ATTACHMENT
and different objects are bound
to the depth and stencil attachment points of
target
the query will fail. If the same object
is bound to both attachment points, information about that object will be returned.
Upon successful return from
glGetFramebufferAttachmentParameteriv
, if
pname
is
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
, then
params
will contain one of
GL_NONE
,
GL_FRAMEBUFFER_DEFAULT
,
GL_TEXTURE
, or
GL_RENDERBUFFER
, identifying the type of
object which contains the attached image. Other values accepted for
pname
depend on the type of object, as described below.
If the value of
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
is
GL_NONE
, no framebuffer is bound to
target
. In this case querying
pname
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
will return zero, and all other queries will generate an error.
If the value of
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
is not
GL_NONE
, these queries apply to all other
framebuffer types:
If
pname
is
GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE
,
GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE
,
GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE
,
GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE
,
GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE
,
or
GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE
, then
params
will contain the number
of bits in the corresponding red, green, blue, alpha, depth, or stencil component of the specified attachment. Zero is returned
if the requested component is not present in
attachment
.
If
pname
is
GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE
,
params
will
contain the format of components of the specified attachment, one of
GL_FLOAT
,
GL_INT
,
GL_UNSIGNED_INT
,
GL_SIGNED_NORMALIZED
, or
GL_UNSIGNED_NORMALIZED
for floating-point, signed integer, unsigned integer, signed normalized fixed-point, or unsigned normalized fixed-point components
respectively. Only color buffers may have integer components.
If
pname
is
GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING
,
param
will
contain the encoding of components of the specified attachment, one of
GL_LINEAR
or
GL_SRGB
for linear or sRGB-encoded components, respectively. Only color buffer components may be sRGB-encoded.
For the default framebuffer, color encoding is determined by the implementation.
For framebuffer objects, components are sRGB-encoded if the internal format of a color attachment is one of the color-renderable SRGB
formats.
If the value of
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
is
GL_RENDERBUFFER
, then:
If the value of
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
is
GL_TEXTURE
, then:
If
pname
is
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE
and the texture object named
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
is a cube map texture, then
params
will contain the cube map
face of the cubemap texture object which contains the attached image. Otherwise
params
will contain the value
zero.
If
pname
is
GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER
and the texture object named
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
is a three-dimensional texture or a two-dimensional
array texture, then
params
will contain the number of the texture layer which contains the attached image.
Otherwise
params
will contain the value zero.
Any combinations of framebuffer type and
pname
not described above will generate an error.
Errors
GL_INVALID_ENUM
is generated if
target
is not one of the accepted tokens.
GL_INVALID_ENUM
is generated if
pname
is not valid for the value of
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
.
GL_INVALID_OPERATION
is generated if
attachment
is
GL_DEPTH_STENCIL_ATTACHMENT
and different objects are bound to the depth and stencil attachment points of
target
.
GL_INVALID_OPERATION
is generated if the value of
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE
is
GL_NONE
and
pname
is not
GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME
.
API Version Support
glGetFramebufferAttachmentParameteriv |
See Also
Copyright
Copyright
2010-2014 Khronos Group.
This material may be distributed subject to the terms and conditions set forth in
the Open Publication License, v 1.0, 8 June 1999.
http://opencontent.org/openpub/
.