aboutsummaryrefslogtreecommitdiff
path: root/gfxapi/gles/api/extensions.api
diff options
context:
space:
mode:
Diffstat (limited to 'gfxapi/gles/api/extensions.api')
-rw-r--r--gfxapi/gles/api/extensions.api2736
1 files changed, 2736 insertions, 0 deletions
diff --git a/gfxapi/gles/api/extensions.api b/gfxapi/gles/api/extensions.api
new file mode 100644
index 000000000..3e59541f4
--- /dev/null
+++ b/gfxapi/gles/api/extensions.api
@@ -0,0 +1,2736 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glActiveShaderProgramEXT(PipelineId pipeline, ProgramId program) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_alpha_test.txt","GL_QCOM_alpha_test")
+cmd void glAlphaFuncQCOM(GLenum func, GLclampf ref) {
+ requiresExtension(GL_QCOM_alpha_test)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/conditional_render.txt","GL_NV_conditional_render")
+cmd void glBeginConditionalRenderNV(GLuint id, GLenum mode) {
+ requiresExtension(GL_NV_conditional_render)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glBeginPerfMonitorAMD(GLuint monitor) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glBeginPerfQueryINTEL(GLuint queryHandle) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glBeginQueryEXT(GLenum target, QueryId query) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+ requiresExtension(GL_EXT_occlusion_query_boolean)
+ // TODO: Multiple extensions
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glBindProgramPipelineEXT(PipelineId pipeline) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt","GL_OES_vertex_array_object")
+cmd void glBindVertexArrayOES(VertexArrayId array) {
+ requiresExtension(GL_OES_vertex_array_object)
+
+ ctx := GetContext()
+ if !(array in ctx.Instances.VertexArrays) {
+ ctx.Instances.VertexArrays[array] = new!VertexArray()
+ }
+ ctx.BoundVertexArray = array
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/blend_equation_advanced.txt","GL_NV_blend_equation_advanced")
+cmd void glBlendBarrierNV() {
+ requiresExtension(GL_NV_blend_equation_advanced)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glBlendEquationSeparateiOES(GLuint buf, GLenum modeRGB, GLenum modeAlpha) {
+ requiresExtension(GL_OES_draw_buffers_indexed)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glBlendEquationiOES(GLuint buf, GLenum mode) {
+ requiresExtension(GL_OES_draw_buffers_indexed)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glBlendFuncSeparateiOES(GLuint buf,
+ GLenum srcRGB,
+ GLenum dstRGB,
+ GLenum srcAlpha,
+ GLenum dstAlpha) {
+ requiresExtension(GL_OES_draw_buffers_indexed)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glBlendFunciOES(GLuint buf, GLenum src, GLenum dst) {
+ requiresExtension(GL_OES_draw_buffers_indexed)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/blend_equation_advanced.txt","GL_NV_blend_equation_advanced")
+cmd void glBlendParameteriNV(GLenum pname, GLint value) {
+ requiresExtension(GL_NV_blend_equation_advanced)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_blit.txt","GL_ANGLE_framebuffer_blit")
+cmd void glBlitFramebufferANGLE(GLint srcX0,
+ GLint srcY0,
+ GLint srcX1,
+ GLint srcY1,
+ GLint dstX0,
+ GLint dstY0,
+ GLint dstX1,
+ GLint dstY1,
+ GLbitfield mask,
+ GLenum filter) {
+ requiresExtension(GL_ANGLE_framebuffer_blit)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_blit.txt","GL_NV_framebuffer_blit")
+cmd void glBlitFramebufferNV(GLint srcX0,
+ GLint srcY0,
+ GLint srcX1,
+ GLint srcY1,
+ GLint dstX0,
+ GLint dstY0,
+ GLint dstX1,
+ GLint dstY1,
+ GLbitfield mask,
+ GLenum filter) {
+ requiresExtension(GL_NV_framebuffer_blit)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_buffer_storage.txt","GL_EXT_buffer_storage")
+cmd void glBufferStorageEXT(GLenum target, GLsizeiptr size, const void* data, GLbitfield flags) {
+ requiresExtension(GL_EXT_buffer_storage)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd GLenum glClientWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout) {
+ requiresExtension(GL_APPLE_sync)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glColorMaskiOES(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a) {
+ requiresExtension(GL_OES_draw_buffers_indexed)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glCompressedTexImage3DOES(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLsizei imageSize,
+ const void* data) {
+ requiresExtension(GL_OES_texture_3D)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glCompressedTexSubImage3DOES(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLsizei imageSize,
+ const void* data) {
+ requiresExtension(GL_OES_texture_3D)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_copy_buffer.txt","GL_NV_copy_buffer")
+cmd void glCopyBufferSubDataNV(GLenum readTarget,
+ GLenum writeTarget,
+ GLintptr readOffset,
+ GLintptr writeOffset,
+ GLsizeiptr size) {
+ requiresExtension(GL_NV_copy_buffer)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_copy_image.txt","GL_OES_copy_image")
+cmd void glCopyImageSubDataOES(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) {
+ requiresExtension(GL_OES_copy_image)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCopyPathNV(GLuint resultPath, GLuint srcPath) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glCopyTexSubImage3DOES(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height) {
+ requiresExtension(GL_OES_texture_3D)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_copy_texture_levels.txt","GL_APPLE_copy_texture_levels")
+cmd void glCopyTextureLevelsAPPLE(GLuint destinationTexture,
+ GLuint sourceTexture,
+ GLint sourceBaseLevel,
+ GLsizei sourceLevelCount) {
+ requiresExtension(GL_APPLE_copy_texture_levels)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCoverFillPathInstancedNV(GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCoverFillPathNV(GLuint path, GLenum coverMode) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCoverStrokePathInstancedNV(GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glCoverStrokePathNV(GLuint path, GLenum coverMode) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/EGL_NV_coverage_sample.txt","GL_NV_coverage_sample")
+cmd void glCoverageMaskNV(GLboolean mask) {
+ requiresExtension(GL_NV_coverage_sample)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/EGL_NV_coverage_sample.txt","GL_NV_coverage_sample")
+cmd void glCoverageOperationNV(GLenum operation) {
+ requiresExtension(GL_NV_coverage_sample)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glCreatePerfQueryINTEL(GLuint queryId, GLuint* queryHandle) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd GLuint glCreateShaderProgramvEXT(GLenum type, GLsizei count, const GLchar** strings) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glDeleteFencesNV(GLsizei n, const GLuint* fences) {
+ requiresExtension(GL_NV_fence)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glDeletePathsNV(GLuint path, GLsizei range) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glDeletePerfMonitorsAMD(GLsizei n, GLuint* monitors) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glDeletePerfQueryINTEL(GLuint queryHandle) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glDeleteProgramPipelinesEXT(GLsizei n, const PipelineId* pipelines) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glDeleteQueriesEXT(GLsizei count, const QueryId* queries) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+ requiresExtension(GL_EXT_occlusion_query_boolean)
+ // TODO: Multiple extensions
+
+ q := queries[0:count]
+ ctx := GetContext()
+ for i in (0 .. count) {
+ ctx.Instances.Queries[q[i]] = null
+ }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd void glDeleteSyncAPPLE(GLsync sync) {
+ requiresExtension(GL_APPLE_sync)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt","GL_OES_vertex_array_object")
+cmd void glDeleteVertexArraysOES(GLsizei count, const VertexArrayId* arrays) {
+ requiresExtension(GL_OES_vertex_array_object)
+
+ ctx := GetContext()
+ a := arrays[0:count]
+ for i in (0 .. count) {
+ ctx.Instances.VertexArrays[a[i]] = null
+ }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glDepthRangeArrayfvNV(GLuint first, GLsizei count, const GLfloat* v) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glDepthRangeIndexedfNV(GLuint index, GLfloat n, GLfloat f) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt","GL_QCOM_driver_control")
+cmd void glDisableDriverControlQCOM(GLuint driverControl) {
+ requiresExtension(GL_QCOM_driver_control)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glDisableiNV(GLenum target, GLuint index) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glDisableiOES(GLenum target, GLuint index) {
+ requiresExtension(GL_OES_draw_buffers_indexed)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_discard_framebuffer.txt","GL_EXT_discard_framebuffer")
+cmd void glDiscardFramebufferEXT(GLenum target,
+ GLsizei numAttachments,
+ const GLenum* attachments) {
+ requiresExtension(GL_EXT_discard_framebuffer)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt","GL_ANGLE_instanced_arrays")
+cmd void glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount) {
+ requiresExtension(GL_ANGLE_instanced_arrays)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_base_instance.txt","GL_EXT_base_instance")
+cmd void glDrawArraysInstancedBaseInstanceEXT(GLenum mode,
+ GLint first,
+ GLsizei count,
+ GLsizei instancecount,
+ GLuint baseinstance) {
+ requiresExtension(GL_EXT_base_instance)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/draw_instanced.txt","GL_EXT_draw_instanced")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt","GL_EXT_instanced_arrays")
+cmd void glDrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount) {
+ requiresExtension(GL_EXT_draw_instanced)
+ requiresExtension(GL_EXT_instanced_arrays)
+ // TODO: Multiple extensions
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_draw_instanced.txt","GL_NV_draw_instanced")
+cmd void glDrawArraysInstancedNV(GLenum mode, GLint first, GLsizei count, GLsizei primcount) {
+ requiresExtension(GL_NV_draw_instanced)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_buffers.txt","GL_EXT_draw_buffers")
+cmd void glDrawBuffersEXT(GLsizei n, const GLenum* bufs) {
+ requiresExtension(GL_EXT_draw_buffers)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt","GL_EXT_multiview_draw_buffers")
+cmd void glDrawBuffersIndexedEXT(GLint n, const GLenum* location, const GLint* indices) {
+ requiresExtension(GL_EXT_multiview_draw_buffers)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_draw_buffers.txt","GL_NV_draw_buffers")
+cmd void glDrawBuffersNV(GLsizei n, const GLenum* bufs) {
+ requiresExtension(GL_NV_draw_buffers)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt","GL_EXT_draw_elements_base_vertex")
+cmd void glDrawElementsBaseVertexEXT(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLint basevertex) {
+ requiresExtension(GL_EXT_draw_elements_base_vertex)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt","GL_OES_draw_elements_base_vertex")
+cmd void glDrawElementsBaseVertexOES(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLint basevertex) {
+ requiresExtension(GL_OES_draw_elements_base_vertex)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt","GL_ANGLE_instanced_arrays")
+cmd void glDrawElementsInstancedANGLE(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei primcount) {
+ requiresExtension(GL_ANGLE_instanced_arrays)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_base_instance.txt","GL_EXT_base_instance")
+cmd void glDrawElementsInstancedBaseInstanceEXT(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei instancecount,
+ GLuint baseinstance) {
+ requiresExtension(GL_EXT_base_instance)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt","GL_EXT_draw_elements_base_vertex")
+cmd void glDrawElementsInstancedBaseVertexEXT(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei instancecount,
+ GLint basevertex) {
+ requiresExtension(GL_EXT_draw_elements_base_vertex)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt","GL_OES_draw_elements_base_vertex")
+cmd void glDrawElementsInstancedBaseVertexOES(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei instancecount,
+ GLint basevertex) {
+ requiresExtension(GL_OES_draw_elements_base_vertex)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_base_instance.txt","GL_EXT_base_instance")
+cmd void glDrawElementsInstancedBaseVertexBaseInstanceEXT(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei instancecount,
+ GLint basevertex,
+ GLuint baseinstance) {
+ requiresExtension(GL_EXT_base_instance)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/draw_instanced.txt","GL_EXT_draw_instanced")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt","GL_EXT_instanced_arrays")
+cmd void glDrawElementsInstancedEXT(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei primcount) {
+ requiresExtension(GL_EXT_draw_instanced)
+ requiresExtension(GL_EXT_instanced_arrays)
+ // TODO: Multiple extensions
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_draw_instanced.txt","GL_NV_draw_instanced")
+cmd void glDrawElementsInstancedNV(GLenum mode,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLsizei primcount) {
+ requiresExtension(GL_NV_draw_instanced)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt","GL_EXT_draw_elements_base_vertex")
+cmd void glDrawRangeElementsBaseVertexEXT(GLenum mode,
+ GLuint start,
+ GLuint end,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLint basevertex) {
+ requiresExtension(GL_EXT_draw_elements_base_vertex)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt","GL_OES_draw_elements_base_vertex")
+cmd void glDrawRangeElementsBaseVertexOES(GLenum mode,
+ GLuint start,
+ GLuint end,
+ GLsizei count,
+ GLenum type,
+ const void* indices,
+ GLint basevertex) {
+ requiresExtension(GL_OES_draw_elements_base_vertex)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt","GL_OES_EGL_image")
+cmd void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) {
+ requiresExtension(GL_OES_EGL_image)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_EGL_image.txt","GL_OES_EGL_image")
+cmd void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) {
+ requiresExtension(GL_OES_EGL_image)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt","GL_QCOM_driver_control")
+cmd void glEnableDriverControlQCOM(GLuint driverControl) {
+ requiresExtension(GL_QCOM_driver_control)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glEnableiNV(GLenum target, GLuint index) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd void glEnableiOES(GLenum target, GLuint index) {
+ requiresExtension(GL_OES_draw_buffers_indexed)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/conditional_render.txt","GL_NV_conditional_render")
+cmd void glEndConditionalRenderNV() {
+ requiresExtension(GL_NV_conditional_render)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glEndPerfMonitorAMD(GLuint monitor) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glEndPerfQueryINTEL(GLuint queryHandle) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glEndQueryEXT(GLenum target) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+ requiresExtension(GL_EXT_occlusion_query_boolean)
+ // TODO: Multiple extensions
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_tiled_rendering.txt","GL_QCOM_tiled_rendering")
+cmd void glEndTilingQCOM(GLbitfield preserve_mask) {
+ requiresExtension(GL_QCOM_tiled_rendering)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetBufferPointervQCOM(GLenum target, void** params) {
+ requiresExtension(GL_QCOM_extended_get)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetBuffersQCOM(BufferId* buffers, GLint maxBuffers, GLint* numBuffers) {
+ requiresExtension(GL_QCOM_extended_get)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetFramebuffersQCOM(FramebufferId* framebuffers,
+ GLint maxFramebuffers,
+ GLint* numFramebuffers) {
+ requiresExtension(GL_QCOM_extended_get)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt","GL_QCOM_extended_get2")
+cmd void glExtGetProgramBinarySourceQCOM(ProgramId program,
+ GLenum shadertype,
+ GLchar* source,
+ GLint* length) {
+ requiresExtension(GL_QCOM_extended_get2)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt","GL_QCOM_extended_get2")
+cmd void glExtGetProgramsQCOM(ProgramId* programs, GLint maxPrograms, GLint* numPrograms) {
+ requiresExtension(GL_QCOM_extended_get2)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetRenderbuffersQCOM(RenderbufferId* renderbuffers,
+ GLint maxRenderbuffers,
+ GLint* numRenderbuffers) {
+ requiresExtension(GL_QCOM_extended_get)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt","GL_QCOM_extended_get2")
+cmd void glExtGetShadersQCOM(ShaderId* shaders, GLint maxShaders, GLint* numShaders) {
+ requiresExtension(GL_QCOM_extended_get2)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetTexLevelParameterivQCOM(TextureId texture,
+ GLenum face,
+ GLint level,
+ GLenum pname,
+ GLint* params) {
+ requiresExtension(GL_QCOM_extended_get)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetTexSubImageQCOM(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLenum type,
+ void* texels) {
+ requiresExtension(GL_QCOM_extended_get)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtGetTexturesQCOM(TextureId* textures, GLint maxTextures, GLint* numTextures) {
+ requiresExtension(GL_QCOM_extended_get)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get2.txt","GL_QCOM_extended_get2")
+cmd GLboolean glExtIsProgramBinaryQCOM(ProgramId program) {
+ requiresExtension(GL_QCOM_extended_get2)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_extended_get.txt","GL_QCOM_extended_get")
+cmd void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param) {
+ requiresExtension(GL_QCOM_extended_get)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd GLsync glFenceSyncAPPLE(GLenum condition, GLbitfield flags) {
+ requiresExtension(GL_APPLE_sync)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glFinishFenceNV(GLuint fence) {
+ requiresExtension(GL_NV_fence)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_map_buffer_range.txt","GL_EXT_map_buffer_range")
+cmd void glFlushMappedBufferRangeEXT(GLenum target, GLintptr offset, GLsizeiptr length) {
+ requiresExtension(GL_EXT_map_buffer_range)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt","GL_EXT_multisampled_render_to_texture")
+cmd void glFramebufferTexture2DMultisampleEXT(GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ TextureId texture,
+ GLint level,
+ GLsizei samples) {
+ requiresExtension(GL_EXT_multisampled_render_to_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/IMG/IMG_multisampled_render_to_texture.txt","GL_IMG_multisampled_render_to_texture")
+cmd void glFramebufferTexture2DMultisampleIMG(GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ TextureId texture,
+ GLint level,
+ GLsizei samples) {
+ requiresExtension(GL_IMG_multisampled_render_to_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glFramebufferTexture3DOES(GLenum target,
+ GLenum attachment,
+ GLenum textarget,
+ TextureId texture,
+ GLint level,
+ GLint zoffset) {
+ requiresExtension(GL_OES_texture_3D)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_geometry_shader.txt","GL_OES_geometry_shader")
+cmd void glFramebufferTextureOES(GLenum target, GLenum attachment, TextureId texture, GLint level) {
+ requiresExtension(GL_OES_geometry_shader)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OVR/multiview.txt","GL_OVR_multiview")
+cmd void glFramebufferTextureMultiviewOVR(GLenum target,
+ GLenum attachment,
+ TextureId texture,
+ GLint level,
+ GLint baseViewIndex,
+ GLsizei numViews) {
+ requiresExtension(GL_OVR_multiview)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glGenFencesNV(GLsizei n, GLuint* fences) {
+ requiresExtension(GL_NV_fence)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLuint glGenPathsNV(GLsizei range) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGenPerfMonitorsAMD(GLsizei n, GLuint* monitors) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glGenProgramPipelinesEXT(GLsizei n, PipelineId* pipelines) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glGenQueriesEXT(GLsizei count, QueryId* queries) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+ requiresExtension(GL_EXT_occlusion_query_boolean)
+ // TODO: Multiple extensions
+
+ q := queries[0:count]
+ ctx := GetContext()
+ for i in (0 .. count) {
+ id := as!QueryId(?)
+ ctx.Instances.Queries[id] = new!Query()
+ q[i] = id
+ }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt","GL_OES_vertex_array_object")
+cmd void glGenVertexArraysOES(GLsizei count, VertexArrayId* arrays) {
+ requiresExtension(GL_OES_vertex_array_object)
+
+ a := arrays[0:count]
+ ctx := GetContext()
+ for i in (0 .. count) {
+ id := as!VertexArrayId(?)
+ ctx.Instances.VertexArrays[id] = new!VertexArray()
+ a[i] = id
+ }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt","GL_OES_mapbuffer")
+cmd void glGetBufferPointervOES(GLenum target, GLenum pname, void** params) {
+ requiresExtension(GL_OES_mapbuffer)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt","GL_QCOM_driver_control")
+cmd void glGetDriverControlStringQCOM(GLuint driverControl,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLchar* driverControlString) {
+ requiresExtension(GL_QCOM_driver_control)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_driver_control.txt","GL_QCOM_driver_control")
+cmd void glGetDriverControlsQCOM(GLint* num, GLsizei size, GLuint* driverControls) {
+ requiresExtension(GL_QCOM_driver_control)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glGetFenceivNV(GLuint fence, GLenum pname, GLint* params) {
+ requiresExtension(GL_NV_fence)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetFirstPerfQueryIdINTEL(GLuint* queryId) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glGetFloati_vNV(GLenum target, GLuint index, GLfloat* data) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt","GL_EXT_robustness")
+cmd GLenum glGetGraphicsResetStatusEXT() {
+ requiresExtension(GL_EXT_robustness)
+
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd GLenum glGetGraphicsResetStatusKHR() {
+ requiresExtension(GL_KHR_robustness)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd GLuint64 glGetImageHandleNV(TextureId texture,
+ GLint level,
+ GLboolean layered,
+ GLint layer,
+ GLenum format) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd void glGetInteger64vAPPLE(GLenum pname, GLint64* params) {
+ requiresExtension(GL_APPLE_sync)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt","GL_EXT_multiview_draw_buffers")
+cmd void glGetIntegeri_vEXT(GLenum target, GLuint index, GLint* data) {
+ requiresExtension(GL_EXT_multiview_draw_buffers)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/internalformat_sample_query.txt","GL_NV_internalformat_sample_query")
+cmd void glGetInternalformatSampleivNV(GLenum target,
+ GLenum internalformat,
+ GLsizei samples,
+ GLenum pname,
+ GLsizei bufSize,
+ GLint* params) {
+ requiresExtension(GL_NV_internalformat_sample_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetNextPerfQueryIdINTEL(GLuint queryId, GLuint* nextQueryId) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_label.txt","GL_EXT_debug_label")
+cmd void glGetObjectLabelEXT(GLenum type,
+ GLuint object,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLchar* label) {
+ requiresExtension(GL_EXT_debug_label)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathCommandsNV(GLuint path, GLubyte* commands) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathCoordsNV(GLuint path, GLfloat* coords) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathDashArrayNV(GLuint path, GLfloat* dashArray) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLfloat glGetPathLengthNV(GLuint path, GLsizei startSegment, GLsizei numSegments) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathMetricRangeNV(GLbitfield metricQueryMask,
+ GLuint firstPathName,
+ GLsizei numPaths,
+ GLsizei stride,
+ GLfloat* metrics) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathMetricsNV(GLbitfield metricQueryMask,
+ GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLsizei stride,
+ GLfloat* metrics) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathParameterfvNV(GLuint path, GLenum pname, GLfloat* value) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathParameterivNV(GLuint path, GLenum pname, GLint* value) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetPathSpacingNV(GLenum pathListMode,
+ GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLfloat advanceScale,
+ GLfloat kerningScale,
+ GLenum transformType,
+ GLfloat* returnedSpacing) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetPerfCounterInfoINTEL(GLuint queryId,
+ GLuint counterId,
+ GLuint counterNameLength,
+ GLchar* counterName,
+ GLuint counterDescLength,
+ GLchar* counterDesc,
+ GLuint* counterOffset,
+ GLuint* counterDataSize,
+ GLuint* counterTypeEnum,
+ GLuint* counterDataTypeEnum,
+ GLuint64* rawCounterMaxValue) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorCounterDataAMD(GLuint monitor,
+ GLenum pname,
+ GLsizei dataSize,
+ GLuint* data,
+ GLint* bytesWritten) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, void* data) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorCounterStringAMD(GLuint group,
+ GLuint counter,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLchar* counterString) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorCountersAMD(GLuint group,
+ GLint* numCounters,
+ GLint* maxActiveCounters,
+ GLsizei counterSize,
+ GLuint* counters) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorGroupStringAMD(GLuint group,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLchar* groupString) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glGetPerfMonitorGroupsAMD(GLint* numGroups, GLsizei groupsSize, GLuint* groups) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetPerfQueryDataINTEL(GLuint queryHandle,
+ GLuint flags,
+ GLsizei dataSize,
+ GLvoid* data,
+ GLuint* bytesWritten) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetPerfQueryIdByNameINTEL(GLchar* queryName, GLuint* queryId) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/INTEL/performance_query.txt","GL_INTEL_performance_query")
+cmd void glGetPerfQueryInfoINTEL(GLuint queryId,
+ GLuint queryNameLength,
+ GLchar* queryName,
+ GLuint* dataSize,
+ GLuint* noCounters,
+ GLuint* noInstances,
+ GLuint* capsMask) {
+ requiresExtension(GL_INTEL_performance_query)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_get_program_binary.txt","GL_OES_get_program_binary")
+cmd void glGetProgramBinaryOES(ProgramId program,
+ GLsizei buffer_size,
+ GLsizei* bytes_written,
+ GLenum* binary_format,
+ void* binary) {
+ requiresExtension(GL_OES_get_program_binary)
+
+ l := as!s32(?)
+ bytes_written[0] = l
+ binary_format[0] = ?
+ write(binary[0:l])
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glGetProgramPipelineInfoLogEXT(PipelineId pipeline,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLchar* infoLog) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glGetProgramPipelineivEXT(PipelineId pipeline, GLenum pname, GLint* params) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glGetProgramResourcefvNV(ProgramId program,
+ GLenum programInterface,
+ GLuint index,
+ GLsizei propCount,
+ const GLenum* props,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLfloat* params) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+cmd void glGetQueryObjecti64vEXT(QueryId query, GLenum parameter, GLint64* value) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+
+ value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+cmd void glGetQueryObjectivEXT(QueryId query, GLenum parameter, GLint* value) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+
+ value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+cmd void glGetQueryObjectui64vEXT(QueryId query, GLenum parameter, GLuint64* value) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+
+ value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glGetQueryObjectuivEXT(QueryId query, GLenum parameter, GLuint* value) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+ requiresExtension(GL_EXT_occlusion_query_boolean)
+ // TODO: Multiple extensions
+
+ value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd void glGetQueryivEXT(GLenum target, GLenum parameter, GLint* value) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+ requiresExtension(GL_EXT_occlusion_query_boolean)
+ // TODO: Multiple extensions
+
+ value[0] = ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glGetSamplerParameterIivOES(SamplerId sampler, GLenum pname, GLint* params) {
+ requiresExtension(GL_OES_texture_border_clamp)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glGetSamplerParameterIuivOES(SamplerId sampler, GLenum pname, GLuint* params) {
+ requiresExtension(GL_OES_texture_border_clamp)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd void glGetSyncivAPPLE(GLsync sync,
+ GLenum pname,
+ GLsizei bufSize,
+ GLsizei* length,
+ GLint* values) {
+ requiresExtension(GL_APPLE_sync)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glGetTexParameterIivOES(GLenum target, GLenum pname, GLint* params) {
+ requiresExtension(GL_OES_texture_border_clamp)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glGetTexParameterIuivOES(GLenum target, GLenum pname, GLuint* params) {
+ requiresExtension(GL_OES_texture_border_clamp)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd GLuint64 glGetTextureHandleNV(TextureId texture) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd GLuint64 glGetTextureSamplerHandleNV(TextureId texture, SamplerId sampler) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_translated_shader_source.txt","GL_ANGLE_translated_shader_source")
+cmd void glGetTranslatedShaderSourceANGLE(ShaderId shader,
+ GLsizei bufsize,
+ GLsizei* length,
+ GLchar* source) {
+ requiresExtension(GL_ANGLE_translated_shader_source)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt","GL_EXT_robustness")
+cmd void glGetnUniformfvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei bufSize,
+ GLfloat* params) {
+ requiresExtension(GL_EXT_robustness)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd void glGetnUniformfvKHR(ProgramId program,
+ UniformLocation location,
+ GLsizei bufSize,
+ GLfloat* params) {
+ requiresExtension(GL_KHR_robustness)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt","GL_EXT_robustness")
+cmd void glGetnUniformivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei bufSize,
+ GLint* params) {
+ requiresExtension(GL_EXT_robustness)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd void glGetnUniformivKHR(ProgramId program,
+ UniformLocation location,
+ GLsizei bufSize,
+ GLint* params) {
+ requiresExtension(GL_KHR_robustness)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd void glGetnUniformuivKHR(ProgramId program,
+ UniformLocation location,
+ GLsizei bufSize,
+ GLuint* params) {
+ requiresExtension(GL_KHR_robustness)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt","GL_EXT_debug_marker")
+cmd void glInsertEventMarkerEXT(GLsizei length, const GLchar* marker) {
+ requiresExtension(GL_EXT_debug_marker)
+
+ if length > 0 {
+ read(marker[0:length])
+ } else {
+ _ = as!string(marker)
+ }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glInterpolatePathsNV(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_buffers_indexed.txt","GL_OES_draw_buffers_indexed")
+cmd bool glIsEnablediOES(GLenum target, GLuint index) {
+ requiresExtension(GL_OES_draw_buffers_indexed)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd bool glIsEnablediNV(GLenum target, GLuint index) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd bool glIsFenceNV(GLuint fence) {
+ requiresExtension(GL_NV_fence)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd bool glIsImageHandleResidentNV(GLuint64 handle) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd bool glIsPathNV(GLuint path) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd bool glIsPointInFillPathNV(GLuint path, GLuint mask, GLfloat x, GLfloat y) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd bool glIsPointInStrokePathNV(GLuint path, GLfloat x, GLfloat y) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd bool glIsProgramPipelineEXT(PipelineId pipeline) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_occlusion_query_boolean.txt","GL_EXT_occlusion_query_boolean")
+cmd bool glIsQueryEXT(QueryId query) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+ requiresExtension(GL_EXT_occlusion_query_boolean)
+ // TODO: Multiple extensions
+
+ ctx := GetContext()
+ return query in ctx.Instances.Queries
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd bool glIsSyncAPPLE(GLsync sync) {
+ requiresExtension(GL_APPLE_sync)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd bool glIsTextureHandleResidentNV(GLuint64 handle) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_vertex_array_object.txt","GL_OES_vertex_array_object")
+cmd bool glIsVertexArrayOES(VertexArrayId array) {
+ requiresExtension(GL_OES_vertex_array_object)
+
+ ctx := GetContext()
+ return array in ctx.Instances.VertexArrays
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_label.txt","GL_EXT_debug_label")
+cmd void glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar* label) {
+ requiresExtension(GL_EXT_debug_label)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glMakeImageHandleNonResidentNV(GLuint64 handle) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glMakeImageHandleResidentNV(GLuint64 handle, GLenum access) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glMakeTextureHandleNonResidentNV(GLuint64 handle) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glMakeTextureHandleResidentNV(GLuint64 handle) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt","GL_OES_mapbuffer")
+cmd void* glMapBufferOES(GLenum target, GLenum access) {
+ requiresExtension(GL_OES_mapbuffer)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_map_buffer_range.txt","GL_EXT_map_buffer_range")
+cmd void* glMapBufferRangeEXT(GLenum target,
+ GLintptr offset,
+ GLsizeiptr length,
+ GLbitfield access) {
+ requiresExtension(GL_EXT_map_buffer_range)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixLoad3x2fNV(GLenum matrixMode, const GLfloat* m) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixLoad3x3fNV(GLenum matrixMode, const GLfloat* m) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixLoadTranspose3x3fNV(GLenum matrixMode, const GLfloat* m) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixMult3x2fNV(GLenum matrixMode, const GLfloat* m) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixMult3x3fNV(GLenum matrixMode, const GLfloat* m) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glMatrixMultTranspose3x3fNV(GLenum matrixMode, const GLfloat* m) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/multi_draw_arrays.txt","GL_EXT_multi_draw_arrays")
+cmd void glMultiDrawArraysEXT(GLenum mode,
+ const GLint* first,
+ const GLsizei* count,
+ GLsizei primcount) {
+ requiresExtension(GL_EXT_multi_draw_arrays)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multi_draw_indirect.txt","GL_EXT_multi_draw_indirect")
+cmd void glMultiDrawArraysIndirectEXT(GLenum mode,
+ const void* indirect,
+ GLsizei drawcount,
+ GLsizei stride) {
+ requiresExtension(GL_EXT_multi_draw_indirect)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_elements_base_vertex.txt","GL_EXT_draw_elements_base_vertex")
+cmd void glMultiDrawElementsBaseVertexEXT(GLenum mode,
+ const GLsizei* count,
+ GLenum type,
+ const void* const* indices,
+ GLsizei primcount,
+ const GLint* basevertex) {
+ requiresExtension(GL_EXT_draw_elements_base_vertex)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_draw_elements_base_vertex.txt","GL_OES_draw_elements_base_vertex")
+cmd void glMultiDrawElementsBaseVertexOES(GLenum mode,
+ const GLsizei* count,
+ GLenum type,
+ const void* const* indices,
+ GLsizei primcount,
+ const GLint* basevertex) {
+ requiresExtension(GL_OES_draw_elements_base_vertex)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/multi_draw_arrays.txt","GL_EXT_multi_draw_arrays")
+cmd void glMultiDrawElementsEXT(GLenum mode,
+ const GLsizei* count,
+ GLenum type,
+ const void* const* indices,
+ GLsizei primcount) {
+ requiresExtension(GL_EXT_multi_draw_arrays)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multi_draw_indirect.txt","GL_EXT_multi_draw_indirect")
+cmd void glMultiDrawElementsIndirectEXT(GLenum mode,
+ GLenum type,
+ const void* indirect,
+ GLsizei drawcount,
+ GLsizei stride) {
+ requiresExtension(GL_EXT_multi_draw_indirect)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_tessellation_shader.txt","GL_OES_tessellation_shader")
+cmd void glPatchParameteriOES(GLenum pname, GLint value) {
+ requiresExtension(GL_OES_tessellation_shader)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathCommandsNV(GLuint path,
+ GLsizei numCommands,
+ const GLubyte* commands,
+ GLsizei numCoords,
+ GLenum coordType,
+ const void* coords) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathCoordsNV(GLuint path, GLsizei numCoords, GLenum coordType, const void* coords) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathCoverDepthFuncNV(GLenum func) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathDashArrayNV(GLuint path, GLsizei dashCount, const GLfloat* dashArray) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLenum glPathGlyphIndexArrayNV(GLuint firstPathName,
+ GLenum fontTarget,
+ const void* fontName,
+ GLbitfield fontStyle,
+ GLuint firstGlyphIndex,
+ GLsizei numGlyphs,
+ GLuint pathParameterTemplate,
+ GLfloat emScale) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLenum glPathGlyphIndexRangeNV(GLenum fontTarget,
+ const void* fontName,
+ GLbitfield fontStyle,
+ GLuint pathParameterTemplate,
+ GLfloat emScale,
+ GLuint baseAndCount) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathGlyphRangeNV(GLuint firstPathName,
+ GLenum fontTarget,
+ const void* fontName,
+ GLbitfield fontStyle,
+ GLuint firstGlyph,
+ GLsizei numGlyphs,
+ GLenum handleMissingGlyphs,
+ GLuint pathParameterTemplate,
+ GLfloat emScale) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathGlyphsNV(GLuint firstPathName,
+ GLenum fontTarget,
+ const void* fontName,
+ GLbitfield fontStyle,
+ GLsizei numGlyphs,
+ GLenum type,
+ const void* charcodes,
+ GLenum handleMissingGlyphs,
+ GLuint pathParameterTemplate,
+ GLfloat emScale) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLenum glPathMemoryGlyphIndexArrayNV(GLuint firstPathName,
+ GLenum fontTarget,
+ GLsizeiptr fontSize,
+ const void* fontData,
+ GLsizei faceIndex,
+ GLuint firstGlyphIndex,
+ GLsizei numGlyphs,
+ GLuint pathParameterTemplate,
+ GLfloat emScale) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathParameterfNV(GLuint path, GLenum pname, GLfloat value) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathParameterfvNV(GLuint path, GLenum pname, const GLfloat* value) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathParameteriNV(GLuint path, GLenum pname, GLint value) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathParameterivNV(GLuint path, GLenum pname, const GLint* value) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathStencilDepthOffsetNV(GLfloat factor, GLfloat units) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathStencilFuncNV(GLenum func, GLint ref, GLuint mask) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathStringNV(GLuint path, GLenum format, GLsizei length, const void* pathString) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathSubCommandsNV(GLuint path,
+ GLsizei commandStart,
+ GLsizei commandsToDelete,
+ GLsizei numCommands,
+ const GLubyte* commands,
+ GLsizei numCoords,
+ GLenum coordType,
+ const void* coords) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glPathSubCoordsNV(GLuint path,
+ GLsizei coordStart,
+ GLsizei numCoords,
+ GLenum coordType,
+ const void* coords) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd GLboolean glPointAlongPathNV(GLuint path,
+ GLsizei startSegment,
+ GLsizei numSegments,
+ GLfloat distance,
+ GLfloat* x,
+ GLfloat* y,
+ GLfloat* tangentX,
+ GLfloat* tangentY) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_polygon_mode.txt","GL_NV_polygon_mode")
+cmd void glPolygonModeNV(GLenum face, GLenum mode) {
+ requiresExtension(GL_NV_polygon_mode)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt","GL_EXT_debug_marker")
+cmd void glPopGroupMarkerEXT() {
+ requiresExtension(GL_EXT_debug_marker)
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_primitive_bounding_box.txt","GL_OES_primitive_bounding_box")
+cmd void glPrimitiveBoundingBoxOES(GLfloat minX,
+ GLfloat minY,
+ GLfloat minZ,
+ GLfloat minW,
+ GLfloat maxX,
+ GLfloat maxY,
+ GLfloat maxZ,
+ GLfloat maxW) {
+ requiresExtension(GL_OES_primitive_bounding_box)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_get_program_binary.txt","GL_OES_get_program_binary")
+cmd void glProgramBinaryOES(ProgramId program,
+ GLenum binary_format,
+ const void* binary,
+ GLint binary_size) {
+ requiresExtension(GL_OES_get_program_binary)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramParameteriEXT(ProgramId program, GLenum pname, GLint value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glProgramPathFragmentInputGenNV(ProgramId program,
+ GLint location,
+ GLenum genMode,
+ GLint components,
+ const GLfloat* coeffs) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1fEXT(ProgramId program, UniformLocation location, GLfloat v0) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1iEXT(ProgramId program, UniformLocation location, GLint v0) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1ivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLint* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1uiEXT(ProgramId program, UniformLocation location, GLuint v0) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform1uivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLuint* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2fEXT(ProgramId program,
+ UniformLocation location,
+ GLfloat v0,
+ GLfloat v1) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2iEXT(ProgramId program, UniformLocation location, GLint v0, GLint v1) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2ivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLint* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2uiEXT(ProgramId program, UniformLocation location, GLuint v0, GLuint v1) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform2uivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLuint* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3fEXT(ProgramId program,
+ UniformLocation location,
+ GLfloat v0,
+ GLfloat v1,
+ GLfloat v2) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3iEXT(ProgramId program,
+ UniformLocation location,
+ GLint v0,
+ GLint v1,
+ GLint v2) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3ivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLint* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3uiEXT(ProgramId program,
+ UniformLocation location,
+ GLuint v0,
+ GLuint v1,
+ GLuint v2) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform3uivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLuint* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4fEXT(ProgramId program,
+ UniformLocation location,
+ GLfloat v0,
+ GLfloat v1,
+ GLfloat v2,
+ GLfloat v3) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4iEXT(ProgramId program,
+ UniformLocation location,
+ GLint v0,
+ GLint v1,
+ GLint v2,
+ GLint v3) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4ivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLint* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4uiEXT(ProgramId program,
+ UniformLocation location,
+ GLuint v0,
+ GLuint v1,
+ GLuint v2,
+ GLuint v3) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniform4uivEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLuint* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glProgramUniformHandleui64NV(ProgramId program, UniformLocation location, GLuint64 value) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glProgramUniformHandleui64vNV(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ const GLuint64* values) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix2fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix2x3fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix2x4fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix3fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix3x2fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix3x4fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix4fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix4x2fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glProgramUniformMatrix4x3fvEXT(ProgramId program,
+ UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_debug_marker.txt","GL_EXT_debug_marker")
+cmd void glPushGroupMarkerEXT(GLsizei length, const GLchar* marker) {
+ requiresExtension(GL_EXT_debug_marker)
+
+ if length > 0 {
+ read(marker[0:length])
+ } else {
+ _ = as!string(marker)
+ }
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_disjoint_timer_query.txt","GL_EXT_disjoint_timer_query")
+cmd void glQueryCounterEXT(QueryId query, GLenum target) {
+ requiresExtension(GL_EXT_disjoint_timer_query)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multiview_draw_buffers.txt","GL_EXT_multiview_draw_buffers")
+cmd void glReadBufferIndexedEXT(GLenum src, GLint index) {
+ requiresExtension(GL_EXT_multiview_draw_buffers)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_read_buffer.txt","GL_NV_read_buffer")
+cmd void glReadBufferNV(GLenum mode) {
+ requiresExtension(GL_NV_read_buffer)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_robustness.txt","GL_EXT_robustness")
+cmd void glReadnPixelsEXT(GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ GLsizei bufSize,
+ void* data) {
+ requiresExtension(GL_EXT_robustness)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/KHR/robustness.txt","GL_KHR_robustness")
+cmd void glReadnPixelsKHR(GLint x,
+ GLint y,
+ GLsizei width,
+ GLsizei height,
+ GLenum format,
+ GLenum type,
+ GLsizei bufSize,
+ void* data) {
+ requiresExtension(GL_KHR_robustness)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_framebuffer_multisample.txt","GL_ANGLE_framebuffer_multisample")
+cmd void glRenderbufferStorageMultisampleANGLE(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ requiresExtension(GL_ANGLE_framebuffer_multisample)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_framebuffer_multisample.txt","GL_APPLE_framebuffer_multisample")
+cmd void glRenderbufferStorageMultisampleAPPLE(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ requiresExtension(GL_APPLE_framebuffer_multisample)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt","GL_EXT_multisampled_render_to_texture")
+cmd void glRenderbufferStorageMultisampleEXT(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ requiresExtension(GL_EXT_multisampled_render_to_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/IMG/IMG_multisampled_render_to_texture.txt","GL_IMG_multisampled_render_to_texture")
+cmd void glRenderbufferStorageMultisampleIMG(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ requiresExtension(GL_IMG_multisampled_render_to_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_framebuffer_multisample.txt","GL_NV_framebuffer_multisample")
+cmd void glRenderbufferStorageMultisampleNV(GLenum target,
+ GLsizei samples,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height) {
+ requiresExtension(GL_NV_framebuffer_multisample)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_framebuffer_multisample.txt","GL_APPLE_framebuffer_multisample")
+cmd void glResolveMultisampleFramebufferAPPLE() {
+ requiresExtension(GL_APPLE_framebuffer_multisample)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glSamplerParameterIivOES(SamplerId sampler, GLenum pname, const GLint* param) {
+ requiresExtension(GL_OES_texture_border_clamp)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glSamplerParameterIuivOES(SamplerId sampler, GLenum pname, const GLuint* param) {
+ requiresExtension(GL_OES_texture_border_clamp)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glScissorArrayvNV(GLuint first, GLsizei count, const GLint* v) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glScissorIndexedNV(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glScissorIndexedvNV(GLuint index, const GLint* v) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/AMD/performance_monitor.txt","GL_AMD_performance_monitor")
+cmd void glSelectPerfMonitorCountersAMD(GLuint monitor,
+ GLboolean enable,
+ GLuint group,
+ GLint numCounters,
+ GLuint* counterList) {
+ requiresExtension(GL_AMD_performance_monitor)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd void glSetFenceNV(GLuint fence, GLenum condition) {
+ requiresExtension(GL_NV_fence)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/QCOM/QCOM_tiled_rendering.txt","GL_QCOM_tiled_rendering")
+cmd void glStartTilingQCOM(GLuint x,
+ GLuint y,
+ GLuint width,
+ GLuint height,
+ GLbitfield preserveMask) {
+ requiresExtension(GL_QCOM_tiled_rendering)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilFillPathInstancedNV(GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLenum fillMode,
+ GLuint mask,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilFillPathNV(GLuint path, GLenum fillMode, GLuint mask) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilStrokePathInstancedNV(GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLint reference,
+ GLuint mask,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilStrokePathNV(GLuint path, GLint reference, GLuint mask) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilThenCoverFillPathInstancedNV(GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLenum fillMode,
+ GLuint mask,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilThenCoverFillPathNV(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilThenCoverStrokePathInstancedNV(GLsizei numPaths,
+ GLenum pathNameType,
+ const void* paths,
+ GLuint pathBase,
+ GLint reference,
+ GLuint mask,
+ GLenum coverMode,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glStencilThenCoverStrokePathNV(GLuint path,
+ GLint reference,
+ GLuint mask,
+ GLenum coverMode) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fence.txt","GL_NV_fence")
+cmd GLboolean glTestFenceNV(GLuint fence) {
+ requiresExtension(GL_NV_fence)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_buffer.txt","GL_OES_texture_buffer")
+cmd void glTexBufferOES(GLenum target, GLenum internalformat, BufferId buffer) {
+ requiresExtension(GL_OES_texture_buffer)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_buffer.txt","GL_OES_texture_buffer")
+cmd void glTexBufferRangeOES(GLenum target,
+ GLenum internalformat,
+ BufferId buffer,
+ GLintptr offset,
+ GLsizeiptr size) {
+ requiresExtension(GL_OES_texture_buffer)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glTexImage3DOES(GLenum target,
+ GLint level,
+ GLenum internalformat,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLint border,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ requiresExtension(GL_OES_texture_3D)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_sparse_texture.txt","GL_EXT_sparse_texture")
+cmd void glTexPageCommitmentARB(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLboolean commit) {
+ requiresExtension(GL_EXT_sparse_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glTexParameterIivOES(GLenum target, GLenum pname, const GLint* params) {
+ requiresExtension(GL_OES_texture_border_clamp)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_border_clamp.txt","GL_OES_texture_border_clamp")
+cmd void glTexParameterIuivOES(GLenum target, GLenum pname, const GLuint* params) {
+ requiresExtension(GL_OES_texture_border_clamp)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum format, GLsizei width) {
+ requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTexStorage2DEXT(GLenum target,
+ GLsizei levels,
+ GLenum format,
+ GLsizei width,
+ GLsizei height) {
+ requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTexStorage3DEXT(GLenum target,
+ GLsizei levels,
+ GLenum format,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth) {
+ requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_3D.txt","GL_OES_texture_3D")
+cmd void glTexSubImage3DOES(GLenum target,
+ GLint level,
+ GLint xoffset,
+ GLint yoffset,
+ GLint zoffset,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth,
+ GLenum format,
+ GLenum type,
+ const void* pixels) {
+ requiresExtension(GL_OES_texture_3D)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTextureStorage1DEXT(TextureId texture,
+ GLenum target,
+ GLsizei levels,
+ GLenum format,
+ GLsizei width) {
+ requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTextureStorage2DEXT(TextureId texture,
+ GLenum target,
+ GLsizei levels,
+ GLenum format,
+ GLsizei width,
+ GLsizei height) {
+ requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_storage.txt","GL_EXT_texture_storage")
+cmd void glTextureStorage3DEXT(TextureId texture,
+ GLenum target,
+ GLsizei levels,
+ GLenum format,
+ GLsizei width,
+ GLsizei height,
+ GLsizei depth) {
+ requiresExtension(GL_EXT_texture_storage)
+
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_texture_view.txt","GL_EXT_texture_view")
+cmd void glTextureViewEXT(TextureId texture,
+ GLenum target,
+ GLuint origtexture,
+ GLenum internalformat,
+ GLuint minlevel,
+ GLuint numlevels,
+ GLuint minlayer,
+ GLuint numlayers) {
+ requiresExtension(GL_EXT_texture_view)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_texture_view.txt","GL_OES_texture_view")
+cmd void glTextureViewOES(TextureId texture,
+ GLenum target,
+ GLuint origtexture,
+ GLenum internalformat,
+ GLuint minlevel,
+ GLuint numlevels,
+ GLuint minlayer,
+ GLuint numlayers) {
+ requiresExtension(GL_OES_texture_view)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glTransformPathNV(GLuint resultPath,
+ GLuint srcPath,
+ GLenum transformType,
+ const GLfloat* transformValues) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glUniformHandleui64NV(UniformLocation location, GLuint64 value) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/bindless_texture.txt","GL_NV_bindless_texture")
+cmd void glUniformHandleui64vNV(UniformLocation location, GLsizei count, const GLuint64* value) {
+ requiresExtension(GL_NV_bindless_texture)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix2x3fvNV(UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_NV_non_square_matrices)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix2x4fvNV(UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_NV_non_square_matrices)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix3x2fvNV(UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_NV_non_square_matrices)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix3x4fvNV(UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_NV_non_square_matrices)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix4x2fvNV(UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_NV_non_square_matrices)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_non_square_matrices.txt","GL_NV_non_square_matrices")
+cmd void glUniformMatrix4x3fvNV(UniformLocation location,
+ GLsizei count,
+ GLboolean transpose,
+ const GLfloat* value) {
+ requiresExtension(GL_NV_non_square_matrices)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/OES/OES_mapbuffer.txt","GL_OES_mapbuffer")
+cmd GLboolean glUnmapBufferOES(GLenum target) {
+ requiresExtension(GL_OES_mapbuffer)
+ // TODO
+ return ?
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glUseProgramStagesEXT(PipelineId pipeline, GLbitfield stages, ProgramId program) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_separate_shader_objects.txt","GL_EXT_separate_shader_objects")
+cmd void glValidateProgramPipelineEXT(PipelineId pipeline) {
+ requiresExtension(GL_EXT_separate_shader_objects)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/ANGLE/ANGLE_instanced_arrays.txt","GL_ANGLE_instanced_arrays")
+cmd void glVertexAttribDivisorANGLE(AttributeLocation index, GLuint divisor) {
+ requiresExtension(GL_ANGLE_instanced_arrays)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/EXT_instanced_arrays.txt","GL_EXT_instanced_arrays")
+cmd void glVertexAttribDivisorEXT(AttributeLocation index, GLuint divisor) {
+ requiresExtension(GL_EXT_instanced_arrays)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_instanced_arrays.txt","GL_NV_instanced_arrays")
+cmd void glVertexAttribDivisorNV(AttributeLocation index, GLuint divisor) {
+ requiresExtension(GL_NV_instanced_arrays)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glViewportArrayvNV(GLuint first, GLsizei count, const GLfloat* v) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glViewportIndexedfNV(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/NV_viewport_array.txt","GL_NV_viewport_array")
+cmd void glViewportIndexedfvNV(GLuint index, const GLfloat* v) {
+ requiresExtension(GL_NV_viewport_array)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/APPLE/APPLE_sync.txt","GL_APPLE_sync")
+cmd void glWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout) {
+ requiresExtension(GL_APPLE_sync)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/path_rendering.txt","GL_NV_path_rendering")
+cmd void glWeightPathsNV(GLuint resultPath,
+ GLsizei numPaths,
+ const GLuint* paths,
+ const GLfloat* weights) {
+ requiresExtension(GL_NV_path_rendering)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/framebuffer_mixed_samples.txt","GL_NV_framebuffer_mixed_samples")
+cmd void glCoverageModulationNV(GLenum components) {
+ requiresExtension(GL_NV_framebuffer_mixed_samples)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/framebuffer_mixed_samples.txt","GL_NV_framebuffer_mixed_samples")
+cmd void glCoverageModulationTableNV(GLsizei n, const GLfloat* v) {
+ requiresExtension(GL_NV_framebuffer_mixed_samples)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/fragment_coverage_to_color.txt","GL_NV_fragment_coverage_to_color")
+cmd void glFragmentCoverageColorNV(GLuint color) {
+ requiresExtension(GL_NV_fragment_coverage_to_color)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/sample_locations.txt","GL_NV_sample_locations")
+cmd void glFramebufferSampleLocationsfvNV(GLenum target,
+ GLuint start,
+ GLsizei count,
+ const GLfloat* v) {
+ requiresExtension(GL_NV_sample_locations)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/framebuffer_mixed_samples.txt","GL_NV_framebuffer_mixed_samples")
+cmd void glGetCoverageModulationTableNV(GLsizei bufsize, GLfloat* v) {
+ requiresExtension(GL_NV_framebuffer_mixed_samples)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/sample_locations.txt","GL_NV_sample_locations")
+cmd void glNamedFramebufferSampleLocationsfvNV(FramebufferId framebuffer,
+ GLuint start,
+ GLsizei count,
+ const GLfloat* v) {
+ requiresExtension(GL_NV_sample_locations)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/raster_multisample.txt","GL_EXT_raster_multisample")
+@Doc("https://www.khronos.org/registry/gles/extensions/EXT/texture_filter_minmax.txt","GL_EXT_texture_filter_minmax")
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/framebuffer_mixed_samples.txt","GL_NV_framebuffer_mixed_samples")
+cmd void glRasterSamplesEXT(GLuint samples, GLboolean fixedsamplelocations) {
+ requiresExtension(GL_EXT_raster_multisample)
+ requiresExtension(GL_EXT_texture_filter_minmax)
+ requiresExtension(GL_NV_framebuffer_mixed_samples)
+ // TODO: Multiple extensions
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/sample_locations.txt","GL_NV_sample_locations")
+cmd void glResolveDepthValuesNV() {
+ requiresExtension(GL_NV_sample_locations)
+ // TODO
+}
+
+@Doc("https://www.khronos.org/registry/gles/extensions/NV/conservative_raster.txt","GL_NV_conservative_raster")
+cmd void glSubpixelPrecisionBiasNV(GLuint xbits, GLuint ybits) {
+ requiresExtension(GL_NV_conservative_raster)
+ // TODO
+}
+