Provided by: opengl-4-man-doc_1.0~svn22917-1_all bug

NAME

       glGetFramebufferAttachmentParameteriv - retrieve information about attachments of a bound
       framebuffer object

C SPECIFICATION

       void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname,
                                                  GLint *params);

PARAMETERS

       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_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, or GL_BACK_RIGHT, 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_ATTACHMENTi,
       GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT, or GL_DEPTH_STENCIL_ATTACHMENT.  i in
       GL_COLOR_ATTACHMENTi must be in the range zero to the value of GL_MAX_COLOR_ATTACHMENTS -
       1.

       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 pnameGL_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; such components are treated as described in sections 4.1.7 and 4.1.8.
           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 pname is GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, params will contain the name of the
           renderbuffer object which contains the attached image.

       If the value of GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE is GL_TEXTURE, then:

       •   If pname is GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME, then params will contain the name
           of the texture object which contains the attached image.

       •   If pname is GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL, then params will contain the
           mipmap level of the texture object which contains the attached image.

       •   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 layer of a three-dimensional texture or a
           one-or 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.

       •   If pname is GL_FRAMEBUFFER_ATTACHMENT_LAYERED, then params will contain GL_TRUE if an
           entire level of a three-dimesional texture, cube map texture, or one-or
           two-dimensional array texture is attached. Otherwise, params will contain GL_FALSE.

       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 not the accepted values for target.

       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.

SEE ALSO

       glGenFramebuffers(), glBindFramebuffer()

COPYRIGHT

       Copyright © 2010-2013 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/.

AUTHORS

       opengl.org