diff --git a/Source/Bind/Specifications/Docs/glBindBuffersBase.xml b/Source/Bind/Specifications/Docs/glBindBuffersBase.xml
new file mode 100644
index 00000000..a667dc60
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBindBuffersBase.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glBindBuffersBase
+ 3G
+
+
+ glBindBuffersBase
+ bind one or more buffer objects to a sequence of indexed buffer targets
+
+ C Specification
+
+
+ void glBindBufferBase
+ GLenum target
+ GLuint first
+ GLsizei count
+ const GLuint *buffers
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the bind operation. target must be
+ one of GL_ATOMIC_COUNTER_BUFFER,
+ GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or
+ GL_SHADER_STORAGE_BUFFER.
+
+
+
+
+ index
+
+
+ Specify the index of the first binding point within the array specified by target.
+
+
+
+
+ count
+
+
+ Specify the number of contiguous binding points to which to bind buffers.
+
+
+
+
+ buffers
+
+
+ A pointer to an array of names of buffer objects to bind to the targets on the specified binding point, or NULL.
+
+
+
+
+
+ Description
+
+ glBindBuffersBase binds a set of count buffer objects whose names
+ are given in the array buffers to the count consecutive binding
+ points starting from index index of the array of targets specified
+ by target. If buffers is NULL then
+ glBindBuffersBase unbinds any buffers that are currently bound to the referenced binding points.
+ Assuming no errors are generated, it is equivalent to the following
+ pseudo-code, which calls glBindBufferBase:
+
+
+
+ Notes
+
+ glBindBuffersBase is available only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target is not
+ GL_ATOMIC_COUNTER_BUFFER,
+ GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or
+ GL_SHADER_STORAGE_BUFFER.
+
+
+ GL_INVALID_OPERATION is generated if first + count is greater
+ than the number of target-specific indexed binding points.
+
+
+ GL_INVALID_OPERATION is generated if any value in buffers is not
+ zero or the name of an existing buffer object.
+
+
+ See Also
+
+ glGenBuffers,
+ glDeleteBuffers,
+ glBindBuffer,
+ glBindBufferBase,
+ glBindBufferRange,
+ glBindBuffersRange,
+ glMapBuffer,
+ glUnmapBuffer
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glBindBuffersRange.xml b/Source/Bind/Specifications/Docs/glBindBuffersRange.xml
new file mode 100644
index 00000000..f1dcd119
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBindBuffersRange.xml
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glBindBuffersRange
+ 3G
+
+
+ glBindBuffersRange
+ bind ranges of one or more buffer objects to a sequence of indexed buffer targets
+
+ C Specification
+
+
+ void glBindBuffersRange
+ GLenum target
+ GLuint first
+ GLsizei count
+ const GLuint *buffers
+ const GLintptr *offsets
+ const GLintptr *sizes
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the bind operation. target must be
+ one of GL_ATOMIC_COUNTER_BUFFER,
+ GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or
+ GL_SHADER_STORAGE_BUFFER.
+
+
+
+
+ index
+
+
+ Specify the index of the first binding point within the array specified by target.
+
+
+
+
+ count
+
+
+ Specify the number of contiguous binding points to which to bind buffers.
+
+
+
+
+ buffers
+
+
+ A pointer to an array of names of buffer objects to bind to the targets on the specified binding point, or NULL.
+
+
+
+
+
+ Description
+
+ glBindBuffersRange binds a set of count ranges from buffer objects whose names
+ are given in the array buffers to the count consecutive binding
+ points starting from index index of the array of targets specified
+ by target. offsets specifies the address of an array containing
+ count starting offsets within the buffers, and sizes specifies the
+ adderess of an array of count sizes of the ranges. If buffers is NULL then
+ offsets and sizes are ignored and glBindBuffersRange unbinds any
+ buffers that are currently bound to the referenced binding points. Assuming no errors are generated, it is equivalent to the following
+ pseudo-code, which calls glBindBufferRange:
+
+
+
+ Notes
+
+ glBindBuffersBase is available only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target is not
+ GL_ATOMIC_COUNTER_BUFFER,
+ GL_TRANSFORM_FEEDBACK_BUFFER, GL_UNIFORM_BUFFER or
+ GL_SHADER_STORAGE_BUFFER.
+
+
+ GL_INVALID_OPERATION is generated if first + count is greater
+ than the number of target-specific indexed binding points.
+
+
+ GL_INVALID_OPERATION is generated if any value in buffers is not
+ zero or the name of an existing buffer object.
+
+
+ GL_INVALID_VALUE is generated by if any value in offsets is less than zero or
+ if any value in sizes is less than zero.
+
+
+ GL_INVALID_VALUE is generated if any pair of values in offsets
+ and sizes does not respectively satisfy the constraints described for those
+ parameters for the specified target.
+
+
+ See Also
+
+ glGenBuffers,
+ glDeleteBuffers,
+ glBindBuffer,
+ glBindBufferBase,
+ glBindBufferRange,
+ glBindBuffersRange,
+ glMapBuffer,
+ glUnmapBuffer
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glBindImageTexture.xml b/Source/Bind/Specifications/Docs/glBindImageTexture.xml
new file mode 100644
index 00000000..e0f22f8e
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBindImageTexture.xml
@@ -0,0 +1,332 @@
+
+
+
+
+
+
+ 2010
+ Khronos Group>
+
+
+ glBindImageTexture
+ 3G
+
+
+ glBindImageTexture
+ bind a level of a texture to an image unit
+
+ C Specification
+
+
+ void glBindImageTexture
+ GLuint unit
+ GLuint texture
+ GLint level
+ GLboolean layered
+ GLint layer
+ GLenum access
+ GLenum format
+
+
+
+ Parameters
+
+
+ unit
+
+
+ Specifies the index of the image unit to which to bind the texture
+
+
+
+
+ texture
+
+
+ Specifies the name of the texture to bind to the image unit.
+
+
+
+
+ level
+
+
+ Specifies the level of the texture that is to be bound.
+
+
+
+
+ layered
+
+
+ Specifies whether a layered texture binding is to be established.
+
+
+
+
+ layer
+
+
+ If layered is GL_FALSE, specifies the layer of texture to be bound to the image unit. Ignored otherwise.
+
+
+
+
+ access
+
+
+ Specifies a token indicating the type of access that will be performed on the image.
+
+
+
+
+ format
+
+
+ Specifies the format that the elements of the image will be treated as for the purposes of formatted stores.
+
+
+
+
+
+ Description
+
+ glBindImageTexture binds a single level of a texture to an image unit for the purpose of
+ reading and writing it from shaders. unit specifies the zero-based index of the image
+ unit to which to bind the texture level. texture specifies the name of an existing texture
+ object to bind to the image unit. If texture is zero, then any existing binding to
+ the image unit is broken. level specifies the level of the texture to bind to the image
+ unit.
+
+
+ If texture is the name of a one-, two-, or three-dimensional array texture, a cube map
+ or cube map array texture, or a two-dimensional multisample array texture, then it is possible to bind either
+ the entire array, or only a single layer of the array to the image unit. In such cases, if layered
+ is GL_TRUE, the entire array is attached to the image unit and layer
+ is ignored. However, if layered is GL_FALSE then layer
+ specifies the layer of the array to attach to the image unit.
+
+
+ access specifies the access types to be performed by shaders and may be set to
+ GL_READ_ONLY, GL_WRITE_ONLY, or GL_READ_WRITE
+ to indicate read-only, write-only or read-write access, respectively. Violation of the access type specified in access
+ (for example, if a shader writes to an image bound with access set to GL_READ_ONLY)
+ will lead to undefined results, possibly including program termination.
+
+
+ format specifies the format that is to be used when performing formatted stores into the
+ image from shaders. format must be compatible with the texture's internal format and must
+ be one of the formats listed in the following table.
+
+
+ Internal Image Formats
+
+
+
+
+
+
+ Image Unit Format
+
+
+ Format Qualifier
+
+
+
+
+
+ GL_RGBA32Frgba32f
+
+
+ GL_RGBA16Frgba16f
+
+
+ GL_RG32Frg32f
+
+
+ GL_RG16Frg16f
+
+
+ GL_R11F_G11F_B10Fr11f_g11f_b10f
+
+
+ GL_R32Fr32f
+
+
+ GL_R16Fr16f
+
+
+ GL_RGBA32UIrgba32ui
+
+
+ GL_RGBA16UIrgba16ui
+
+
+ GL_RGB10_A2UIrgb10_a2ui
+
+
+ GL_RGBA8UIrgba8ui
+
+
+ GL_RG32UIrg32ui
+
+
+ GL_RG16UIrg16ui
+
+
+ GL_RG8UIrg8ui
+
+
+ GL_R32UIr32ui
+
+
+ GL_R16UIr16ui
+
+
+ GL_R8UIr8ui
+
+
+ GL_RGBA32Irgba32i
+
+
+ GL_RGBA16Irgba16i
+
+
+ GL_RGBA8Irgba8i
+
+
+ GL_RG32Irg32i
+
+
+ GL_RG16Irg16i
+
+
+ GL_RG8Irg8i
+
+
+ GL_R32Ir32i
+
+
+ GL_R16Ir16i
+
+
+ GL_R8Ir8i
+
+
+ GL_RGBA16rgba16
+
+
+ GL_RGB10_A2rgb10_a2
+
+
+ GL_RGBA8rgba8
+
+
+ GL_RG16rg16
+
+
+ GL_RG8rg8
+
+
+ GL_R16r16
+
+
+ GL_R8r8
+
+
+ GL_RGBA16_SNORMrgba16_snorm
+
+
+ GL_RGBA8_SNORMrgba8_snorm
+
+
+ GL_RG16_SNORMrg16_snorm
+
+
+ GL_RG8_SNORMrg8_snorm
+
+
+ GL_R16_SNORMr16_snorm
+
+
+ GL_R8_SNORMr8_snorm
+
+
+
+
+
+
+ When a texture is bound to an image unit, the format parameter for the image
+ unit need not exactly match the texture internal format as long as the formats are
+ considered compatible as defined in the OpenGL Specification. The matching criterion used
+ for a given texture may be determined by calling glGetTexParameter
+ with value
+ set to GL_IMAGE_FORMAT_COMPATIBILITY_TYPE, with return values of GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE
+ and GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS, specifying matches by size and class, respectively.
+
+
+ Notes
+
+ The glBindImageTexture is available only if the GL version is 4.2 or greater.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if unit greater than or equal to the
+ value of GL_MAX_IMAGE_UNITS.
+
+
+ GL_INVALID_VALUE is generated if texture is not the name of
+ an existing texture object.
+
+
+ GL_INVALID_VALUE is generated if level or layer
+ is less than zero.
+
+
+ GL_INVALID_ENUM is generated if access or format
+ is not one of the supported tokens.
+
+
+ Associated Gets
+
+ glGet with argument GL_IMAGE_BINDING_NAME.
+
+
+ glGet with argument GL_IMAGE_BINDING_LEVEL.
+
+
+ glGet with argument GL_IMAGE_BINDING_LAYERED.
+
+
+ glGet with argument GL_IMAGE_BINDING_LAYER.
+
+
+ glGet with argument GL_IMAGE_BINDING_ACCESS.
+
+
+ glGet with argument GL_IMAGE_BINDING_FORMAT.
+
+
+ See Also
+
+ glGenTextures,
+ glTexImage1D,
+ glTexImage2D,
+ glTexImage3D,
+ glTexStorage1D,
+ glTexStorage2D,
+ glTexStorage3D,
+ glBindTexture
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glBindImageTextures.xml b/Source/Bind/Specifications/Docs/glBindImageTextures.xml
new file mode 100644
index 00000000..9e702b55
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBindImageTextures.xml
@@ -0,0 +1,160 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glBindImageTextures
+ 3G
+
+
+ glBindImageTextures
+ bind one or more named texture images to a sequence of consecutive image units
+
+ C Specification
+
+
+ void glBindImageTextures
+ GLuint first
+ GLsizei count
+ const GLuint *textures
+
+
+
+ Parameters
+
+
+ first
+
+
+ Specifies the first image unit to which a texture is to be bound.
+
+
+
+
+ count
+
+
+ Specifies the number of textures to bind.
+
+
+
+
+ textures
+
+
+ Specifies the address of an array of names of existing texture objects.
+
+
+
+
+
+ Description
+
+ glBindImageTextures binds images from an array of existing texture objects to a specified
+ number of consecutive image units. count specifies the number of texture
+ objects whose names are stored in the array textures. That number
+ of texture names are read from the array and bound to the count consecutive
+ texture units starting from first.
+
+ If the name zero appears in the textures array, any existing binding
+ to the image unit is reset. Any non-zero entry in textures must be the
+ name of an existing texture object. When a non-zero entry in textures is
+ present, the image at level zero is bound, the binding is considered layered, with the first
+ layer set to zero, and the image is bound for read-write access. The image unit format
+ parameter is taken from the internal format of the image at level zero of the texture object.
+ For cube map textures, the internal format of the positive X image of level zero is used.
+
+
+ If textures is NULL then it is as
+ if an appropriately sized array containing only zeros had been specified.
+
+
+ glBindImageTextures is equivalent to the following pseudo code:
+
+
+
+ Each entry in textures will be checked individually and if found
+ to be invalid, the state for that image unit will not be changed and an error will be
+ generated. However, the state for other texture image units referenced by the command will still
+ be updated.
+
+
+ Notes
+
+ glBindImageTextures is available only if the GL version is 4.4 or higher.
+
+
+ Note that because glBindImageTextures cannot create new textures (even if
+ a name passed has been previously generated by call to glGenTextures),
+ names pased to glBindTextures must have been bound at least once previously
+ via a call to glBindTexture.
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if first + count is greater
+ than the number of image units supported by the implementation.
+
+
+ GL_INVALID_OPERATION is generated if any value in textures is
+ not zero or the name of an existing texture object.
+
+
+ GL_INVALID_OPERATION error is generated if the internal format of the
+ level zero texture image of any texture in textures is not supported.
+
+
+ GL_INVALID_OPERATION error is generated if the width, height, or depth
+ of the level zero texture image of any texture in textures is zero.
+
+
+ Associated Gets
+
+ glGet with argument GL_TEXTURE_BINDING_1D,
+ GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_3D, GL_TEXTURE_BINDING_1D_ARRAY,
+ GL_TEXTURE_BINDING_2D_ARRAY, GL_TEXTURE_BINDING_RECTANGLE,
+ GL_TEXTURE_BINDING_BUFFER, GL_TEXTURE_BINDING_CUBE_MAP, GL_TEXTURE_BINDING_CUBE_MAP,
+ GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+ GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+ or GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY.
+
+
+ See Also
+
+ glBindTexture,
+ glBindTextures,
+ glDeleteTextures,
+ glGenTextures,
+ glGet,
+ glGetTexParameter,
+ glIsTexture,
+ glTexStorage1D,
+ glTexStorage2D,
+ glTexStorage2DMultisample,
+ glTexStorage3D,
+ glTexStorage3DMultisample,
+ glTexBuffer,
+ glTexParameter
+
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glBindSamplers.xml b/Source/Bind/Specifications/Docs/glBindSamplers.xml
new file mode 100644
index 00000000..70741ae3
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBindSamplers.xml
@@ -0,0 +1,131 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glBindSamplers
+ 3G
+
+
+ glBindSamplers
+ bind one or more named sampler objects to a sequence of consecutive sampler units
+
+ C Specification
+
+
+ void glBindSamplers
+ GLuint first
+ GLsizei count
+ const GLuint *samplers
+
+
+
+ Parameters
+
+
+ first
+
+
+ Specifies the first sampler unit to which a sampler object is to be bound.
+
+
+
+
+ count
+
+
+ Specifies the number of samplers to bind.
+
+
+
+
+ samplers
+
+
+ Specifies the address of an array of names of existing sampler objects.
+
+
+
+
+
+ Description
+
+ glBindSamplers binds samplers from an array of existing sampler objects to a specified
+ number of consecutive sampler units. count specifies the number of sampler
+ objects whose names are stored in the array samplers. That number
+ of sampler names is read from the array and bound to the count consecutive
+ sampler units starting from first.
+
+
+ If the name zero appears in the samplers array, any existing binding
+ to the sampler unit is reset. Any non-zero entry in samplers must be the
+ name of an existing sampler object. When a non-zero entry in samplers is
+ present, that sampler object is bound to the corresponding sampler unit.
+ If samplers is NULL then it is as
+ if an appropriately sized array containing only zeros had been specified.
+
+
+ glBindSamplers is equivalent to the following pseudo code:
+
+
+
+ Each entry in samplers will be checked individually and if found
+ to be invalid, the state for that sampler unit will not be changed and an error will be
+ generated. However, the state for other sampler units referenced by the command will still
+ be updated.
+
+
+ Notes
+
+ glBindSamplers is available only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if first + count is greater
+ than the number of sampler units supported by the implementation.
+
+
+ GL_INVALID_OPERATION is generated if any value in samplers is
+ not zero or the name of an existing sampler object.
+
+
+ Associated Gets
+
+ glGet with argument GL_SAMPLER_BINDING
+
+
+ See Also
+
+ glGenSamplers,
+ glBindSampler,
+ glDeleteSamplers,
+ glGet,
+ glSamplerParameter,
+ glGetSamplerParameter,
+ glGenTextures,
+ glBindTexture,
+ glDeleteTextures
+
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glBindTextures.xml b/Source/Bind/Specifications/Docs/glBindTextures.xml
new file mode 100644
index 00000000..e0a0fbe2
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBindTextures.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glBindTextures
+ 3G
+
+
+ glBindTextures
+ bind one or more named textures to a sequence of consecutive texture units
+
+ C Specification
+
+
+ void glBindTextures
+ GLuint first
+ GLsizei count
+ const GLuint *textures
+
+
+
+ Parameters
+
+
+ first
+
+
+ Specifies the first texture unit to which a texture is to be bound.
+
+
+
+
+ count
+
+
+ Specifies the number of textures to bind.
+
+
+
+
+ textures
+
+
+ Specifies the address of an array of names of existing texture objects.
+
+
+
+
+
+ Description
+
+ glBindTextures binds an array of existing texture objects to a specified
+ number of consecutive texture units. count specifies the number of texture
+ objects whose names are stored in the array textures. That number
+ of texture names are read from the array and bound to the count consecutive
+ texture units starting from first. The target, or type of texture is
+ deduced from the texture object and each texture is bound to the corresponding target of the
+ texture unit. If the name zero appears in the textures array, any existing binding
+ to any target of the texture unit is reset and the default texture for that target is bound in
+ its place. Any non-zero entry in textures must be the name of an existing
+ texture object. If textures is NULL then it is as
+ if an appropriately sized array containing only zeros had been specified.
+
+
+ With the exception that the active texture selector maintains its current value,
+ glBindTextures is equivalent to the following pseudo code:
+
+
+
+ Each entry in textures will be checked individually and if found
+ to be invalid, the state for that texture unit will not be changed and an error will be
+ generated. However, the state for other texture units referenced by the command will still
+ be updated.
+
+
+ Notes
+
+ glBindTextures is available only if the GL version is 4.4 or higher.
+
+
+ Note that because glBindTextures cannot create new textures (even if
+ a name passed has been previously generated by call to glGenTextures),
+ names pased to glBindTextures must have been bound at least once previously
+ via a call to glBindTexture.
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if first + count is greater
+ than the number of texture image units supported by the implementation.
+
+
+ GL_INVALID_OPERATION is generated if any value in textures is
+ not zero or the name of an existing texture object.
+
+
+ Associated Gets
+
+ glGet with argument GL_TEXTURE_BINDING_1D,
+ GL_TEXTURE_BINDING_2D, GL_TEXTURE_BINDING_3D, GL_TEXTURE_BINDING_1D_ARRAY,
+ GL_TEXTURE_BINDING_2D_ARRAY, GL_TEXTURE_BINDING_RECTANGLE,
+ GL_TEXTURE_BINDING_BUFFER, GL_TEXTURE_BINDING_CUBE_MAP, GL_TEXTURE_BINDING_CUBE_MAP,
+ GL_TEXTURE_BINDING_CUBE_MAP_ARRAY,
+ GL_TEXTURE_BINDING_2D_MULTISAMPLE,
+ or GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY.
+
+
+ See Also
+
+ glBindTexture,
+ glDeleteTextures,
+ glGenTextures,
+ glGet,
+ glGetTexParameter,
+ glIsTexture,
+ glTexImage1D,
+ glTexImage2D,
+ glTexImage2DMultisample,
+ glTexImage3D,
+ glTexImage3DMultisample,
+ glTexBuffer,
+ glTexParameter
+
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glBindVertexBuffer.xml b/Source/Bind/Specifications/Docs/glBindVertexBuffer.xml
new file mode 100644
index 00000000..5986b337
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBindVertexBuffer.xml
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glBindVertexBuffer
+ 3G
+
+
+ glBindVertexBuffer
+ bind a buffer to a vertex buffer bind point
+
+ C Specification
+
+
+ void glBindVertexBuffer
+ GLuint bindingindex
+ GLuint buffer
+ GLintptr offset
+ GLintptr stride
+
+
+
+ Parameters
+
+
+ bindingindex
+
+
+ The index of the vertex buffer binding point to which to bind the buffer.
+
+
+
+
+ buffer
+
+
+ The name of an existing buffer to bind to the vertex buffer binding point.
+
+
+
+
+ offset
+
+
+ The offset of the first element of the buffer.
+
+
+
+
+ stride
+
+
+ The distance between elements within the buffer.
+
+
+
+
+
+ Description
+
+ glBindVertexBuffer binds the buffer named buffer
+ to the vertex buffer binding point whose index is given by bindingindex.
+ offset and stride specify the offset of the first
+ element within the buffer and the distance between elements within the buffer, respectively, and
+ are both measured in basic machine units. bindingindex must be less than
+ the value of GL_MAX_VERTEX_ATTRIB_BINDINGS. offset
+ and stride must be greater than or equal to zero. If buffer
+ is zero, then any buffer currently bound to the specified binding point is unbound.
+
+
+ Errors
+
+ GL_INVAILD_VALUE is generated if bindingindex is greater than
+ or equal to the value of GL_MAX_VERTEX_ATTRIB_BINDINGS.
+
+
+ GL_INVALID_VALUE is generated if offset or stride
+ is less than zero.
+
+
+ GL_INVALID_VALUE is generated if buffer is not the name of an
+ existing buffer object.
+
+
+ GL_INVALID_OPERATION is generated if no vertex array object is bound.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_VERTEX_ATTRIB_BINDINGS.
+
+
+ See Also
+
+ glVertexAttribBinding,
+ glVertexAttribFormat,
+ glVertexAttribPointer,
+ glVertexBindingDivisor.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glBindVertexBuffers.xml b/Source/Bind/Specifications/Docs/glBindVertexBuffers.xml
new file mode 100644
index 00000000..f79eb114
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBindVertexBuffers.xml
@@ -0,0 +1,151 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glBindVertexBuffers
+ 3G
+
+
+ glBindVertexBuffers
+ bind one or more named buffer objects to a sequence of consecutive vertex buffer binding points
+
+ C Specification
+
+
+ void glBindVertexBuffers
+ GLuint first
+ GLsizei count
+ const GLuint *buffers
+ const GLuintptr *offsets
+ const GLsizei *strides
+
+
+
+ Parameters
+
+
+ first
+
+
+ Specifies the first vertex buffer binding point to which a buffer object is to be bound.
+
+
+
+
+ count
+
+
+ Specifies the number of buffers to bind.
+
+
+
+
+ buffers
+
+
+ Specifies the address of an array of names of existing buffer objects.
+
+
+
+
+ offsets
+
+
+ Specifies the address of an array of offsets to associate with the binding points.
+
+
+
+
+ buffers
+
+
+ Specifies the address of an array of strides to associate with the binding points.
+
+
+
+
+
+ Description
+
+ glBindVertexBuffers binds storage from an array of existing buffer objects to a specified
+ number of consecutive vertex buffer binding points units. count specifies the number of buffer
+ objects whose names are stored in the array buffers. That number
+ of buffer object names is read from the array and their storage bound to the count consecutive
+ vertex buffer binding points starting from first.
+
+
+ If the name zero appears in the buffers array, any existing binding
+ to the vertex buffer binding point is reset, and the corresponding entries in offsets
+ and strides is ignored. Any non-zero entry in buffers must be the
+ name of an existing buffer object. When a non-zero entry in buffers is
+ present, that buffer objects data store is bound to the corresponding vertex buffer binding point.
+ If buffers is NULL then it is as
+ if an appropriately sized array containing only zeros had been specified.
+
+
+ offsets and strides specify the addresses
+ of two arrays containing, respectively, the offset of the first element
+ and stride between elements in each buffer. If an entry in buffers
+ is zero, then the content of the corresponding entry in each of offsets
+ and strides is ignored.
+
+
+ glBindVertexBuffers is equivalent to the following pseudo code:
+
+
+
+ Each entry in buffers will be checked individually and if found
+ to be invalid, the state for that vertex buffer binding point will not be changed and an error will be
+ generated. However, the state for other binding points referenced by the command will still
+ be updated.
+
+
+ Notes
+
+ glBindVertexBuffers is available only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if first + count is greater
+ than the value of GL_MAX_VERTEX_ATTRIB_BINDINGS.
+
+
+ GL_INVALID_OPERATION is generated if any value in buffers is not
+ zero or the name of an existing buffer object.
+
+
+ GL_INVALID_VALUE is generated if any value in offsets or strides
+ is negative, or if a value is stride is greater than the value of GL_MAX_VERTEX_ATTRIB_STRIDE.
+
+
+ See Also
+
+ glGenBuffers,
+ glBindBuffer,
+ glDeleteBuffers
+ glDeleteTextures
+
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glBufferStorage.xml b/Source/Bind/Specifications/Docs/glBufferStorage.xml
new file mode 100644
index 00000000..3f834518
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glBufferStorage.xml
@@ -0,0 +1,275 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glBufferStorage
+ 3G
+
+
+ glBufferStorage
+ creates and initializes a buffer object's immutable data store
+
+ C Specification
+
+
+ void glBufferStorage
+ GLenum target
+ GLsizeiptr size
+ const GLvoid * data
+ GLbitfield flags
+
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specifies the target buffer object.
+ The symbolic constant must be
+ GL_ARRAY_BUFFER,
+ GL_ATOMIC_COUNTER_BUFFER,
+ GL_COPY_READ_BUFFER,
+ GL_COPY_WRITE_BUFFER,
+ GL_DRAW_INDIRECT_BUFFER,
+ GL_DISPATCH_INDIRECT_BUFFER,
+ GL_ELEMENT_ARRAY_BUFFER,
+ GL_PIXEL_PACK_BUFFER,
+ GL_PIXEL_UNPACK_BUFFER,
+ GL_QUERY_BUFFER,
+ GL_SHADER_STORAGE_BUFFER,
+ GL_TEXTURE_BUFFER,
+ GL_TRANSFORM_FEEDBACK_BUFFER, or
+ GL_UNIFORM_BUFFER.
+
+
+
+
+ size
+
+
+ Specifies the size in bytes of the buffer object's new data store.
+
+
+
+
+ data
+
+
+ Specifies a pointer to data that will be copied into the data store for initialization,
+ or NULL if no data is to be copied.
+
+
+
+
+ flags
+
+
+ Specifies the intended usage of the buffer's data store. Must be a bitwise combination
+ of the following flags. GL_DYNAMIC_STORAGE_BIT, GL_MAP_READ_BIT
+ GL_MAP_WRITE_BIT, GL_MAP_PERSISTENT_BIT, GL_MAP_COHERENT_BIT,
+ and GL_CLIENT_STORAGE_BIT.
+
+
+
+
+
+ Description
+
+ glBufferStorage creates a new immutable data store for the buffer object currently bound to
+ target. The size of the data store is specified by size. If
+ an initial data is available, its address may be supplied in data. Otherwise, to
+ create an uninitialized data store, data should be NULL.
+
+
+ The flags parameters specifies the intended usage of the buffer's data store.
+ It must be a bitwise combination of a subset of the following flags:
+
+
+ GL_DYNAMIC_STORAGE_BIT
+
+
+ The contents of the data store may be
+ updated after creation through calls to glBufferSubData.
+ If this bit is not set, the buffer content may not be directly updated by the client. The data argument
+ may be used to specify the initial content of the buffer's data store regardless of the presence of
+ the GL_DYNAMIC_STORAGE_BIT. Regardless of the presence of this bit,
+ buffers may always be updated with server-side calls such as
+ glCopyBufferSubData and
+ glClearBufferSubData.
+
+
+
+
+ GL_MAP_READ_BIT
+
+
+ The data store may be mapped by the client for
+ read access and a pointer in the client's address space obtained that may be read from.
+
+
+
+
+ GL_MAP_WRITE_BIT
+
+
+ The data store may be mapped by the client for
+ write access and a pointer in the client's address space obtained that may be written through.
+
+
+
+
+ GL_MAP_PERSISTENT_BIT
+
+
+ The client may request that the server read
+ from or write to the buffer while it is mapped. The client's pointer to the data store remains
+ valid so long as the data store is mapped, even during execution of drawing or dispatch commands.
+
+
+
+
+ GL_MAP_COHERENT_BIT
+
+
+ Shared access to buffers that are simultaneously
+ mapped for client access and are used by the server will be coherent, so long as that
+ mapping is performed using glMapBufferRange.
+ That is, data written to the store by either the client or server will be immediately visible to
+ the other with no further action taken by the application. In particular,
+
+
+
+
+
+ If GL_MAP_COHERENT_BIT is not set and the client performs a write
+ followed by a call to the glMemoryBarrier
+ command with the GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT set, then in subsequent
+ commands the server will see the writes.
+
+
+
+
+ If GL_MAP_COHERENT_BIT is set and the client performs a write, then in
+ subsequent commands the server will see the writes.
+
+
+
+
+ If GL_MAP_COHERENT_BIT is not set and the server performs a write, the
+ application must call glMemoryBarrier
+ with the GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT set and then call
+ glFenceSync with
+ GL_SYNC_GPU_COMMANDS_COMPLETE (or glFinish).
+ Then the CPU will see the writes after the sync is complete.
+
+
+
+
+ If GL_MAP_COHERENT_BIT is set and the server does a write, the app must
+ call FenceSync with GL_SYNC_GPU_COMMANDS_COMPLETE (or glFinish).
+ Then the CPU will see the writes after the sync is complete.
+
+
+
+
+
+ GL_CLIENT_STORAGE_BIT When all other criteria for the buffer storage allocation
+ are met, this bit may be used by an implementation to determine whether to use storage that is local to the
+ server or to the client to serve as the backing store for the buffer.
+
+
+
+
+ The allowed combinations of flags are subject to certain restrictions. They are as follows:
+
+
+
+ If flags contains GL_MAP_PERSISTENT_BIT, it
+ must also contain at least one of GL_MAP_READ_BIT or GL_MAP_WRITE_BIT.
+
+
+
+
+ If flags contains GL_MAP_COHERENT_BIT, it must
+ also contain GL_MAP_PERSISTENT_BIT.
+
+
+
+
+
+ Notes
+
+ glBufferStorage is available only if the GL version is 4.4 or greater.
+
+
+ If data is NULL, a data store of the specified size is still created,
+ but its contents remain uninitialized and thus undefined.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target is not
+ one of the accepted buffer targets.
+
+
+ GL_INVALID_VALUE is generated if size is less than or equal to zero.
+
+
+ GL_INVALID_OPERATION is generated if the reserved buffer object name 0 is bound to target.
+
+
+ GL_OUT_OF_MEMORY is generated if the GL is unable to create a
+ data store with the properties requested in flags.
+
+
+ GL_INVALID_VALUE is generated if flags has any bits set other than
+ those defined above.
+
+
+ GL_INVALID_VALUE error is generated if flags contains GL_MAP_PERSISTENT_BIT
+ but does not contain at least one of GL_MAP_READ_BIT or GL_MAP_WRITE_BIT.
+
+
+ GL_INVALID_VALUE is generated if flags contains GL_MAP_COHERENT_BIT, but
+ does not also contain GL_MAP_PERSISTENT_BIT.
+
+
+ GL_INVALID_OPERATION is generated if the GL_BUFFER_IMMUTABLE_STORAGE flag of the buffer
+ bound to target is GL_TRUE.
+
+
+ Associated Gets
+
+ glGetBufferSubData
+
+
+ glGetBufferParameter with argument GL_BUFFER_SIZE or GL_BUFFER_USAGE
+
+
+ See Also
+
+ glBindBuffer,
+ glBufferSubData,
+ glMapBuffer,
+ glUnmapBuffer
+
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glClearBufferData.xml b/Source/Bind/Specifications/Docs/glClearBufferData.xml
new file mode 100644
index 00000000..47621fe7
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glClearBufferData.xml
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glClearBufferData
+ 3G
+
+
+ glClearBufferData
+ fill a buffer object's data store with a fixed value
+
+ C Specification
+
+
+ void glClearBufferData
+ GLenum target
+ GLenum internalformat
+ GLenum format
+ GLenum type
+ const void * data
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the operation. target must be
+ one of the global buffer binding targets.
+
+
+
+
+ internalformat
+
+
+ The internal format with which the data will be stored in the buffer object.
+
+
+
+
+ size
+
+
+ The size, in basic machine units of the range of the data store to fill.
+
+
+
+
+ format
+
+
+ The format of the data in memory addressed by data.
+
+
+
+
+ type
+
+
+ The type of the data in memory addressed by data.
+
+
+
+
+ data
+
+
+ The address of a memory location storing the data to be replicated into the
+ buffer's data store.
+
+
+
+
+
+ Description
+
+ glClearBufferData fills the entirety of a buffer object's
+ data store with data from client memory. Data, initially supplied in a format
+ specified by format in data type type is
+ read from the memory address given by data and converted into
+ the internal representation given by internalforamt.
+ This converted data is then replicated throughout the buffer object's
+ data store.
+
+
+ If data is NULL, then the buffer's data store
+ is filled with zeros.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target not one of the generic buffer binding targets.
+
+
+ GL_INVALID_VALUE is generated if no buffer is bound to target.
+
+
+ GL_INVALID_ENUM is generated if internalformat is not a sized internal format.
+
+
+ GL_INVALID_OPERATION is generated if any part of the buffer's data store is
+ mapped with glMapBufferRange or glMapBuffer.
+
+
+ See Also
+
+ glClearBufferSubData.
+
+
+ Copyright
+
+ Copyright 2011-2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glClearBufferSubData.xml b/Source/Bind/Specifications/Docs/glClearBufferSubData.xml
new file mode 100644
index 00000000..827fd725
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glClearBufferSubData.xml
@@ -0,0 +1,149 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glClearBufferSubData
+ 3G
+
+
+ glClearBufferSubData
+ fill all or part of buffer object's data store with a fixed value
+
+ C Specification
+
+
+ void glClearBufferSubData
+ GLenum target
+ GLenum internalformat
+ GLintptr offset
+ GLsizeiptr size
+ GLenum format
+ GLenum type
+ const void * data
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the operation. target must be
+ one of the global buffer binding targets.
+
+
+
+
+ internalformat
+
+
+ The internal format with which the data will be stored in the buffer object.
+
+
+
+
+ offset
+
+
+ The offset, in basic machine units into the buffer object's data store at which to start filling.
+
+
+
+
+ size
+
+
+ The size, in basic machine units of the range of the data store to fill.
+
+
+
+
+ format
+
+
+ The format of the data in memory addressed by data.
+
+
+
+
+ type
+
+
+ The type of the data in memory addressed by data.
+
+
+
+
+ data
+
+
+ The address of a memory location storing the data to be replicated into the
+ buffer's data store.
+
+
+
+
+
+ Description
+
+ glClearBufferSubData fills a specified region of a buffer object's
+ data store with data from client memory. offset and size
+ demark the extent of the region within the data store of the buffer object bound to
+ target to fill with data. Data, initially supplied in a format
+ specified by format in data type type is
+ read from the memory address given by data and converted into
+ the internal representation given by internalforamt.
+ This converted data is then replicated throughout the specified region of the buffer object's
+ data store.
+
+
+ If data is NULL, then the subrange of the buffer's data store
+ is filled with zeros.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target not one of the generic buffer binding targets.
+
+
+ GL_INVALID_VALUE is generated if no buffer is bound to target.
+
+
+ GL_INVALID_ENUM is generated if internalformat is not a sized internal format.
+
+
+ GL_INVALID_VALUE is generated if offset or range are not multiples of
+ the number of basic machine units per-element for the internal format specified by
+ internalformat.
+
+
+ GL_INVALID_VALUE is generated if offset or size is less than zero, or if
+ offset + size is greater than the value of GL_BUFFER_SIZE for the buffer bound to target.
+
+
+ GL_INVALID_OPERATION is generated if any part of the specified buffer range is
+ mapped with glMapBufferRange or glMapBuffer.
+
+
+ See Also
+
+ glClearBufferData.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glClearTexImage.xml b/Source/Bind/Specifications/Docs/glClearTexImage.xml
new file mode 100644
index 00000000..adc4d271
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glClearTexImage.xml
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glClearTexImage
+ 3G
+
+
+ glClearTexImage
+ fills all a texture image with a constant value
+
+ C Specification
+
+
+ void glClearTexImage
+ GLuint texture
+ GLint level
+ GLenum format
+ GLenum type
+ const void * data
+
+
+
+
+ Parameters
+
+
+ texture
+
+
+ The name of an existing texture object containing the image to be cleared.
+
+
+
+
+ level
+
+
+ The level of texture containing the region to be cleared.
+
+
+
+
+ format
+
+
+ The format of the data whose address in memory is given by data.
+
+
+
+
+ type
+
+
+ The type of the data whose address in memory is given by data.
+
+
+
+
+ data
+
+
+ The address in memory of the data to be used to clear the specified region.
+
+
+
+
+
+ Description
+
+ glClearTexImage fills all an image contained in a
+ texture with an application supplied value. texture must be
+ the name of an existing texture. Further, texture may not be
+ the name of a buffer texture, nor may its internal format be compressed.
+
+
+ format and type specify the format and type of the
+ source data and are interpreted as they are for glTexImage3D.
+ Textures with a base internal format of GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, or GL_DEPTH_STENCIL
+ require depth component, stencil, or depth-stencil component data respectively.
+ Textures with other base internal formats require RGBA formats. Textures with integer
+ internal formats require integer data.
+
+
+ data is a pointer to an array of between one and four components of texel
+ data that will be used as the source for the constant fill value. The elements of
+ data are converted by the GL into the internal format of the texture image (that
+ was specified when the level was defined by any of the glTexImage*, glTexStorage*
+ or glCopyTexImage* commands), and then
+ used to fill the specified range of the destination texture level. If data is NULL, then
+ the pointer is ignored and the sub-range of the texture image is filled with zeros. If
+ texture is a multisample texture, all the samples in a texel are cleared to the value
+ specified by data.
+
+
+ Notes
+
+ glClearTexImage is available only if the GL version is 4.4 or greater.
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if texture is zero or not the
+ name of an existing texture object.
+
+
+ GL_INVALID_OPERATION is generated if texture is a buffer texture.
+
+
+ GL_INVALID_OPERATION is generated if texture has a compressed
+ internal format.
+
+
+ GL_INVALID_OPERATION is generated if the base internal format is
+ GL_DEPTH_COMPONENT and format is not GL_DEPTH_COMPONENT.
+
+
+ GL_INVALID_OPERATION is generated if the base internal format is
+ GL_DEPTH_STENCIL and format is not GL_DEPTH_STENCIL.
+
+
+ GL_INVALID_OPERATION is generated if the base internal format is
+ GL_STENCIL_INDEX and format is not GL_STENCIL_INDEX.
+
+
+ GL_INVALID_OPERATION is generated if the base internal format is
+ GL_RGBA and format is GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, or GL_DEPTH_STENCIL.
+
+
+ GL_INVALID_OPERATION is generated if the internal format is integer and format does not specify integer data.
+
+
+ GL_INVALID_OPERATION is generated if the internal format is not
+ integer and format specifies integer data.
+
+
+ GL_INVALID_OPERATION is generated if the image array identified by level
+ has not previously been defined by a call to glTexImage* or glTexStorage*.
+
+
+ Associated Gets
+
+ glGetTexImage, glGetInternalformat
+
+
+ See Also
+
+ glClearTexSubImage,
+ glTexStorage1D,
+ glTexStorage2D,
+ glTexStorage3D,
+ glTexImage1D,
+ glTexImage2D,
+ glTexImage3D
+
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glClearTexSubImage.xml b/Source/Bind/Specifications/Docs/glClearTexSubImage.xml
new file mode 100644
index 00000000..48f35652
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glClearTexSubImage.xml
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+ 2013
+ Khronos Group
+
+
+ glClearTexSubImage
+ 3G
+
+
+ glClearTexSubImage
+ fills all or part of a texture image with a constant value
+
+ C Specification
+
+
+ void glClearTexSubImage
+ GLuint texture
+ GLint level
+ GLint xoffset
+ GLint yoffset
+ GLint zoffset
+ GLsizei width
+ GLsizei height
+ GLsizei depth
+ GLenum format
+ GLenum type
+ const void * data
+
+
+
+
+ Parameters
+
+
+ texture
+
+
+ The name of an existing texture object containing the image to be cleared.
+
+
+
+
+ level
+
+
+ The level of texture containing the region to be cleared.
+
+
+
+
+ xoffset
+
+
+ The coordinate of the left edge of the region to be cleared.
+
+
+
+
+ yoffset
+
+
+ The coordinate of the lower edge of the region to be cleared.
+
+
+
+
+ zoffset
+
+
+ The coordinate of the front of the region to be cleared.
+
+
+
+
+ width
+
+
+ The width of the region to be cleared.
+
+
+
+
+ height
+
+
+ The height of the region to be cleared.
+
+
+
+
+ depth
+
+
+ The depth of the region to be cleared.
+
+
+
+
+ format
+
+
+ The format of the data whose address in memory is given by data.
+
+
+
+
+ type
+
+
+ The type of the data whose address in memory is given by data.
+
+
+
+
+ data
+
+
+ The address in memory of the data to be used to clear the specified region.
+
+
+
+
+
+ Description
+
+ glClearTexSubImage fills all or part of an image contained in a
+ texture with an application supplied value. texture must be
+ the name of an existing texture. Further, texture may not be
+ the name of a buffer texture, nor may its internal format be compressed.
+
+
+ Arguments xoffset, yoffset, and
+ zoffset specify the lower left texel coordinates of
+ a width-wide by height-high by depth-deep rectangular subregion of the texel array.
+
+
+ For one-dimensional array textures, yoffset is interpreted as the first layer to
+ be cleared and height is the number of layers to clear. For two-dimensional array
+ textures, zoffset is interpreted as the first layer to be cleared and depth is the number
+ of layers to clear. Cube map textures are treated as an array of six slices in the z-dimension,
+ where the value of zoffset is interpreted as specifying the cube map face
+ for the corresponding layer and depth is the number of faces to clear.
+ For cube map array textures, zoffset is the first layer-face to clear,
+ and depth is the number of layer-faces to clear. Each layer-face is
+ translated into an array layer and a cube map face as described in the OpenGL Specification.
+
+
+ Negative values of xoffset, yoffset, and zoffset correspond to the coordinates of
+ border texels. Taking
+ ws,
+ hs,
+ ds,
+ wb,
+ hb, and
+ db to be
+ the specified width, height, depth, and the border width, border height, and border
+ depth of the texel array and taking
+ x,
+ y,
+ z,
+ w,
+ h, and
+ d to be the xoffset, yoffset,
+ zoffset, width, height, and depth argument values,
+ any of the following relationships generates a GL_INVALID_OPERATION error:
+
+
+
+
+
+ x
+ <
+
+ w
+ b
+
+
+
+
+
+
+
+
+
+
+ x
+ +
+ w
+ >
+
+ w
+ s
+
+ -
+
+ w
+ b
+
+
+
+
+
+
+
+
+
+
+ y
+ <
+ -
+
+ h
+ b
+
+
+
+
+
+
+
+
+
+
+ y
+ +
+ h
+ >
+
+ h
+ s
+
+ -
+
+ h
+ b
+
+
+
+
+
+
+
+
+
+
+ z
+ <
+ -
+
+ d
+ b
+
+
+
+
+
+
+
+
+
+
+ z
+ +
+ d
+ >
+
+ d
+ s
+
+ -
+
+ d
+ b
+
+
+
+
+
+
+
+
+ For texture types that do not have certain dimensions, this command treats those
+ dimensions as having a size of 1. For example, to clear a portion of a two-dimensional
+ texture, use zoffset equal to zero and depth equal to one.
+
+
+ format and type specify the format and type of the
+ source data and are interpreted as they are for glTexImage3D.
+ Textures with a base internal format of GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, or GL_DEPTH_STENCIL
+ require depth component, stencil, or depth-stencil component data respectively.
+ Textures with other base internal formats require RGBA formats. Textures with integer
+ internal formats require integer data.
+
+
+ data is a pointer to an array of between one and four components of texel
+ data that will be used as the source for the constant fill value. The elements of
+ data are converted by the GL into the internal format of the texture image (that
+ was specified when the level was defined by any of the glTexImage*, glTexStorage*
+ or glCopyTexImage* commands), and then
+ used to fill the specified range of the destination texture level. If data is NULL, then
+ the pointer is ignored and the sub-range of the texture image is filled with zeros. If
+ texture is a multisample texture, all the samples in a texel are cleared to the value
+ specified by data.
+
+
+ Notes
+
+ glClearTexSubImage is available only if the GL version is 4.4 or greater.
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if texture is zero or not the
+ name of an existing texture object.
+
+
+ GL_INVALID_OPERATION is generated if texture is a buffer texture.
+
+
+ GL_INVALID_OPERATION is generated if texture has a compressed
+ internal format.
+
+
+ GL_INVALID_OPERATION is generated if the base internal format is
+ GL_DEPTH_COMPONENT and format is not GL_DEPTH_COMPONENT.
+
+
+ GL_INVALID_OPERATION is generated if the base internal format is
+ GL_DEPTH_STENCIL and format is not GL_DEPTH_STENCIL.
+
+
+ GL_INVALID_OPERATION is generated if the base internal format is
+ GL_STENCIL_INDEX and format is not GL_STENCIL_INDEX.
+
+
+ GL_INVALID_OPERATION is generated if the base internal format is
+ GL_RGBA and format is GL_DEPTH_COMPONENT, GL_STENCIL_INDEX, or GL_DEPTH_STENCIL.
+
+
+ GL_INVALID_OPERATION is generated if the internal format is integer and format does not specify integer data.
+
+
+ GL_INVALID_OPERATION is generated if the internal format is not
+ integer and format specifies integer data.
+
+
+ GL_INVALID_OPERATION error is generated if the xoffset, yoffset, zoffset,
+ width, height, and depth parameters (or combinations thereof) specify a region that falls outside the
+ defined texture image array (including border, if any).
+
+
+ Associated Gets
+
+ glGetTexImage, glGetInternalformat
+
+
+ See Also
+
+ glClearTexImage,
+ glTexStorage1D,
+ glTexStorage2D,
+ glTexStorage3D,
+ glTexImage1D,
+ glTexImage2D,
+ glTexImage3D
+
+
+ Copyright
+
+ Copyright 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glCopyImageSubData.xml b/Source/Bind/Specifications/Docs/glCopyImageSubData.xml
new file mode 100644
index 00000000..032e4db7
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glCopyImageSubData.xml
@@ -0,0 +1,350 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glCopyImageSubData
+ 3G
+
+
+ glCopyImageSubData
+ perform a raw data copy between two images
+
+ C Specification
+
+
+ void glCopyImageSubData
+ GLuint srcName
+ GLenum srcTarget
+ GLint srcLevel
+ GLint srcX
+ GLint srcY
+ GLint srcZ
+ GLuint dstName
+ GLenum dstTarget
+ GLint dstLevel
+ GLint dstX
+ GLint dstY
+ GLint dstZ
+ GLsizei srcWidth
+ GLsizei srcHeight
+ GLsizei srcDepth
+
+
+
+ Parameters
+
+
+ srcName
+
+
+ The name of a texture or renderbuffer object from which to copy.
+
+
+
+
+ srcTarget
+
+
+ The target representing the namespace of the source name srcName.
+
+
+
+
+ srcLevel
+
+
+ The mipmap level to read from the source.
+
+
+
+
+ srcX
+
+
+ The X coordinate of the left edge of the souce region to copy.
+
+
+
+
+ srcY
+
+
+ The Y coordinate of the top edge of the souce region to copy.
+
+
+
+
+ srcZ
+
+
+ The Z coordinate of the near edge of the souce region to copy.
+
+
+
+
+ dstName
+
+
+ The name of a texture or renderbuffer object to which to copy.
+
+
+
+
+ dstTarget
+
+
+ The target representing the namespace of the destination name dstName.
+
+
+
+
+ dstX
+
+
+ The X coordinate of the left edge of the destination region.
+
+
+
+
+ dstY
+
+
+ The Y coordinate of the top edge of the destination region.
+
+
+
+
+ dstZ
+
+
+ The Z coordinate of the near edge of the destination region.
+
+
+
+
+ srcWidth
+
+
+ The width of the region to be copied.
+
+
+
+
+ srcHeight
+
+
+ The height of the region to be copied.
+
+
+
+
+ srcDepth
+
+
+ The depth of the region to be copied.
+
+
+
+
+
+ Description
+
+ glCopyImageSubData may be used to copy data from
+ one image (i.e. texture or renderbuffer) to another. glCopyImageSubData
+ does not perform general-purpose conversions
+ such as scaling, resizing, blending, color-space, or format
+ conversions. It should be considered to operate in a manner
+ similar to a CPU memcpy. CopyImageSubData can copy between
+ images with different internal formats, provided
+ the formats are compatible.
+
+
+ glCopyImageSubData also allows copying between certain
+ types of compressed and uncompressed internal formats. This copy does not perform on-the-fly compression
+ or decompression. When copying from an uncompressed internal format
+ to a compressed internal format, each texel of uncompressed data
+ becomes a single block of compressed data. When copying from a
+ compressed internal format to an uncompressed internal format,
+ a block of compressed data becomes a single texel of uncompressed
+ data. The texel size of the uncompressed format must be the same
+ size the block size of the compressed formats. Thus it is permitted
+ to copy between a 128-bit uncompressed format and a compressed
+ format which uses 8-bit 4x4 blocks, or between a 64-bit uncompressed
+ format and a compressed format which uses 4-bit 4x4 blocks.
+
+
+ The source object is identified by srcName and
+ srcTarget and the destination object is identified
+ by dstName and dstTarget.
+ The interpretation of the name depends on the value
+ of the corresponding target parameter.
+ If target is
+ GL_RENDERBUFFER, the name is interpreted as the name of a
+ renderbuffer object. If the target parameter is a texture target,
+ the name is interpreted as a texture object. All non-proxy
+ texture targets are accepted, with the exception of GL_TEXTURE_BUFFER
+ and the cubemap face selectors.
+
+
+ srcLevel and dstLevel identify the source and destination
+ level of detail. For textures, this must be a valid level of
+ detail in the texture object. For renderbuffers, this value must
+ be zero.
+
+
+ srcX, srcY, and srcZ specify the lower left texel
+ coordinates of a srcWidth-wide by srcHeight-high by
+ srcDepth-deep rectangular subregion of the source texel array.
+ Similarly, dstX, dstY and dstZ specify the coordinates of a subregion of the
+ destination texel array. The source and destination subregions
+ must be contained entirely within the specified level of the
+ corresponding image objects.
+
+
+ The dimensions are always specified in texels, even for compressed
+ texture formats. However, it should be noted that if only one of the
+ source and destination textures is compressed then the number of
+ texels touched in the compressed image will be a factor of the
+ block size larger than in the uncompressed image.
+
+
+ Slices of a GL_TEXTURE_1D_ARRAY, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_CUBE_MAP_ARRAY
+ GL_TEXTURE_3D and faces of GL_TEXTURE_CUBE_MAP are all compatible provided
+ they share a compatible internal format, and multiple slices or faces
+ may be copied between these objects with a single call by specifying the
+ starting slice with srcZ and dstZ, and the number of slices to
+ be copied with srcDepth. Cubemap textures always have six faces
+ which are selected by a zero-based face index.
+
+
+ For the purposes of CopyImageSubData, two internal formats
+ are considered compatible if any of the following conditions are
+ met:
+ * the formats are the same,
+ * the formats are considered compatible according to the
+ compatibility rules used for texture views as defined in
+ section 3.9.X. In particular, if both internal formats are listed
+ in the same entry of Table 3.X.2, they are considered compatible, or
+ * one format is compressed and the other is uncompressed and
+ Table 4.X.1 lists the two formats in the same row.
+ If the formats are not compatible INVALID_OPERATION is generated.
+
+Sized Internal Formats
+
+
+
+
+
+
+
+ Texel / Block Size
+
+
+ Uncompressed Internal Format
+
+
+ Compressed Internal Format(s)
+
+
+
+
+
+ 64-bit
+ GL_RGBA32UI, GL_RGBA32I, GL_RGBA32F
+ GL_COMPRESSED_RGBA_S3TC_DXT3_EXT,
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
+ GL_COMPRESSED_RGBA_S3TC_DXT5_EXT,
+ GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
+ GL_COMPRESSED_RG_RGTC2,
+ GL_COMPRESSED_SIGNED_RG_RGTC2,
+ GL_COMPRESSED_RGBA_BPTC_UNORM,
+ GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM,
+ GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT,
+ GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
+
+
+ 128-bit
+ GL_RGBA16UI,
+ GL_RGBA16I,
+ GL_RGBA16F,
+ GL_RG32F,
+ GL_RG32UI,
+ GL_RG32I,
+ GL_RGBA16,
+ GL_RGBA16_SNORM
+ GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
+ COMPRESSED_SRGB_S3TC_DXT1_EXT,
+ COMPRESSED_RGBA_S3TC_DXT1_EXT,
+ COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
+ COMPRESSED_RED_RGTC1,
+ COMPRESSED_SIGNED_RED_RGTC1
+
+
+
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if the texel size of
+ the uncompressed image is not equal to the block size of the
+ compressed image.
+
+
+ GL_INVALID_ENUM is generated if either target parameter is not GL_RENDERBUFFER,
+ a valid non-proxy texture target other than GL_TEXTURE_BUFFER, or is one
+ of the cubemap face selectors.
+
+
+ GL_INVALID_ENUM is generated if target does not match the type of the object.
+
+
+ GL_INVALID_OPERATION is generated if either object is a texture and the texture is
+ not complete.
+
+
+ GL_INVALID_OPERATION is generated if the source and
+ destination internal formats are not compatible, or if the number of samples do not match.
+
+
+ GL_INVALID_VALUE is generated if either name does not correspond to a
+ valid renderbuffer or texture object according to the corresponding
+ target parameter.
+
+
+ GL_INVALID_VALUE is generated if the specified level of either the source or destination is not
+ a valid level for the corresponding image.
+
+
+ GL_INVALID_VALUE is generated if the
+ dimensions of the either subregion exceeds the boundaries of the
+ corresponding image object, or if the image format is compressed
+ and the dimensions of the subregion fail to meet the alignment
+ constraints of the format.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_COMPUTE_WORK_GROUP_COUNT
+
+
+ See Also
+
+ glDispatchComputeIndirect.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDebugMessageCallback.xml b/Source/Bind/Specifications/Docs/glDebugMessageCallback.xml
new file mode 100644
index 00000000..c524408c
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDebugMessageCallback.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glDebugMessageCallback
+ 3G
+
+
+ glDebugMessageCallback
+ specify a callback to receive debugging messages from the GL
+
+ C Specification
+
+
+ void glDebugMessageCallback
+ DEBUGPROC callback
+ void * userParam
+
+
+
+ Parameters
+
+
+ callback
+
+
+ The address of a callback function that will be called when a debug message is generated.
+
+
+
+
+ userParam
+
+
+ A user supplied pointer that will be passed on each invocation of callback.
+
+
+
+
+
+ Description
+
+ glDebugMessageInsert sets the current debug output callback function to
+ the function whose address is given in callback. The callback function
+ should have the following prototype (in C), or be otherwise compatible with such a prototype:
+
+
+
+ This function is defined to have the same calling convention as the GL API functions. In
+ most cases this is defined as APIENTRY
, although it will vary depending
+ on platform, language and compiler.
+
+
+ Each time a debug message is generated the debug callback function will be invoked
+ with source, type, id, and
+ severity associated with the message, and length set to
+ the length of debug message whose character string is in the array pointed to by message
+ userParam will be set to the value passed in the
+ userParam parameter to the most recent call to glDebugMessageInsert.
+
+
+ Notes
+
+ When the GL is in use remotely, the server may not be able to call functions in the client's address space.
+ In such cases, the callback function may not be invoked and the user should retrieve debug messages from
+ the context's debug message log by calling glGetDebugMessageLog.
+
+
+ See Also
+
+ glDebugMessageControl,
+ glDebugMessageInsert,
+ glGetDebugMessageLog.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDebugMessageControl.xml b/Source/Bind/Specifications/Docs/glDebugMessageControl.xml
new file mode 100644
index 00000000..51800e44
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDebugMessageControl.xml
@@ -0,0 +1,167 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glDebugMessageControl
+ 3G
+
+
+ glDebugMessageControl
+ control the reporting of debug messages in a debug context
+
+ C Specification
+
+
+ void glDebugMessageControl
+ GLenum source
+ GLenum type
+ GLenum severity
+ GLsizei count
+ const GLuint *ids
+ GLboolean enabled
+
+
+
+ Parameters
+
+
+ source
+
+
+ The source of debug messages to enable or disable.
+
+
+
+
+ type
+
+
+ The type of debug messages to enable or disable.
+
+
+
+
+ severity
+
+
+ The severity of debug messages to enable or disable.
+
+
+
+
+ count
+
+
+ The length of the array ids.
+
+
+
+
+ ids
+
+
+ The address of an array of unsigned integers contianing the ids of the messages to enable or disable.
+
+
+
+
+ enabled
+
+
+ A Boolean flag determining whether the selected messages should be enabled or disabled.
+
+
+
+
+
+ Description
+
+ glDebugMessageControl controls the reporting of debug messages generated by a debug
+ context. The parameters source, type and severity
+ form a filter to select messages from the pool of potential messages generated by the GL.
+
+
+ source may be GL_DEBUG_SOURCE_API, GL_DEBUG_SOURCE_WINDOW_SYSTEM_,
+ GL_DEBUG_SOURCE_SHADER_COMPILER, GL_DEBUG_SOURCE_THIRD_PARTY,
+ GL_DEBUG_SOURCE_APPLICATION, GL_DEBUG_SOURCE_OTHER to select messages generated by
+ usage of the GL API, the window system, the shader compiler, third party tools or libraries, explicitly by the application
+ or by some other source, respectively. It may also take the value GL_DONT_CARE. If source
+ is not GL_DONT_CARE then only messages whose source matches source will be referenced.
+
+
+ type may be one of GL_DEBUG_TYPE_ERROR, GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+ GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR, GL_DEBUG_TYPE_PORTABILITY,
+ GL_DEBUG_TYPE_PERFORMANCE, GL_DEBUG_TYPE_MARKER, GL_DEBUG_TYPE_PUSH_GROUP,
+ GL_DEBUG_TYPE_POP_GROUP, or GL_DEBUG_TYPE_OTHER to indicate the type of messages describing
+ GL errors, attempted use of deprecated features, triggering of undefined behavior, portability issues, performance notifications, markers,
+ group push and pop events, and other
+ types of messages, respectively. It may also take the value GL_DONT_CARE. If type is not GL_DONT_CARE
+ then only messages whose type matches type will be referenced.
+
+
+ severity may be one of GL_DEBUG_SEVERITY_LOW, GL_DEBUG_SEVERITY_MEDIUM,
+ or GL_DEBUG_SEVERITY_HIGH to select messages of low, medium or high severity messages or to
+ GL_DEBUG_SEVERITY_NOTIFICATION for notifications. It may also take the
+ value GL_DONT_CARE. If severity is not GL_DONT_CARE then only
+ messages whose severity matches severity will be referenced.
+
+
+ ids contains a list of count message identifiers to select specific messages from the pool
+ of available messages. If count is zero then the value of ids is ignored. Otherwise,
+ only messages appearing in this list are selected. In this case, source and type
+ may not be GL_DONT_CARE and severity must be GL_DONT_CARE.
+
+
+ If enabled is GL_TRUE then messages that match the filter formed by
+ source, type, severity and ids
+ are enabled. Otherwise, those messages are disabled.
+
+
+ Notes
+
+ Although debug messages may be enabled in a non-debug context, the quantity and detail of such messages may be substantially
+ inferior to those in a debug context. In particular, a valid implementation of the debug message queue in a non-debug context
+ may produce no messages at all.
+
+
+ GL_DEBUG_TYPE_MARKER, GL_DEBUG_TYPE_PUSH_GROUP, GL_DEBUG_TYPE_POP_GROUP, and GL_DEBUG_SEVERITY_NOTIFICATION
+ are available only if the GL version is 4.3 or higher.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if count is negative.
+
+
+ GL_INVALID_ENUM is generated if any of source, type
+ or severity is not one of the accepted interface types.
+
+
+ GL_INVALID_OPERATION is generated if count is non-zero
+ and either source or type is GL_DONT_CARE
+ or if severity is not GL_DONT_CARE.
+
+
+ See Also
+
+ glDebugMessageInsert,
+ glDebugMessageCallback,
+ glGetDebugMessageLog.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDebugMessageInsert.xml b/Source/Bind/Specifications/Docs/glDebugMessageInsert.xml
new file mode 100644
index 00000000..f3a66a97
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDebugMessageInsert.xml
@@ -0,0 +1,138 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glDebugMessageInsert
+ 3G
+
+
+ glDebugMessageInsert
+ inject an application-supplied message into the debug message queue
+
+ C Specification
+
+
+ void glDebugMessageInsert
+ GLenum source
+ GLenum type
+ GLuint id
+ GLenum severity
+ GLsizei length
+ const char *message
+
+
+
+ Parameters
+
+
+ source
+
+
+ The source of the debug message to insert.
+
+
+
+
+ type
+
+
+ The type of the debug message insert.
+
+
+
+
+ id
+
+
+ The user-supplied identifier of the message to insert.
+
+
+
+
+ severity
+
+
+ The severity of the debug messages to insert.
+
+
+
+
+ length
+
+
+ The length string contained in the character array whose address is given by message.
+
+
+
+
+ message
+
+
+ The address of a character array containing the message to insert.
+
+
+
+
+
+ Description
+
+ glDebugMessageInsert inserts a user-supplied message into the
+ debug output queue. source specifies the source that will be
+ used to classify the message and must be GL_DEBUG_SOURCE_APPLICATION
+ or GL_DEBUG_SOURCE_THIRD_PARTY. All other sources are reserved for
+ use by the GL implementation. type indicates the type of the message
+ to be inserted and may be one of GL_DEBUG_TYPE_ERROR, GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR,
+ GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR, GL_DEBUG_TYPE_PORTABILITY,
+ GL_DEBUG_TYPE_PERFORMANCE, GL_DEBUG_TYPE_MARKER, GL_DEBUG_TYPE_PUSH_GROUP, GL_DEBUG_TYPE_POP_GROUP, or GL_DEBUG_TYPE_OTHER.
+ severity indicates the severity of the message and may be GL_DEBUG_SEVERITY_LOW,
+ GL_DEBUG_SEVERITY_MEDIUM, GL_DEBUG_SEVERITY_HIGH or GL_DEBUG_SEVERITY_NOTIFICATION.
+ id is available for application defined use and may be any value. This value
+ will be recorded and used to identify the message.
+
+
+ length contains a count of the characters in the character array
+ whose address is given in message. If length
+ is negative then message is treated as a null-terminated string.
+ The length of the message, whether specified explicitly or implicitly, must be less than
+ or equal to the implementation defined constant GL_MAX_DEBUG_MESSAGE_LENGTH.
+
+
+ Notes
+
+ GL_DEBUG_TYPE_MARKER, GL_DEBUG_TYPE_PUSH_GROUP, GL_DEBUG_TYPE_POP_GROUP, and GL_DEBUG_SEVERITY_NOTIFICATION
+ are available only if the GL version is 4.3 or higher.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if any of source, type
+ or severity is not one of the accepted interface types.
+
+
+ GL_INVALID_VALUE is generated if the length of the message is greater than the
+ value of GL_MAX_DEBUG_MESSAGE_LENGTH.
+
+
+ See Also
+
+ glDebugMessageControl,
+ glDebugMessageCallback,
+ glGetDebugMessageLog.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDispatchCompute.xml b/Source/Bind/Specifications/Docs/glDispatchCompute.xml
new file mode 100644
index 00000000..0690998e
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDispatchCompute.xml
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glDispatchCompute
+ 3G
+
+
+ glDispatchCompute
+ launch one or more compute work groups
+
+ C Specification
+
+
+ void glDispatchCompute
+ GLuint num_groups_x
+ GLuint num_groups_y
+ GLuint num_groups_z
+
+
+
+ Parameters
+
+
+ num_groups_x
+
+
+ The number of work groups to be launched in the X dimension.
+
+
+
+
+ num_groups_y
+
+
+ The number of work groups to be launched in the Y dimension.
+
+
+
+
+ num_groups_z
+
+
+ The number of work groups to be launched in the Z dimension.
+
+
+
+
+
+ Description
+
+ glDispatchCompute launches one or more compute
+ work groups. Each work group is processed by the active program object for the compute
+ shader stage. While the individual shader invocations within a work group are
+ executed as a unit, work groups are executed completely independently and in
+ unspecified order. num_groups_x, num_groups_y
+ and num_groups_z specify the number of local
+ work groups that will be dispatched in the X, Y and Z dimensions, respectively.
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if there is no active program
+ for the compute shader stage.
+
+
+ GL_INVALID_VALUE is generated if any of num_groups_x,
+ num_groups_y, or num_groups_z is greater than or
+ equal to the maximum work-group count for the corresponding dimension.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_COMPUTE_WORK_GROUP_COUNT
+
+
+ See Also
+
+ glDispatchComputeIndirect.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDispatchComputeIndirect.xml b/Source/Bind/Specifications/Docs/glDispatchComputeIndirect.xml
new file mode 100644
index 00000000..eb8d765d
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDispatchComputeIndirect.xml
@@ -0,0 +1,112 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glDispatchComputeIndirect
+ 3G
+
+
+ glDispatchComputeIndirect
+ launch one or more compute work groups using parameters stored in a buffer
+
+ C Specification
+
+
+ void glDispatchComputeIndirect
+ GLintptr indirect
+
+
+
+ Parameters
+
+
+ indirect
+
+
+ The offset into the buffer object currently bound to the
+ GL_DISPATCH_INDIRECT_BUFFER buffer target at
+ which the dispatch parameters are stored.
+
+
+
+
+
+ Description
+
+ glDispatchComputeIndirect launches one or more compute
+ work groups using parameters stored in the buffer object currently bound
+ to the GL_DISPATCH_INDIRECT_BUFFER target.
+ Each work group is processed by the active program object for the compute
+ shader stage. While the individual shader invocations within a work group are
+ executed as a unit, work groups are executed completely independently and in
+ unspecified order. indirect contains the offset
+ into the data store of the buffer object bound to the GL_DISPATCH_INDIRECT_BUFFER
+ target at which the parameters are stored.
+
+
+ The parameters addressed by indirect are packed a structure,
+ which takes the form (in C):
+
+
+
+ A call to glDispatchComputeIndirect is equivalent, assuming no
+ errors are generated, to:
+ num_groups_x, cmd->num_groups_y, cmd->num_groups_z);
+ }]]>
+
+
+ Unlike glDispatchCompute,
+ no error is generated if any of the num_groups_x
,
+ num_groups_y
or num_groups_z
members
+ of the DispatchIndirectCommand
is larger than the
+ value of GL_MAX_COMPUTE_WORK_GROUP_COUNT for the
+ corresponding dimension. In such circumstances, behavior is undefined and
+ may lead to application termination.
+
+
+ Errors
+
+ GL_INVALID_OPERATION is generated if there is no active program
+ for the compute shader stage.
+
+
+ GL_INVALID_VALUE is generated if indirect is
+ less than zero or not a multiple of four.
+
+
+ GL_INVALID_OPERATION is generated if no buffer is bound to the
+ GL_DISPATCH_INDIRECT_BUFFER target or if the command would
+ source data beyond the end of the buffer object's data store.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_COMPUTE_WORK_GROUP_COUNT
+
+
+ See Also
+
+ glDispatchCompute.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDrawArraysInstancedBaseInstance.xml b/Source/Bind/Specifications/Docs/glDrawArraysInstancedBaseInstance.xml
new file mode 100644
index 00000000..724f4e3b
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDrawArraysInstancedBaseInstance.xml
@@ -0,0 +1,153 @@
+
+
+
+
+
+
+ 2010
+ Khronos Group
+
+
+ glDrawArraysInstancedBaseInstance
+ 3G
+
+
+ glDrawArraysInstancedBaseInstance
+ draw multiple instances of a range of elements with offset applied to instanced attributes
+
+ C Specification
+
+
+ void glDrawArraysInstancedBaseInstance
+ GLenum mode
+ GLint first
+ GLsizei count
+ GLsizei primcount
+ GLuint baseinstance
+
+
+
+ Parameters
+
+
+ mode
+
+
+ Specifies what kind of primitives to render. Symbolic constants GL_POINTS,
+ GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES,
+ GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES
+ GL_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY,
+ GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES
+ are accepted.
+
+
+
+
+ first
+
+
+ Specifies the starting index in the enabled arrays.
+
+
+
+
+ count
+
+
+ Specifies the number of indices to be rendered.
+
+
+
+
+ primcount
+
+
+ Specifies the number of instances of the specified range of indices to be rendered.
+
+
+
+
+ baseinstance
+
+
+ Specifies the base instance for use in fetching instanced vertex attributes.
+
+
+
+
+
+ Description
+
+ glDrawArraysInstancedBaseInstance behaves identically to glDrawArrays
+ except that primcount instances of the range of elements are executed and the value of the internal counter
+ instanceID advances for each iteration. instanceID is an internal 32-bit integer counter
+ that may be read by a vertex shader as gl_InstanceID.
+
+
+ glDrawArraysInstancedBaseInstance has the same effect as:
+
+
+
+ Specific vertex attributes may be classified as instanced through the use of
+ glVertexAttribDivisor. Instanced vertex attributes
+ supply per-instance vertex data to the vertex shader. The index of the vertex fetched from the enabled instanced vertex
+ attribute arrays is calculated as:
+
+
+
+
+
+ gl
+ _
+ InstanceID
+
+ divisor
+
+
+ +
+ baseInstance
+
+. Note that baseinstance does not affect the shader-visible value of gl_InstanceID.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if mode is not one of
+ the accepted values.
+
+
+ GL_INVALID_OPERATION is generated if a geometry shader is active and mode
+ is incompatible with the input primitive type of the geometry shader in the currently installed program object.
+
+
+ GL_INVALID_VALUE is generated if count or primcount are negative.
+
+
+ GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an
+ enabled array and the buffer object's data store is currently mapped.
+
+
+ See Also
+
+ glDrawArrays,
+ glDrawElementsInstanced
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDrawElementsInstancedBaseInstance.xml b/Source/Bind/Specifications/Docs/glDrawElementsInstancedBaseInstance.xml
new file mode 100644
index 00000000..f5b60b9a
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDrawElementsInstancedBaseInstance.xml
@@ -0,0 +1,184 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group
+
+
+ glDrawElementsInstancedBaseInstance
+ 3G
+
+
+ glDrawElementsInstancedBaseInstance
+ draw multiple instances of a set of elements with offset applied to instanced attributes
+
+ C Specification
+
+
+ void glDrawElementsInstancedBaseInstance
+ GLenum mode
+ GLsizei count
+ GLenum type
+ const void * indices
+ GLsizei primcount
+ GLuitn baseinstance
+
+
+
+ Parameters
+
+
+ mode
+
+
+ Specifies what kind of primitives to render.
+ Symbolic constants
+ GL_POINTS,
+ GL_LINE_STRIP,
+ GL_LINE_LOOP,
+ GL_LINES,
+ GL_LINE_STRIP_ADJACENCY,
+ GL_LINES_ADJACENCY,
+ GL_TRIANGLE_STRIP,
+ GL_TRIANGLE_FAN,
+ GL_TRIANGLES,
+ GL_TRIANGLE_STRIP_ADJACENCY,
+ GL_TRIANGLES_ADJACENCY and GL_PATCHES
+ are accepted.
+
+
+
+
+ count
+
+
+ Specifies the number of elements to be rendered.
+
+
+
+
+ type
+
+
+ Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE,
+ GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
+
+
+
+
+ indices
+
+
+ Specifies a pointer to the location where the indices are stored.
+
+
+
+
+ primcount
+
+
+ Specifies the number of instances of the specified range of indices to be rendered.
+
+
+
+
+ baseinstance
+
+
+ Specifies the base instance for use in fetching instanced vertex attributes.
+
+
+
+
+
+ Description
+
+ glDrawElementsInstancedBaseInstance behaves identically to glDrawElements
+ except that primcount instances of the set of elements are executed and the value of the internal counter
+ instanceID advances for each iteration. instanceID is an internal 32-bit integer counter
+ that may be read by a vertex shader as gl_InstanceID.
+
+
+ glDrawElementsInstancedBaseInstance has the same effect as:
+
+
+
+ Specific vertex attributes may be classified as instanced through the use of
+ glVertexAttribDivisor. Instanced vertex attributes
+ supply per-instance vertex data to the vertex shader. The index of the vertex fetched from the enabled instanced vertex
+ attribute arrays is calculated as
+
+
+
+
+
+ gl
+ _
+ InstanceID
+
+ divisor
+
+
+ +
+ baseInstance
+
+. Note that baseinstance does not affect the shader-visible value of gl_InstanceID.
+
+
+ Notes
+
+ glDrawElementsInstancedBaseInstance is available only if the GL version is 4.2 or greater.
+
+
+ GL_LINE_STRIP_ADJACENCY,
+ GL_LINES_ADJACENCY,
+ GL_TRIANGLE_STRIP_ADJACENCY and
+ GL_TRIANGLES_ADJACENCY
+ are available only if the GL version is 3.2 or greater.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if mode is not one of GL_POINTS,
+ GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES,
+ GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, or GL_TRIANGLES.
+
+
+ GL_INVALID_VALUE is generated if count or primcount are negative.
+
+
+ GL_INVALID_OPERATION is generated if a geometry shader is active and mode
+ is incompatible with the input primitive type of the geometry shader in the currently installed program object.
+
+
+ GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an
+ enabled array and the buffer object's data store is currently mapped.
+
+
+ See Also
+
+ glDrawElements,
+ glDrawArraysInstanced
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDrawElementsInstancedBaseVertexBaseInstance.xml b/Source/Bind/Specifications/Docs/glDrawElementsInstancedBaseVertexBaseInstance.xml
new file mode 100644
index 00000000..d14401ee
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDrawElementsInstancedBaseVertexBaseInstance.xml
@@ -0,0 +1,170 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group
+
+
+ glDrawElementsInstancedBaseVertexBaseInstance
+ 3G
+
+
+ glDrawElementsInstancedBaseVertexBaseInstance
+ render multiple instances of a set of primitives from array data with a per-element offset
+
+ C Specification
+
+
+ void glDrawElementsInstancedBaseVertexBaseInstance
+ GLenum mode
+ GLsizei count
+ GLenum type
+ GLvoid *indices
+ GLsizei primcount
+ GLint basevertex
+ GLuint baseinstance
+
+
+
+
+ Parameters
+
+
+ mode
+
+
+ Specifies what kind of primitives to render.
+ Symbolic constants
+ GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP,
+ GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN,
+ GL_TRIANGLES, GL_LINES_ADJACENCY, GL_LINE_STRIP_ADJACENCY,
+ GL_TRIANGLES_ADJACENCY, GL_TRIANGLE_STRIP_ADJACENCY and GL_PATCHES are accepted.
+
+
+
+
+ count
+
+
+ Specifies the number of elements to be rendered.
+
+
+
+
+ type
+
+
+ Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE,
+ GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.
+
+
+
+
+ indices
+
+
+ Specifies a pointer to the location where the indices are stored.
+
+
+
+
+ primcount
+
+
+ Specifies the number of instances of the indexed geometry that should be drawn.
+
+
+
+
+ basevertex
+
+
+ Specifies a constant that should be added to each element of indices
+ when chosing elements from the enabled vertex arrays.
+
+
+
+
+ baseinstance
+
+
+ Specifies the base instance for use in fetching instanced vertex attributes.
+
+
+
+
+
+ Description
+
+ glDrawElementsInstancedBaseVertexBaseInstance behaves identically to
+ glDrawElementsInstanced except that the ith element
+ transferred by the corresponding draw call will be taken from element indices[i] + basevertex
+ of each enabled array. If the resulting value is larger than the maximum value representable by type,
+ it is as if the calculation were upconverted to 32-bit unsigned integers (with wrapping on overflow conditions).
+ The operation is undefined if the sum would be negative. The basevertex has no effect on the
+ shader-visible value of gl_VertexID.
+
+
+ Specific vertex attributes may be classified as instanced through the use of
+ glVertexAttribDivisor. Instanced vertex attributes
+ supply per-instance vertex data to the vertex shader. The index of the vertex fetched from the enabled instanced vertex
+ attribute arrays is calculated as
+
+
+
+
+
+ gl
+ _
+ InstanceID
+
+ divisor
+
+
+ +
+ baseInstance
+
+. Note that baseinstance does not affect the shader-visible value of gl_InstanceID.
+
+
+ Notes
+ glDrawElementsInstancedBaseVertex is only supported if the GL version is 3.2 or greater.
+
+ Errors
+
+ GL_INVALID_ENUM is generated if mode is not an accepted value.
+
+
+ GL_INVALID_VALUE is generated if count or primcount is negative.
+
+
+ GL_INVALID_OPERATION is generated if a geometry shader is active and mode
+ is incompatible with the input primitive type of the geometry shader in the currently installed program object.
+
+
+ GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an
+ enabled array or the element array and the buffer object's data store is currently mapped.
+
+
+ See Also
+
+ glDrawElements,
+ glDrawRangeElements,
+ glDrawRangeElementsBaseVertex,
+ glDrawElementsInstanced,
+ glDrawElementsInstancedBaseVertex
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDrawTransformFeedbackInstanced.xml b/Source/Bind/Specifications/Docs/glDrawTransformFeedbackInstanced.xml
new file mode 100644
index 00000000..6c5deb7a
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDrawTransformFeedbackInstanced.xml
@@ -0,0 +1,134 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group.
+
+
+ glDrawTransformFeedbackInstanced
+ 3G
+
+
+ glDrawTransformFeedbackInstanced
+ render multiple instances of primitives using a count derived from a transform feedback object
+
+ C Specification
+
+
+ void glDrawTransformFeedbackInstanced
+ GLenum mode
+ GLuint id
+ GLsizei primcount
+
+
+
+
+ Parameters
+
+
+ mode
+
+
+ Specifies what kind of primitives to render.
+ Symbolic constants
+ GL_POINTS,
+ GL_LINE_STRIP,
+ GL_LINE_LOOP,
+ GL_LINES,
+ GL_LINE_STRIP_ADJACENCY,
+ GL_LINES_ADJACENCY,
+ GL_TRIANGLE_STRIP,
+ GL_TRIANGLE_FAN,
+ GL_TRIANGLES,
+ GL_TRIANGLE_STRIP_ADJACENCY,
+ GL_TRIANGLES_ADJACENCY, and
+ GL_PATCHES
+ are accepted.
+
+
+
+
+ id
+
+
+ Specifies the name of a transform feedback object from which to retrieve a primitive count.
+
+
+
+
+ primcount
+
+
+ Specifies the number of instances of the geometry to render.
+
+
+
+
+
+ Description
+
+ glDrawTransformFeedbackInstanced draws multiple copies of a range of primitives of a type specified by mode using
+ a count retrieved from the transform feedback stream specified by stream of the transform feedback object
+ specified by id. Calling glDrawTransformFeedbackInstanced
+ is equivalent to calling glDrawArraysInstanced with mode
+ and primcount as specified, first set to zero, and count set to the number of vertices captured
+ on vertex stream zero the last time transform feedback was active on the transform feedback object named
+ by id.
+
+
+ Calling glDrawTransformFeedbackInstanced is equivalent to calling glDrawTransformFeedbackStreamInstanced
+ with stream set to zero.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if mode is not an accepted value.
+
+
+ GL_INVALID_VALUE is generated if id is not the name of a transform feedback
+ object.
+
+
+ GL_INVALID_VALUE is generated if stream is greater than or equal to
+ the value of GL_MAX_VERTEX_STREAMS.
+
+
+ GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an
+ enabled array and the buffer object's data store is currently mapped.
+
+
+ GL_INVALID_OPERATION is generated if a geometry shader is active and mode
+ is incompatible with the input primitive type of the geometry shader in the currently installed program object.
+
+
+ GL_INVALID_OPERATION is generated if mode is GL_PATCHES
+ and no tessellation control shader is active.
+
+
+ GL_INVALID_OPERATION is generated if glEndTransformFeedback
+ has never been called while the transform feedback object named by id was bound.
+
+
+ See Also
+
+ glDrawArrays,
+ glDrawArraysInstanced,
+ glDrawElements,
+ glDrawRangeElements,
+ glDrawTransformFeedback,
+ glDrawTransformFeedbackStreamInstanced.
+
+
+ Copyright
+
+ Copyright 2010-2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glDrawTransformFeedbackStreamInstanced.xml b/Source/Bind/Specifications/Docs/glDrawTransformFeedbackStreamInstanced.xml
new file mode 100644
index 00000000..90988c41
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glDrawTransformFeedbackStreamInstanced.xml
@@ -0,0 +1,143 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group.
+
+
+ glDrawTransformFeedbackStreamInstanced
+ 3G
+
+
+ glDrawTransformFeedbackStreamInstanced
+ render multiple instances of primitives using a count derived from a specifed stream of a transform feedback object
+
+ C Specification
+
+
+ void glDrawTransformFeedbackStreamInstanced
+ GLenum mode
+ GLuint id
+ GLuint stream
+ GLsizei primcount
+
+
+
+
+ Parameters
+
+
+ mode
+
+
+ Specifies what kind of primitives to render.
+ Symbolic constants
+ GL_POINTS,
+ GL_LINE_STRIP,
+ GL_LINE_LOOP,
+ GL_LINES,
+ GL_LINE_STRIP_ADJACENCY,
+ GL_LINES_ADJACENCY,
+ GL_TRIANGLE_STRIP,
+ GL_TRIANGLE_FAN,
+ GL_TRIANGLES,
+ GL_TRIANGLE_STRIP_ADJACENCY,
+ GL_TRIANGLES_ADJACENCY, and
+ GL_PATCHES
+ are accepted.
+
+
+
+
+ id
+
+
+ Specifies the name of a transform feedback object from which to retrieve a primitive count.
+
+
+
+
+ stream
+
+
+ Specifies the index of the transform feedback stream from which to retrieve a primitive count.
+
+
+
+
+ primcount
+
+
+ Specifies the number of instances of the geometry to render.
+
+
+
+
+
+ Description
+
+ glDrawTransformFeedbackStreamInstanced draws multiple copies of a range of primitives of a type specified by mode using
+ a count retrieved from the transform feedback stream specified by stream of the transform feedback object
+ specified by id. Calling glDrawTransformFeedbackStreamInstanced
+ is equivalent to calling glDrawArraysInstanced with mode
+ and primcount as specified, first set to zero, and count set to the number of vertices captured
+ on vertex stream stream the last time transform feedback was active on the transform feedback object named
+ by id.
+
+
+ Calling glDrawTransformFeedbackInstanced is equivalent to calling glDrawTransformFeedbackStreamInstanced
+ with stream set to zero.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if mode is not an accepted value.
+
+
+ GL_INVALID_VALUE is generated if id is not the name of a transform feedback
+ object.
+
+
+ GL_INVALID_VALUE is generated if stream is greater than or equal to
+ the value of GL_MAX_VERTEX_STREAMS.
+
+
+ GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an
+ enabled array and the buffer object's data store is currently mapped.
+
+
+ GL_INVALID_OPERATION is generated if a geometry shader is active and mode
+ is incompatible with the input primitive type of the geometry shader in the currently installed program object.
+
+
+ GL_INVALID_OPERATION is generated if mode is GL_PATCHES
+ and no tessellation control shader is active.
+
+
+ GL_INVALID_OPERATION is generated if glEndTransformFeedback
+ has never been called while the transform feedback object named by id was bound.
+
+
+ See Also
+
+ glDrawArrays,
+ glDrawArraysInstanced,
+ glDrawElements,
+ glDrawRangeElements,
+ glDrawTransformFeedback,
+ glDrawTransformFeedbackStream.
+
+
+ Copyright
+
+ Copyright 2010-2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glFramebufferParameteri.xml b/Source/Bind/Specifications/Docs/glFramebufferParameteri.xml
new file mode 100644
index 00000000..49e4c139
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glFramebufferParameteri.xml
@@ -0,0 +1,179 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glFramebufferParameteri
+ 3G
+
+
+ glFramebufferParameteri
+ set a named parameter of a framebuffer
+
+ C Specification
+
+
+ void glFramebufferParameteri
+ GLenum target
+ GLenum pname
+ GLint param
+
+
+
+ Parameters
+
+
+ target
+
+
+ The target of the operation, which must be GL_READ_FRAMEBUFFER,
+ GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
+
+
+
+
+ pname
+
+
+ A token indicating the parameter to be modified.
+
+
+
+
+ param
+
+
+ The new value for the parameter named pname.
+
+
+
+
+
+ Description
+
+ glFramebufferParameteri modifies the current value of the parameter
+ named pname in the framebuffer bound to target.
+ target must be GL_READ_FRAMEBFUFFER,
+ GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER. The
+ token GL_FRAMEBUFFER is treated as GL_DRAW_FRAMEBUFFER.
+ A non-default framebuffer must be bound to target.
+
+
+ pname specifies the parameter to be modified. The following symbols
+ are accepted in pname:
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_WIDTH
+
+
+ param specifies the assumed with for a framebuffer object with no attachments. If a
+ framebuffer has attachments then the width of those attachments is used, otherwise
+ the value of GL_FRAMEBUFFER_DEFAULT_WIDTH is used for the
+ framebuffer. param must be greater than or equal to zero and less than
+ or equal to the value of GL_MAX_FRAMEBUFFER_WIDTH.
+
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_HEIGHT
+
+
+ param specifies the assumed height for a framebuffer object with no attachments. If a
+ framebuffer has attachments then the height of those attachments is used, otherwise
+ the value of GL_FRAMEBUFFER_DEFAULT_HEIGHT is used for the
+ framebuffer. param must be greater than or equal to zero and less than
+ or equal to the value of GL_MAX_FRAMEBUFFER_HEIGHT.
+
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_LAYERS
+
+
+ param specifies the assumed number of layers for a framebuffer object with no attachments. If a
+ framebuffer has attachments then the layer count of those attachments is used, otherwise
+ the value of GL_FRAMEBUFFER_DEFAULT_LAYERS is used for the
+ framebuffer. param must be greater than or equal to zero and less than
+ or equal to the value of GL_MAX_FRAMEBUFFER_LAYERS.
+
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_SAMPLES
+
+
+ param specifies the assumed number of samples in a framebuffer object with no attachments. If a
+ framebuffer has attachments then the sample count of those attachments is used, otherwise
+ the value of GL_FRAMEBUFFER_DEFAULT_SAMPLES is used for the
+ framebuffer. param must be greater than or equal to zero and less than
+ or equal to the value of GL_MAX_FRAMEBUFFER_SAMPLE.
+
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
+
+
+ param specifies whether the framebuffer should assume identical sample locations and
+ the same number of samples for all texels in the virtual image. If param is zero,
+ then the implementation may vary the position or the count of samples within the virtual image from
+ pixel to pixel, otherwise it will use the same sample position and count for all pixels in the virtual image.
+
+
+
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target is not one of the accepted
+ framebuffer targets.
+
+
+ GL_INVAILD_VALUE is generated if pname is GL_FRAMEBUFFER_DEFAULT_WIDTH
+ and param is less than zero or greater than the value of GL_MAX_FRAMEBUFFER_WIDTH.
+
+
+ GL_INVAILD_VALUE is generated if pname is GL_FRAMEBUFFER_DEFAULT_HEIGHT
+ and param is less than zero or greater than the value of GL_MAX_FRAMEBUFFER_HEIGHT.
+
+
+ GL_INVAILD_VALUE is generated if pname is GL_FRAMEBUFFER_DEFAULT_LAYERS
+ and param is less than zero or greater than the value of GL_MAX_FRAMEBUFFER_LAYERS.
+
+
+ GL_INVAILD_VALUE is generated if pname is GL_FRAMEBUFFER_DEFAULT_SAMPLES
+ and param is less than zero or greater than the value of GL_MAX_FRAMEBUFFER_SAMPLES.
+
+
+ GL_INVALID_OPERATION is generated if the default framebuffer is bound to target.
+
+
+ Associated Gets
+
+ glGetFramebufferParameteriv.
+
+
+ See Also
+
+ glVertexAttribBinding,
+ glVertexAttribFormat,
+ glVertexAttribPointer,
+ glVertexBindingDivisor.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetActiveAtomicCounterBufferiv.xml b/Source/Bind/Specifications/Docs/glGetActiveAtomicCounterBufferiv.xml
new file mode 100644
index 00000000..8052c6bb
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetActiveAtomicCounterBufferiv.xml
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group.
+
+
+ glGetActiveAtomicCounterBufferiv
+ 3G
+
+
+ glGetActiveAtomicCounterBufferiv
+ retrieve information about the set of active atomic counter buffers for a program
+
+ C Specification
+
+
+ void glGetActiveAtomicCounterBufferiv
+ Gluint program
+ GLuint bufferIndex
+ GLenum pname
+ GLint *params
+
+
+
+
+ Parameters
+
+
+ program
+
+
+ The name of a program object from which to retrieve information.
+
+
+
+
+ bufferIndex
+
+
+ Specifies index of an active atomic counter buffer.
+
+
+
+
+ pname
+
+
+ Specifies which parameter of the atomic counter buffer to retrieve.
+
+
+
+
+ params
+
+
+ Specifies the address of a variable into which to write the retrieved information.
+
+
+
+
+
+ Description
+
+ glGetActiveAtomicCounterBufferiv retrieves information about the set of active
+ atomic counter buffers for a program object. program is the name of a program
+ object for which the command glLinkProgram
+ has been issued in the past. It is not necessary for program to have been linked
+ successfully. The link may have failed because the number of active atomic counters exceeded the limits.
+
+
+ bufferIndex specifies the index of an active atomic counter buffer and must be in
+ the range zero to the value of GL_ACTIVE_ATOMIC_COUNTER_BUFFERS minus one. The value
+ of GL_ACTIVE_ATOMIC_COUNTER_BUFFERS for program indicates the
+ number of active atomic counter buffer and can be queried with
+ glGetProgram.
+
+
+ If no error occurs, the parameter(s) specified by pname are returned in params.
+ If an error is generated, the contents of params are not modified.
+
+
+ If pname is GL_ATOMIC_COUNTER_BUFFER_BINDING, then the index of the
+ counter buffer binding point associated with the active atomic counter buffer bufferIndex
+ for program is returned.
+
+
+ If pname is GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE, then the implementation-dependent
+ minimum total buffer object size, in baseic machine units, required to hold all active atomic counters in the
+ atomic counter binding point identified by bufferIndex is returned.
+
+
+ If pname is GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS, then the number of active
+ atomic counters for the atomic counter buffer identified by bufferIndex is returned.
+
+
+ If pname is GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES,
+ then a list of the active atomic counter indices for the atomic counter buffer identified by bufferIndex
+ is returned. The number of elements that will be written into params is the value of
+ GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS for bufferIndex.
+
+
+ If pname is GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER,
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER,
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER,
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER,
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER,
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER then a boolean value indicating
+ whether the atomic counter buffer identified by bufferIndex is referenced by the vertex,
+ tessellation control, tessellation evaluation, geometry, fragment or compute processing stages of program,
+ respectively, is returned.
+
+
+ Notes
+
+ glGetActiveAtomicCounterBufferiv is available only if the
+ GL version is 4.2 or higher.
+
+
+ GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER is available
+ only of the GL version is 4.3 or higher.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if program is not the name of a program
+ object for which glLinkProgram has been called in the past.
+
+
+ GL_INVALID_VALUE is generated if bufferIndex is greater than or equal to
+ the value of GL_ACTIVE_ATOMIC_COUNTER_BUFFERS for program.
+
+
+ GL_INVALID_ENUM is generated if pname is not one of the accepted tokens.
+
+
+ See Also
+
+ glGetProgram,
+ glGetActiveSubroutineUniform,
+ glGetActiveSubroutineUniformName,
+ glGetUniformLocation
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetActiveUniformsiv.xml b/Source/Bind/Specifications/Docs/glGetActiveUniformsiv.xml
new file mode 100644
index 00000000..c0e99dae
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetActiveUniformsiv.xml
@@ -0,0 +1,805 @@
+
+
+
+
+ glGetActiveUniformsiv
+ 3G
+
+
+ glGetActiveUniformsiv
+ Returns information about several active uniform variables for the specified program object
+
+ C Specification
+
+
+ void glGetActiveUniformsiv
+ GLuint program
+ GLsizei uniformCount
+ const GLuint *uniformIndices
+ GLenum pname
+ GLint *params
+
+
+
+ Parameters
+
+
+ program
+
+ Specifies the program object to be queried.
+
+
+
+ uniformCount
+
+ Specifies both the number of elements in the array of indices uniformIndices and the
+ number of parameters written to params upon successful return.
+
+
+
+ uniformIndices
+
+ Specifies the address of an array of uniformCount integers containing the indices of
+ uniforms within program whose parameter pname pname.
+
+
+
+ pname
+
+ Specifies the property of the each uniform in uniformIndices that should be
+ written into the corresponding element of params.
+
+
+
+ params
+
+ Specifies the address of an array of uniformCount integers which are to
+ receive the value of pname for each uniform in uniformIndices.
+
+
+
+
+ Description
+
+ glGetActiveUniformsiv queries the value of the parameter named pname
+ for each of the uniforms within program whose indices are specified in the array of
+ uniformCount unsigned integers uniformIndices. Upon success,
+ the value of the parameter for each uniform is written into the corresponding entry in the array whose
+ address is given in params. If an error is generated, nothing is written into
+ params.
+
+
+ If pname is GL_UNIFORM_TYPE, then an array identifying the types
+ of uniforms specified by the corresponding array of uniformIndices is returned. The
+ returned types can be any of the values from the following table:
+
+
+
+
+
+
+
+ Returned Symbolic Contant
+
+
+ Shader Uniform Type
+
+
+
+
+
+
+ GL_FLOAT
+
+
+ float
+
+
+
+
+ GL_FLOAT_VEC2
+
+
+ vec2
+
+
+
+
+ GL_FLOAT_VEC3
+
+
+ vec3
+
+
+
+
+ GL_FLOAT_VEC4
+
+
+ vec4
+
+
+
+
+ GL_DOUBLE
+
+
+ double
+
+
+
+
+ GL_DOUBLE_VEC2
+
+
+ dvec2
+
+
+
+
+ GL_DOUBLE_VEC3
+
+
+ dvec3
+
+
+
+
+ GL_DOUBLE_VEC4
+
+
+ dvec4
+
+
+
+
+ GL_INT
+
+
+ int
+
+
+
+
+ GL_INT_VEC2
+
+
+ ivec2
+
+
+
+
+ GL_INT_VEC3
+
+
+ ivec3
+
+
+
+
+ GL_INT_VEC4
+
+
+ ivec4
+
+
+
+
+ GL_UNSIGNED_INT
+
+
+ unsigned int
+
+
+
+
+ GL_UNSIGNED_INT_VEC2
+
+
+ uvec2
+
+
+
+
+ GL_UNSIGNED_INT_VEC3
+
+
+ uvec3
+
+
+
+
+ GL_UNSIGNED_INT_VEC4
+
+
+ uvec4
+
+
+
+
+ GL_BOOL
+
+
+ bool
+
+
+
+
+ GL_BOOL_VEC2
+
+
+ bvec2
+
+
+
+
+ GL_BOOL_VEC3
+
+
+ bvec3
+
+
+
+
+ GL_BOOL_VEC4
+
+
+ bvec4
+
+
+
+
+ GL_FLOAT_MAT2
+
+
+ mat2
+
+
+
+
+ GL_FLOAT_MAT3
+
+
+ mat3
+
+
+
+
+ GL_FLOAT_MAT4
+
+
+ mat4
+
+
+
+
+ GL_FLOAT_MAT2x3
+
+
+ mat2x3
+
+
+
+
+ GL_FLOAT_MAT2x4
+
+
+ mat2x4
+
+
+
+
+ GL_FLOAT_MAT3x2
+
+
+ mat3x2
+
+
+
+
+ GL_FLOAT_MAT3x4
+
+
+ mat3x4
+
+
+
+
+ GL_FLOAT_MAT4x2
+
+
+ mat4x2
+
+
+
+
+ GL_FLOAT_MAT4x3
+
+
+ mat4x3
+
+
+
+
+ GL_DOUBLE_MAT2
+
+
+ dmat2
+
+
+
+
+ GL_DOUBLE_MAT3
+
+
+ dmat3
+
+
+
+
+ GL_DOUBLE_MAT4
+
+
+ dmat4
+
+
+
+
+ GL_DOUBLE_MAT2x3
+
+
+ dmat2x3
+
+
+
+
+ GL_DOUBLE_MAT2x4
+
+
+ dmat2x4
+
+
+
+
+ GL_DOUBLE_MAT3x2
+
+
+ dmat3x2
+
+
+
+
+ GL_DOUBLE_MAT3x4
+
+
+ dmat3x4
+
+
+
+
+ GL_DOUBLE_MAT4x2
+
+
+ dmat4x2
+
+
+
+
+ GL_DOUBLE_MAT4x3
+
+
+ dmat4x3
+
+
+
+
+ GL_SAMPLER_1D
+
+
+ sampler1D
+
+
+
+
+ GL_SAMPLER_2D
+
+
+ sampler2D
+
+
+
+
+ GL_SAMPLER_3D
+
+
+ sampler3D
+
+
+
+
+ GL_SAMPLER_CUBE
+
+
+ samplerCube
+
+
+
+
+ GL_SAMPLER_1D_SHADOW
+
+
+ sampler1DShadow
+
+
+
+
+ GL_SAMPLER_2D_SHADOW
+
+
+ sampler2DShadow
+
+
+
+
+ GL_SAMPLER_1D_ARRAY
+
+
+ sampler1DArray
+
+
+
+
+ GL_SAMPLER_2D_ARRAY
+
+
+ sampler2DArray
+
+
+
+
+ GL_SAMPLER_1D_ARRAY_SHADOW
+
+
+ sampler1DArrayShadow
+
+
+
+
+ GL_SAMPLER_2D_ARRAY_SHADOW
+
+
+ sampler2DArrayShadow
+
+
+
+
+ GL_SAMPLER_2D_MULTISAMPLE
+
+
+ sampler2DMS
+
+
+
+
+ GL_SAMPLER_2D_MULTISAMPLE_ARRAY
+
+
+ sampler2DMSArray
+
+
+
+
+ GL_SAMPLER_CUBE_SHADOW
+
+
+ samplerCubeShadow
+
+
+
+
+ GL_SAMPLER_BUFFER
+
+
+ samplerBuffer
+
+
+
+
+ GL_SAMPLER_2D_RECT
+
+
+ sampler2DRect
+
+
+
+
+ GL_SAMPLER_2D_RECT_SHADOW
+
+
+ sampler2DRectShadow
+
+
+
+
+ GL_INT_SAMPLER_1D
+
+
+ isampler1D
+
+
+
+
+ GL_INT_SAMPLER_2D
+
+
+ isampler2D
+
+
+
+
+ GL_INT_SAMPLER_3D
+
+
+ isampler3D
+
+
+
+
+ GL_INT_SAMPLER_CUBE
+
+
+ isamplerCube
+
+
+
+
+ GL_INT_SAMPLER_1D_ARRAY
+
+
+ isampler1DArray
+
+
+
+
+ GL_INT_SAMPLER_2D_ARRAY
+
+
+ isampler2DArray
+
+
+
+
+ GL_INT_SAMPLER_2D_MULTISAMPLE
+
+
+ isampler2DMS
+
+
+
+
+ GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+
+
+ isampler2DMSArray
+
+
+
+
+ GL_INT_SAMPLER_BUFFER
+
+
+ isamplerBuffer
+
+
+
+
+ GL_INT_SAMPLER_2D_RECT
+
+
+ isampler2DRect
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_1D
+
+
+ usampler1D
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_2D
+
+
+ usampler2D
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_3D
+
+
+ usampler3D
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_CUBE
+
+
+ usamplerCube
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_1D_ARRAY
+
+
+ usampler2DArray
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_2D_ARRAY
+
+
+ usampler2DArray
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE
+
+
+ usampler2DMS
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY
+
+
+ usampler2DMSArray
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_BUFFER
+
+
+ usamplerBuffer
+
+
+
+
+ GL_UNSIGNED_INT_SAMPLER_2D_RECT
+
+
+ usampler2DRect
+
+
+
+
+
+
+
+ If pname is GL_UNIFORM_SIZE, then an array identifying the
+ size of the uniforms specified by the corresponding array of uniformIndices is
+ returned. The sizes returned are in units of the type returned by a query of GL_UNIFORM_TYPE.
+ For active uniforms that are arrays, the size is the number of active elements in the array;
+ for all other uniforms, the size is one.
+
+
+ If pname is GL_UNIFORM_NAME_LENGTH, then an array identifying the
+ length, including the terminating null character, of the uniform name strings specified by the corresponding
+ array of uniformIndices is returned.
+
+
+ If pname is GL_UNIFORM_BLOCK_INDEX, then an array identifying the
+ the uniform block index of each of the uniforms specified by the corresponding array of uniformIndices
+ is returned. The uniform block index of a uniform associated with the default uniform block is -1.
+
+
+ If pname is GL_UNIFORM_OFFSET, then an array of uniform buffer
+ offsets is returned. For uniforms in a named uniform block, the returned value will be its offset, in basic
+ machine units, relative to the beginning of the uniform block in the buffer object data store.
+ For atomic counter uniforms, the returned value will be its offset relative to the beginning of its active
+ atomic counter buffer.
+ For all other uniforms, -1 will be returned.
+
+
+ If pname is GL_UNIFORM_ARRAY_STRIDE, then an array identifying the
+ stride between elements of each of the uniforms specified by the corresponding array of
+ uniformIndices is returned.
+ For uniforms in named uniform blocks and for uniforms declared as atomic counters, the stride is the difference,
+ in basic machine units, of consecutive elements in an array, or zero for uniforms not declared as an array.
+ For all other uniforms, a stride of -1 will be returned.
+
+
+ If pname is GL_UNIFORM_MATRIX_STRIDE, then an array identifying the stride
+ between columns of a column-major matrix or rows of a row-major matrix, in basic machine units, of each of the uniforms
+ specified by the corresponding array of uniformIndices is returned. The matrix stride of a
+ uniform associated with the default uniform block is -1. Note that this information only makes sense for uniforms
+ that are matrices. For uniforms that are not matrices, but are declared in a named uniform block, a matrix stride of
+ zero is returned.
+
+
+ If pname is GL_UNIFORM_IS_ROW_MAJOR, then an array identifying whether each
+ of the uniforms specified by the corresponding array of uniformIndices is a row-major matrix or not is returned. A
+ value of one indicates a row-major matrix, and a value of zero indicates a column-major matrix, a matrix in the default
+ uniform block, or a non-matrix.
+
+
+ If pname is GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX, then an array
+ identifying the active atomic counter buffer index of each of the uniforms specified by the corresponding array
+ of uniformIndices is returned. For uniforms other than atomic counters, the returned buffer
+ index is -1. The returned indices may be passed to glGetActiveAtomicCounterBufferiv
+ to query the properties of the associated buffer, and not necessarily the binding point specified in the uniform declaration.
+
+
+ Notes
+
+ The double types, GL_DOUBLE, GL_DOUBLE_VEC2,
+ GL_DOUBLE_VEC3, GL_DOUBLE_VEC4,
+ GL_DOUBLE_MAT2, GL_DOUBLE_MAT3,
+ GL_DOUBLE_MAT4, GL_DOUBLE_MAT2x3,
+ GL_DOUBLE_MAT2x4, GL_DOUBLE_MAT3x2,
+ GL_DOUBLE_MAT3x4, GL_DOUBLE_MAT4x2,
+ and GL_DOUBLE_MAT4x3 are only available if the GL
+ version is 4.1 or higher.
+
+
+ GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX is only accepted by pname
+ if the GL version is 4.2 or higher.
+
+
+ Errors
+ GL_INVALID_VALUE is generated if
+ program is not a value generated by
+ OpenGL.
+
+ GL_INVALID_OPERATION is generated if
+ program is not a program object.
+
+ GL_INVALID_VALUE is generated if
+ uniformCount is greater than or equal to the
+ value of GL_ACTIVE_UNIFORMS for
+ program.
+
+ GL_INVALID_ENUM is generated if pname
+ is not an accepted token.
+
+ Associated Gets
+ glGet
+ with argument GL_MAX_VERTEX_UNIFORM_COMPONENTS,
+ GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS,
+ GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS,
+ GL_MAX_GEOMETRY_UNIFORM_COMPONENTS,
+ GL_MAX_FRAGMENT_UNIFORM_COMPONENTS, or
+ GL_MAX_COMBINED_UNIFORM_COMPONENTS.
+
+ glGetProgram
+ with argument GL_ACTIVE_UNIFORMS or
+ GL_ACTIVE_UNIFORM_MAX_LENGTH.
+
+ glIsProgram
+
+ See Also
+ glGetUniform,
+ glGetActiveUniform,
+ glGetUniformLocation,
+ glLinkProgram,
+ glUniform,
+ glUseProgram
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetDebugMessageLog.xml b/Source/Bind/Specifications/Docs/glGetDebugMessageLog.xml
new file mode 100644
index 00000000..2cb70070
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetDebugMessageLog.xml
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetDebugMessageLog
+ 3G
+
+
+ glGetDebugMessageLog
+ retrieve messages from the debug message log
+
+ C Specification
+
+
+ GLuint glGetDebugMessageLog
+ GLuint count
+ GLsizei bufSize
+ GLenum *sources
+ Glenum *types
+ GLuint *ids
+ GLenum *severities
+ GLsizei *lengths
+ GLchar *messageLog
+
+
+
+ Parameters
+
+
+ count
+
+
+ The number of debug messages to retrieve from the log.
+
+
+
+
+ bufSize
+
+
+ The size of the buffer whose address is given by messageLog.
+
+
+
+
+ sources
+
+
+ The address of an array of variables to receive the sources of the retrieved messages.
+
+
+
+
+ types
+
+
+ The address of an array of variables to receive the types of the retrieved messages.
+
+
+
+
+ ids
+
+
+ The address of an array of unsigned integers to receive the ids of the retrieved messages.
+
+
+
+
+ severities
+
+
+ The address of an array of variables to receive the severites of the retrieved messages.
+
+
+
+
+ lengths
+
+
+ The address of an array of variables to receive the lengths of the received messages.
+
+
+
+
+ messageLog
+
+
+ The address of an array of characters that will receive the messages.
+
+
+
+
+
+ Description
+
+ glGetDebugMessageLog retrieves messages from the debug message log. A maximum of
+ count messages are retrieved from the log. If sources
+ is not NULL then the source of each message is written into up to count elements
+ of the array. If types
+ is not NULL then the type of each message is written into up to count elements
+ of the array. If id
+ is not NULL then the identifier of each message is written into up to count elements
+ of the array. If severities
+ is not NULL then the severity of each message is written into up to count elements
+ of the array. If lengths
+ is not NULL then the length of each message is written into up to count elements
+ of the array.
+
+
+ messageLog specifies the address of a character array into which the debug messages
+ will be written. Each message will be concatenated onto the array starting at the first element of messageLog.
+ bufSize specifies the size of the array messageLog. If a message will not
+ fit into the remaining space in messageLog then the function terminates and returns the number
+ of messages written so far, which may be zero.
+
+
+ If glGetDebugMessageLog returns zero then no messages are present in the debug log, or there
+ was not enough space in messageLog to retrieve the first message in the queue. If messageLog
+ is NULL then no messages are written and the value of bufSize is ignored.
+
+
+ Notes
+
+ Although debug messages may be enabled in a non-debug context, the quantity and detail of such messages may be substantially
+ inferior to those in a debug context. In particular, a valid implementation of the debug message queue in a non-debug context
+ may produce no messages at all.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if count or bufSize is negative.
+
+
+ Associated Gets
+
+ glGet with argument GL_DEBUG_LOGGED_MESSAGES
+
+
+ glGet with argument GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH
+
+
+ glGet with argument GL_MAX_DEBUG_MESSAGE_LENGTH
+
+
+ glGet with argument GL_MAX_DEBUG_LOGGED_MESSAGES
+
+
+ See Also
+
+ glDebugMessageInsert,
+ glDebugMessageCallback,
+ glDebugMessageControl.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetFramebufferParameter.xml b/Source/Bind/Specifications/Docs/glGetFramebufferParameter.xml
new file mode 100644
index 00000000..dfdddaa4
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetFramebufferParameter.xml
@@ -0,0 +1,156 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetFramebufferParameter
+ 3G
+
+
+ glGetFramebufferParameter
+ retrieve a named parameter from a framebuffer
+
+ C Specification
+
+
+ void glGetFramebufferParameteriv
+ GLenum target
+ GLenum pname
+ GLint * params
+
+
+
+ Parameters
+
+
+ target
+
+
+ The target of the operation, which must be GL_READ_FRAMEBUFFER,
+ GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER.
+
+
+
+
+ pname
+
+
+ A token indicating the parameter to be retrieved.
+
+
+
+
+ params
+
+
+ The address of a variable to receive the value of the parameter named pname.
+
+
+
+
+
+ Description
+
+ glGetFramebufferParameter retrieves the current value of the parameter
+ named pname from the framebuffer bound to target.
+ target must be GL_READ_FRAMEBFUFFER,
+ GL_DRAW_FRAMEBUFFER or GL_FRAMEBUFFER. The
+ token GL_FRAMEBUFFER is treated as GL_DRAW_FRAMEBUFFER.
+ A non-default framebuffer must be bound to target.
+
+
+ pname specifies the parameter to be retrieved. The values retrieved from
+ the framebuffer are written into the variable whose address is given by params.
+ The following symbols are accepted in pname:
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_WIDTH
+
+
+ The value of GL_FRAMEBUFFER_DEFAULT_WIDTH for the framebuffer is written to the
+ single integer variable whose address is given by params.
+
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_HEIGHT
+
+
+ The value of GL_FRAMEBUFFER_DEFAULT_HEIGHT for the framebuffer is written to the
+ single integer variable whose address is given by params.
+
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_LAYERS
+
+
+ The value of GL_FRAMEBUFFER_DEFAULT_LAYERS for the framebuffer is written to the
+ single integer variable whose address is given by params.
+
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_SAMPLES
+
+
+ The value of GL_FRAMEBUFFER_DEFAULT_SAMPLES for the framebuffer is written to the
+ single integer variable whose address is given by params.
+
+
+
+
+ GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
+
+
+ If the value of GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS for the framebuffer is GL_TRUE
+ then the single integer variable whose address is in params is set to one,
+ otherwise it is set to zero.
+
+
+
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target is not one of the accepted
+ framebuffer targets.
+
+
+ GL_INVALID_ENUM is generated if pname is not one of the accepted
+ parameter names.
+
+
+ GL_INVALID_OPERATION is generated if the default framebuffer is bound to target.
+
+
+ params should be the address of a variable to which the client has write access otherwise
+ undefined behavior, including process termination may occur.
+
+
+ Associated Gets
+
+ glGetFramebufferParameteriv.
+
+
+ See Also
+
+ glFramebufferParameteri.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetInternalformativ.xml b/Source/Bind/Specifications/Docs/glGetInternalformativ.xml
new file mode 100644
index 00000000..c9263c0e
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetInternalformativ.xml
@@ -0,0 +1,453 @@
+
+
+
+
+
+
+ 2011-2013
+ Khronos Group.
+
+
+ glGetInternalformativ
+ 3G
+
+
+ glGetInternalformativ
+ retrieve information about implementation-dependent support for internal formats
+
+ C Specification
+
+
+ void glGetInternalformativ
+ GLenum target
+ GLenum internalformat
+ GLenum pname
+ GLsizei bufSize
+ GLint *params
+
+
+ void glGetInternalformati64v
+ GLenum target
+ GLenum internalformat
+ GLenum pname
+ GLsizei bufSize
+ GLint64 *params
+
+
+
+
+ Parameters
+
+
+ target
+
+
+ Indicates the usage of the internal format. target must be GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY,
+ GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTURE_3D,
+ GL_TEXTURE_CUBE_MAP, GL_TEXTURE_CUBE_MAP_ARRAY, GL_TEXTURE_RECTANGLE,
+ GL_TEXTURE_BUFFER,
+ GL_RENDERBUFFER, GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
+
+
+
+
+ internalformat
+
+
+ Specifies the internal format about which to retrieve information.
+
+
+
+
+ pname
+
+
+ Specifies the type of information to query.
+
+
+
+
+ bufSize
+
+
+ Specifies the maximum number of basic machine units that may be written to params by the function.
+
+
+
+
+ params
+
+
+ Specifies the address of a variable into which to write the retrieved information.
+
+
+
+
+
+ Description
+
+ glGetInternalformativ and glGetInternalformati64v retrieve information about implementation-dependent support for
+ internal formats. target indicates the target with which the internal format will
+ be used and must be one of GL_RENDERBUFFER, GL_TEXTURE_2D_MULTISAMPLE,
+ or GL_TEXTURE_2D_MULTISAMPLE_ARRAY, corresponding to usage as a renderbuffer, two-dimensional
+ multisample texture or two-dimensional multisample array texture, respectively.
+
+
+ internalformat specifies the internal format about which to retrieve information and
+ must be a color-renderable, depth-renderable or stencil-renderable format.
+
+
+ The information retrieved will be written to memory addressed by the pointer specified in params. No
+ more than bufSize basic machine units will be written to this memory.
+
+
+ If pname is GL_NUM_SAMPLE_COUNTS, the number of sample counts that would be
+ returned by querying GL_SAMPLES will be returned in params.
+
+
+ If pname is GL_SAMPLES, the sample counts supported for internalformat
+ and target are written into params in descending numeric order. Only positive values are returned.
+ Querying GL_SAMPLES with bufSize of one will return just the maximum supported number of
+ samples for this format. The maximum value in GL_SAMPLES is guaranteed to be at least the lowest of the following:
+
+ The value of GL_MAX_INTEGER_SAMPLES if internalformat is a signed or unsigned integer format.
+ The value of GL_MAX_DEPTH_TEXTURE_SAMPLES if internalformat is a depth- or stencil-renderable format and
+ target is GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
+ The value of GL_MAX_COLOR_TEXTURE_SAMPLES if internalformat is a color-renderable format and
+ target is GL_TEXTURE_2D_MULTISAMPLE or GL_TEXTURE_2D_MULTISAMPLE_ARRAY.
+ The value of GL_MAX_SAMPLES.
+
+
+
+ If pname is GL_INTERNALFORMAT_SUPPORTED, params is set to GL_TRUE if internalFormat
+ is a supported internal format for target and to GL_FALSE otherwise.
+
+
+ If pname is GL_INTERNALFORMAT_PREFERRED, params is set to GL_TRUE if internalFormat
+ is an format for target that is preferred by the implementation and to GL_FALSE otherwise.
+
+
+ If pname is GL_INTERNALFORMAT_RED_SIZE, GL_INTERNALFORMAT_GREEN_SIZE,
+ GL_INTERNALFORMAT_BLUE_SIZE, GL_INTERNALFORMAT_ALPHA_SIZE, GL_INTERNALFORMAT_DEPTH_SIZE,
+ GL_INTERNALFORMAT_STENCIL_SIZE, or GL_INTERNALFORMAT_SHARED_SIZE then
+ params is set to the actual resolutions that would be used for storing image array components
+ for the resource for the red, green, blue, alpha, depth, stencil and shared channels respectively. If internalFormat
+ is a compressed internal format, then params is set to the component resolution of an uncompressed internal format that produces
+ an image of roughly the same quality as the compressed algorithm. If the internal format is unsupported, or if a particular component is
+ not present in the format, 0 is written to params.
+
+
+ If pname is GL_INTERNALFORMAT_RED_TYPE, GL_INTERNALFORMAT_GREEN_TYPE,
+ GL_INTERNALFORMAT_BLUE_TYPE, GL_INTERNALFORMAT_ALPHA_TYPE, GL_INTERNALFORMAT_DEPTH_TYPE,
+ or GL_INTERNALFORMAT_STENCIL_TYPE then params is set to a token identifying the data type used
+ to store the respective component. If the internalFormat represents a compressed internal format then
+ the types returned specify how components are interpreted after decompression.
+
+
+ If pname is GL_MAX_WIDTH, GL_MAX_HEIGHT, GL_MAX_DEPTH,
+ or GL_MAX_LAYERS then pname is filled with the maximum width, height, depth or layer count
+ for textures with internal format internalFormat, respectively. If pname is GL_MAX_COMBINED_DIMENSIONS
+ then pname is filled with the maximum combined dimensions of a texture of the specified internal format.
+
+
+ If pname is GL_COLOR_COMPONENTS then params is set to the value GL_TRUE
+ if the internal format contains any color component (i.e., red, green, blue or alpha) and to GL_FALSE otherwise. If
+ pname is GL_DEPTH_COMPONENTS or GL_STENCIL_COMPONENTS then params
+ is set to GL_TRUE if the internal format contains a depth or stencil component, respectively, and to GL_FALSE
+ otherwise.
+
+
+ If pname is GL_COLOR_RENDERABLE, GL_DEPTH_RENDERABLE or GL_STENCIL_RENDERABLE
+ then params is set to GL_TRUE if the specified internal format is color, depth or stencil renderable, respectively,
+ and to GL_FALSE otherwise.
+
+
+ If pname is GL_FRAMEBUFFER_RENDERABLE or GL_FRAMEBUFFER_RENDERABLE_LAYERED
+ then params is set to one of GL_FULL_SUPPORT,
+ GL_CAVEAT_SUPPORT or GL_NONE to indicate that framebuffer attachments (layered attachments in the
+ case of GL_FRAMEBUFFER_RENDERABLE_LAYERED) with that internal format are either
+ renderable with no restrictions, renderable with some restrictions or not renderable at all.
+
+
+ If pname is GL_FRAMEBUFFER_BLEND, params is set to GL_TRUE
+ to indicate that the internal format is supported for blending operations when attached to a framebuffer, and to GL_FALSE otherwise.
+
+
+ If pname is GL_READ_PIXELS then params is set to GL_FULL_SUPPORT,
+ GL_CAVEAT_SUPPORT or GL_NONE to that either full support, limited support or no support at all is supplied
+ for reading pixels from framebuffer attachments in the specified internal format.
+
+
+ If pname is GL_READ_PIXELS_FORMAT or GL_READ_PIXELS_TYPE then params
+ is filled with the format or type, respectively, most recommended to obtain the highest image quality and performance. For
+ GL_READ_PIXELS_FORMAT, the value returned in params is a token that is accepted for
+ the format argument to glReadPixels. For
+ GL_READ_PIXELS_TYPE, the value returned in params is a token that is accepted for
+ the type argument to glReadPixels.
+
+
+ If pname is GL_TEXTURE_IMAGE_FORMAT or GL_TEXTURE_IMAGE_TYPE then
+ params is filled with the implementation-recommended format or type to be used in calls to
+ glTexImage2D and other similar functions. For GL_TEXTURE_IMAGE_FORMAT,
+ params is filled with a token suitable for use as the format argument to
+ glTexImage2D. For GL_TEXTURE_IMAGE_TYPE,
+ params is filled with a token suitable for use as the type argument to
+ glTexImage2D.
+
+
+ If pname is GL_GET_TEXTURE_IMAGE_FORMAT or GL_GET_TEXTURE_IMAGE_TYPE then
+ params is filled with the implementation-recommended format or type to be used in calls to
+ glGetTexImage2D and other similar functions. For GL_GET_TEXTURE_IMAGE_FORMAT,
+ params is filled with a token suitable for use as the format argument to
+ glGetTexImage2D. For GL_GET_TEXTURE_IMAGE_TYPE,
+ params is filled with a token suitable for use as the type argument to
+ glGetTexImage2D.
+
+
+ If pname is GL_MIPMAP then pname is set to GL_TRUE
+ to indicate that the specified internal format supports mipmaps and to GL_FALSE otherwise.
+
+
+ If pname is GL_GENERATE_MIPMAP or GL_AUTO_GENERATE_MIPMAP then params
+ is indicates the level of support for manual or automatic mipmap generation for the specified internal format, respectively. Returned values
+ may be one of GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT and GL_NONE to indicate
+ either full support, limited support or no support at all.
+
+
+ If pname is GL_COLOR_ENCODING then the color encoding for the resource is returned in
+ params. Possible values for color buffers are GL_LINEAR or GL_SRGB,
+ for linear or sRGB-encoded color components, respectively. For non-color
+ formats (such as depth or stencil), or for unsupported resources,
+ the value GL_NONE is returned.
+
+
+ If pname is GL_SRGB_READ, or GL_SRGB_WRITE then params
+ indicates the level of support for reading and writing to sRGB encoded images, respectively. For GL_SRGB_READ,
+ support for converting from sRGB colorspace on read operations is returned in params and for GL_SRGB_WRITE,
+ support for converting to sRGB colorspace on write operations to the resource is returned in params. params may be
+ set to GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT, or GL_NONE to indicate
+ full support, limited support or no support at all, respecitively.
+
+
+ If pname is GL_FILTER the params is set to either GL_TRUE
+ or GL_FALSE to indicate support or lack thereof for filter modes other than GL_NEAREST or GL_NEAREST_MIPMAP
+ for the specified internal format.
+
+
+ If pname is GL_VERTEX_TEXTURE, GL_TESS_CONTROL_TEXTURE, GL_TESS_EVALUATION_TEXTURE,
+ GL_GEOMETRY_TEXTURE, GL_FRAGMENT_TEXTURE, or GL_COMPUTE_TEXTURE, then the value
+ written to params indicates support for use of the resource as a source of texturing in the vertex, tessellation control,
+ tessellation evaluation, geometry, fragment and compute shader stages, respectively. params may be set to
+ GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT or GL_NONE to indicate full support,
+ limited support or no support at all, respectively.
+
+
+ If pname is GL_TEXTURE_SHADOW, GL_TEXTURE_GATHER or GL_TEXTURE_GATHER_SHADOW then the value written to
+ params indicates the level of support for using the resource with a shadow sampler, in gather operations or as a shadow sampler in gather operations, respectively. Returned values
+ may be GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT or GL_NONE to indicate full support,
+ limited support or no support at all, respectively.
+
+
+ If pname is GL_SHADER_IMAGE_LOAD, GL_SHADER_IMAGE_STORE or GL_SHADER_IMAGE_ATOMIC
+ then the value returned in params indicates the level of support for image loads, stores and atomics for resources of the specified internal
+ format. Returned values
+ may be GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT or GL_NONE to indicate full support,
+ limited support or no support at all, respectively.
+
+
+ If pname is GL_IMAGE_TEXEL_SIZE then the size of a texel when the resource when used as
+ an image texture is returned in params. If the resource is not supported for image
+ textures zero is returned.
+
+
+ If pname is GL_IMAGE_COMPATIBILITY_CLASS then the compatibility class of the resource when
+ used as an image texture is returned in params. The possible values
+ returned are GL_IMAGE_CLASS_4_X_32, GL_IMAGE_CLASS_2_X_32, GL_IMAGE_CLASS_1_X_32,
+ GL_IMAGE_CLASS_4_X_16, GL_IMAGE_CLASS_2_X_16, GL_IMAGE_CLASS_1_X_16,
+ GL_IMAGE_CLASS_4_X_8, GL_IMAGE_CLASS_2_X_8, GL_IMAGE_CLASS_1_X_8,
+ GL_IMAGE_CLASS_11_11_10, and GL_IMAGE_CLASS_10_10_10_2, which correspond to
+ the 4x32, 2x32, 1x32, 4x16, 2x16, 1x16, 4x8, 2x8, 1x8, the class
+ (a) 11/11/10 packed floating-point format, and the class (b)
+ 10/10/10/2 packed formats, respectively.
+ If the resource is not supported for image textures, GL_NONE is returned.
+
+
+ If pname is GL_IMAGE_PIXEL_FORMAT or GL_IMAGE_PIXEL_TYPE then
+ the pixel format or type of the resource when used as an image texture is returned in params, respectively.
+ In either case, the resource is not supported for image textures GL_NONE is returned.
+
+
+ If pname is GL_IMAGE_FORMAT_COMPATIBILITY_TYPE, the matching criteria use for the
+ resource when used as an image textures is returned in params. Possible values returned in params are
+ GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE or GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS.
+ If the resource is not supported for image textures, GL_NONE is returned.
+
+
+ If pname is GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST or GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+ support for using the resource both as a source for texture sampling while it is bound as a buffer for depth or stencil test, respectively, is written to params.
+ Possible values returned are GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT, or GL_NONE to indicate
+ full support, limited support or no support at all. If the resource or operation is not supported, GL_NONE is returned.
+
+
+ If pname is GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE or GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+ support for using the resource both as a source for texture sampling while performing depth or stencil writes to the resources, respectively, is written to params.
+ Possible values returned are GL_FULL_SUPPORT, GL_CAVEAT_SUPPORT, or GL_NONE to indicate
+ full support, limited support or no support at all. If the resource or operation is not supported, GL_NONE is returned.
+
+
+ If pname is GL_TEXTURE_COMPRESSED then GL_TRUE is returned in params
+ if internalformat is a compressed internal format. GL_FALSE is returned in params
+ otherwise.
+
+
+ If pname is GL_TEXTURE_COMPRESSED_BLOCK_WIDTH, GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT or
+ GL_TEXTURE_COMPRESSED_BLOCK_SIZE then the width, height or total size, respectively of a block (in basic machine units) is returned in
+ params. If the internal format is not compressed, or the resource is not supported, 0 is returned.
+
+
+ If pname is GL_CLEAR_BUFFER, the level of support for using the resource with glClearBufferData
+ and glClearBufferSubData is returned in params. Possible values returned are GL_FULL_SUPPORT,
+ GL_CAVEAT_SUPPORT, or GL_NONE to indicate
+ full support, limited support or no support at all, respectively. If the resource or operation is not supported, GL_NONE is returned.
+
+
+ If pname is GL_TEXTURE_VIEW, the level of support for using the resource with the glTextureView
+ command is returned in params. Possible values returned are GL_FULL_SUPPORT,
+ GL_CAVEAT_SUPPORT, or GL_NONE to indicate
+ full support, limited support or no support at all, respectively. If the resource or operation is not supported, GL_NONE is returned.
+
+
+ If pname is GL_VIEW_COMPATIBILITY_CLASS then the compatibility class of the resource when
+ used as a texture view is returned in params. The possible values
+ returned are GL_VIEW_CLASS_128_BITS, GL_VIEW_CLASS_96_BITS,
+ GL_VIEW_CLASS_64_BITS, GL_VIEW_CLASS_48_BITS, GL_VIEW_CLASS_32_BITS,
+ GL_VIEW_CLASS_24_BITS, GL_VIEW_CLASS_16_BITS, GL_VIEW_CLASS_8_BITS,
+ GL_VIEW_CLASS_S3TC_DXT1_RGB, GL_VIEW_CLASS_S3TC_DXT1_RGBA,
+ GL_VIEW_CLASS_S3TC_DXT3_RGBA, GL_VIEW_CLASS_S3TC_DXT5_RGBA,
+ GL_VIEW_CLASS_RGTC1_RED, GL_VIEW_CLASS_RGTC2_RG, GL_VIEW_CLASS_BPTC_UNORM, and
+ GL_VIEW_CLASS_BPTC_FLOAT.
+
+
+ If pname is GL_CLEAR_TEXTURE then the presence of support for using the
+ glClearTexImage and glClearTexSubImage
+ commands with the resource is written to params. Possible values written are GL_FULL_SUPPORT,
+ GL_CAVEAT_SUPPORT, or GL_NONE to indicate
+ full support, limited support or no support at all, respectively. If the resource or operation is not supported, GL_NONE is returned.
+
+
+ Notes
+
+ glGetInternalformativ is available only if the
+ GL version is 4.2 or higher.
+
+
+ The tokens
+ GL_INTERNALFORMAT_SUPPORTED,
+ GL_INTERNALFORMAT_PREFERRED,
+ GL_INTERNALFORMAT_RED_SIZE,
+ GL_INTERNALFORMAT_GREEN_SIZE,
+ GL_INTERNALFORMAT_BLUE_SIZE,
+ GL_INTERNALFORMAT_ALPHA_SIZE,
+ GL_INTERNALFORMAT_DEPTH_SIZE,
+ GL_INTERNALFORMAT_STENCIL_SIZE,
+ GL_INTERNALFORMAT_SHARED_SIZE,
+ GL_INTERNALFORMAT_RED_TYPE,
+ GL_INTERNALFORMAT_GREEN_TYPE,
+ GL_INTERNALFORMAT_BLUE_TYPE,
+ GL_INTERNALFORMAT_ALPHA_TYPE,
+ GL_INTERNALFORMAT_DEPTH_TYPE,
+ GL_INTERNALFORMAT_STENCIL_TYPE,
+ GL_MAX_WIDTH,
+ GL_MAX_HEIGHT,
+ GL_MAX_DEPTH,
+ GL_MAX_LAYERS,
+ GL_MAX_COMBINED_DIMENSIONS,
+ GL_COLOR_COMPONENTS,
+ GL_DEPTH_COMPONENTS,
+ GL_STENCIL_COMPONENTS,
+ GL_COLOR_RENDERABLE,
+ GL_DEPTH_RENDERABLE,
+ GL_STENCIL_RENDERABLE,
+ GL_FRAMEBUFFER_RENDERABLE,
+ GL_FRAMEBUFFER_RENDERABLE_LAYERED,
+ GL_FRAMEBUFFER_BLEND,
+ GL_READ_PIXELS,
+ GL_READ_PIXELS_FORMAT,
+ GL_READ_PIXELS_TYPE,
+ GL_TEXTURE_IMAGE_FORMAT,
+ GL_TEXTURE_IMAGE_TYPE,
+ GL_GET_TEXTURE_IMAGE_FORMAT,
+ GL_GET_TEXTURE_IMAGE_TYPE,
+ GL_MIPMAP,
+ GL_GENERATE_MIPMAP,
+ GL_AUTO_GENERATE_MIPMAP,
+ GL_COLOR_ENCODING,
+ GL_SRGB_READ,
+ GL_SRGB_WRITE,
+ GL_SRGB_DECODE_ARB,
+ GL_FILTER,
+ GL_VERTEX_TEXTURE,
+ GL_TESS_CONTROL_TEXTURE,
+ GL_TESS_EVALUATION_TEXTURE,
+ GL_GEOMETRY_TEXTURE,
+ GL_FRAGMENT_TEXTURE,
+ GL_COMPUTE_TEXTURE,
+ GL_TEXTURE_SHADOW,
+ GL_TEXTURE_GATHER,
+ GL_TEXTURE_GATHER_SHADOW,
+ GL_SHADER_IMAGE_LOAD,
+ GL_SHADER_IMAGE_STORE,
+ GL_SHADER_IMAGE_ATOMIC,
+ GL_IMAGE_TEXEL_SIZE,
+ GL_IMAGE_COMPATIBILITY_CLASS,
+ GL_IMAGE_PIXEL_FORMAT,
+ GL_IMAGE_PIXEL_TYPE,
+ GL_IMAGE_FORMAT_COMPATIBILITY_TYPE,
+ GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST,
+ GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST,
+ GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE,
+ GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE,
+ GL_TEXTURE_COMPRESSED,
+ GL_TEXTURE_COMPRESSED_BLOCK_WIDTH,
+ GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT,
+ GL_TEXTURE_COMPRESSED_BLOCK_SIZE,
+ GL_CLEAR_BUFFER,
+ GL_TEXTURE_VIEW, and
+ GL_VIEW_COMPATIBILITY_CLASS are supported only if the GL
+ version is 4.3 or higher.
+
+
+ The GL_CLEAR_TEXTURE token is accepted for pname only
+ if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if bufSize is negative.
+
+
+ GL_INVALID_ENUM is generated if pname is not GL_SAMPLES or GL_NUM_SAMPLE_COUNTS.
+
+
+ GL_INVALID_ENUM is generated if internalformat is not color-, depth-, or stencil-renderable.
+
+
+ GL_INVALID_ENUM is generated if target is not one of GL_TEXTURE_2D_MULTISAMPLE,
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY or GL_RENDERBUFFER.
+
+
+ See Also
+
+ glGet
+
+
+ Copyright
+
+ Copyright 2011-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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetObjectLabel.xml b/Source/Bind/Specifications/Docs/glGetObjectLabel.xml
new file mode 100644
index 00000000..8120626d
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetObjectLabel.xml
@@ -0,0 +1,135 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetObjectLabel
+ 3G
+
+
+ glGetObjectLabel
+ retrieve the label of a named object identified within a namespace
+
+ C Specification
+
+
+ void glGetObjectLabel
+ GLenum identifier
+ GLuint name
+ GLsizei bifSize
+ GLsizei * length
+ char * label
+
+
+
+ Parameters
+
+
+ identifier
+
+
+ The namespace from which the name of the object is allocated.
+
+
+
+
+ name
+
+
+ The name of the object whose label to retrieve.
+
+
+
+
+ bufSize
+
+
+ The length of the buffer whose address is in label.
+
+
+
+
+ length
+
+
+ The address of a variable to receive the length of the object label.
+
+
+
+
+ label
+
+
+ The address of a string that will receive the object label.
+
+
+
+
+
+ Description
+
+ glGetObjectLabel retrieves the label of the object identified by
+ name within the namespace given by identifier.
+ identifier must be one of GL_BUFFER, GL_SHADER,
+ GL_PROGRAM, GL_VERTEX_ARRAY, GL_QUERY,
+ GL_PROGRAM_PIPELINE, GL_TRANSFORM_FEEDBACK, GL_SAMPLER,
+ GL_TEXTURE, GL_RENDERBUFFER, GL_FRAMEBUFFER,
+ to indicate the namespace containing the names of buffers, shaders, programs, vertex array objects, query objects,
+ program pipelines, transform feedback objects, samplers, textures, renderbuffers and frame
+ buffers, respectively.
+
+
+ label is the address of a string that will be used to store the object label.
+ bufSize specifies the number of characters in the array identified by label.
+ length contains the address of a variable which will receive the the number of characters in the object label.
+ If length is NULL, then it is ignored and no data is written. Likewise, if label
+ is NULL, or if bufSize is zero then no data is written to label.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if identifier
+ is not one of the accepted object types.
+
+
+ GL_INVALID_OPERATION is generated if name
+ is not the name of an existing object of the type specified by identifier.
+
+
+ GL_INVALID_VALUE is generated if bufSize is
+ zero.
+
+
+ If not NULL, length and label should be addresses
+ to which the client has write access, otherwise undefined behavior, including process termination
+ may occur.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_LABEL_LENGTH.
+
+
+ See Also
+
+ glPushDebugGroup,
+ glPopDebugGroup,
+ glObjectLabel,
+ glGetObjectPtrLabel.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetObjectPtrLabel.xml b/Source/Bind/Specifications/Docs/glGetObjectPtrLabel.xml
new file mode 100644
index 00000000..f7ad743c
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetObjectPtrLabel.xml
@@ -0,0 +1,119 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetObjectPtrLabel
+ 3G
+
+
+ glGetObjectPtrLabel
+ retrieve the label of a sync object identified by a pointer
+
+ C Specification
+
+
+ void glGetObjectPtrLabel
+ void * ptr
+ GLsizei bifSize
+ GLsizei * length
+ char * label
+
+
+
+ Parameters
+
+
+ ptr
+
+
+ The name of the sync object whose label to retrieve.
+
+
+
+
+ bufSize
+
+
+ The length of the buffer whose address is in label.
+
+
+
+
+ length
+
+
+ The address of a variable to receive the length of the object label.
+
+
+
+
+ label
+
+
+ The address of a string that will receive the object label.
+
+
+
+
+
+ Description
+
+ glGetObjectPtrLabel retrieves the label of the sync object identified by
+ ptr.
+
+
+ label is the address of a string that will be used to store the object label.
+ bufSize specifies the number of characters in the array identified by label.
+ length contains the address of a variable which will receive the the number of characters in the object label.
+ If length is NULL, then it is ignored and no data is written. Likewise, if label
+ is NULL, or if bufSize is zero then no data is written to label.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if identifier
+ is not one of the accepted object types.
+
+
+ GL_INVALID_VALUE is generated if ptr
+ is not the name of an existing sync object.
+
+
+ GL_INVALID_VALUE is generated if bufSize is
+ zero.
+
+
+ If not NULL, length and label should be addresses
+ to which the client has write access, otherwise undefined behavior, including process termination
+ may occur.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_LABEL_LENGTH.
+
+
+ See Also
+
+ glPushDebugGroup,
+ glPopDebugGroup,
+ glObjectLabel,
+ glGetObjectLabel.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetProgramInterface.xml b/Source/Bind/Specifications/Docs/glGetProgramInterface.xml
new file mode 100644
index 00000000..8fe48787
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetProgramInterface.xml
@@ -0,0 +1,274 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetProgramInterface
+ 3G
+
+
+ glGetProgramInterface
+ query a property of an interface in a program
+
+ C Specification
+
+
+ void glGetProgramInterfaceiv
+ GLuint program
+ GLenum programInterface
+ GLenum pname
+ GLint * params
+
+
+
+ Parameters
+
+
+ program
+
+
+ The name of a program object whose interface to query.
+
+
+
+
+ programInterface
+
+
+ A token identifying the interface within program to query.
+
+
+
+
+ pname
+
+
+ The name of the parameter within programInterface to query.
+
+
+
+
+ params
+
+
+ The address of a variable to retrieve the value of pname for the program interface.
+
+
+
+
+
+ Description
+
+ glGetProgramInterfaceiv queries the property of the interface identifed
+ by programInterface in program, the property name of
+ which is given by pname.
+
+
+ program must be the name of an existing program object. programInterface
+ is the name of the interface within program to query and must be one of the following
+ values:
+
+
+
+ GL_UNIFORM
+
+
+ The query is targeted at the set of active uniforms within program.
+
+
+
+
+ GL_UNIFORM_BLOCK
+
+
+ The query is targeted at the set of active uniform blocks within program.
+
+
+
+
+ GL_ATOMIC_COUNTER_BUFFER
+
+
+ The query is targeted at the set of active atomic counter buffer binding points within program.
+
+
+
+
+ GL_PROGRAM_INPUT
+
+
+ The query is targeted at the set of active input variables used by the first shader stage of program.
+ If program contains multiple shader stages then input variables from any stage other than the first
+ will not be enumerated.
+
+
+
+
+ GL_PROGRAM_OUTPUT
+
+
+ The query is targeted at the set of active output variables produced by the last shader stage of program.
+ If program contains multiple shader stages then output variables from any stage other than the last
+ will not be enumerated.
+
+
+
+
+ GL_VERTEX_SUBROUTINE,
+ GL_TESS_CONTROL_SUBROUTINE,
+ GL_TESS_EVALUATION_SUBROUTINE,
+ GL_GEOMETRY_SUBROUTINE,
+ GL_FRAGMENT_SUBROUTINE,
+ GL_COMPUTE_SUBROUTINE
+
+
+ The query is targeted at the set of active subroutines for the vertex, tessellation control, tessellation evaluation,
+ geometry, fragment and compute shader stages of program, respectively.
+
+
+
+
+ GL_VERTEX_SUBROUTINE_UNIFORM,
+ GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+ GL_GEOMETRY_SUBROUTINE_UNIFORM,
+ GL_FRAGMENT_SUBROUTINE_UNIFORM,
+ GL_COMPUTE_SUBROUTINE_UNIFORM
+
+
+ The query is targeted at the set of active subroutine uniform variables used by the vertex, tessellation control, tessellation evaluation,
+ geometry, fragment and compute shader stages of program, respectively.
+
+
+
+
+ GL_TRANSFORM_FEEDBACK_VARYING
+
+
+ The query is targeted at the set of output variables from the last non-fragment stage of program that would be
+ captured if transform feedback were active.
+
+
+
+
+ GL_BUFFER_VARIABLE
+
+
+ The query is targeted at the set of active buffer variables used by program.
+
+
+
+
+ GL_SHADER_STORAGE_BLOCK
+
+
+ The query is targeted at the set of active shader storage blocks used by program.
+
+
+
+
+ GL_TRANSFORM_FEEDBACK_BUFFER
+
+
+ The query is targeted at the set of active buffer binding points to which output variables in the
+ GL_TRANSFORM_FEEDBACK_VARYING interface are written.
+
+
+
+
+
+ pname identifies the property of programInterface
+ to return in params.
+
+
+ If pname is GL_ACTIVE_RESOURCES, the value returned is the number of
+ resources in the active resource list for programInterface. If the list
+ of active resources for programInterface is empty, zero is returned.
+
+
+ If pname is GL_MAX_NAME_LENGTH, the value returned is the length of the
+ longest active name string for an active resource in programInterface.
+ This length includes an extra character for the null terminator. If the
+ list of active resources for programInterface is empty, zero is
+ returned. It is an error to specify GL_MAX_NAME_LENGTH when programInterface
+ is GL_ATOMIC_COUNTER_BUFFER, as active atomic counter buffer resources are
+ not assigned name strings.
+
+
+ If pname is GL_MAX_NUM_ACTIVE_VARIABLES, the value returned is the number
+ of active variables belonging to the interface block or atomic counter
+ buffer resource in programInterface with the most active variables. If
+ the list of active resources for programInterface is empty, zero is
+ returned. When pname is GL_MAX_NUM_ACTIVE_VARIABLES, programInterface
+ must be GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_BUFFER, or GL_SHADER_STORAGE_BLOCK.
+
+
+ If pname is GL_MAX_NUM_COMPATIBLE_SUBROUTINES, the value returned is the
+ number of compatible subroutines belonging to the active subroutine
+ uniform in programInterface with the most compatible subroutines. If
+ the list of active resources for programInterface is empty, zero is
+ returned. When pname is GL_MAX_NUM_COMPATIBLE_SUBROUTINES,
+ programInterface must be one of GL_VERTEX_SUBROUTINE_UNIFORM,
+ GL_TESS_CONTROL_SUBROUTINE_UNIFORM, GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+ GL_GEOMETRY_SUBROUTINE_UNIFORM, GL_FRAGMENT_SUBROUTINE_UNIFORM, or
+ GL_COMPUTE_SUBROUTINE_UNIFORM.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if identifier
+ is not one of the accepted object types.
+
+
+ GL_INVALID_VALUE is generated if program
+ is not the name of an existing sync object.
+
+
+ GL_INVALID_VALUE is generated if bufSize is
+ zero.
+
+
+ GL_INVALID_OPERATION is generated if pname is GL_MAX_NAME_LENGTH and
+ programInterface is GL_ATOMIC_COUNTER_BUFFER or GL_TRANSFORM_FEEDBACK_BUFFER,
+ since active atomic counter and transform feedback buffer resources are not assigned name strings.
+
+
+ GL_INVALID_OPERATION error is generated if pname is
+ GL_MAX_NUM_ACTIVE_VARIABLES and programInterface is not GL_UNIFORM_BLOCK,
+ GL_SHADER_STORAGE_BLOCK, GL_ATOMIC_COUNTER_BUFFER, or
+ GL_TRANSFORM_FEEDBACK_BUFFER.
+
+
+ If not NULL, length and label should be addresses
+ to which the client has write access, otherwise undefined behavior, including process termination
+ may occur.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_LABEL_LENGTH.
+
+
+ See Also
+
+ glPushDebugGroup,
+ glPopDebugGroup,
+ glObjectLabel,
+ glGetObjectLabel.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetProgramResource.xml b/Source/Bind/Specifications/Docs/glGetProgramResource.xml
new file mode 100644
index 00000000..c8a3c753
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetProgramResource.xml
@@ -0,0 +1,429 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetProgramResource
+ 3G
+
+
+ glGetProgramResource
+ retrieve values for multiple properties of a single active resource within a program object
+
+ C Specification
+
+
+ void glGetProgramResourceiv
+ GLuint program
+ GLenum programInterface
+ GLuint index
+ GLsizei propCount
+ const Glenum * props
+ GLsizei bufSize
+ GLsizei * length
+ GLint * params
+
+
+
+ Parameters
+
+
+ program
+
+
+ The name of a program object whose resources to query.
+
+
+
+
+ programInterface
+
+
+ A token identifying the interface within program containing the resource named name.
+
+
+
+
+
+ Description
+
+ glGetProgramResourceiv returns values for multiple properties of a single active resource with an
+ index of index in the interface programInterface of program object
+ program. For each resource, values for propCount properties specified
+ by the array props are returned. propCount may not be zero.
+ An error is generated if any value
+ in props is not one of the properties described immediately belowor if any value in props is not
+ allowed for programInterface. The set of allowed programInterface
+ values for each property can be found in the following table:
+
+
+
+
+
+
+
+ Property
+ Supported Interfaces
+
+
+
+
+ GL_NAME_LENGTH
+ Any except GL_ATOMIC_COUNTER_BUFFER and GL_TRANSFORM_FEEDBACK_BUFFER
+
+
+ GL_TYPE
+ GL_UNIFORM, GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT, GL_TRANSFORM_FEEDBACK_VARYING, GL_BUFFER_VARIABLE
+
+
+ GL_ARRAY_SIZE
+ GL_UNIFORM, GL_BUFFER_VARIABLE, GL_PROGRAM_INPUT,
+ GL_PROGRAM_OUTPUT, VERTEX_SUBROUTINE_UNIFORM, GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, GL_GEOMETRY_SUBROUTINE_UNIFORM,
+ GL_FRAGMENT_SUBROUTINE_UNIFORM, GL_COMPUTE_SUBROUTINE_UNIFORM, GL_TRANSFORM_FEEDBACK_VARYING
+
+
+ GL_OFFSET
+ GL_UNIFORM, GL_BUFFER_VARIABLE, GL_TRANSFORM_FEEDBACK_VARYING
+
+
+ GL_BLOCK_INDEX
+ GL_UNIFORM, GL_BUFFER_VARIABLE
+
+
+ GL_ARRAY_STRIDE
+ GL_UNIFORM, GL_BUFFER_VARIABLE
+
+
+ GL_MATRIX_STRIDE
+ GL_UNIFORM, GL_BUFFER_VARIABLE
+
+
+ GL_IS_ROW_MAJOR
+ GL_UNIFORM, GL_BUFFER_VARIABLE
+
+
+ GL_ATOMIC_COUNTER_BUFFER_INDEX
+ GL_UNIFORM
+
+
+ GL_TEXTURE_BUFFER
+ none
+
+
+ GL_BUFFER_BINDING
+ GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_TRANSFORM_FEEDBACK_BUFFER
+
+
+ GL_BUFFER_DATA_SIZE
+ GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_BUFFER, GL_SHADER_STORAGE_BLOCK
+
+
+ GL_NUM_ACTIVE_VARIABLES
+ GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_TRANSFORM_FEEDBACK_BUFFER
+
+
+ GL_ACTIVE_VARIABLES
+ GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_TRANSFORM_FEEDBACK_BUFFER
+
+
+ GL_REFERENCED_BY_VERTEX_SHADER
+ GL_UNIFORM, GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_SHADER,
+ GL_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_BUFFER_VARIABLE,
+ GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT
+
+
+ GL_REFERENCED_BY_TESS_CONTROL_SHADER
+ GL_UNIFORM, GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_SHADER,
+ GL_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_BUFFER_VARIABLE,
+ GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT
+
+
+ GL_REFERENCED_BY_TESS_EVALUATION_SHADER
+ GL_UNIFORM, GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_SHADER,
+ GL_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_BUFFER_VARIABLE,
+ GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT
+
+
+ GL_REFERENCED_BY_GEOMETRY_SHADER
+ GL_UNIFORM, GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_SHADER,
+ GL_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_BUFFER_VARIABLE,
+ GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT
+
+
+ GL_REFERENCED_BY_FRAGMENT_SHADER
+ GL_UNIFORM, GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_SHADER,
+ GL_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_BUFFER_VARIABLE,
+ GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT
+
+
+ GL_REFERENCED_BY_COMPUTE_SHADER
+ GL_UNIFORM, GL_UNIFORM_BLOCK, GL_ATOMIC_COUNTER_SHADER,
+ GL_BUFFER, GL_SHADER_STORAGE_BLOCK, GL_BUFFER_VARIABLE,
+ GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT
+
+
+ GL_NUM_COMPATIBLE_SUBROUTINES
+ GL_VERTEX_SUBROUTINE_UNIFORM, GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, GL_GEOMETRY_SUBROUTINE_UNIFORM,
+ GL_FRAGMENT_SUBROUTINE_UNIFORM, GL_COMPUTE_SUBROUTINE_UNIFORM
+
+
+ GL_COMPATIBLE_SUBROUTINES
+ GL_VERTEX_SUBROUTINE_UNIFORM, GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, GL_GEOMETRY_SUBROUTINE_UNIFORM,
+ GL_FRAGMENT_SUBROUTINE_UNIFORM, GL_COMPUTE_SUBROUTINE_UNIFORM
+
+
+ GL_TOP_LEVEL_ARRAY_SIZE
+ GL_BUFFER_VARIABLE
+
+
+ GL_TOP_LEVEL_ARRAY_STRIDE
+ GL_BUFFER_VARIABLE
+
+
+ GL_LOCATION
+ GL_UNIFORM, GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT,
+ GL_VERTEX_SUBROUTINE_UNIFORM, GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, GL_GEOMETRY_SUBROUTINE_UNIFORM,
+ GL_FRAGMENT_SUBROUTINE_UNIFORM, GL_COMPUTE_SUBROUTINE_UNIFORM
+
+
+ GL_LOCATION_INDEX
+ GL_PROGRAM_OUTPUT
+
+
+ GL_IS_PER_PATCH
+ GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT
+
+
+ GL_LOCATION_COMPONENT
+ GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT
+
+
+ GL_TRANSFORM_FEEDBACK_BUFFER_INDEX
+ GL_TRANSFORM_FEEDBACK_VARYING
+
+
+ GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE
+ GL_TRANSFORM_FEEDBACK_BUFFER
+
+
+
+
+
+
+ For the property GL_NAME_LENGTH, a single integer identifying the length of
+ the name string associated with an active variable, interface block, or
+ subroutine is written to params. The name length includes a terminating
+ null character.
+
+
+ For the property GL_TYPE, a single integer identifying the type of an active
+ variable is written to params. The integer returned is one of the
+ values found in table 2.16.
+
+
+ For the property GL_ARRAY_SIZE, a single integer identifying the number of
+ active array elements of an active variable is written to params. The
+ array size returned is in units of the type associated with the property
+ GL_TYPE. For active variables not corresponding to an array of basic types,
+ the value zero is written to params.
+
+
+ For the property GL_BLOCK_INDEX, a single integer identifying the index of
+ the active interface block containing an active variable is written to
+ params. If the variable is not the member of an interface block, the
+ value -1 is written to params.
+
+
+ For the property GL_OFFSET, a single integer identifying the offset of an
+ active variable is written to params. For variables in the GL_UNIFORM and
+ GL_BUFFER_VARIABLE interfaces that are backed by a buffer object, the value
+ written is the offset of that variable relative to the base of the buffer
+ range holding its value. For variables in the GL_TRANSFORM_FEEDBACK_VARYING
+ interface, the value written is the offset in the transform feedback
+ buffer storage assigned to each vertex captured in transform feedback mode
+ where the value of the variable will be stored. Such offsets are
+ specified via the xfb_offset
layout qualifier or assigned according to
+ the variables position in the list of strings passed to
+ glTransformFeedbackVaryings. Offsets are expressed in basic machine units.
+ For all variables not recorded in transform feedback mode, including the
+ special names "gl_NextBuffer"
, "gl_SkipComponents1"
, "gl_SkipComponents2"
,
+ "gl_SkipComponents3"
, and "gl_SkipComponents4"
, -1 is written to params.
+
+
+ For the property GL_ARRAY_STRIDE, a single integer identifying the stride
+ between array elements in an active variable is written to params. For
+ active variables declared as an array of basic types, the value written is
+ the difference, in basic machine units, between the offsets of consecutive
+ elements in an array. For active variables not declared as an array of
+ basic types, zero is written to params. For active variables not backed
+ by a buffer object, -1 is written to params, regardless of the variable
+ type.
+
+
+ For the property GL_MATRIX_STRIDE, a single integer identifying the stride
+ between columns of a column-major matrix or rows of a row-major matrix is
+ written to params. For active variables declared a single matrix or
+ array of matrices, the value written is the difference, in basic machine
+ units, between the offsets of consecutive columns or rows in each matrix.
+ For active variables not declared as a matrix or array of matrices, zero
+ is written to params. For active variables not backed by a buffer
+ object, -1 is written to params, regardless of the variable type.
+
+
+ For the property GL_IS_ROW_MAJOR, a single integer identifying whether an
+ active variable is a row-major matrix is written to params. For active
+ variables backed by a buffer object, declared as a single matrix or array
+ of matrices, and stored in row-major order, one is written to params.
+ For all other active variables, zero is written to params.
+
+
+ For the property GL_ATOMIC_COUNTER_BUFFER_INDEX, a single integer identifying
+ the index of the active atomic counter buffer containing an active
+ variable is written to params. If the variable is not an atomic counter
+ uniform, the value -1 is written to params.
+
+
+ For the property GL_BUFFER_BINDING, to index of the buffer binding point
+ associated with the active uniform block, shader storage block, atomic
+ counter buffer or transform feedback buffer is written to params.
+
+
+ For the property GL_BUFFER_DATA_SIZE, then the implementation-dependent
+ minimum total buffer object size, in basic machine units, required to hold
+ all active variables associated with an active uniform block, shader
+ storage block, or atomic counter buffer is written to params. If the
+ final member of an active shader storage block is array with no declared
+ size, the minimum buffer size is computed assuming the array was declared
+ as an array with one element.
+
+
+ For the property GL_NUM_ACTIVE_VARIABLES, the number of active variables
+ associated with an active uniform block, shader storage block, atomic
+ counter buffer or transform feedback buffer is written to params.
+
+
+ For the property GL_ACTIVE_VARIABLES, an array of active variable indices
+ associated with an active uniform block, shader storage block, atomic
+ counter buffer or transform feedback buffer is written to params. The number of values written to
+ params for an active resource is given by the value of the property
+ GL_NUM_ACTIVE_VARIABLES for the resource.
+
+
+ For the properties GL_REFERENCED_BY_VERTEX_SHADER,
+ GL_REFERENCED_BY_TESS_CONTROL_SHADER, GL_REFERENCED_BY_TESS_EVALUATION_SHADER,
+ GL_REFERENCED_BY_GEOMETRY_SHADER, GL_REFERENCED_BY_FRAGMENT_SHADER, and
+ GL_REFERENCED_BY_COMPUTE_SHADER, a single integer is written to params,
+ identifying whether the active resource is referenced by the vertex,
+ tessellation control, tessellation evaluation, geometry, or fragment
+ shaders, respectively, in the program object. The value one is written to
+ params if an active variable is referenced by the corresponding shader,
+ or if an active uniform block, shader storage block, or atomic counter
+ buffer contains at least one variable referenced by the corresponding
+ shader. Otherwise, the value zero is written to params.
+
+
+ For the property GL_TOP_LEVEL_ARRAY_SIZE, a single integer identifying the
+ number of active array elements of the top-level shader storage block
+ member containing to the active variable is written to params. If the
+ top-level block member is not declared as an array, the value one is
+ written to params. If the top-level block member is an array with no
+ declared size, the value zero is written to params.
+
+
+ For the property GL_TOP_LEVEL_ARRAY_STRIDE, a single integer identifying the
+ stride between array elements of the top-level shader storage block member
+ containing the active variable is written to params. For top-level
+ block members declared as arrays, the value written is the difference, in
+ basic machine units, between the offsets of the active variable for
+ consecutive elements in the top-level array. For top-level block members
+ not declared as an array, zero is written to params.
+
+
+ For the property GL_LOCATION, a single integer identifying the assigned
+ location for an active uniform, input, output, or subroutine uniform
+ variable is written to params. For input, output, or uniform variables
+ with locations specified by a layout qualifier, the specified location is
+ used. For vertex shader input or fragment shader output variables without
+ a layout qualifier, the location assigned when a program is linked is
+ written to params. For all other input and output variables, the value
+ -1 is written to params. For uniforms in uniform blocks, the value -1
+ is written to params.
+
+
+ For the property GL_LOCATION_INDEX, a single integer identifying the fragment
+ color index of an active fragment shader output variable is written to
+ params. If the active variable is an output for a non-fragment shader,
+ the value -1 will be written to params.
+
+
+ For the property GL_IS_PER_PATCH, a single integer identifying whether the
+ input or output is a per-patch attribute. If the active variable is a
+ per-patch attribute (declared with the patch
qualifier), the value one
+ is written to params; otherwise, the value zero is written to params.
+
+
+ For the property GL_LOCATION_COMPONENT, a single integer indicating the first
+ component of the location assigned to an active input or output variable
+ is written to params. For input and output variables with a component
+ specified by a layout
qualifier, the specified component is written.
+ For all other input and output variables, the value zero is written.
+
+
+ For the property GL_TRANSFORM_FEEDBACK_BUFFER_INDEX, a single integer
+ identifying the index of the active transform feedback buffer associated
+ with an active variable is written to params. For variables
+ corresponding to the special names "gl_NextBuffer"
, "gl_SkipComponents1"
,
+ "gl_SkipComponents2"
, "gl_SkipComponents3"
, and "gl_SkipComponents4"
, -1
+ is written to params.
+
+
+ For the property GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE, a single integer
+ identifying the stride, in basic machine units, between consecutive
+ vertices written to the transform feedback buffer is written to params.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if program is
+ not the name of an existing program object.
+
+
+ GL_INVALID_VALUE is generated if propCount is
+ zero.
+
+
+ GL_INVALID_ENUM is generated if programInterface
+ is not one of the accepted interface types.
+
+
+ GL_INVLALID_ENUM is generated if any value in props
+ is not one of the accepted tokens for the interface programInterface
+
+
+ See Also
+
+ glGetProgramResourceName,
+ glGetGetProgramResourceIndex,
+ glGetProgramResourceLocation,
+ glGetProgramResourceLocationIndex.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetProgramResourceIndex.xml b/Source/Bind/Specifications/Docs/glGetProgramResourceIndex.xml
new file mode 100644
index 00000000..c7d6a65f
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetProgramResourceIndex.xml
@@ -0,0 +1,215 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetProgramResourceIndex
+ 3G
+
+
+ glGetProgramResourceIndex
+ query the index of a named resource within a program
+
+ C Specification
+
+
+ GLuint glGetProgramResourceIndex
+ GLuint program
+ GLenum programInterface
+ const char * name
+
+
+
+ Parameters
+
+
+ program
+
+
+ The name of a program object whose resources to query.
+
+
+
+
+ programInterface
+
+
+ A token identifying the interface within program containing the resource named name.
+
+
+
+
+ name
+
+
+ The name of the resource to query the index of.
+
+
+
+
+
+ Description
+
+ glGetProgramResourceIndex returns the unsigned
+ integer index assigned to a resource named name in
+ the interface type programInterface of program object program.
+
+
+ program must be the name of an existing program object. programInterface
+ is the name of the interface within program which contains the resource named
+ nameand must be one of the following
+ values:
+
+
+
+ GL_UNIFORM
+
+
+ The query is targeted at the set of active uniforms within program.
+
+
+
+
+ GL_UNIFORM_BLOCK
+
+
+ The query is targeted at the set of active uniform blocks within program.
+
+
+
+
+ GL_PROGRAM_INPUT
+
+
+ The query is targeted at the set of active input variables used by the first shader stage of program.
+ If program contains multiple shader stages then input variables from any stage other than the first
+ will not be enumerated.
+
+
+
+
+ GL_PROGRAM_OUTPUT
+
+
+ The query is targeted at the set of active output variables produced by the last shader stage of program.
+ If program contains multiple shader stages then output variables from any stage other than the last
+ will not be enumerated.
+
+
+
+
+ GL_VERTEX_SUBROUTINE,
+ GL_TESS_CONTROL_SUBROUTINE,
+ GL_TESS_EVALUATION_SUBROUTINE,
+ GL_GEOMETRY_SUBROUTINE,
+ GL_FRAGMENT_SUBROUTINE,
+ GL_COMPUTE_SUBROUTINE
+
+
+ The query is targeted at the set of active subroutines for the vertex, tessellation control, tessellation evaluation,
+ geometry, fragment and compute shader stages of program, respectively.
+
+
+
+
+ GL_VERTEX_SUBROUTINE_UNIFORM,
+ GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+ GL_GEOMETRY_SUBROUTINE_UNIFORM,
+ GL_FRAGMENT_SUBROUTINE_UNIFORM,
+ GL_COMPUTE_SUBROUTINE_UNIFORM
+
+
+ The query is targeted at the set of active subroutine uniform variables used by the vertex, tessellation control, tessellation evaluation,
+ geometry, fragment and compute shader stages of program, respectively.
+
+
+
+
+ GL_TRANSFORM_FEEDBACK_VARYING
+
+
+ The query is targeted at the set of output variables from the last non-fragment stage of program that would be
+ captured if transform feedback were active.
+
+
+
+
+ GL_TRANSFORM_FEEDBACK_BUFFER
+
+
+ The query is targeted at the set of active buffer binding points to which output variables in the
+ GL_TRANSFORM_FEEDBACK_VARYING interface are written.
+
+
+
+
+ GL_BUFFER_VARIABLE
+
+
+ The query is targeted at the set of active buffer variables used by program.
+
+
+
+
+ GL_SHADER_STORAGE_BLOCK
+
+
+ The query is targeted at the set of active shader storage blocks used by program.
+
+
+
+
+
+ If name exactly matches the name string of one of the active resources
+ for programInterface, the index of the matched resource is returned.
+ Additionally, if name would exactly match the name string of an active
+ resource if "[0]" were appended to name, the index of the matched
+ resource is returned. Otherwise, name is considered not to be the name
+ of an active resource, and GL_INVALID_INDEX is returned.
+
+
+ For the interface GL_TRANSFORM_FEEDBACK_VARYING, the value GL_INVALID_INDEX
+ should be returned when querying the index assigned to the special names
+ gl_NextBuffer
, gl_SkipComponents1
, gl_SkipComponents2
,
+ gl_SkipComponents3
, or gl_SkipComponents4
.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if programInterface
+ is not one of the accepted interface types.
+
+
+ GL_INVALID_ENUM is generated if programInterface is
+ GL_ATOMIC_COUNTER_BUFFER or GL_TRANSFORM_FEEDBACK_BUFFER, since active atomic
+ counter and transform feedback buffer resources are not assigned name strings.
+
+
+ Although not an error, GL_INVALID_INDEX is returned if name
+ is not the name of a resource within the interface identified by programInterface.
+
+
+ See Also
+
+ glGetProgramResourceName,
+ glGetGetProgramResource,
+ glGetProgramResourceLocation,
+ glGetProgramResourceLocationIndex.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetProgramResourceLocation.xml b/Source/Bind/Specifications/Docs/glGetProgramResourceLocation.xml
new file mode 100644
index 00000000..6bdc0152
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetProgramResourceLocation.xml
@@ -0,0 +1,142 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetProgramResourceLocation
+ 3G
+
+
+ glGetProgramResourceLocation
+ query the location of a named resource within a program
+
+ C Specification
+
+
+ GLint glGetProgramResourceLocation
+ GLuint program
+ GLenum programInterface
+ const char * name
+
+
+
+ Parameters
+
+
+ program
+
+
+ The name of a program object whose resources to query.
+
+
+
+
+ programInterface
+
+
+ A token identifying the interface within program containing the resource named name.
+
+
+
+
+ name
+
+
+ The name of the resource to query the location of.
+
+
+
+
+
+ Description
+
+ glGetProgramResourceLocation returns the location assigned
+ to the variable named name in interface programInterface of program
+ object program. program must be the name of a program that has been
+ linked successfully. programInterface must
+ be one of GL_UNIFORM, GL_PROGRAM_INPUT, GL_PROGRAM_OUTPUT,
+ GL_VERTEX_SUBROUTINE_UNIFORM, GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM, GL_GEOMETRY_SUBROUTINE_UNIFORM,
+ GL_FRAGMENT_SUBROUTINE_UNIFORM, GL_COMPUTE_SUBROUTINE_UNIFORM, or GL_TRANSFORM_FEEDBACK_BUFFER.
+
+
+ The value -1 will be returned if an error occurs, if name does not identify an active variable on
+ programInterface, or if name identifies an active variable that does
+ not have a valid location assigned, as described above. The locations
+ returned by these commands are the same locations returned when querying
+ the GL_LOCATION and GL_LOCATION_INDEX resource properties.
+
+
+ A string provided to glGetProgramResourceLocation is considered to match an active variable if:
+
+
+
+
+ the string exactly matches the name of the active variable
+
+
+
+
+ if the string identifies the base name of an active array, where the
+ string would exactly match the name of the variable if the suffix
+ "[0]" were appended to the string
+
+
+
+
+ if the string identifies an active element of the array, where the
+ string ends with the concatenation of the "[" character, an integer
+ with no "+" sign, extra leading zeroes, or whitespace identifying an
+ array element, and the "]" character, the integer is less than the
+ number of active elements of the array variable, and where the string
+ would exactly match the enumerated name of the array if the decimal
+ integer were replaced with zero.
+
+
+
+
+ Any other string is considered not to identify an active variable. If the
+ string specifies an element of an array variable,
+ glGetProgramResourceLocation returns the
+ location assigned to that element. If it
+ specifies the base name of an array, it identifies the resources
+ associated with the first element of the array.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if program
+ is not the name of an existing program object.
+
+
+ GL_INVALID_ENUM is generated if programInterface
+ is not one of the accepted interface types.
+
+
+ GL_INVALID_OPERATION is generated if program
+ has not been linked successfully.
+
+
+ See Also
+
+ glGetProgramResourceName,
+ glGetProgramResourceIndex,
+ glGetGetProgramResource,
+ glGetProgramResourceLocationIndex.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetProgramResourceLocationIndex.xml b/Source/Bind/Specifications/Docs/glGetProgramResourceLocationIndex.xml
new file mode 100644
index 00000000..58f63080
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetProgramResourceLocationIndex.xml
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetProgramResourceLocationIndex
+ 3G
+
+
+ glGetProgramResourceLocationIndex
+ query the fragment color index of a named variable within a program
+
+ C Specification
+
+
+ GLint glGetProgramResourceLocationIndex
+ GLuint program
+ GLenum programInterface
+ const char * name
+
+
+
+ Parameters
+
+
+ program
+
+
+ The name of a program object whose resources to query.
+
+
+
+
+ programInterface
+
+
+ A token identifying the interface within program containing the resource named name.
+
+
+
+
+ name
+
+
+ The name of the resource to query the location of.
+
+
+
+
+
+ Description
+
+ glGetProgramResourceLocationIndex returns the fragment color index assigned
+ to the variable named name in interface programInterface of program
+ object program. program must be the name of a program that has been
+ linked successfully. programInterface must
+ be PROGRAM_OUTPUT.
+
+
+ The value -1 will be returned if an error occurs, if name does not identify an active variable on
+ programInterface, or if name identifies an active variable that does
+ not have a valid location assigned, as described above. The locations
+ returned by these commands are the same locations returned when querying
+ the GL_LOCATION and GL_LOCATION_INDEX resource properties.
+
+
+ A string provided to glGetProgramResourceLocationIndex is considered to match an active variable if:
+
+
+
+
+ the string exactly matches the name of the active variable
+
+
+
+
+ if the string identifies the base name of an active array, where the
+ string would exactly match the name of the variable if the suffix
+ "[0]" were appended to the string
+
+
+
+
+ if the string identifies an active element of the array, where the
+ string ends with the concatenation of the "[" character, an integer
+ with no "+" sign, extra leading zeroes, or whitespace identifying an
+ array element, and the "]" character, the integer is less than the
+ number of active elements of the array variable, and where the string
+ would exactly match the enumerated name of the array if the decimal
+ integer were replaced with zero.
+
+
+
+
+ Any other string is considered not to identify an active variable. If the
+ string specifies an element of an array variable,
+ glGetProgramResourceLocation returns the
+ location assigned to that element. If it
+ specifies the base name of an array, it identifies the resources
+ associated with the first element of the array.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if program
+ is not the name of an existing program object.
+
+
+ GL_INVALID_ENUM is generated if programInterface
+ is not one of the accepted interface types.
+
+
+ GL_INVALID_OPERATION is generated if program
+ has not been linked successfully.
+
+
+ See Also
+
+ glGetProgramResourceName,
+ glGetProgramResourceIndex,
+ glGetGetProgramResource,
+ glGetProgramResourceLocationIndex.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glGetProgramResourceName.xml b/Source/Bind/Specifications/Docs/glGetProgramResourceName.xml
new file mode 100644
index 00000000..3a9d0a89
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glGetProgramResourceName.xml
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glGetProgramResourceName
+ 3G
+
+
+ glGetProgramResourceName
+ query the name of an indexed resource within a program
+
+ C Specification
+
+
+ void glGetProgramResourceName
+ GLuint program
+ GLenum programInterface
+ GLuint index
+ GLsizei bufSize
+ GLsizei * length
+ char * name
+
+
+
+ Parameters
+
+
+ program
+
+
+ The name of a program object whose resources to query.
+
+
+
+
+ programInterface
+
+
+ A token identifying the interface within program containing the indexed resource.
+
+
+
+
+ index
+
+
+ The index of the resource within programInterface of program.
+
+
+
+
+ bufSize
+
+
+ The size of the character array whose address is given by name.
+
+
+
+
+ length
+
+
+ The address of a variable which will receive the length of the resource name.
+
+
+
+
+ name
+
+
+ The address of a character array into which will be written the name of the resource.
+
+
+
+
+
+ Description
+
+ glGetProgramResourceName retrieves the name string
+ assigned to the single active resource with an index of index
+ in the interface programInterface of program object
+ program. index must be less than
+ the number of entries in the active resource list for programInterface.
+
+
+ program must be the name of an existing program object. programInterface
+ is the name of the interface within program which contains the resource and must be one of the following
+ values:
+
+
+
+ GL_UNIFORM
+
+
+ The query is targeted at the set of active uniforms within program.
+
+
+
+
+ GL_UNIFORM_BLOCK
+
+
+ The query is targeted at the set of active uniform blocks within program.
+
+
+
+
+ GL_PROGRAM_INPUT
+
+
+ The query is targeted at the set of active input variables used by the first shader stage of program.
+ If program contains multiple shader stages then input variables from any stage other than the first
+ will not be enumerated.
+
+
+
+
+ GL_PROGRAM_OUTPUT
+
+
+ The query is targeted at the set of active output variables produced by the last shader stage of program.
+ If program contains multiple shader stages then output variables from any stage other than the last
+ will not be enumerated.
+
+
+
+
+ GL_VERTEX_SUBROUTINE,
+ GL_TESS_CONTROL_SUBROUTINE,
+ GL_TESS_EVALUATION_SUBROUTINE,
+ GL_GEOMETRY_SUBROUTINE,
+ GL_FRAGMENT_SUBROUTINE,
+ GL_COMPUTE_SUBROUTINE
+
+
+ The query is targeted at the set of active subroutines for the vertex, tessellation control, tessellation evaluation,
+ geometry, fragment and compute shader stages of program, respectively.
+
+
+
+
+ GL_VERTEX_SUBROUTINE_UNIFORM,
+ GL_TESS_CONTROL_SUBROUTINE_UNIFORM,
+ GL_TESS_EVALUATION_SUBROUTINE_UNIFORM,
+ GL_GEOMETRY_SUBROUTINE_UNIFORM,
+ GL_FRAGMENT_SUBROUTINE_UNIFORM,
+ GL_COMPUTE_SUBROUTINE_UNIFORM
+
+
+ The query is targeted at the set of active subroutine uniform variables used by the vertex, tessellation control, tessellation evaluation,
+ geometry, fragment and compute shader stages of program, respectively.
+
+
+
+
+ GL_TRANSFORM_FEEDBACK_VARYING
+
+
+ The query is targeted at the set of output variables from the last non-fragment stage of program that would be
+ captured if transform feedback were active.
+
+
+
+
+ GL_BUFFER_VARIABLE
+
+
+ The query is targeted at the set of active buffer variables used by program.
+
+
+
+
+ GL_SHADER_STORAGE_BLOCK
+
+
+ The query is targeted at the set of active shader storage blocks used by program.
+
+
+
+
+
+ The name string assigned to the active resource identified by index is
+ returned as a null-terminated string in the character array whose address is given in name. The actual number of
+ characters written into name, excluding the null terminator, is returned
+ in length. If length is NULL, no length is returned. The maximum
+ number of characters that may be written into name, including the null
+ terminator, is specified by bufSize. If the length of the name string
+ including the null terminator is greater than bufSize, the first
+ bufSize-1 characters of the name string will be written to name,
+ followed by a null terminator. If bufSize is zero, no error will be
+ generated but no characters will be written to name. The length of the
+ longest name string for programInterface>, including a null terminator,
+ can be queried by calling glGetProgramInterface with a pname of
+ GL_MAX_NAME_LENGTH.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if programInterface
+ is not one of the accepted interface types.
+
+
+ GL_INVALID_VALUE is generated if progam is not
+ the name of an existing program.
+
+
+ GL_INVALID_VALUE is generated if index is greater
+ than or equal to the number of entries in the active resource list for
+ programInterface.
+
+
+ GL_INVALID_ENUM is generated if programInterface is
+ GL_ATOMIC_COUNTER_BUFFER or GL_TRANSFORM_FEEDBACK_BUFFER, since active atomic
+ counter and transform feedback buffer resources are not assigned name strings.
+
+
+ See Also
+
+ glGetProgramResourceIndex,
+ glGetGetProgramResource,
+ glGetProgramResourceLocation,
+ glGetProgramResourceLocationIndex.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glInvalidateBufferData.xml b/Source/Bind/Specifications/Docs/glInvalidateBufferData.xml
new file mode 100644
index 00000000..066875b4
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glInvalidateBufferData.xml
@@ -0,0 +1,78 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glInvalidateBufferData
+ 3G
+
+
+ glInvalidateBufferData
+ invalidate the content of a buffer object's data store
+
+ C Specification
+
+
+ void glInvalidateBufferData
+ GLuint buffer
+
+
+
+ Parameters
+
+
+ buffer
+
+
+ The name of a buffer object whose data store to invalidate.
+
+
+
+
+
+ Description
+
+ glInvalidateBufferData invalidates all of the
+ content of the data store of a buffer object. After invalidation, the content
+ of the buffer's data store becomes undefined.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if buffer is not the
+ name of an existing buffer object.
+
+
+ GL_INVALID_OPERATION is generated if any part of buffer
+ is currently mapped.
+
+
+ Associated Gets
+
+ glGetBufferParameter with argument GL_BUFFER_SIZE
+
+
+ See Also
+
+ glInvalidateTexSubImage,,
+ glInvalidateTexImage,
+ glInvalidateBufferSubData,
+ glInvalidateFramebuffer,
+ glInvalidateSubFramebuffer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glInvalidateBufferSubData.xml b/Source/Bind/Specifications/Docs/glInvalidateBufferSubData.xml
new file mode 100644
index 00000000..9e81bf9b
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glInvalidateBufferSubData.xml
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glInvalidateBufferSubData
+ 3G
+
+
+ glInvalidateBufferSubData
+ invalidate a region of a buffer object's data store
+
+ C Specification
+
+
+ void glInvalidateBufferSubData
+ GLuint buffer
+ GLintptr offset
+ GLsizeiptr length
+
+
+
+ Parameters
+
+
+ buffer
+
+
+ The name of a buffer object, a subrange of whose data store to invalidate.
+
+
+
+
+ offset
+
+
+ The offset within the buffer's data store of the start of the range to be invalidated.
+
+
+
+
+ length
+
+
+ The length of the range within the buffer's data store to be invalidated.
+
+
+
+
+
+ Description
+
+ glInvalidateBufferSubData invalidates all or part of the
+ content of the data store of a buffer object. After invalidation, the content
+ of the specified range of the buffer's data store becomes undefined. The
+ start of the range is given by offset and its size
+ is given by length, both measured in basic machine units.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if offset or
+ length is negative, or if offset +
+ length is greater than the value of GL_BUFFER_SIZE
+ for buffer.
+
+
+ GL_INVALID_VALUE is generated if buffer is not the
+ name of an existing buffer object.
+
+
+ GL_INVALID_OPERATION is generated if any part of buffer
+ is currently mapped.
+
+
+ Associated Gets
+
+ glGetBufferParameter with argument GL_BUFFER_SIZE
+
+
+ See Also
+
+ glInvalidateTexSubImage,,
+ glInvalidateTexImage,
+ glInvalidateBufferData,
+ glInvalidateFramebuffer,
+ glInvalidateSubFramebuffer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glInvalidateFramebuffer.xml b/Source/Bind/Specifications/Docs/glInvalidateFramebuffer.xml
new file mode 100644
index 00000000..e88f64fa
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glInvalidateFramebuffer.xml
@@ -0,0 +1,123 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glInvalidateFramebuffer
+ 3G
+
+
+ glInvalidateFramebuffer
+ invalidate the content some or all of a framebuffer object's attachments
+
+ C Specification
+
+
+ void glInvalidateFramebuffer
+ GLenum target
+ GLsizei numAttachments
+ const GLenum * attachments
+
+
+
+ Parameters
+
+
+ target
+
+
+ The target to which the framebuffer is attached. target must be
+ GL_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER, or GL_READ_FRAMEBUFFER.
+
+
+
+
+ numAttachments
+
+
+ The number of entries in the attachments array.
+
+
+
+
+ attachments
+
+
+ The address of an array identifying the attachments to be invalidated.
+
+
+
+
+
+ Description
+
+ glInvalidateFramebuffer invalidates the content
+ of a specified set of attachments of a framebuffer. The framebuffer
+ whose content to invalidate is indicated by setting target
+ to the target to which it is bound. target may be
+ GL_FRAMEBUFFER, GL_READ_FRAMEBUFFER or
+ GL_DRAW_FRAMEBUFFER. GL_FRAMEBUFFER
+ is treated as if it were GL_DRAW_FRAMEBUFFER.
+
+
+ The set of attachments whose content to invalidate are specified in an array whose address is given
+ by attachments and which contains numAttachments
+ elements. The elements of attachments must be
+ GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT
+ GL_DEPTH_STENCIL_ATTACHMENT, or GL_COLOR_ATTACHMENTi,
+ where i is between zero and the value of GL_MAX_FRAMEBUFFER_ATTACHMENTS minus one.
+ Furthermore, if the default framebuffer is bound to target, then
+ attachments may contain GL_FRONT_LEFT,
+ GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT,
+ GL_AUXi, GL_ACCUM,
+ GL_COLOR, GL_DEPTH, or GL_STENCIL, identifying that specific buffer.
+ GL_COLOR, is treated as GL_BACK_LEFT for a double-buffered context and
+ GL_FRONT_LEFT for a single-buffered context.
+ After glInvalidateFramebuffer is executed, the contents
+ of the specified attachments become undefined.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target is not one of the
+ accepted framebuffer target tokens.
+
+
+ GL_INVALID_ENUM is generated if any element of attachments is
+ not one of the accepted framebuffer attachment tokens.
+
+
+ GL_INVALID_OPERATION is generated if element of attachments is
+ GL_COLOR_ATTACHMENTi where i is greater than or equal
+ to the value of GL_MAX_COLOR_ATTACHMENTS.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_COLOR_ATTACHMENTS
+
+
+ See Also
+
+ glInvalidateTexSubImage,
+ glInvalidateTexImage,
+ glInvalidateBufferSubData,
+ glInvalidateBufferData,
+ glInvalidateSubFramebuffer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glInvalidateSubFramebuffer.xml b/Source/Bind/Specifications/Docs/glInvalidateSubFramebuffer.xml
new file mode 100644
index 00000000..f3baf3c6
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glInvalidateSubFramebuffer.xml
@@ -0,0 +1,169 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glInvalidateSubFramebuffer
+ 3G
+
+
+ glInvalidateSubFramebuffer
+ invalidate the content of a region of some or all of a framebuffer object's attachments
+
+ C Specification
+
+
+ void glInvalidateSubFramebuffer
+ GLenum target
+ GLsizei numAttachments
+ const GLenum * attachments
+ GLint x
+ GLint y
+ GLint width
+ GLint height
+
+
+
+ Parameters
+
+
+ target
+
+
+ The target to which the framebuffer is attached. target must be
+ GL_FRAMEBUFFER, GL_DRAW_FRAMEBUFFER, or GL_READ_FRAMEBUFFER.
+
+
+
+
+ numAttachments
+
+
+ The number of entries in the attachments array.
+
+
+
+
+ attachments
+
+
+ The address of an array identifying the attachments to be invalidated.
+
+
+
+
+ x
+
+
+ The X offset of the region to be invalidated.
+
+
+
+
+ y
+
+
+ The Y offset of the region to be invalidated.
+
+
+
+
+ width
+
+
+ The width of the region to be invalidated.
+
+
+
+
+ height
+
+
+ The height of the region to be invalidated.
+
+
+
+
+
+ Description
+
+ glInvalidateSubFramebuffer invalidates the content of a region
+ of a specified set of attachments of a framebuffer. The framebuffer
+ whose content to invalidate is indicated by setting target
+ to the target to which it is bound. target may be
+ GL_FRAMEBUFFER, GL_READ_FRAMEBUFFER or
+ GL_DRAW_FRAMEBUFFER. GL_FRAMEBUFFER
+ is treated as if it were GL_DRAW_FRAMEBUFFER.
+
+
+ A region within a subset of the framebuffer's attachments may be invalidated.
+ This set of attachments are specified in an array whose address is given
+ by attachments and which contains numAttachments
+ elements. The elements of attachments must be
+ GL_DEPTH_ATTACHMENT, GL_STENCIL_ATTACHMENT
+ GL_DEPTH_STENCIL_ATTACHMENT, or GL_COLOR_ATTACHMENTi,
+ where i is between zero and the value of GL_MAX_FRAMEBUFFER_ATTACHMENTS minus one.
+ Furthermore, if the default framebuffer is bound to target, then
+ attachments may contain GL_FRONT_LEFT,
+ GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT,
+ GL_AUXi, GL_ACCUM,
+ GL_COLOR, GL_DEPTH, or GL_STENCIL, identifying that specific buffer.
+ GL_COLOR, is treated as GL_BACK_LEFT for a double-buffered context and
+ GL_FRONT_LEFT for a single-buffered context.
+
+
+ The region of the framebuffer attachments to be invalidated is specified
+ by x, y, width and height
+ where x and y give the offset from the origin (with
+ lower-left corner at (0, 0)) and width and height
+ give the size. Any pixels lying outside of the window allocated
+ to the current GL context, or outside of the attachments of the currently
+ bound framebuffer object, are ignored.
+ After glInvalidateFramebuffer is executed, the contents
+ of the specified region of the specified attachments become undefined.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target is not one of the
+ accepted framebuffer target tokens.
+
+
+ GL_INVALID_ENUM is generated if any element of attachments is
+ not one of the accepted framebuffer attachment tokens.
+
+
+ GL_INVALID_OPERATION is generated if element of attachments is
+ GL_COLOR_ATTACHMENTi where i is greater than or equal
+ to the value of GL_MAX_COLOR_ATTACHMENTS.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_COLOR_ATTACHMENTS
+
+
+ See Also
+
+ glInvalidateTexSubImage,
+ glInvalidateTexImage,
+ glInvalidateBufferSubData,
+ glInvalidateBufferData,
+ glInvalidateFramebuffer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glInvalidateTexImage.xml b/Source/Bind/Specifications/Docs/glInvalidateTexImage.xml
new file mode 100644
index 00000000..68dd1fc2
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glInvalidateTexImage.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glInvalidateTexImage
+ 3G
+
+
+ glInvalidateTexImage
+ invalidate the entirety a texture image
+
+ C Specification
+
+
+ void glInvalidateTexImage
+ GLuint texture
+ GLint level
+
+
+
+ Parameters
+
+
+ texture
+
+
+ The name of a texture object to invalidate.
+
+
+
+
+ level
+
+
+ The level of detail of the texture object to invalidate.
+
+
+
+
+
+ Description
+
+ glInvalidateTexSubImage invalidates all of
+ a texture image. texture and level indicated
+ which texture image is being invalidated. After this command, data in the texture image has undefined
+ values.
+
+
+ level must be greater than or equal to zero and be
+ less than the base 2 logarithm of the maximum texture width, height, or depth.
+
+
+ For textures of targets GL_TEXTURE_RECTANGLE, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE, or
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY, level must be zero.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if level is
+ less than zero or if it is greater or equal to the base 2 logarithm of the maximum texture width, height, or depth.
+
+
+ GL_INVALID_VALUE is generated if the target of texture
+ is any of GL_TEXTURE_RECTANGLE, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE, or
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY and level is not zero.
+
+
+ GL_INVALID_VALUE is generated if texture is not the
+ name of an existing texture object.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_TEXTURE_SIZE
+
+
+ See Also
+
+ glInvalidateTexSubImage,,
+ glInvalidateBufferSubData,
+ glInvalidateBufferData,
+ glInvalidateFramebuffer,
+ glInvalidateSubFramebuffer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glInvalidateTexSubImage.xml b/Source/Bind/Specifications/Docs/glInvalidateTexSubImage.xml
new file mode 100644
index 00000000..6de5333b
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glInvalidateTexSubImage.xml
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glInvalidateTexSubImage
+ 3G
+
+
+ glInvalidateTexSubImage
+ invalidate a region of a texture image
+
+ C Specification
+
+
+ void glInvalidateTexSubImage
+ GLuint texture
+ GLint level
+ GLint xoffset
+ GLint yoffset
+ GLint zoffset
+ GLsizei width
+ GLsizei height
+ GLsizei depth
+
+
+
+ Parameters
+
+
+ texture
+
+
+ The name of a texture object a subregion of which to invalidate.
+
+
+
+
+ level
+
+
+ The level of detail of the texture object within which the region resides.
+
+
+
+
+ xoffset
+
+
+ The X offset of the region to be invalidated.
+
+
+
+
+ yoffset
+
+
+ The Y offset of the region to be invalidated.
+
+
+
+
+ zoffset
+
+
+ The Z offset of the region to be invalidated.
+
+
+
+
+ width
+
+
+ The width of the region to be invalidated.
+
+
+
+
+ height
+
+
+ The height of the region to be invalidated.
+
+
+
+
+ depth
+
+
+ The depth of the region to be invalidated.
+
+
+
+
+
+ Description
+
+ glInvalidateTexSubImage invalidates all or part of
+ a texture image. texture and level indicated
+ which texture image is being invalidated. After this command, data in that subregion have undefined
+ values. xoffset, yoffset, zoffset, width, height, and depth
+ are interpreted as they are in glTexSubImage3D. For texture targets that
+ don't have certain dimensions, this command treats those dimensions as
+ having a size of 1. For example, to invalidate a portion of a two-
+ dimensional texture, the application would use zoffset equal to zero and
+ depth equal to one. Cube map textures are treated as an array of six
+ slices in the z-dimension, where a value of zoffset is interpreted as
+ specifying face TEXTURE_CUBE_MAP_POSITIVE_X + zoffset.
+
+
+ level must be greater than or equal to zero and be
+ less than the base 2 logarithm of the maximum texture width, height, or depth.
+ xoffset, yoffset and zoffset
+ must be greater than or equal to zero and be less than the width, height or depth
+ of the image, respectively. Furthermore, xoffset + width,
+ yoffset + height, and
+ zoffset + depth must be less
+ than or equal to the width, height or depth of the image, respectively.
+
+
+ For textures of targets GL_TEXTURE_RECTANGLE, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE, or
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY, level must be zero.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if xoffset,
+ yoffset or zoffset is less than zero,
+ or if any of them is greater than the size of the image in the corresponding dimension.
+
+
+ GL_INVALID_VALUE is generated if level is
+ less than zero or if it is greater or equal to the base 2 logarithm of the maximum texture width, height, or depth.
+
+
+ GL_INVALID_VALUE is generated if the target of texture
+ is any of GL_TEXTURE_RECTANGLE, GL_TEXTURE_BUFFER, GL_TEXTURE_2D_MULTISAMPLE, or
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY and level is not zero.
+
+
+ GL_INVALID_VALUE is generated if texture is not the
+ name of an existing texture object.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_TEXTURE_SIZE
+
+
+ See Also
+
+ glInvalidateTexImage,,
+ glInvalidateBufferSubData,
+ glInvalidateBufferData,
+ glInvalidateFramebuffer,
+ glInvalidateSubFramebuffer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glMemoryBarrier.xml b/Source/Bind/Specifications/Docs/glMemoryBarrier.xml
new file mode 100644
index 00000000..97ca2ee4
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glMemoryBarrier.xml
@@ -0,0 +1,323 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group
+
+
+ glMemoryBarrier
+ 3G
+
+
+ glMemoryBarrier
+ defines a barrier ordering memory transactions
+
+ C Specification
+
+
+ void glMemoryBarrier
+ GLbitfield barriers
+
+
+
+ Parameters
+
+
+ barriers
+
+
+ Specifies the barriers to insert. Must be a bitwise combination of GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT,
+ GL_ELEMENT_ARRAY_BARRIER_BIT, GL_UNIFORM_BARRIER_BIT, GL_TEXTURE_FETCH_BARRIER_BIT,
+ GL_SHADER_IMAGE_ACCESS_BARRIER_BIT, GL_COMMAND_BARRIER_BIT, GL_PIXEL_BUFFER_BARRIER_BIT,
+ GL_TEXTURE_UPDATE_BARRIER_BIT, GL_BUFFER_UPDATE_BARRIER_BIT,
+ GL_FRAMEBUFFER_BARRIER_BIT, GL_TRANSFORM_FEEDBACK_BARRIER_BIT, GL_ATOMIC_COUNTER_BARRIER_BIT,
+ or GL_SHADER_STORAGE_BARRIER_BIT.
+ If the special value GL_ALL_BARRIER_BITS is specified, all supported barriers will be inserted.
+
+
+
+
+
+ Description
+
+ glMemoryBarrier defines a barrier ordering the memory transactions issued prior to the
+ command relative to those issued after the barrier. For the purposes of
+ this ordering, memory transactions performed by shaders are considered to
+ be issued by the rendering command that triggered the execution of the
+ shader. barriers is a bitfield indicating the set of operations that
+ are synchronized with shader stores; the bits used in barriers are as
+ follows:
+
+
+
+
+ GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT
+
+
+ If set, vertex data sourced from
+ buffer objects after the barrier will reflect data written by shaders
+ prior to the barrier. The set of buffer objects affected by this bit
+ is derived from the buffer object bindings used for
+ generic vertex attributes derived from the GL_VERTEX_ATTRIB_ARRAY_BUFFER bindings.
+
+
+
+
+ GL_ELEMENT_ARRAY_BARRIER_BIT
+
+
+ If set, vertex array indices sourced from
+ buffer objects after the barrier will reflect data written by shaders
+ prior to the barrier. The buffer objects affected by this bit are
+ derived from the GL_ELEMENT_ARRAY_BUFFER binding.
+
+
+
+
+ GL_UNIFORM_BARRIER_BIT
+
+
+ Shader uniforms sourced from buffer objects after the barrier will reflect data
+ written by shaders prior to the barrier.
+
+
+
+
+ GL_TEXTURE_FETCH_BARRIER_BIT
+
+
+ Texture fetches from shaders, including
+ fetches from buffer object memory via buffer textures, after the
+ barrier will reflect data written by shaders prior to the barrier.
+
+
+
+
+ GL_SHADER_IMAGE_ACCESS_BARRIER_BIT
+
+
+ Memory accesses using shader image
+ load, store, and atomic built-in functions issued after the barrier
+ will reflect data written by shaders prior to the barrier.
+ Additionally, image stores and atomics issued after the barrier will
+ not execute until all memory accesses (e.g., loads, stores, texture
+ fetches, vertex fetches) initiated prior to the barrier complete.
+
+
+
+
+ GL_COMMAND_BARRIER_BIT
+
+
+ Command data sourced from buffer objects by
+ Draw*Indirect commands after the barrier will reflect data written by
+ shaders prior to the barrier. The buffer objects affected by this bit
+ are derived from the GL_DRAW_INDIRECT_BUFFER binding.
+
+
+
+
+ GL_PIXEL_BUFFER_BARRIER_BIT
+
+
+ Reads and writes of buffer objects via the
+ GL_PIXEL_PACK_BUFFER and GL_PIXEL_UNPACK_BUFFER
+ bindings (via glReadPixels,
+ glTexSubImage, etc.) after the
+ barrier will reflect data written by shaders prior to the barrier.
+ Additionally, buffer object writes issued after the barrier will wait
+ on the completion of all shader writes initiated prior to the barrier.
+
+
+
+
+ GL_TEXTURE_UPDATE_BARRIER_BIT
+
+
+ Writes to a texture via glTex(Sub)Image*,
+ glCopyTex(Sub)Image*, glCompressedTex(Sub)Image*, and reads via
+ glGetTexImage after the barrier will reflect data written by shaders
+ prior to the barrier. Additionally, texture writes from these
+ commands issued after the barrier will not execute until all shader
+ writes initiated prior to the barrier complete.
+
+
+
+
+ GL_BUFFER_UPDATE_BARRIER_BIT
+
+
+ Reads or writes via glBufferSubData,
+ glCopyBufferSubData,
+ or glGetBufferSubData, or
+ to buffer object memory mapped by glMapBuffer
+ or glMapBufferRange after the barrier
+ will reflect data written by shaders prior to the barrier.
+ Additionally, writes via these commands issued after the barrier will
+ wait on the completion of any shader writes to the same memory
+ initiated prior to the barrier.
+
+
+
+
+ GL_FRAMEBUFFER_BARRIER_BIT
+
+
+ Reads and writes via framebuffer object
+ attachments after the barrier will reflect data written by shaders
+ prior to the barrier. Additionally, framebuffer writes issued after
+ the barrier will wait on the completion of all shader writes issued
+ prior to the barrier.
+
+
+
+
+ GL_TRANSFORM_FEEDBACK_BARRIER_BIT
+
+
+ Writes via transform feedback
+ bindings after the barrier will reflect data written by shaders prior
+ to the barrier. Additionally, transform feedback writes issued after
+ the barrier will wait on the completion of all shader writes issued
+ prior to the barrier.
+
+
+
+
+ GL_ATOMIC_COUNTER_BARRIER_BIT
+
+
+ Accesses to atomic counters after the
+ barrier will reflect writes prior to the barrier.
+
+
+
+
+ GL_SHADER_STORAGE_BARRIER_BIT
+
+
+ Accesses to shader storage blocks after the
+ barrier will reflect writes prior to the barrier.
+
+
+
+
+ GL_QUERY_BUFFER_BARRIER_BIT
+
+
+ Writes of buffer objects via the GL_QUERY_BUFFER
+ binding after the barrier will reflect data written
+ by shaders prior to the barrier. Additionally, buffer object writes
+ issued after the barrier will wait on the completion of all shader
+ writes initiated prior to the barrier.
+
+
+
+
+
+
+ If barriers is GL_ALL_BARRIER_BITS, shader memory accesses
+ will be synchronized relative to all the operations described above.
+
+
+ Implementations may cache buffer object and texture image memory that
+ could be written by shaders in multiple caches; for example, there may be
+ separate caches for texture, vertex fetching, and one or more caches for
+ shader memory accesses. Implementations are not required to keep these
+ caches coherent with shader memory writes. Stores issued by one
+ invocation may not be immediately observable by other pipeline stages or
+ other shader invocations because the value stored may remain in a cache
+ local to the processor executing the store, or because data overwritten by
+ the store is still in a cache elsewhere in the system. When glMemoryBarrier
+ is called, the GL flushes and/or invalidates any caches relevant to the
+ operations specified by the barriers parameter to ensure consistent
+ ordering of operations across the barrier.
+
+
+ To allow for independent shader invocations to communicate by reads and
+ writes to a common memory address, image variables in the OpenGL Shading
+ Language may be declared as "coherent". Buffer object or texture image
+ memory accessed through such variables may be cached only if caches are
+ automatically updated due to stores issued by any other shader invocation.
+ If the same address is accessed using both coherent and non-coherent
+ variables, the accesses using variables declared as coherent will observe
+ the results stored using coherent variables in other invocations. Using
+ variables declared as "coherent" guarantees only that the results of
+ stores will be immediately visible to shader invocations using
+ similarly-declared variables; calling glMemoryBarrier is required to ensure
+ that the stores are visible to other operations.
+
+
+ The following guidelines may be helpful in choosing when to use coherent
+ memory accesses and when to use barriers.
+
+
+
+ Data that are read-only or constant may be accessed without using
+ coherent variables or calling MemoryBarrier(). Updates to the
+ read-only data via API calls such as BufferSubData will invalidate
+ shader caches implicitly as required.
+
+ Data that are shared between shader invocations at a fine granularity
+ (e.g., written by one invocation, consumed by another invocation) should
+ use coherent variables to read and write the shared data.
+
+ Data written by one shader invocation and consumed by other shader
+ invocations launched as a result of its execution ("dependent
+ invocations") should use coherent variables in the producing shader
+ invocation and call memoryBarrier() after the last write. The consuming
+ shader invocation should also use coherent variables.
+
+ Data written to image variables in one rendering pass and read by the
+ shader in a later pass need not use coherent variables or
+ memoryBarrier(). Calling MemoryBarrier() with the
+ SHADER_IMAGE_ACCESS_BARRIER_BIT set in barriers between passes is
+ necessary.
+
+ Data written by the shader in one rendering pass and read by another
+ mechanism (e.g., vertex or index buffer pulling) in a later pass need
+ not use coherent variables or memoryBarrier(). Calling
+ glMemoryBarrier with the appropriate bits set in barriers between
+ passes is necessary.
+
+
+
+ Notes
+
+ glMemoryBarrier is available only if the GL version is 4.2 or higher.
+
+
+ GL_SHADER_STORAGE_BARRIER_BIT is available only if the GL version is 4.3 or higher.
+
+
+ GL_QUERY_BUFFER_BARRIER_BIT is available only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if barriers contains any unsupported
+ bits, or is not the special value GL_ALL_BARRIER_BITS.
+
+
+ See Also
+
+ glBindImageTexture,
+ glBufferData,
+ glMapBuffer,
+ glMapBufferRange,
+ glFlushMappedBufferRange
+
+
+ Copyright
+
+ Copyright 2011-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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glMinSampleShading.xml b/Source/Bind/Specifications/Docs/glMinSampleShading.xml
new file mode 100644
index 00000000..a114c8b1
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glMinSampleShading.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+
+ 2010
+ Khronos Group.
+
+
+ glMinSampleShading
+ 3G
+
+
+ glMinSampleShading
+ specifies minimum rate at which sample shaing takes place
+
+ C Specification
+
+
+ void glMinSampleShading
+ GLfloat value
+
+
+
+
+ Parameters
+
+
+ value
+
+
+ Specifies the rate at which samples are shaded within each covered pixel.
+
+
+
+
+
+ Description
+
+ glMinSampleShading specifies the rate at which samples are shaded within
+ a covered pixel. Sample-rate shading is enabled by calling glEnable
+ with the parameter GL_SAMPLE_SHADING. If GL_MULTISAMPLE
+ or GL_SAMPLE_SHADING is disabled, sample shading has no effect.
+ Otherwise, an implementation must provide at least as many unique color values for
+ each covered fragment as specified by value times samples where
+ samples is the value of GL_SAMPLES for the current
+ framebuffer. At least 1 sample for each covered fragment is generated.
+
+
+ A value of 1.0 indicates that each sample in the framebuffer should be
+ indpendently shaded. A value of 0.0 effectively allows the GL to ignore
+ sample rate shading. Any value between 0.0 and 1.0 allows the GL to shade only a subset
+ of the total samples within each covered fragment. Which samples are shaded and the algorithm
+ used to select that subset of the fragment's samples is implementation dependent.
+
+
+ Notes
+
+ The type of the value parameter was
+ changed from GLclampf to GLfloat. This change is transparent
+ to user code and is described in detail on the
+ removedTypes
+ page.
+
+
+ Errors
+
+ None.
+
+
+ Associated Gets
+
+ glGet with argument GL_MIN_SAMPLE_SHADING.
+
+
+ glGet with argument GL_SAMPLES.
+
+
+ See Also
+
+ removedTypes
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glMultiDrawArraysIndirect.xml b/Source/Bind/Specifications/Docs/glMultiDrawArraysIndirect.xml
new file mode 100644
index 00000000..4e3f9a7e
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glMultiDrawArraysIndirect.xml
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group.
+
+
+ glMultiDrawArraysIndirect
+ 3G
+
+
+ glMultiDrawArraysIndirect
+ render multiple sets of primitives from array data, taking parameters from memory
+
+ C Specification
+
+
+ void glMultiDrawArraysIndirect
+ GLenum mode
+ const void *indirect
+ GLsizei drawcount
+ GLsizei stride
+
+
+
+
+ Parameters
+
+
+ mode
+
+
+ Specifies what kind of primitives to render.
+ Symbolic constants
+ GL_POINTS,
+ GL_LINE_STRIP,
+ GL_LINE_LOOP,
+ GL_LINES,
+ GL_LINE_STRIP_ADJACENCY,
+ GL_LINES_ADJACENCY,
+ GL_TRIANGLE_STRIP,
+ GL_TRIANGLE_FAN,
+ GL_TRIANGLES,
+ GL_TRIANGLE_STRIP_ADJACENCY,
+ GL_TRIANGLES_ADJACENCY, and
+ GL_PATCHES
+ are accepted.
+
+
+
+
+ indirect
+
+
+ Specifies the address of an array of structures containing the draw parameters.
+
+
+
+
+ drawcount
+
+
+ Specifies the the number of elements in the array of draw parameter structures.
+
+
+
+
+ stride
+
+
+ Specifies the distance in basic machine units between elements of the draw parameter array.
+
+
+
+
+
+ Description
+
+ glMultiDrawArraysIndirect specifies multiple geometric primitives
+ with very few subroutine calls. glMultiDrawArraysIndirect behaves
+ similarly to a multitude of calls to glDrawArraysInstancedBaseInstance,
+ execept that the parameters to each call to glDrawArraysInstancedBaseInstance
+ are stored in an array in memory at the address given by indirect, separated
+ by the stride, in basic machine units, specified by stride. If stride
+ is zero, then the array is assumed to be tightly packed in memory.
+
+
+ The parameters addressed by indirect are packed into an array of structures,
+ each element of which takes the form (in C):
+
+
+
+ A single call to glMultiDrawArraysIndirect is equivalent, assuming no errors
+ are generated to:
+ first, cmd->count, cmd->instanceCount, cmd->baseInstance);
+ }]]>
+
+
+ If a buffer is bound to the GL_DRAW_INDIRECT_BUFFER binding at the time
+ of a call to glMultiDrawArraysIndirect, indirect
+ is interpreted as an offset, in basic machine units, into that buffer and the parameter
+ data is read from the buffer rather than from client memory.
+
+
+ In contrast to glDrawArraysInstancedBaseInstance,
+ the first
member of the parameter structure is unsigned, and out-of-range indices
+ do not generate an error.
+
+
+ Vertex attributes that are modified by glMultiDrawArraysIndirect have an
+ unspecified value after glMultiDrawArraysIndirect returns. Attributes that aren't
+ modified remain well defined.
+
+
+ Notes
+
+ The baseInstance member of the DrawArraysIndirectCommand
+ structure is defined only if the GL version is 4.2 or greater. For versions of the GL less than 4.2,
+ this parameter is present but is reserved and should be set to zero. On earlier versions of the GL,
+ behavior is undefined if it is non-zero.
+
+
+ glMultiDrawArraysIndirect is available only if the GL version is 4.3 or greater.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if mode is not an accepted value.
+
+
+ GL_INVALID_VALUE is generated if stride is not a multiple
+ of four.
+
+
+ GL_INVALID_VALUE is generated if drawcount is negative.
+
+
+ GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an
+ enabled array or to the GL_DRAW_INDIRECT_BUFFER binding and the buffer object's data store is currently mapped.
+
+
+ GL_INVALID_OPERATION is generated if a geometry shader is active and mode
+ is incompatible with the input primitive type of the geometry shader in the currently installed program object.
+
+
+ GL_INVALID_OPERATION is generated if mode is GL_PATCHES
+ and no tessellation control shader is active.
+
+
+ See Also
+
+ glDrawArrays,
+ glDrawArraysInstanced,
+ glDrawElements,
+ glDrawRangeElements,
+ glDrawArraysIndirect,
+ glMultiDrawElementsIndirect
+
+
+ Copyright
+
+ Copyright 2012-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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glMultiDrawElementsIndirect.xml b/Source/Bind/Specifications/Docs/glMultiDrawElementsIndirect.xml
new file mode 100644
index 00000000..6d1b962e
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glMultiDrawElementsIndirect.xml
@@ -0,0 +1,211 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group.
+
+
+ glMultiDrawElementsIndirect
+ 3G
+
+
+ glMultiDrawElementsIndirect
+ render indexed primitives from array data, taking parameters from memory
+
+ C Specification
+
+
+ void glMultiDrawElementsIndirect
+ GLenum mode
+ GLenum type
+ const void *indirect
+ GLsizei drawcount
+ GLsizei stride
+
+
+
+
+ Parameters
+
+
+ mode
+
+
+ Specifies what kind of primitives to render.
+ Symbolic constants
+ GL_POINTS,
+ GL_LINE_STRIP,
+ GL_LINE_LOOP,
+ GL_LINES,
+ GL_LINE_STRIP_ADJACENCY,
+ GL_LINES_ADJACENCY,
+ GL_TRIANGLE_STRIP,
+ GL_TRIANGLE_FAN,
+ GL_TRIANGLES,
+ GL_TRIANGLE_STRIP_ADJACENCY,
+ GL_TRIANGLES_ADJACENCY, and
+ GL_PATCHES
+ are accepted.
+
+
+
+
+ type
+
+
+ Specifies the type of data in the buffer bound to the GL_ELEMENT_ARRAY_BUFFER binding.
+
+
+
+
+ indirect
+
+
+ Specifies the address of a structure containing an array of draw parameters.
+
+
+
+
+ drawcount
+
+
+ Specifies the number of elements in the array addressed by indirect.
+
+
+
+
+ stride
+
+
+ Specifies the distance in basic machine units between elements of the draw parameter array.
+
+
+
+
+
+ Description
+
+ glMultiDrawElementsIndirect specifies multiple indexed geometric primitives
+ with very few subroutine calls. glMultiDrawElementsIndirect behaves
+ similarly to a multitude of calls to glDrawElementsInstancedBaseVertexBaseInstance,
+ execpt that the parameters to glDrawElementsInstancedBaseVertexBaseInstance
+ are stored in an array in memory at the address given by indirect, separated
+ by the stride, in basic machine units, specified by stride. If stride
+ is zero, then the array is assumed to be tightly packed in memory.
+
+
+ The parameters addressed by indirect are packed into a structure
+ that takes the form (in C):
+
+
+
+ A single call to glMultiDrawElementsIndirect is equivalent, assuming no errors
+ are generated to:
+ count,
+ type,
+ cmd->firstIndex + size-of-type,
+ cmd->instanceCount,
+ cmd->baseVertex,
+ cmd->baseInstance);
+ }]]>
+
+
+ If a buffer is bound to the GL_DRAW_INDIRECT_BUFFER binding at the time
+ of a call to glDrawElementsIndirect, indirect
+ is interpreted as an offset, in basic machine units, into that buffer and the parameter
+ data is read from the buffer rather than from client memory.
+
+
+ Note that indices stored in client memory are not supported. If no buffer is bound to the
+ GL_ELEMENT_ARRAY_BUFFER binding, an error will be generated.
+
+
+ The results of the operation are undefined if the reservedMustBeZero
member
+ of the parameter structure is non-zero. However, no error is generated in this case.
+
+
+ Vertex attributes that are modified by glDrawElementsIndirect have an
+ unspecified value after glDrawElementsIndirect returns. Attributes that aren't
+ modified remain well defined.
+
+
+ Notes
+
+ The baseInstance member of the DrawElementsIndirectCommand
+ structure is defined only if the GL version is 4.2 or greater. For versions of the GL less than 4.2,
+ this parameter is present but is reserved and should be set to zero. On earlier versions of the GL,
+ behavior is undefined if it is non-zero.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if mode is not an accepted value.
+
+
+ GL_INVALID_VALUE is generated if stride is not a multiple
+ of four.
+
+
+ GL_INVALID_VALUE is generated if drawcount is negative.
+
+
+ GL_INVALID_OPERATION is generated if no buffer is bound to the GL_ELEMENT_ARRAY_BUFFER
+ binding, or if such a buffer's data store is currently mapped.
+
+
+ GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an
+ enabled array or to the GL_DRAW_INDIRECT_BUFFER binding and the buffer object's data store is currently mapped.
+
+
+ GL_INVALID_OPERATION is generated if a geometry shader is active and mode
+ is incompatible with the input primitive type of the geometry shader in the currently installed program object.
+
+
+ GL_INVALID_OPERATION is generated if mode is GL_PATCHES
+ and no tessellation control shader is active.
+
+
+ See Also
+
+ glDrawArrays,
+ glDrawArraysInstanced,
+ glDrawArraysIndirect,
+ glDrawElements,
+ glDrawRangeElements,
+ glDrawElementsIndirect,
+ glMultiDrawArraysIndirect
+
+
+ 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glObjectLabel.xml b/Source/Bind/Specifications/Docs/glObjectLabel.xml
new file mode 100644
index 00000000..c4784814
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glObjectLabel.xml
@@ -0,0 +1,121 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glObjectLabel
+ 3G
+
+
+ glObjectLabel
+ label a named object identified within a namespace
+
+ C Specification
+
+
+ void glObjectLabel
+ GLenum identifier
+ GLuint name
+ GLsizei length
+ const char * label
+
+
+
+ Parameters
+
+
+ identifier
+
+
+ The namespace from which the name of the object is allocated.
+
+
+
+
+ name
+
+
+ The name of the object to label.
+
+
+
+
+ length
+
+
+ The length of the label to be used for the object.
+
+
+
+
+ label
+
+
+ The address of a string containing the label to assign to the object.
+
+
+
+
+
+ Description
+
+ glObjectLabel labels the object identified by
+ name within the namespace given by identifier.
+ identifier must be one of GL_BUFFER, GL_SHADER,
+ GL_PROGRAM, GL_VERTEX_ARRAY, GL_QUERY,
+ GL_PROGRAM_PIPELINE, GL_TRANSFORM_FEEDBACK, GL_SAMPLER,
+ GL_TEXTURE, GL_RENDERBUFFER, GL_FRAMEBUFFER,
+ to indicate the namespace containing the names of buffers, shaders, programs, vertex array objects, query objects,
+ program pipelines, transform feedback objects, samplers, textures, renderbuffers and frame
+ buffers, respectively.
+
+
+ label is the address of a string that will be used to label an object.
+ length contains the number of characters in label.
+ If length is negative, it is implied that
+ label contains a null-terminated string. If label
+ is NULL, any debug label is effectively removed from the object.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if identifier
+ is not one of the accepted object types.
+
+
+ GL_INVALID_OPERATION is generated if name
+ is not the name of an existing object of the type specified by identifier.
+
+
+ GL_INVALID_VALUE is generated if the number of characters in
+ label, excluding the null terminator when length
+ is negative, is greater than the value of GL_MAX_LABEL_LENGTH.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_LABEL_LENGTH.
+
+
+ See Also
+
+ glPushDebugGroup,
+ glPopDebugGroup,
+ glObjectPtrLabel.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glObjectPtrLabel.xml b/Source/Bind/Specifications/Docs/glObjectPtrLabel.xml
new file mode 100644
index 00000000..1d07effa
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glObjectPtrLabel.xml
@@ -0,0 +1,101 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glObjectPtrLabel
+ 3G
+
+
+ glObjectPtrLabel
+ label a a sync object identified by a pointer
+
+ C Specification
+
+
+ void glObjectPtrLabel
+ void * ptr
+ GLsizei length
+ const char * label
+
+
+
+ Parameters
+
+
+ ptr
+
+
+ A pointer identifying a sync object.
+
+
+
+
+ length
+
+
+ The length of the label to be used for the object.
+
+
+
+
+ label
+
+
+ The address of a string containing the label to assign to the object.
+
+
+
+
+
+ Description
+
+ glObjectPtrLabel labels the sync object identified by
+ ptr.
+
+
+ label is the address of a string that will be used to label the object.
+ length contains the number of characters in label.
+ If length is negative, it is implied that
+ label contains a null-terminated string. If label
+ is NULL, any debug label is effectively removed from the object.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if ptr is not
+ a valid sync object.
+
+
+ GL_INVALID_VALUE is generated if the number of characters in
+ label, excluding the null terminator when length
+ is negative, is greater than the value of GL_MAX_LABEL_LENGTH.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_LABEL_LENGTH.
+
+
+ See Also
+
+ glPushDebugGroup,
+ glPopDebugGroup,
+ glObjectLabel.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glPopDebugGroup.xml b/Source/Bind/Specifications/Docs/glPopDebugGroup.xml
new file mode 100644
index 00000000..1e60eaf2
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glPopDebugGroup.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glPopDebugGroup
+ 3G
+
+
+ glPopDebugGroup
+ pop the active debug group
+
+ C Specification
+
+
+ void glPopDebugGroup
+ void
+
+
+
+ Description
+
+ glPopDebugGroup pops the active debug group.
+ After popping a debug group, the GL will also generate a debug
+ output message describing its cause based on the message
+ string, the source source, and an ID id
+ submitted to the corresponding glPushDebugGroup
+ command. GL_DEBUG_TYPE_PUSH_GROUP and GL_DEBUG_TYPE_POP_GROUP
+ share a single namespace for message id.
+ severity has the value GL_DEBUG_SEVERITY_NOTIFICATION. The type
+ has the value GL_DEBUG_TYPE_POP_GROUP. Popping a debug group restores
+ the debug output volume control of the parent debug group.
+
+
+ Errors
+
+ GL_STACK_UNDERFLOW is generated if an attempt is made to pop the default debug
+ group from the stack.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_DEBUG_MESSAGE_LENGTH.
+
+
+ See Also
+
+ glPushDebugGroup,
+ glObjectLabel,
+ glObjectPtrLabel.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glPushDebugGroup.xml b/Source/Bind/Specifications/Docs/glPushDebugGroup.xml
new file mode 100644
index 00000000..3369b466
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glPushDebugGroup.xml
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glPushDebugGroup
+ 3G
+
+
+ glPushDebugGroup
+ push a named debug group into the command stream
+
+ C Specification
+
+
+ void glPushDebugGroup
+ GLenum source
+ GLuint id
+ GLsizei length
+ const char * message
+
+
+
+ Parameters
+
+
+ source
+
+
+ The source of the debug message.
+
+
+
+
+ id
+
+
+ The identifier of the message.
+
+
+
+
+ length
+
+
+ The length of the message to be sent to the debug output stream.
+
+
+
+
+ message
+
+
+ The a string containing the message to be sent to the debug output stream.
+
+
+
+
+
+ Description
+
+ glPushDebugGroup pushes a debug group described by the string
+ message into the command stream. The value of
+ id specifies the ID of messages generated. The parameter
+ length contains the number of characters in message.
+ If length is negative, it is implied that message
+ contains a null terminated string. The message has the specified source
+ and id, the type GL_DEBUG_TYPE_PUSH_GROUP, and severity
+ GL_DEBUG_SEVERITY_NOTIFICATION. The GL will put a new debug group
+ on top of the debug group stack which inherits the control of the
+ volume of debug output of the debug group previously residing on the
+ top of the debug group stack. Because debug groups are strictly
+ hierarchical, any additional control of the debug output volume will
+ only apply within the active debug group and the debug groups pushed
+ on top of the active debug group.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if the value of source is
+ neither GL_DEBUG_SOURCE_APPLICATION nor GL_DEBUG_SOURCE_THIRD_PARTY.
+
+
+ GL_INVALID_VALUE is generated if length is negative
+ and the number of characters in message, excluding the null-terminator,
+ is not less than the value of GL_MAX_DEBUG_MESSAGE_LENGTH.
+
+
+ Associated Gets
+
+ glGet with argument GL_MAX_DEBUG_MESSAGE_LENGTH.
+
+
+ See Also
+
+ glPopDebugGroup,
+ glObjectLabel,
+ glObjectPtrLabel.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glShaderStorageBlockBinding.xml b/Source/Bind/Specifications/Docs/glShaderStorageBlockBinding.xml
new file mode 100644
index 00000000..46cce8da
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glShaderStorageBlockBinding.xml
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glShaderStorageBlockBinding
+ 3G
+
+
+ glShaderStorageBlockBinding
+ change an active shader storage block binding
+
+ C Specification
+
+
+ void glShaderStorageBlockBinding
+ GLuint program
+ GLuint storageBlockIndex
+ GLuint storageBlockBinding
+
+
+
+ Parameters
+
+
+ program
+
+
+ The name of the program containing the block whose binding to change.
+
+
+
+
+ storageBlockIndex
+
+
+ The index storage block within the program.
+
+
+
+
+ storageBlockBinding
+
+
+ The index storage block binding to associate with the specified storage block.
+
+
+
+
+
+ Description
+
+ glShaderStorageBlockBinding, changes the active
+ shader storage block with an assigned index of storageBlockIndex
+ in program object program. storageBlockIndex must be an active shader storage block
+ index in program. storageBlockBinding must be less than the value of GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS.
+ If successful, glShaderStorageBinding specifies that program will use the data store of
+ the buffer object bound to the binding point storageBlockBinding to read
+ and write the values of the buffer variables in the shader storage block identified by storageBlockIndex.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if attribindex is greater than
+ or equal to the value of GL_MAX_VERTEX_ATTRIBS.
+
+
+ GL_INVAILD_VALUE is generated if bindingindex is greater than
+ or equal to the value of GL_MAX_VERTEX_ATTRIB_BINDINGS.
+
+
+ GL_INVALID_OPERATION is generated if no vertex array object is bound.
+
+
+ Associated Gets
+
+ glGet with arguments GL_SHADER_STORAGE_BUFFER_BINDING,
+ GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS,
+ GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS, GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS,
+ GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS, GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS,
+ GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS or GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS,
+ GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS, or GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glTexBufferRange.xml b/Source/Bind/Specifications/Docs/glTexBufferRange.xml
new file mode 100644
index 00000000..248ae3d6
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glTexBufferRange.xml
@@ -0,0 +1,496 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glTexBufferRange
+ 3G
+
+
+ glTexBufferRange
+ bind a range of a buffer's data store to a buffer texture
+
+ C Specification
+
+
+ void glTexBufferRange
+ GLenum target
+ GLenum internalFormat
+ GLuint buffer
+ GLintptr offset
+ GLsizeiptr size
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specifies the target of the operation and must be GL_TEXTURE_BUFFER.
+
+
+
+
+ internalFormat
+
+
+ Specifies the internal format of the data in the store belonging to buffer.
+
+
+
+
+ buffer
+
+
+ Specifies the name of the buffer object whose storage to attach to the active buffer texture.
+
+
+
+
+ offset
+
+
+ Specifies the offset of the start of the range of the buffer's data store to attach.
+
+
+
+
+ size
+
+
+ Specifies the size of the range of the buffer's data store to attach.
+
+
+
+
+
+ Description
+
+ glTexBufferRange attaches the a range of the data store of the buffer object named buffer to the active
+ buffer texture, and specifies the internal format for the texel array found in the attached buffer object. If buffer
+ is zero, any buffer object attached to the buffer texture is detached and no new buffer object is attached. If buffer
+ is non-zero, it must be the name of an existing buffer object. target must be GL_TEXTURE_BUFFER.
+ The start of the range is specified by offset and the size of the range is specified by size,
+ both measured in basic machine units. offset must be greater than or equal to zero, size must be greater
+ than zero, and the sum of offset and size not exceed the value
+ of GL_BUFFER_SIZE for buffer. Furthermore, offset must be
+ an integer multiple of the value of GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT.
+ internalformat specifies the storage format, and must be one of the following sized internal formats:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Component
+
+
+
+
+
+ Sized Internal Format
+ Base Type
+ Components
+ Norm
+ 0
+ 1
+ 2
+ 3
+
+
+ GL_R8
+ ubyte
+ 1
+ YES
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R16
+ ushort
+ 1
+ YES
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R16F
+ half
+ 1
+ NO
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R32F
+ float
+ 1
+ NO
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R8I
+ byte
+ 1
+ NO
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R16I
+ short
+ 1
+ NO
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R32I
+ int
+ 1
+ NO
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R8UI
+ ubyte
+ 1
+ NO
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R16UI
+ ushort
+ 1
+ NO
+ R
+ 0
+ 0
+ 1
+
+
+ GL_R32UI
+ uint
+ 1
+ NO
+ R
+ 0
+ 0
+ 1
+
+
+ GL_RG8
+ ubyte
+ 2
+ YES
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG16
+ ushort
+ 2
+ YES
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG16F
+ half
+ 2
+ NO
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG32F
+ float
+ 2
+ NO
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG8I
+ byte
+ 2
+ NO
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG16I
+ short
+ 2
+ NO
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG32I
+ int
+ 2
+ NO
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG8UI
+ ubyte
+ 2
+ NO
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG16UI
+ ushort
+ 2
+ NO
+ R
+ G
+ 0
+ 1
+
+
+ GL_RG32UI
+ uint
+ 2
+ NO
+ R
+ G
+ 0
+ 1
+
+
+ GL_RGB32F
+ float
+ 3
+ NO
+ R
+ G
+ B
+ 1
+
+
+ GL_RGB32I
+ int
+ 3
+ NO
+ R
+ G
+ B
+ 1
+
+
+ GL_RGB32UI
+ uint
+ 3
+ NO
+ R
+ G
+ B
+ 1
+
+
+ GL_RGBA8
+ uint
+ 4
+ YES
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA16
+ short
+ 4
+ YES
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA16F
+ half
+ 4
+ NO
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA32F
+ float
+ 4
+ NO
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA8I
+ byte
+ 4
+ NO
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA16I
+ short
+ 4
+ NO
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA32I
+ int
+ 4
+ NO
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA8UI
+ ubyte
+ 4
+ NO
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA16UI
+ ushort
+ 4
+ NO
+ R
+ G
+ B
+ A
+
+
+ GL_RGBA32UI
+ uint
+ 4
+ NO
+ R
+ G
+ B
+ A
+
+
+
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if target is not
+ GL_TEXTURE_BUFFER.
+
+
+ GL_INVALID_VALUE is generated if offset is less than zero.
+
+
+ GL_INVALID_VALUE is generated if size is less than or equal to zero.
+
+
+ GL_INVALID_VALUE is generated if offset + size is
+ greater than the value of GL_BUFFER_SIZE for buffer.
+
+
+ GL_INVALID_VALUE is generated if offset is not
+ an integer multiple of the value of GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT.
+
+
+ Associated Gets
+
+ glGet with argument GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT
+
+
+ glGetTexLevelParameter with arguments GL_TEXTURE_BUFFER_OFFSET
+ or GL_TEXTURE_BUFFER_SIZE.
+
+
+ See Also
+
+ glTexBuffer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glTexStorage1D.xml b/Source/Bind/Specifications/Docs/glTexStorage1D.xml
new file mode 100644
index 00000000..05ffb4d6
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glTexStorage1D.xml
@@ -0,0 +1,164 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group
+
+
+ glTexStorage1D
+ 3G
+
+
+ glTexStorage1D
+ simultaneously specify storage for all levels of a one-dimensional texture
+
+ C Specification
+
+
+ void glTexStorage1D
+ GLenum target
+ GLsizei levels
+ GLenum internalformat
+ GLsizei width
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the operation. target must be
+ either GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.
+
+
+
+
+ levels
+
+
+ Specify the number of texture levels.
+
+
+
+
+ internalformat
+
+
+ Specifies the sized internal format to be used to store texture image data.
+
+
+
+
+ width
+
+
+ Specifies the width of the texture, in texels.
+
+
+
+
+
+ Description
+
+ glTexStorage1D specifies the storage requirements for all levels
+ of a one-dimensional texture simultaneously. Once a texture is specified with this
+ command, the format and dimensions of all levels become immutable unless it is a proxy
+ texture. The contents of the image may still be modified, however, its storage requirements
+ may not change. Such a texture is referred to as an immutable-format
+ texture.
+
+
+ Calling glTexStorage1D is equivalent, assuming no errors are generated,
+ to executing the following pseudo-code:
+
+
+
+ Since no texture data is actually provided, the values used in the pseudo-code
+ for format and type are
+ irrelevant and may be considered to be any values that are legal for the
+ chosen internalformat enumerant. internalformat
+ must be one of the sized internal formats given in Table 1 below, one of the sized depth-component
+ formats GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT24, or
+ GL_DEPTH_COMPONENT16, one of the combined depth-stencil formats,
+ GL_DEPTH32F_STENCIL8, or GL_DEPTH24_STENCIL8, or the
+ stencil-only format, GL_STENCIL_INDEX8. Upon success,
+ the value of GL_TEXTURE_IMMUTABLE_FORMAT becomes
+ GL_TRUE. The value of GL_TEXTURE_IMMUTABLE_FORMAT
+ may be discovered by calling glGetTexParameter
+ with pname set to GL_TEXTURE_IMMUTABLE_FORMAT.
+ No further changes to the dimensions or format of the texture object may be
+ made. Using any command that might alter the dimensions or format of the
+ texture object (such as glTexImage1D or
+ another call to glTexStorage1D) will result in the
+ generation of a GL_INVALID_OPERATION error, even if it
+ would not, in fact, alter the dimensions or format of the object.
+
+
+
+
+
+ Notes
+
+ GL_STENCIL_INDEX8 is accepted for internalformat
+ only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if internalformat is not a
+ valid sized internal format.
+
+
+ GL_INVALID_ENUM is generated if target is not
+ GL_TEXTURE_1D or GL_TEXTURE_2D.
+
+
+ GL_INVALID_VALUE is generated if width or levels
+ are less than 1.
+
+
+ GL_INVALID_OPERATION is generated if levels is greater than
+
+
+
+
+ log
+ 2
+
+
+ width
+
+
+
+ +
+ 1
+
+.
+
+
+ See Also
+
+ glTexImage1D,
+ glTexStorage2D,
+ glTexStorage3D.
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glTexStorage2D.xml b/Source/Bind/Specifications/Docs/glTexStorage2D.xml
new file mode 100644
index 00000000..8fad023f
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glTexStorage2D.xml
@@ -0,0 +1,233 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group
+
+
+ glTexStorage2D
+ 3G
+
+
+ glTexStorage2D
+ simultaneously specify storage for all levels of a two-dimensional or one-dimensional array texture
+
+ C Specification
+
+
+ void glTexStorage2D
+ GLenum target
+ GLsizei levels
+ GLenum internalformat
+ GLsizei width
+ GLsizei height
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the operation. target must be
+ one of GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D,
+ GL_TEXTURE_1D_ARRAY, GL_PROXY_TEXTURE_1D_ARRAY,
+ GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE,
+ or GL_PROXY_TEXTURE_CUBE_MAP.
+
+
+
+
+ levels
+
+
+ Specify the number of texture levels.
+
+
+
+
+ internalformat
+
+
+ Specifies the sized internal format to be used to store texture image data.
+
+
+
+
+ width
+
+
+ Specifies the width of the texture, in texels.
+
+
+
+
+ height
+
+
+ Specifies the height of the texture, in texels.
+
+
+
+
+
+ Description
+
+ glTexStorage2D specifies the storage requirements for all levels
+ of a two-dimensional texture or one-dimensional texture array simultaneously. Once a texture is specified with this
+ command, the format and dimensions of all levels become immutable unless it is a proxy
+ texture. The contents of the image may still be modified, however, its storage requirements
+ may not change. Such a texture is referred to as an immutable-format
+ texture.
+
+
+ The behavior of glTexStorage2D depends on the target parameter.
+ When target is GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D,
+ GL_TEXTURE_RECTANGLE, GL_PROXY_TEXTURE_RECTANGLE or GL_PROXY_TEXTURE_CUBE_MAP,
+ calling glTexStorage2D is equivalent, assuming no errors are generated,
+ to executing the following pseudo-code:
+
+
+
+ When target is GL_TEXTURE_CUBE_MAP, glTexStorage2D
+ is equivalent to:
+
+
+
+ When target is GL_TEXTURE_1D or GL_TEXTURE_1D_ARRAY,
+ glTexStorage2D is equivalent to:
+
+
+
+ Since no texture data is actually provided, the values used in the pseudo-code
+ for format and type are
+ irrelevant and may be considered to be any values that are legal for the
+ chosen internalformat enumerant. internalformat
+ must be one of the sized internal formats given in Table 1 below, one of the sized depth-component
+ formats GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT24, or
+ GL_DEPTH_COMPONENT16, one of the combined depth-stencil formats,
+ GL_DEPTH32F_STENCIL8, or GL_DEPTH24_STENCIL8, or the
+ stencil-only format, GL_STENCIL_INDEX8. Upon success,
+ the value of GL_TEXTURE_IMMUTABLE_FORMAT becomes
+ GL_TRUE. The value of GL_TEXTURE_IMMUTABLE_FORMAT
+ may be discovered by calling glGetTexParameter
+ with pname set to GL_TEXTURE_IMMUTABLE_FORMAT.
+ No further changes to the dimensions or format of the texture object may be
+ made. Using any command that might alter the dimensions or format of the
+ texture object (such as glTexImage2D or
+ another call to glTexStorage2D) will result in the
+ generation of a GL_INVALID_OPERATION error, even if it
+ would not, in fact, alter the dimensions or format of the object.
+
+
+
+
+
+ Notes
+
+ GL_STENCIL_INDEX8 is accepted for internalformat
+ only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if internalformat is not a
+ valid sized internal format.
+
+
+ GL_INVALID_ENUM is generated if target is not
+ one of the accepted target enumerants.
+
+
+ GL_INVALID_VALUE is generated if width or levels
+ are less than 1.
+
+
+ GL_INVALID_OPERATION is generated if target is GL_TEXTURE_1D_ARRAY
+ or GL_PROXY_TEXTURE_1D_ARRAY and levels is greater than
+
+
+
+
+ log
+ 2
+
+
+ width
+
+
+
+ +
+ 1
+
+.
+
+
+ GL_INVALID_OPERATION is generated if target is not GL_TEXTURE_1D_ARRAY
+ or GL_PROXY_TEXTURE_1D_ARRAY and levels is greater than
+
+
+
+
+ log
+ 2
+
+
+
+ max
+
+
+ width
+ ,
+
+ height
+
+
+
+
+
+
+ +
+ 1
+
+.
+
+
+ See Also
+
+ glTexImage2D,
+ glTexStorage1D,
+ glTexStorage3D.
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glTexStorage2DMultisample.xml b/Source/Bind/Specifications/Docs/glTexStorage2DMultisample.xml
new file mode 100644
index 00000000..3c3a5836
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glTexStorage2DMultisample.xml
@@ -0,0 +1,146 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glTexStorage2DMultisample
+ 3G
+
+
+ glTexStorage2DMultisample
+ specify storage for a two-dimensional multisample texture
+
+ C Specification
+
+
+ void glTexStorage2DMultisample
+ GLenum target
+ GLsizei samples
+ GLenum internalformat
+ GLsizei width
+ GLsizei height
+ GLboolean fixedsamplelocations
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the operation. target must be
+ GL_TEXTURE_2D_MULTISAMPLE or GL_PROXY_TEXTURE_2D_MULTISAMPLE.
+
+
+
+
+ samples
+
+
+ Specify the number of samples in the texture.
+
+
+
+
+ internalformat
+
+
+ Specifies the sized internal format to be used to store texture image data.
+
+
+
+
+ width
+
+
+ Specifies the width of the texture, in texels.
+
+
+
+
+ height
+
+
+ Specifies the height of the texture, in texels.
+
+
+
+
+ fixedsamplelocations
+
+
+ Specifies whether the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not
+ depend on the internal format or size of the image.
+
+
+
+
+
+ Description
+
+ glTexStorage2DMultisample specifies the storage requirements for
+ a two-dimensional multisample texture. Once a texture is specified with this
+ command, its format and dimensions become immutable unless it is a proxy
+ texture. The contents of the image may still be modified, however, its storage requirements
+ may not change. Such a texture is referred to as an immutable-format
+ texture.
+
+
+ samples specifies the number of samples to be used for the texture
+ and must be greater than zero and less than or equal to the value of GL_MAX_SAMPLES.
+ internalformat must be a color-renderable, depth-renderable, or stencil-renderable format.
+ width and height specify the width and height,
+ respectively, of the texture. If fixedsamplelocations is GL_TRUE,
+ the image will use identical sample locations and the same number of samples for all texels in the image,
+ and the sample locations will not depend on the internal format or size of the image.
+
+
+
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if internalformat is not a
+ valid color-renderable, depth-renderable or stencil-renderable format.
+
+
+ GL_INVALID_ENUM is generated if target is not
+ one of the accepted target enumerants.
+
+
+ GL_INVALID_VALUE is generated if width or height
+ are less than 1 or greater than the value of GL_MAX_TEXTURE_SIZE.
+
+
+ GL_INVALID_VALUE is generated if samples is greater than the
+ value of GL_MAX_SAMPLES.
+
+
+ GL_INVALID_OPERATION is generated if the value of GL_TEXTURE_IMMUTABLE_FORMAT
+ for the texture bound to target is not GL_FALSE.
+
+
+ See Also
+
+ glTexImage2D,
+ glTexImage2DMultisample,
+ glTexStorage1D,
+ glTexStorage3D.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glTexStorage3D.xml b/Source/Bind/Specifications/Docs/glTexStorage3D.xml
new file mode 100644
index 00000000..185a149e
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glTexStorage3D.xml
@@ -0,0 +1,244 @@
+
+
+
+
+
+
+ 2011
+ Khronos Group
+
+
+ glTexStorage3D
+ 3G
+
+
+ glTexStorage3D
+ simultaneously specify storage for all levels of a three-dimensional, two-dimensional array or cube-map array texture
+
+ C Specification
+
+
+ void glTexStorage3D
+ GLenum target
+ GLsizei levels
+ GLenum internalformat
+ GLsizei width
+ GLsizei height
+ GLsizei depth
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the operation. target must be
+ one of GL_TEXTURE_3D, GL_PROXY_TEXTURE_3D,
+ GL_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY,
+ GL_TEXTURE_CUBE_ARRAY, or GL_PROXY_TEXTURE_CUBE_ARRAY.
+
+
+
+
+ levels
+
+
+ Specify the number of texture levels.
+
+
+
+
+ internalformat
+
+
+ Specifies the sized internal format to be used to store texture image data.
+
+
+
+
+ width
+
+
+ Specifies the width of the texture, in texels.
+
+
+
+
+ height
+
+
+ Specifies the height of the texture, in texels.
+
+
+
+
+ depth
+
+
+ Specifies the depth of the texture, in texels.
+
+
+
+
+
+ Description
+
+ glTexStorage3D specifies the storage requirements for all levels
+ of a three-dimensional, two-dimensional array or cube-map array texture simultaneously. Once a texture is specified with this
+ command, the format and dimensions of all levels become immutable unless it is a proxy
+ texture. The contents of the image may still be modified, however, its storage requirements
+ may not change. Such a texture is referred to as an immutable-format
+ texture.
+
+
+ The behavior of glTexStorage3D depends on the target parameter.
+ When target is GL_TEXTURE_3D, or GL_PROXY_TEXTURE_3D,
+ calling glTexStorage3D is equivalent, assuming no errors are generated,
+ to executing the following pseudo-code:
+
+
+
+ When target is GL_TEXTURE_2D_ARRAY, GL_PROXY_TEXTURE_2D_ARRAY,
+ GL_TEXTURE_CUBE_MAP_ARRAY, or GL_PROXY_TEXTURE_CUBE_MAP_ARRAY, glTexStorage3D
+ is equivalent to:
+
+
+
+ Since no texture data is actually provided, the values used in the pseudo-code
+ for format and type are
+ irrelevant and may be considered to be any values that are legal for the
+ chosen internalformat enumerant. internalformat
+ must be one of the sized internal formats given in Table 1 below, one of the sized depth-component
+ formats GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT24, or
+ GL_DEPTH_COMPONENT16, one of the combined depth-stencil formats,
+ GL_DEPTH32F_STENCIL8, or GL_DEPTH24_STENCIL8, or the
+ stencil-only format, GL_STENCIL_INDEX8. Upon success,
+ the value of GL_TEXTURE_IMMUTABLE_FORMAT becomes
+ GL_TRUE. The value of GL_TEXTURE_IMMUTABLE_FORMAT
+ may be discovered by calling glGetTexParameter
+ with pname set to GL_TEXTURE_IMMUTABLE_FORMAT.
+ No further changes to the dimensions or format of the texture object may be
+ made. Using any command that might alter the dimensions or format of the
+ texture object (such as glTexImage3D or
+ another call to glTexStorage3D) will result in the
+ generation of a GL_INVALID_OPERATION error, even if it
+ would not, in fact, alter the dimensions or format of the object.
+
+
+
+
+
+ Notes
+
+ GL_STENCIL_INDEX8 is accepted for internalformat
+ only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if internalformat is not a
+ valid sized internal format.
+
+
+ GL_INVALID_ENUM is generated if target is not
+ one of the accepted target enumerants.
+
+
+ GL_INVALID_VALUE is generated if width or levels
+ are less than 1.
+
+
+ GL_INVALID_OPERATION is generated if target is GL_TEXTURE_3D
+ or GL_PROXY_TEXTURE_3D and levels is greater than
+
+
+
+
+ log
+ 2
+
+
+
+ max
+
+
+ width
+ ,
+
+ height
+ ,
+
+ depth
+
+
+
+
+
+
+ +
+ 1
+
+.
+
+
+ GL_INVALID_OPERATION is generated if target is GL_TEXTURE_2D_ARRAY,
+ GL_PROXY_TEXTURE_2D_ARRAY, GL_TEXURE_CUBE_ARRAY, or GL_PROXY_TEXTURE_CUBE_MAP_ARRAY
+ and levels is greater than
+
+
+
+
+ log
+ 2
+
+
+
+ max
+
+
+ width
+ ,
+
+ height
+
+
+
+
+
+
+ +
+ 1
+
+.
+
+
+ See Also
+
+ glTexImage3D,
+ glTexStorage1D,
+ glTexStorage2D.
+
+
+ Copyright
+
+ Copyright 2011 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glTexStorage3DMultisample.xml b/Source/Bind/Specifications/Docs/glTexStorage3DMultisample.xml
new file mode 100644
index 00000000..f6afe7b1
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glTexStorage3DMultisample.xml
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glTexStorage3DMultisample
+ 3G
+
+
+ glTexStorage3DMultisample
+ specify storage for a two-dimensional multisample array texture
+
+ C Specification
+
+
+ void glTexStorage3DMultisample
+ GLenum target
+ GLsizei samples
+ GLenum internalformat
+ GLsizei width
+ GLsizei height
+ GLsizei depth
+ GLboolean fixedsamplelocations
+
+
+
+ Parameters
+
+
+ target
+
+
+ Specify the target of the operation. target must be
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY or GL_PROXY_TEXTURE_2D_MULTISAMPLE_MULTISAMPLE.
+
+
+
+
+ samples
+
+
+ Specify the number of samples in the texture.
+
+
+
+
+ internalformat
+
+
+ Specifies the sized internal format to be used to store texture image data.
+
+
+
+
+ width
+
+
+ Specifies the width of the texture, in texels.
+
+
+
+
+ height
+
+
+ Specifies the height of the texture, in texels.
+
+
+
+
+ depth
+
+
+ Specifies the depth of the texture, in layers.
+
+
+
+
+ fixedsamplelocations
+
+
+ Specifies whether the image will use identical sample locations and the same number of samples for all texels in the image, and the sample locations will not
+ depend on the internal format or size of the image.
+
+
+
+
+
+ Description
+
+ glTexStorage3DMultisample specifies the storage requirements for
+ a two-dimensional multisample array texture. Once a texture is specified with this
+ command, its format and dimensions become immutable unless it is a proxy
+ texture. The contents of the image may still be modified, however, its storage requirements
+ may not change. Such a texture is referred to as an immutable-format
+ texture.
+
+
+ samples specifies the number of samples to be used for the texture
+ and must be greater than zero and less than or equal to the value of GL_MAX_SAMPLES.
+ internalformat must be a color-renderable, depth-renderable, or stencil-renderable format.
+ width and height specify the width and height,
+ respectively, of the texture and depth specifies the depth (or the number of layers)
+ of the texture. If fixedsamplelocations is GL_TRUE,
+ the image will use identical sample locations and the same number of samples for all texels in the image,
+ and the sample locations will not depend on the internal format or size of the image.
+
+
+
+
+
+ Errors
+
+ GL_INVALID_ENUM is generated if internalformat is not a
+ valid color-renderable, depth-renderable or stencil-renderable format.
+
+
+ GL_INVALID_ENUM is generated if target is not
+ one of the accepted target enumerants.
+
+
+ GL_INVALID_VALUE is generated if width or height
+ are less than 1 or greater than the value of GL_MAX_TEXTURE_SIZE.
+
+
+ GL_INVALID_VALUE is generated if depth
+ is less than 1 or greater than the value of GL_MAX_ARRAY_TEXTURE_LAYERS.
+
+
+ GL_INVALID_VALUE is generated if samples is greater than the
+ value of GL_MAX_SAMPLES.
+
+
+ GL_INVALID_OPERATION is generated if the value of GL_TEXTURE_IMMUTABLE_FORMAT
+ for the texture bound to target is not GL_FALSE.
+
+
+ Associated Gets
+
+ glGetInteger with arguments GL_MAX_TEXTURE_SIZE,
+ GL_MAX_ARRAY_TEXTURE_LEVELS, GL_TEXTURE_VIEW_MIN_LAYER,
+ GL_TEXTURE_VIEW_NUM_LAYERS, or GL_TEXTURE_IMMUTABLE_LEVELS.
+
+
+ See Also
+
+ glTexImage3D,
+ glTexImage3DMultisample,
+ glTexStorage1D,
+ glTexStorage2DMultisample,
+ glTexStorage3D.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glTextureView.xml b/Source/Bind/Specifications/Docs/glTextureView.xml
new file mode 100644
index 00000000..f73e302c
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glTextureView.xml
@@ -0,0 +1,357 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glTextureView
+ 3G
+
+
+ glTextureView
+ initialize a texture as a data alias of another texture's data store
+
+ C Specification
+
+
+ void glTextureView
+ GLuint texture
+ GLenum target
+ GLuint origtexture
+ GLenum internalformat
+ GLuint minlevel
+ GLuint numlevels
+ GLuint minlayer
+ GLuint numlayers
+
+
+
+ Parameters
+
+
+ texture
+
+
+ Specifies the texture object to be initialized as a view.
+
+
+
+
+ target
+
+
+ Specifies the target to be used for the newly initialized texture.
+
+
+
+
+ origtexture
+
+
+ Specifies the name of a texture object of which to make a view.
+
+
+
+
+ internalFormat
+
+
+ Specifies the internal format for the newly created view.
+
+
+
+
+ minlevel
+
+
+ Specifies lowest level of detail of the view.
+
+
+
+
+ numlevels
+
+
+ Specifies the number of levels of detail to include in the view.
+
+
+
+
+ minlayer
+
+
+ Specifies the index of the first layer to include in the view.
+
+
+
+
+ numlayers
+
+
+ Specifies the number of layers to include in the view.
+
+
+
+
+
+ Description
+
+ glTextureView initializes a texture object as an
+ alias, or view of another texture object, sharing some or all of the
+ parent texture's data store with the initialized texture. texture
+ specifies a name previously reserved by a successful call to glGenTextures
+ but that has not yet been bound or given a target. target
+ specifies the target for the newly initialized texture and must be compatible
+ with the target of the parent texture, given in origtexture
+ as specified in the following table:
+
+
+
+
+
+
+
+ Original Target
+ Compatible New Targets
+
+
+
+
+ GL_TEXTURE_1D
+ GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY
+
+
+ GL_TEXTURE_2D
+ GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY
+
+
+ GL_TEXTURE_3D
+ GL_TEXTURE_3D
+
+
+ GL_TEXTURE_CUBE_MAP
+ GL_TEXTURE_CUBE_MAP, GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTUER_CUBE_MAP_ARRAY
+
+
+ GL_TEXTURE_RECTANGLE
+ GL_TEXTURE_RECTANGLE
+
+
+ GL_TEXTURE_BUFFER
+ none
+
+
+ GL_TEXTURE_1D_ARRAY
+ GL_TEXTURE_1D, GL_TEXTURE_1D_ARRAY
+
+
+ GL_TEXTURE_2D_ARRAY
+ GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY
+
+
+ GL_TEXTURE_CUBE_MAP_ARRAY
+ GL_TEXTURE_CUBE_MAP, GL_TEXTURE_2D, GL_TEXTURE_2D_ARRAY, GL_TEXTUER_CUBE_MAP_ARRAY
+
+
+ GL_TEXTURE_2D_MULTISAMPLE
+ GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_MULTISAMPLE_ARRAY
+
+
+ GL_TEXTURE_2D_MULTISAMPLE_ARRAY
+ GL_TEXTURE_2D_MULTISAMPLE, GL_TEXTURE_MULTISAMPLE_ARRAY
+
+
+
+
+
+ The value of GL_TEXTURE_IMMUTABLE_FORMAT for origtexture
+ must be GL_TRUE.
+ After initialization, texture inherits the data store of
+ the parent texture, origtexture and is usable as a normal
+ texture object with target target. Data in the shared store
+ is reinterpreted with the new internal format specified by internalformat.
+ internalformat must be compatible with the internal format
+ of the parent texture as specified in the following table:
+
+
+
+
+
+
+
+ Class
+ Internal Formats
+
+
+
+
+ 128-bit
+ GL_RGBA32F, GL_RGBA32UI, GL_RGBA32I
+
+
+ 96-bit
+ GL_RGB32F, GL_RGB32UI, GL_RGB32I
+
+
+ 64-bit
+ GL_RGBA16F, GL_RG32F, GL_RGBA16UI,
+ GL_RG32UI, GL_RGBA16I, GL_RG32I, GL_RGBA16, GL_RGBA16_SNORM
+
+
+ 48-bit
+ GL_RGB16, GL_RGB16_SNORM, GL_RGB16F, GL_RGB16UI, GL_RGB16I
+
+
+ 32-bit
+ GL_RG16F, GL_R11F_G11F_B10F, GL_R32F, GL_RGB10_A2UI,
+ GL_RGBA8UI, GL_RG16UI, GL_R32UI, GL_RGBA8I,
+ GL_RG16I, GL_R32I, GL_RGB10_A2, GL_RGBA8,
+ GL_RG16, GL_RGBA8_SNORM, GL_RG16_SNORM, GL_SRGB8_ALPHA8,
+ GL_RGB9_E5
+
+
+ 24-bit
+ GL_RGB8, GL_RGB8_SNORM, GL_SRGB8,
+ GL_RGB8UI, GL_RGB8I
+
+
+ 16-bit
+ GL_R16F, GL_RG8UI, GL_R16UI, GL_RG8I,
+ GL_R16I, GL_RG8, GL_R16, GL_RG8_SNORM, GL_R16_SNORM
+
+
+ 8-bit
+ GL_R8UI, GL_R8I, GL_R8, GL_R8_SNORM
+
+
+ GL_RGTC1_RED
+ GL_COMPRESSED_RED_RGTC1, GL_COMPRESSED_SIGNED_RED_RGTC1
+
+
+ GL_RGTC2_RG
+ GL_COMPRESSED_RG_RGTC2, GL_COMPRESSED_SIGNED_RG_RGTC2
+
+
+ GL_BPTC_UNORM
+ GL_COMPRESSED_RGBA_BPTC_UNORM, GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM
+
+
+ GL_BPTC_FLOAT
+ GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT, GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT
+
+
+
+
+
+ If the original texture is an array or has multiple mipmap levels,
+ the parameters minlayer, numlayers, minlevel, and numlevels
+ control which of those slices and levels are considered part of the texture.
+ The minlevel and minlayer parameters are relative to the view of the
+ original texture. If numlayers or numlevels extend beyond the original
+ texture, they are clamped to the max extent of the original texture.
+
+
+ If the new texture's target is GL_TEXTURE_CUBE_MAP, the clamped numlayers
+ must be equal to 6. If the new texture's target is GL_TEXTURE_CUBE_MAP_ARRAY,
+ then numlayers counts layer-faces rather than layers, and the clamped
+ numlayers must be a multiple of 6. If the new texture's target is GL_TEXTURE_CUBE_MAP or
+ GL_TEXTURE_CUBE_MAP_ARRAY, the width and height of the original texture's
+ levels must be equal.
+
+
+ When the original texture's target is GL_TEXTURE_CUBE_MAP, the layer
+ parameters are interpreted in the same order as if it were a
+ GL_TEXTURE_CUBE_MAP_ARRAY with 6 layer-faces.
+
+
+ If target is GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_RECTANGLE, or
+ GL_TEXTURE_2D_MULTISAMPLE, numlayers must equal 1.
+
+
+ The dimensions of the original texture must be less than or equal to the maximum
+ supported dimensions of the new target. For example, if the original texture has a GL_TEXTURE_2D_ARRAY
+ target and its width is greater than GL_MAX_CUBE_MAP_TEXTURE_SIZE, an error
+ will be generated if glTextureView is called to create a GL_TEXTURE_CUBE_MAP
+ view.
+
+
+ Texture commands that take a level or layer parameter, such as
+ glTexSubImage2D, interpret that parameter to be relative to the view of the
+ texture. i.e. the mipmap level of the data store that would be updated via
+ TexSubImage2D would be the sum of level and the value of
+ GL_TEXTURE_VIEW_MIN_LEVEL.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if minlayer or minlevel
+ are larger than the greatest layer or level of origtexture.
+
+
+ GL_INVALID_OPERATION is generated if target is not compatible
+ with the target of origtexture.
+
+
+ GL_INVALID_OPERATION is generated if the dimensions of origtexture
+ are greater than the maximum supported dimensions for target.
+
+
+ GL_INVALID_OPERATION is generated if internalformat is not compatible
+ with the internal format of origtexture.
+
+
+ GL_INVALID_OPERATION is generated if texture has already been bound
+ or otherwise given a target.
+
+
+ GL_INVALID_OPERATION is generated if the value of GL_TEXTURE_IMMUTABLE_FORMAT
+ for origtexture is not GL_TRUE.
+
+
+ GL_INVALID_OPERATION is generated if origtexture is not the name of an
+ existing texture object.
+
+
+ GL_INVALID_VALUE is generaged if target is GL_TEXTURE_CUBE_MAP
+ and numlayers is not 6, or if target is GL_TEXTURE_CUBE_MAP_ARRAY
+ and numlayers is not an integer multiple of 6.
+
+
+ GL_INVALID_VALUE is generated if target is GL_TEXTURE_1D,
+ GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_RECTANGLE, or
+ GL_TEXTURE_2D_MULTISAMPLE and numlayers does not equal 1.
+
+
+ GL_INVALID_VALUE is generated if texture zero or is not the name of a texture previously
+ returned from a successful call to glGenTextures.
+
+
+ Associated Gets
+
+ glTexParameter with arguments GL_TEXTURE_VIEW_MIN_LEVEL,
+ GL_TEXTURE_VIEW_NUM_LEVELS, GL_TEXTURE_VIEW_MIN_LAYER,
+ GL_TEXTURE_VIEW_NUM_LAYERS, or GL_TEXTURE_IMMUTABLE_LEVELS.
+
+
+ See Also
+
+ glTexStorage1D,
+ glTexStorage2D,
+ glTexStorage3D,
+ glGetTexParameter.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glVertexAttribBinding.xml b/Source/Bind/Specifications/Docs/glVertexAttribBinding.xml
new file mode 100644
index 00000000..258706aa
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glVertexAttribBinding.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glVertexAttribBinding
+ 3G
+
+
+ glVertexAttribBinding
+ associate a vertex attribute and a vertex buffer binding
+
+ C Specification
+
+
+ void glVertexAttribBinding
+ GLuint attribindex
+ GLuint bindingindex
+
+
+
+ Parameters
+
+
+ attribindex
+
+
+ The index of the attribute to associate with a vertex buffer binding.
+
+
+
+
+ bindingindex
+
+
+ The index of the vertex buffer binding with which to associate the generic vertex attribute.
+
+
+
+
+
+ Description
+
+ glVertexAttribBinding, establishes an association between the generic vertex
+ attribute whose index is given by attribindex and a vertex buffer binding
+ whose index is given by bindingindex. attribindex
+ must be less than the value of GL_MAX_VERTEX_ATTRIBS and bindingindex
+ must be less than the value of GL_MAX_VERTEX_ATTRIB_BINDINGS.
+
+
+ Errors
+
+ GL_INVALID_VALUE is generated if attribindex is greater than
+ or equal to the value of GL_MAX_VERTEX_ATTRIBS.
+
+
+ GL_INVAILD_VALUE is generated if bindingindex is greater than
+ or equal to the value of GL_MAX_VERTEX_ATTRIB_BINDINGS.
+
+
+ GL_INVALID_OPERATION is generated if no vertex array object is bound.
+
+
+ Associated Gets
+
+ glGet with arguments GL_MAX_VERTEX_ATTRIB_BINDINGS,
+ GL_VERTEX_BINDING_DIVISOR.
+
+
+ See Also
+
+ glBindVertexBuffer,
+ glVertexAttribFormat,
+ glVertexBindingDivisor,
+ glVertexAttribPointer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glVertexAttribFormat.xml b/Source/Bind/Specifications/Docs/glVertexAttribFormat.xml
new file mode 100644
index 00000000..935e762a
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glVertexAttribFormat.xml
@@ -0,0 +1,201 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glVertexAttribFormat
+ 3G
+
+
+ glVertexAttribFormat
+ specify the organization of vertex arrays
+
+ C Specification
+
+
+ void glVertexAttribFormat
+ GLuint attribindex
+ GLint size
+ GLenum type
+ GLboolean normalized
+ GLuint relativeoffset
+
+
+
+
+ void glVertexAttribIFormat
+ GLuint attribindex
+ GLint size
+ GLenum type
+ GLuint relativeoffset
+
+
+
+
+ void glVertexAttribLFormat
+ GLuint attribindex
+ GLint size
+ GLenum type
+ GLuint relativeoffset
+
+
+
+ Parameters
+
+
+ attribindex
+
+
+ The generic vertex attribute array being described.
+
+
+
+
+ size
+
+
+ The number of values per vertex that are stored in the array.
+
+
+
+
+ type
+
+
+ The type of the data stored in the array.
+
+
+
+
+ normalized
+
+
+ The distance between elements within the buffer.
+
+
+
+
+ relativeoffset
+
+
+ The distance between elements within the buffer.
+
+
+
+
+
+ Description
+
+ glVertexAttribFormat, glVertexAttribIFormat and
+ glVertexAttribLFormat specify the organization of data in vertex arrays.
+ attribindex specifies the index of the generic vertex attribute
+ array whose data layout is being described, and must be less
+ than the value of GL_MAX_VERTEX_ATTRIBS.
+
+
+ size determines the number of components per vertex are allocated
+ to the specifed attribute and must be 1, 2, 3 or 4. type indicates
+ the type of the data. If type is one of GL_BYTE,
+ GL_SHORT, GL_INT, GL_FIXED,
+ GL_FLOAT, GL_HALF_FLOAT, and
+ GL_DOUBLE indicate types GLbyte
, GLshort
,
+ GLint
, GLfixed
, GLfloat
, GLhalf
, and
+ GLdouble
, respectively; the values GL_UNSIGNED_BYTE,
+ GL_UNSIGNED_SHORT, and GL_UNSIGNED_INT indicate types
+ GLubyte
, GLushort
, and GLuint
,
+ respectively; the values GL_INT_2_10_10_10_REV and
+ GL_UNSIGNED_INT_2_10_10_10_REV indicating respectively four signed or
+ unsigned elements packed into a single GLuint
; and the value
+ GL_UNSIGNED_INT_10F_11F_11F_REV indicating three floating point values
+ packed into a single GLuint
.
+
+
+ glVertexAttribLFormat is used to specify layout for
+ data associated with a generic attribute variable declared as 64-bit double precision
+ components. For glVertexAttribLFormat, type
+ must be GL_DOUBLE. In contrast to glVertexAttribFormat,
+ which will cause data declared as GL_DOUBLE to be converted to 32-bit
+ representation, glVertexAttribLFormat causes such data to be left
+ in its natural, 64-bit representation.
+
+
+ For glVertexAttribFormat, if normalized is
+ GL_TRUE, then integer data is normalized to the range [-1, 1] or
+ [0, 1] if it is signed or unsigned, respectively. If noramlized is
+ GL_FALSE then integer data is directly converted to floating point.
+
+
+ relativeoffset is the offset, measured in basic machine units
+ of the first element relative to the start of the vertex buffer binding this attribute
+ fetches from.
+
+
+ glVertexAttribFormat should be used to describe vertex attribute
+ layout for floating-point vertex attributes, glVertexAttribIFormat
+ should be used to describe vertex attribute layout for integer vertex attribute
+ and glVertexAttribLFormat should be used to describe the layout
+ for 64-bit vertex attributes. Data for an array specified by
+ glVertexAttribIFormat will always be left as integer values;
+ such data are referred to as pure integers.
+
+
+ Notes
+
+ GL_UNSIGNED_INT_10F_11F_11F_REV is accepted for type
+ only if the GL version is 4.4 or higher.
+
+
+ Errors
+
+ GL_INVAILD_VALUE is generated if attribindex is greater than
+ or equal to the value of GL_MAX_VERTEX_ATTRIBS.
+
+
+ GL_INVALID_VALUE is generated if size is not
+ one of the accepted values.
+
+
+ GL_INVALID_VALUE is generated if relativeoffset is greater
+ than the value of GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET.
+
+
+ GL_INVALID_ENUM is generated if type is not
+ one of the accepted tokens.
+
+
+ GL_INVALID_OPERATION is generated if no vertex array object is bound.
+
+
+ Associated Gets
+
+ glGet with arguments GL_MAX_VERTEX_ATTRIB_BINDINGS,
+ or GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET.
+
+
+ glGetVertexAttrib with argument GL_VERTEX_ATTRIB_RELATIVE_OFFSET.
+
+
+ See Also
+
+ glBindVertexBuffer,
+ glVertexAttribBinding,
+ glVertexAttribPointer,
+ glVertexBindingDivisor,
+ glVertexAttribPointer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+
diff --git a/Source/Bind/Specifications/Docs/glVertexBindingDivisor.xml b/Source/Bind/Specifications/Docs/glVertexBindingDivisor.xml
new file mode 100644
index 00000000..33be92f1
--- /dev/null
+++ b/Source/Bind/Specifications/Docs/glVertexBindingDivisor.xml
@@ -0,0 +1,91 @@
+
+
+
+
+
+
+ 2012
+ Khronos Group
+
+
+ glVertexBindingDivisor
+ 3G
+
+
+ glVertexBindingDivisor
+ modify the rate at which generic vertex attributes advance
+
+ C Specification
+
+
+ void glVertexBindingDivisor
+ GLuint bindingindex
+ GLuint divisor
+
+
+
+ Parameters
+
+
+ bindingindex
+
+
+ The index of the binding whose divisor to modify.
+
+
+
+
+ divisor
+
+
+ The new value for the instance step rate to apply.
+
+
+
+
+
+ Description
+
+ glVertexBindingDivisor, modifies the rate at which generic vertex attributes advance when
+ rendering multiple instances of primitives in a single draw command. If
+ divisor is zero, the attributes using the buffer bound to bindingindex
+ advance once per vertex. If divisor is non-zero, the attributes advance
+ once per divisor instances of the set(s) of vertices being rendered. An
+ attribute is referred to as instanced if the corresponding divisor
+ value is non-zero.
+
+
+ Errors
+
+ GL_INVAILD_VALUE is generated if bindingindex is greater than
+ or equal to the value of GL_MAX_VERTEX_ATTRIB_BINDINGS.
+
+
+ GL_INVALID_OPERATION is generated if no vertex array object is bound.
+
+
+ Associated Gets
+
+ glGet with arguments GL_MAX_VERTEX_ATTRIB_BINDINGS,
+ GL_VERTEX_BINDING_DIVISOR.
+
+
+ See Also
+
+ glBindVertexBuffer,
+ glVertexAttribBinding,
+ glVertexAttribPointer,
+ glVertexBindingDivisor,
+ glVertexAttribPointer.
+
+
+ Copyright
+
+ Copyright 2012 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/.
+
+
+