From 8107abeb014de7462568f3677c6f7cffdade6bb1 Mon Sep 17 00:00:00 2001 From: Stefanos A Date: Thu, 24 Oct 2013 09:03:15 +0200 Subject: [PATCH] Updated gl4 documentation according to latest manpages --- .../Specifications/Docs/glBindBuffersBase.xml | 131 +++ .../Docs/glBindBuffersRange.xml | 144 ++++ .../Docs/glBindImageTexture.xml | 332 ++++++++ .../Docs/glBindImageTextures.xml | 160 ++++ .../Specifications/Docs/glBindSamplers.xml | 131 +++ .../Specifications/Docs/glBindTextures.xml | 156 ++++ .../Docs/glBindVertexBuffer.xml | 116 +++ .../Docs/glBindVertexBuffers.xml | 151 ++++ .../Specifications/Docs/glBufferStorage.xml | 275 ++++++ .../Specifications/Docs/glClearBufferData.xml | 128 +++ .../Docs/glClearBufferSubData.xml | 149 ++++ .../Specifications/Docs/glClearTexImage.xml | 172 ++++ .../Docs/glClearTexSubImage.xml | 382 +++++++++ .../Docs/glCopyImageSubData.xml | 350 ++++++++ .../Docs/glDebugMessageCallback.xml | 97 +++ .../Docs/glDebugMessageControl.xml | 167 ++++ .../Docs/glDebugMessageInsert.xml | 138 +++ .../Specifications/Docs/glDispatchCompute.xml | 97 +++ .../Docs/glDispatchComputeIndirect.xml | 112 +++ .../glDrawArraysInstancedBaseInstance.xml | 153 ++++ .../glDrawElementsInstancedBaseInstance.xml | 184 ++++ ...lementsInstancedBaseVertexBaseInstance.xml | 170 ++++ .../Docs/glDrawTransformFeedbackInstanced.xml | 134 +++ ...glDrawTransformFeedbackStreamInstanced.xml | 143 ++++ .../Docs/glFramebufferParameteri.xml | 179 ++++ .../Docs/glGetActiveAtomicCounterBufferiv.xml | 157 ++++ .../Docs/glGetActiveUniformsiv.xml | 805 ++++++++++++++++++ .../Docs/glGetDebugMessageLog.xml | 171 ++++ .../Docs/glGetFramebufferParameter.xml | 156 ++++ .../Docs/glGetInternalformativ.xml | 453 ++++++++++ .../Specifications/Docs/glGetObjectLabel.xml | 135 +++ .../Docs/glGetObjectPtrLabel.xml | 119 +++ .../Docs/glGetProgramInterface.xml | 274 ++++++ .../Docs/glGetProgramResource.xml | 429 ++++++++++ .../Docs/glGetProgramResourceIndex.xml | 215 +++++ .../Docs/glGetProgramResourceLocation.xml | 142 +++ .../glGetProgramResourceLocationIndex.xml | 139 +++ .../Docs/glGetProgramResourceName.xml | 240 ++++++ .../Docs/glInvalidateBufferData.xml | 78 ++ .../Docs/glInvalidateBufferSubData.xml | 104 +++ .../Docs/glInvalidateFramebuffer.xml | 123 +++ .../Docs/glInvalidateSubFramebuffer.xml | 169 ++++ .../Docs/glInvalidateTexImage.xml | 101 +++ .../Docs/glInvalidateTexSubImage.xml | 173 ++++ .../Specifications/Docs/glMemoryBarrier.xml | 323 +++++++ .../Docs/glMinSampleShading.xml | 94 ++ .../Docs/glMultiDrawArraysIndirect.xml | 190 +++++ .../Docs/glMultiDrawElementsIndirect.xml | 211 +++++ .../Specifications/Docs/glObjectLabel.xml | 121 +++ .../Specifications/Docs/glObjectPtrLabel.xml | 101 +++ .../Specifications/Docs/glPopDebugGroup.xml | 67 ++ .../Specifications/Docs/glPushDebugGroup.xml | 115 +++ .../Docs/glShaderStorageBlockBinding.xml | 99 +++ .../Specifications/Docs/glTexBufferRange.xml | 496 +++++++++++ .../Specifications/Docs/glTexStorage1D.xml | 164 ++++ .../Specifications/Docs/glTexStorage2D.xml | 233 +++++ .../Docs/glTexStorage2DMultisample.xml | 146 ++++ .../Specifications/Docs/glTexStorage3D.xml | 244 ++++++ .../Docs/glTexStorage3DMultisample.xml | 168 ++++ .../Specifications/Docs/glTextureView.xml | 357 ++++++++ .../Docs/glVertexAttribBinding.xml | 92 ++ .../Docs/glVertexAttribFormat.xml | 201 +++++ .../Docs/glVertexBindingDivisor.xml | 91 ++ 63 files changed, 12047 insertions(+) create mode 100644 Source/Bind/Specifications/Docs/glBindBuffersBase.xml create mode 100644 Source/Bind/Specifications/Docs/glBindBuffersRange.xml create mode 100644 Source/Bind/Specifications/Docs/glBindImageTexture.xml create mode 100644 Source/Bind/Specifications/Docs/glBindImageTextures.xml create mode 100644 Source/Bind/Specifications/Docs/glBindSamplers.xml create mode 100644 Source/Bind/Specifications/Docs/glBindTextures.xml create mode 100644 Source/Bind/Specifications/Docs/glBindVertexBuffer.xml create mode 100644 Source/Bind/Specifications/Docs/glBindVertexBuffers.xml create mode 100644 Source/Bind/Specifications/Docs/glBufferStorage.xml create mode 100644 Source/Bind/Specifications/Docs/glClearBufferData.xml create mode 100644 Source/Bind/Specifications/Docs/glClearBufferSubData.xml create mode 100644 Source/Bind/Specifications/Docs/glClearTexImage.xml create mode 100644 Source/Bind/Specifications/Docs/glClearTexSubImage.xml create mode 100644 Source/Bind/Specifications/Docs/glCopyImageSubData.xml create mode 100644 Source/Bind/Specifications/Docs/glDebugMessageCallback.xml create mode 100644 Source/Bind/Specifications/Docs/glDebugMessageControl.xml create mode 100644 Source/Bind/Specifications/Docs/glDebugMessageInsert.xml create mode 100644 Source/Bind/Specifications/Docs/glDispatchCompute.xml create mode 100644 Source/Bind/Specifications/Docs/glDispatchComputeIndirect.xml create mode 100644 Source/Bind/Specifications/Docs/glDrawArraysInstancedBaseInstance.xml create mode 100644 Source/Bind/Specifications/Docs/glDrawElementsInstancedBaseInstance.xml create mode 100644 Source/Bind/Specifications/Docs/glDrawElementsInstancedBaseVertexBaseInstance.xml create mode 100644 Source/Bind/Specifications/Docs/glDrawTransformFeedbackInstanced.xml create mode 100644 Source/Bind/Specifications/Docs/glDrawTransformFeedbackStreamInstanced.xml create mode 100644 Source/Bind/Specifications/Docs/glFramebufferParameteri.xml create mode 100644 Source/Bind/Specifications/Docs/glGetActiveAtomicCounterBufferiv.xml create mode 100644 Source/Bind/Specifications/Docs/glGetActiveUniformsiv.xml create mode 100644 Source/Bind/Specifications/Docs/glGetDebugMessageLog.xml create mode 100644 Source/Bind/Specifications/Docs/glGetFramebufferParameter.xml create mode 100644 Source/Bind/Specifications/Docs/glGetInternalformativ.xml create mode 100644 Source/Bind/Specifications/Docs/glGetObjectLabel.xml create mode 100644 Source/Bind/Specifications/Docs/glGetObjectPtrLabel.xml create mode 100644 Source/Bind/Specifications/Docs/glGetProgramInterface.xml create mode 100644 Source/Bind/Specifications/Docs/glGetProgramResource.xml create mode 100644 Source/Bind/Specifications/Docs/glGetProgramResourceIndex.xml create mode 100644 Source/Bind/Specifications/Docs/glGetProgramResourceLocation.xml create mode 100644 Source/Bind/Specifications/Docs/glGetProgramResourceLocationIndex.xml create mode 100644 Source/Bind/Specifications/Docs/glGetProgramResourceName.xml create mode 100644 Source/Bind/Specifications/Docs/glInvalidateBufferData.xml create mode 100644 Source/Bind/Specifications/Docs/glInvalidateBufferSubData.xml create mode 100644 Source/Bind/Specifications/Docs/glInvalidateFramebuffer.xml create mode 100644 Source/Bind/Specifications/Docs/glInvalidateSubFramebuffer.xml create mode 100644 Source/Bind/Specifications/Docs/glInvalidateTexImage.xml create mode 100644 Source/Bind/Specifications/Docs/glInvalidateTexSubImage.xml create mode 100644 Source/Bind/Specifications/Docs/glMemoryBarrier.xml create mode 100644 Source/Bind/Specifications/Docs/glMinSampleShading.xml create mode 100644 Source/Bind/Specifications/Docs/glMultiDrawArraysIndirect.xml create mode 100644 Source/Bind/Specifications/Docs/glMultiDrawElementsIndirect.xml create mode 100644 Source/Bind/Specifications/Docs/glObjectLabel.xml create mode 100644 Source/Bind/Specifications/Docs/glObjectPtrLabel.xml create mode 100644 Source/Bind/Specifications/Docs/glPopDebugGroup.xml create mode 100644 Source/Bind/Specifications/Docs/glPushDebugGroup.xml create mode 100644 Source/Bind/Specifications/Docs/glShaderStorageBlockBinding.xml create mode 100644 Source/Bind/Specifications/Docs/glTexBufferRange.xml create mode 100644 Source/Bind/Specifications/Docs/glTexStorage1D.xml create mode 100644 Source/Bind/Specifications/Docs/glTexStorage2D.xml create mode 100644 Source/Bind/Specifications/Docs/glTexStorage2DMultisample.xml create mode 100644 Source/Bind/Specifications/Docs/glTexStorage3D.xml create mode 100644 Source/Bind/Specifications/Docs/glTexStorage3DMultisample.xml create mode 100644 Source/Bind/Specifications/Docs/glTextureView.xml create mode 100644 Source/Bind/Specifications/Docs/glVertexAttribBinding.xml create mode 100644 Source/Bind/Specifications/Docs/glVertexAttribFormat.xml create mode 100644 Source/Bind/Specifications/Docs/glVertexBindingDivisor.xml 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/. + + +