From 1e36ce679164e1b1b2399014a4c603046ebfdf58 Mon Sep 17 00:00:00 2001 From: Alberto Torres Date: Thu, 6 Feb 2025 14:49:48 +0100 Subject: [PATCH] GL ES 3.2 static: restore ability to load extension procs, and load them. --- src/platform/glad/gles32_static.nim | 2126 +++++++++++++++------------ src/platform/glfm_wrap.nim | 5 +- 2 files changed, 1185 insertions(+), 946 deletions(-) diff --git a/src/platform/glad/gles32_static.nim b/src/platform/glad/gles32_static.nim index 5ed1825..27323b8 100644 --- a/src/platform/glad/gles32_static.nim +++ b/src/platform/glad/gles32_static.nim @@ -3403,6 +3403,7 @@ var GLAD_GL_NV_shadow_samplers_cube*: bool const GL_SAMPLER_CUBE_SHADOW_NV* = 0x8DC5.GLenum var GLAD_GL_NV_stereo_view_rendering*: bool +var GLAD_GL_NV_texture_barrier*: bool var GLAD_GL_NV_texture_border_clamp*: bool const GL_TEXTURE_BORDER_COLOR_NV* = 0x1004.GLenum @@ -3863,558 +3864,559 @@ const GL_TEXTURE_CBCR_DEGAMMA_QCOM* = 0x9711.GLenum var GLAD_GL_VIV_shader_binary*: bool const GL_SHADER_BINARY_VIV* = 0x8FC4.GLenum -proc glRenderbufferStorageMultisampleAdvancedAMD*(target: GLenum, samples: GLsizei, storageSamples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glNamedRenderbufferStorageMultisampleAdvancedAMD*(renderbuffer: GLuint, samples: GLsizei, storageSamples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glGetPerfMonitorGroupsAMD*(numGroups: ptr GLint, groupsSize: GLsizei, groups: ptr GLuint) {.stdcall,importc.} -proc glGetPerfMonitorCountersAMD*(group: GLuint, numCounters: ptr GLint, maxActiveCounters: ptr GLint, counterSize: GLsizei, counters: ptr GLuint) {.stdcall,importc.} -proc glGetPerfMonitorGroupStringAMD*(group: GLuint, bufSize: GLsizei, length: ptr GLsizei, groupString: cstring) {.stdcall,importc.} -proc glGetPerfMonitorCounterStringAMD*(group: GLuint, counter: GLuint, bufSize: GLsizei, length: ptr GLsizei, counterString: cstring) {.stdcall,importc.} -proc glGetPerfMonitorCounterInfoAMD*(group: GLuint, counter: GLuint, pname: GLenum, data: pointer) {.stdcall,importc.} -proc glGenPerfMonitorsAMD*(n: GLsizei, monitors: ptr GLuint) {.stdcall,importc.} -proc glDeletePerfMonitorsAMD*(n: GLsizei, monitors: ptr GLuint) {.stdcall,importc.} -proc glSelectPerfMonitorCountersAMD*(monitor: GLuint, enable: GLboolean, group: GLuint, numCounters: GLint, counterList: ptr GLuint) {.stdcall,importc.} -proc glBeginPerfMonitorAMD*(monitor: GLuint) {.stdcall,importc.} -proc glEndPerfMonitorAMD*(monitor: GLuint) {.stdcall,importc.} -proc glGetPerfMonitorCounterDataAMD*(monitor: GLuint, pname: GLenum, dataSize: GLsizei, data: ptr GLuint, bytesWritten: ptr GLint) {.stdcall,importc.} -proc glBlitFramebufferANGLE*(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall,importc.} -proc glRenderbufferStorageMultisampleANGLE*(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glDrawArraysInstancedANGLE*(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei) {.stdcall,importc.} -proc glDrawElementsInstancedANGLE*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall,importc.} -proc glVertexAttribDivisorANGLE*(index: GLuint, divisor: GLuint) {.stdcall,importc.} -proc glGetTranslatedShaderSourceANGLE*(shader: GLuint, bufSize: GLsizei, length: ptr GLsizei, source: cstring) {.stdcall,importc.} -proc glCopyTextureLevelsAPPLE*(destinationTexture: GLuint, sourceTexture: GLuint, sourceBaseLevel: GLint, sourceLevelCount: GLsizei) {.stdcall,importc.} -proc glRenderbufferStorageMultisampleAPPLE*(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glResolveMultisampleFramebufferAPPLE*() {.stdcall,importc.} -proc glFenceSyncAPPLE*(condition: GLenum, flags: GLbitfield): GLsync {.stdcall,importc.} -proc glIsSyncAPPLE*(sync: GLsync): GLboolean {.stdcall,importc.} -proc glDeleteSyncAPPLE*(sync: GLsync) {.stdcall,importc.} -proc glClientWaitSyncAPPLE*(sync: GLsync, flags: GLbitfield, timeout: GLuint64): GLenum {.stdcall,importc.} -proc glWaitSyncAPPLE*(sync: GLsync, flags: GLbitfield, timeout: GLuint64) {.stdcall,importc.} -proc glGetInteger64vAPPLE*(pname: GLenum, params: ptr GLint64) {.stdcall,importc.} -proc glGetSyncivAPPLE*(sync: GLsync, pname: GLenum, count: GLsizei, length: ptr GLsizei, values: ptr GLint) {.stdcall,importc.} -proc glMaxActiveShaderCoresARM*(count: GLuint) {.stdcall,importc.} -proc glEGLImageTargetTexStorageEXT*(target: GLenum, image: GLeglImageOES, attrib_list: ptr GLint) {.stdcall,importc.} -proc glEGLImageTargetTextureStorageEXT*(texture: GLuint, image: GLeglImageOES, attrib_list: ptr GLint) {.stdcall,importc.} -proc glDrawArraysInstancedBaseInstanceEXT*(mode: GLenum, first: GLint, count: GLsizei, instancecount: GLsizei, baseinstance: GLuint) {.stdcall,importc.} -proc glDrawElementsInstancedBaseInstanceEXT*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, baseinstance: GLuint) {.stdcall,importc.} -proc glDrawElementsInstancedBaseVertexBaseInstanceEXT*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint, baseinstance: GLuint) {.stdcall,importc.} -proc glBindFragDataLocationIndexedEXT*(program: GLuint, colorNumber: GLuint, index: GLuint, name: cstring) {.stdcall,importc.} -proc glBindFragDataLocationEXT*(program: GLuint, color: GLuint, name: cstring) {.stdcall,importc.} -proc glGetProgramResourceLocationIndexEXT*(program: GLuint, programInterface: GLenum, name: cstring): GLint {.stdcall,importc.} -proc glGetFragDataIndexEXT*(program: GLuint, name: cstring): GLint {.stdcall,importc.} -proc glBlendEquationEXT*(mode: GLenum) {.stdcall,importc.} -proc glBufferStorageEXT*(target: GLenum, size: GLsizeiptr, data: pointer, flags: GLbitfield) {.stdcall,importc.} -proc glClearTexImageEXT*(texture: GLuint, level: GLint, format: GLenum, `type`: GLenum, data: pointer) {.stdcall,importc.} -proc glClearTexSubImageEXT*(texture: GLuint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, data: pointer) {.stdcall,importc.} -proc glClipControlEXT*(origin: GLenum, depth: GLenum) {.stdcall,importc.} -proc glCopyImageSubDataEXT*(srcName: GLuint, srcTarget: GLenum, srcLevel: GLint, srcX: GLint, srcY: GLint, srcZ: GLint, dstName: GLuint, dstTarget: GLenum, dstLevel: GLint, dstX: GLint, dstY: GLint, dstZ: GLint, srcWidth: GLsizei, srcHeight: GLsizei, srcDepth: GLsizei) {.stdcall,importc.} -proc glLabelObjectEXT*(`type`: GLenum, `object`: GLuint, length: GLsizei, label: cstring) {.stdcall,importc.} -proc glGetObjectLabelEXT*(`type`: GLenum, `object`: GLuint, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall,importc.} -proc glInsertEventMarkerEXT*(length: GLsizei, marker: cstring) {.stdcall,importc.} -proc glPushGroupMarkerEXT*(length: GLsizei, marker: cstring) {.stdcall,importc.} -proc glPopGroupMarkerEXT*() {.stdcall,importc.} -proc glDiscardFramebufferEXT*(target: GLenum, numAttachments: GLsizei, attachments: ptr GLenum) {.stdcall,importc.} -proc glGenQueriesEXT*(n: GLsizei, ids: ptr GLuint) {.stdcall,importc.} -proc glDeleteQueriesEXT*(n: GLsizei, ids: ptr GLuint) {.stdcall,importc.} -proc glIsQueryEXT*(id: GLuint): GLboolean {.stdcall,importc.} -proc glBeginQueryEXT*(target: GLenum, id: GLuint) {.stdcall,importc.} -proc glEndQueryEXT*(target: GLenum) {.stdcall,importc.} -proc glQueryCounterEXT*(id: GLuint, target: GLenum) {.stdcall,importc.} -proc glGetQueryivEXT*(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetQueryObjectivEXT*(id: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetQueryObjectuivEXT*(id: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall,importc.} -proc glGetQueryObjecti64vEXT*(id: GLuint, pname: GLenum, params: ptr GLint64) {.stdcall,importc.} -proc glGetQueryObjectui64vEXT*(id: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall,importc.} -proc glGetInteger64vEXT*(pname: GLenum, data: ptr GLint64) {.stdcall,importc.} -proc glDrawBuffersEXT*(n: GLsizei, bufs: ptr GLenum) {.stdcall,importc.} -proc glEnableiEXT*(target: GLenum, index: GLuint) {.stdcall,importc.} -proc glDisableiEXT*(target: GLenum, index: GLuint) {.stdcall,importc.} -proc glBlendEquationiEXT*(buf: GLuint, mode: GLenum) {.stdcall,importc.} -proc glBlendEquationSeparateiEXT*(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum) {.stdcall,importc.} -proc glBlendFunciEXT*(buf: GLuint, src: GLenum, dst: GLenum) {.stdcall,importc.} -proc glBlendFuncSeparateiEXT*(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) {.stdcall,importc.} -proc glColorMaskiEXT*(index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean) {.stdcall,importc.} -proc glIsEnablediEXT*(target: GLenum, index: GLuint): GLboolean {.stdcall,importc.} -proc glDrawElementsBaseVertexEXT*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall,importc.} -proc glDrawRangeElementsBaseVertexEXT*(mode: GLenum, start: GLuint, `end`: GLuint, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall,importc.} -proc glDrawElementsInstancedBaseVertexEXT*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint) {.stdcall,importc.} -proc glMultiDrawElementsBaseVertexEXT*(mode: GLenum, count: ptr GLsizei, `type`: GLenum, indices: ptr pointer, drawcount: GLsizei, basevertex: ptr GLint) {.stdcall,importc.} -proc glDrawArraysInstancedEXT*(mode: GLenum, start: GLint, count: GLsizei, primcount: GLsizei) {.stdcall,importc.} -proc glDrawElementsInstancedEXT*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall,importc.} -proc glDrawTransformFeedbackEXT*(mode: GLenum, id: GLuint) {.stdcall,importc.} -proc glDrawTransformFeedbackInstancedEXT*(mode: GLenum, id: GLuint, instancecount: GLsizei) {.stdcall,importc.} -proc glBufferStorageExternalEXT*(target: GLenum, offset: GLintptr, size: GLsizeiptr, clientBuffer: GLeglClientBufferEXT, flags: GLbitfield) {.stdcall,importc.} -proc glNamedBufferStorageExternalEXT*(buffer: GLuint, offset: GLintptr, size: GLsizeiptr, clientBuffer: GLeglClientBufferEXT, flags: GLbitfield) {.stdcall,importc.} -proc glGetFragmentShadingRatesEXT*(samples: GLsizei, maxCount: GLsizei, count: ptr GLsizei, shadingRates: ptr GLenum) {.stdcall,importc.} -proc glShadingRateEXT*(rate: GLenum) {.stdcall,importc.} -proc glShadingRateCombinerOpsEXT*(combinerOp0: GLenum, combinerOp1: GLenum) {.stdcall,importc.} -proc glFramebufferShadingRateEXT*(target: GLenum, attachment: GLenum, texture: GLuint, baseLayer: GLint, numLayers: GLsizei, texelWidth: GLsizei, texelHeight: GLsizei) {.stdcall,importc.} -proc glBlitFramebufferLayersEXT*(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall,importc.} -proc glBlitFramebufferLayerEXT*(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, srcLayer: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, dstLayer: GLint, mask: GLbitfield, filter: GLenum) {.stdcall,importc.} -proc glFramebufferTextureEXT*(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint) {.stdcall,importc.} -proc glVertexAttribDivisorEXT*(index: GLuint, divisor: GLuint) {.stdcall,importc.} -proc glMapBufferRangeEXT*(target: GLenum, offset: GLintptr, length: GLsizeiptr, access: GLbitfield): pointer {.stdcall,importc.} -proc glFlushMappedBufferRangeEXT*(target: GLenum, offset: GLintptr, length: GLsizeiptr) {.stdcall,importc.} -proc glGetUnsignedBytevEXT*(pname: GLenum, data: ptr GLubyte) {.stdcall,importc.} -proc glGetUnsignedBytei_vEXT*(target: GLenum, index: GLuint, data: ptr GLubyte) {.stdcall,importc.} -proc glDeleteMemoryObjectsEXT*(n: GLsizei, memoryObjects: ptr GLuint) {.stdcall,importc.} -proc glIsMemoryObjectEXT*(memoryObject: GLuint): GLboolean {.stdcall,importc.} -proc glCreateMemoryObjectsEXT*(n: GLsizei, memoryObjects: ptr GLuint) {.stdcall,importc.} -proc glMemoryObjectParameterivEXT*(memoryObject: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetMemoryObjectParameterivEXT*(memoryObject: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glTexStorageMem2DEXT*(target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTexStorageMem2DMultisampleEXT*(target: GLenum, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTexStorageMem3DEXT*(target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTexStorageMem3DMultisampleEXT*(target: GLenum, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glBufferStorageMemEXT*(target: GLenum, size: GLsizeiptr, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTextureStorageMem2DEXT*(texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTextureStorageMem2DMultisampleEXT*(texture: GLuint, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTextureStorageMem3DEXT*(texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTextureStorageMem3DMultisampleEXT*(texture: GLuint, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glNamedBufferStorageMemEXT*(buffer: GLuint, size: GLsizeiptr, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTexStorageMem1DEXT*(target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTextureStorageMem1DEXT*(texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glImportMemoryFdEXT*(memory: GLuint, size: GLuint64, handleType: GLenum, fd: GLint) {.stdcall,importc.} -proc glImportMemoryWin32HandleEXT*(memory: GLuint, size: GLuint64, handleType: GLenum, handle: pointer) {.stdcall,importc.} -proc glImportMemoryWin32NameEXT*(memory: GLuint, size: GLuint64, handleType: GLenum, name: pointer) {.stdcall,importc.} -proc glMultiDrawArraysEXT*(mode: GLenum, first: ptr GLint, count: ptr GLsizei, primcount: GLsizei) {.stdcall,importc.} -proc glMultiDrawElementsEXT*(mode: GLenum, count: ptr GLsizei, `type`: GLenum, indices: ptr pointer, primcount: GLsizei) {.stdcall,importc.} -proc glMultiDrawArraysIndirectEXT*(mode: GLenum, indirect: pointer, drawcount: GLsizei, stride: GLsizei) {.stdcall,importc.} -proc glMultiDrawElementsIndirectEXT*(mode: GLenum, `type`: GLenum, indirect: pointer, drawcount: GLsizei, stride: GLsizei) {.stdcall,importc.} -proc glRenderbufferStorageMultisampleEXT*(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glFramebufferTexture2DMultisampleEXT*(target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, samples: GLsizei) {.stdcall,importc.} -proc glReadBufferIndexedEXT*(src: GLenum, index: GLint) {.stdcall,importc.} -proc glDrawBuffersIndexedEXT*(n: GLint, location: ptr GLenum, indices: ptr GLint) {.stdcall,importc.} -proc glGetIntegeri_vEXT*(target: GLenum, index: GLuint, data: ptr GLint) {.stdcall,importc.} -proc glPolygonOffsetClampEXT*(factor: GLfloat, units: GLfloat, clamp: GLfloat) {.stdcall,importc.} -proc glPrimitiveBoundingBoxEXT*(minX: GLfloat, minY: GLfloat, minZ: GLfloat, minW: GLfloat, maxX: GLfloat, maxY: GLfloat, maxZ: GLfloat, maxW: GLfloat) {.stdcall,importc.} -proc glRasterSamplesEXT*(samples: GLuint, fixedsamplelocations: GLboolean) {.stdcall,importc.} -proc glGetGraphicsResetStatusEXT*(): GLenum {.stdcall,importc.} -proc glReadnPixelsEXT*(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, `type`: GLenum, bufSize: GLsizei, data: pointer) {.stdcall,importc.} -proc glGetnUniformfvEXT*(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLfloat) {.stdcall,importc.} -proc glGetnUniformivEXT*(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLint) {.stdcall,importc.} -proc glGenSemaphoresEXT*(n: GLsizei, semaphores: ptr GLuint) {.stdcall,importc.} -proc glDeleteSemaphoresEXT*(n: GLsizei, semaphores: ptr GLuint) {.stdcall,importc.} -proc glIsSemaphoreEXT*(semaphore: GLuint): GLboolean {.stdcall,importc.} -proc glSemaphoreParameterui64vEXT*(semaphore: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall,importc.} -proc glGetSemaphoreParameterui64vEXT*(semaphore: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall,importc.} -proc glWaitSemaphoreEXT*(semaphore: GLuint, numBufferBarriers: GLuint, buffers: ptr GLuint, numTextureBarriers: GLuint, textures: ptr GLuint, srcLayouts: ptr GLenum) {.stdcall,importc.} -proc glSignalSemaphoreEXT*(semaphore: GLuint, numBufferBarriers: GLuint, buffers: ptr GLuint, numTextureBarriers: GLuint, textures: ptr GLuint, dstLayouts: ptr GLenum) {.stdcall,importc.} -proc glImportSemaphoreFdEXT*(semaphore: GLuint, handleType: GLenum, fd: GLint) {.stdcall,importc.} -proc glImportSemaphoreWin32HandleEXT*(semaphore: GLuint, handleType: GLenum, handle: pointer) {.stdcall,importc.} -proc glImportSemaphoreWin32NameEXT*(semaphore: GLuint, handleType: GLenum, name: pointer) {.stdcall,importc.} -proc glUseShaderProgramEXT*(`type`: GLenum, program: GLuint) {.stdcall,importc.} -proc glActiveProgramEXT*(program: GLuint) {.stdcall,importc.} -proc glCreateShaderProgramEXT*(`type`: GLenum, string: cstring): GLuint {.stdcall,importc.} -proc glActiveShaderProgramEXT*(pipeline: GLuint, program: GLuint) {.stdcall,importc.} -proc glBindProgramPipelineEXT*(pipeline: GLuint) {.stdcall,importc.} -proc glCreateShaderProgramvEXT*(`type`: GLenum, count: GLsizei, strings: cstringArray): GLuint {.stdcall,importc.} -proc glDeleteProgramPipelinesEXT*(n: GLsizei, pipelines: ptr GLuint) {.stdcall,importc.} -proc glGenProgramPipelinesEXT*(n: GLsizei, pipelines: ptr GLuint) {.stdcall,importc.} -proc glGetProgramPipelineInfoLogEXT*(pipeline: GLuint, bufSize: GLsizei, length: ptr GLsizei, infoLog: cstring) {.stdcall,importc.} -proc glGetProgramPipelineivEXT*(pipeline: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glIsProgramPipelineEXT*(pipeline: GLuint): GLboolean {.stdcall,importc.} -proc glProgramParameteriEXT*(program: GLuint, pname: GLenum, value: GLint) {.stdcall,importc.} -proc glProgramUniform1fEXT*(program: GLuint, location: GLint, v0: GLfloat) {.stdcall,importc.} -proc glProgramUniform1fvEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniform1iEXT*(program: GLuint, location: GLint, v0: GLint) {.stdcall,importc.} -proc glProgramUniform1ivEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall,importc.} -proc glProgramUniform2fEXT*(program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat) {.stdcall,importc.} -proc glProgramUniform2fvEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniform2iEXT*(program: GLuint, location: GLint, v0: GLint, v1: GLint) {.stdcall,importc.} -proc glProgramUniform2ivEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall,importc.} -proc glProgramUniform3fEXT*(program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) {.stdcall,importc.} -proc glProgramUniform3fvEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniform3iEXT*(program: GLuint, location: GLint, v0: GLint, v1: GLint, v2: GLint) {.stdcall,importc.} -proc glProgramUniform3ivEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall,importc.} -proc glProgramUniform4fEXT*(program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat) {.stdcall,importc.} -proc glProgramUniform4fvEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniform4iEXT*(program: GLuint, location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint) {.stdcall,importc.} -proc glProgramUniform4ivEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall,importc.} -proc glProgramUniformMatrix2fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniformMatrix3fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniformMatrix4fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glUseProgramStagesEXT*(pipeline: GLuint, stages: GLbitfield, program: GLuint) {.stdcall,importc.} -proc glValidateProgramPipelineEXT*(pipeline: GLuint) {.stdcall,importc.} -proc glProgramUniform1uiEXT*(program: GLuint, location: GLint, v0: GLuint) {.stdcall,importc.} -proc glProgramUniform2uiEXT*(program: GLuint, location: GLint, v0: GLuint, v1: GLuint) {.stdcall,importc.} -proc glProgramUniform3uiEXT*(program: GLuint, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint) {.stdcall,importc.} -proc glProgramUniform4uiEXT*(program: GLuint, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) {.stdcall,importc.} -proc glProgramUniform1uivEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall,importc.} -proc glProgramUniform2uivEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall,importc.} -proc glProgramUniform3uivEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall,importc.} -proc glProgramUniform4uivEXT*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall,importc.} -proc glProgramUniformMatrix2x3fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniformMatrix3x2fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniformMatrix2x4fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniformMatrix4x2fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniformMatrix3x4fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glProgramUniformMatrix4x3fvEXT*(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glFramebufferFetchBarrierEXT*() {.stdcall,importc.} -proc glFramebufferPixelLocalStorageSizeEXT*(target: GLuint, size: GLsizei) {.stdcall,importc.} -proc glGetFramebufferPixelLocalStorageSizeEXT*(target: GLuint): GLsizei {.stdcall,importc.} -proc glClearPixelLocalStorageuiEXT*(offset: GLsizei, n: GLsizei, values: ptr GLuint) {.stdcall,importc.} -proc glTexPageCommitmentEXT*(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, commit: GLboolean) {.stdcall,importc.} -proc glPatchParameteriEXT*(pname: GLenum, value: GLint) {.stdcall,importc.} -proc glTexParameterIivEXT*(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glTexParameterIuivEXT*(target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall,importc.} -proc glGetTexParameterIivEXT*(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetTexParameterIuivEXT*(target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall,importc.} -proc glSamplerParameterIivEXT*(sampler: GLuint, pname: GLenum, param: ptr GLint) {.stdcall,importc.} -proc glSamplerParameterIuivEXT*(sampler: GLuint, pname: GLenum, param: ptr GLuint) {.stdcall,importc.} -proc glGetSamplerParameterIivEXT*(sampler: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetSamplerParameterIuivEXT*(sampler: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall,importc.} -proc glTexBufferEXT*(target: GLenum, internalformat: GLenum, buffer: GLuint) {.stdcall,importc.} -proc glTexBufferRangeEXT*(target: GLenum, internalformat: GLenum, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) {.stdcall,importc.} -proc glTexStorage1DEXT*(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei) {.stdcall,importc.} -proc glTexStorage2DEXT*(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glTexStorage3DEXT*(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) {.stdcall,importc.} -proc glTextureStorage1DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei) {.stdcall,importc.} -proc glTextureStorage2DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glTextureStorage3DEXT*(texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) {.stdcall,importc.} -proc glTexStorageAttribs2DEXT*(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, attrib_list: ptr GLint) {.stdcall,importc.} -proc glTexStorageAttribs3DEXT*(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, attrib_list: ptr GLint) {.stdcall,importc.} -proc glTextureViewEXT*(texture: GLuint, target: GLenum, origtexture: GLuint, internalformat: GLenum, minlevel: GLuint, numlevels: GLuint, minlayer: GLuint, numlayers: GLuint) {.stdcall,importc.} -proc glAcquireKeyedMutexWin32EXT*(memory: GLuint, key: GLuint64, timeout: GLuint): GLboolean {.stdcall,importc.} -proc glReleaseKeyedMutexWin32EXT*(memory: GLuint, key: GLuint64): GLboolean {.stdcall,importc.} -proc glWindowRectanglesEXT*(mode: GLenum, count: GLsizei, box: ptr GLint) {.stdcall,importc.} -proc glGetTextureHandleIMG*(texture: GLuint): GLuint64 {.stdcall,importc.} -proc glGetTextureSamplerHandleIMG*(texture: GLuint, sampler: GLuint): GLuint64 {.stdcall,importc.} -proc glUniformHandleui64IMG*(location: GLint, value: GLuint64) {.stdcall,importc.} -proc glUniformHandleui64vIMG*(location: GLint, count: GLsizei, value: ptr GLuint64) {.stdcall,importc.} -proc glProgramUniformHandleui64IMG*(program: GLuint, location: GLint, value: GLuint64) {.stdcall,importc.} -proc glProgramUniformHandleui64vIMG*(program: GLuint, location: GLint, count: GLsizei, values: ptr GLuint64) {.stdcall,importc.} -proc glFramebufferTexture2DDownsampleIMG*(target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, xscale: GLint, yscale: GLint) {.stdcall,importc.} -proc glFramebufferTextureLayerDownsampleIMG*(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, layer: GLint, xscale: GLint, yscale: GLint) {.stdcall,importc.} -proc glRenderbufferStorageMultisampleIMG*(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glFramebufferTexture2DMultisampleIMG*(target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, samples: GLsizei) {.stdcall,importc.} -proc glApplyFramebufferAttachmentCMAAINTEL*() {.stdcall,importc.} -proc glBeginPerfQueryINTEL*(queryHandle: GLuint) {.stdcall,importc.} -proc glCreatePerfQueryINTEL*(queryId: GLuint, queryHandle: ptr GLuint) {.stdcall,importc.} -proc glDeletePerfQueryINTEL*(queryHandle: GLuint) {.stdcall,importc.} -proc glEndPerfQueryINTEL*(queryHandle: GLuint) {.stdcall,importc.} -proc glGetFirstPerfQueryIdINTEL*(queryId: ptr GLuint) {.stdcall,importc.} -proc glGetNextPerfQueryIdINTEL*(queryId: GLuint, nextQueryId: ptr GLuint) {.stdcall,importc.} -proc glGetPerfCounterInfoINTEL*(queryId: GLuint, counterId: GLuint, counterNameLength: GLuint, counterName: cstring, counterDescLength: GLuint, counterDesc: cstring, counterOffset: ptr GLuint, counterDataSize: ptr GLuint, counterTypeEnum: ptr GLuint, counterDataTypeEnum: ptr GLuint, rawCounterMaxValue: ptr GLuint64) {.stdcall,importc.} -proc glGetPerfQueryDataINTEL*(queryHandle: GLuint, flags: GLuint, dataSize: GLsizei, data: pointer, bytesWritten: ptr GLuint) {.stdcall,importc.} -proc glGetPerfQueryIdByNameINTEL*(queryName: cstring, queryId: ptr GLuint) {.stdcall,importc.} -proc glGetPerfQueryInfoINTEL*(queryId: GLuint, queryNameLength: GLuint, queryName: cstring, dataSize: ptr GLuint, noCounters: ptr GLuint, noInstances: ptr GLuint, capsMask: ptr GLuint) {.stdcall,importc.} -proc glBlendBarrierKHR*() {.stdcall,importc.} -proc glDebugMessageControlKHR*(source: GLenum, `type`: GLenum, severity: GLenum, count: GLsizei, ids: ptr GLuint, enabled: GLboolean) {.stdcall,importc.} -proc glDebugMessageInsertKHR*(source: GLenum, `type`: GLenum, id: GLuint, severity: GLenum, length: GLsizei, buf: cstring) {.stdcall,importc.} -proc glDebugMessageCallbackKHR*(callback: GLDEBUGPROCKHR, userParam: pointer) {.stdcall,importc.} -proc glGetDebugMessageLogKHR*(count: GLuint, bufSize: GLsizei, sources: ptr GLenum, types: ptr GLenum, ids: ptr GLuint, severities: ptr GLenum, lengths: ptr GLsizei, messageLog: cstring): GLuint {.stdcall,importc.} -proc glPushDebugGroupKHR*(source: GLenum, id: GLuint, length: GLsizei, message: cstring) {.stdcall,importc.} -proc glPopDebugGroupKHR*() {.stdcall,importc.} -proc glObjectLabelKHR*(identifier: GLenum, name: GLuint, length: GLsizei, label: cstring) {.stdcall,importc.} -proc glGetObjectLabelKHR*(identifier: GLenum, name: GLuint, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall,importc.} -proc glObjectPtrLabelKHR*(`ptr`: pointer, length: GLsizei, label: cstring) {.stdcall,importc.} -proc glGetObjectPtrLabelKHR*(`ptr`: pointer, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall,importc.} -proc glGetPointervKHR*(pname: GLenum, params: ptr pointer) {.stdcall,importc.} -proc glMaxShaderCompilerThreadsKHR*(count: GLuint) {.stdcall,importc.} -proc glGetGraphicsResetStatusKHR*(): GLenum {.stdcall,importc.} -proc glReadnPixelsKHR*(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, `type`: GLenum, bufSize: GLsizei, data: pointer) {.stdcall,importc.} -proc glGetnUniformfvKHR*(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLfloat) {.stdcall,importc.} -proc glGetnUniformivKHR*(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLint) {.stdcall,importc.} -proc glGetnUniformuivKHR*(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLuint) {.stdcall,importc.} -proc glFramebufferParameteriMESA*(target: GLenum, pname: GLenum, param: GLint) {.stdcall,importc.} -proc glGetFramebufferParameterivMESA*(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetTextureHandleNV*(texture: GLuint): GLuint64 {.stdcall,importc.} -proc glGetTextureSamplerHandleNV*(texture: GLuint, sampler: GLuint): GLuint64 {.stdcall,importc.} -proc glMakeTextureHandleResidentNV*(handle: GLuint64) {.stdcall,importc.} -proc glMakeTextureHandleNonResidentNV*(handle: GLuint64) {.stdcall,importc.} -proc glGetImageHandleNV*(texture: GLuint, level: GLint, layered: GLboolean, layer: GLint, format: GLenum): GLuint64 {.stdcall,importc.} -proc glMakeImageHandleResidentNV*(handle: GLuint64, access: GLenum) {.stdcall,importc.} -proc glMakeImageHandleNonResidentNV*(handle: GLuint64) {.stdcall,importc.} -proc glUniformHandleui64NV*(location: GLint, value: GLuint64) {.stdcall,importc.} -proc glUniformHandleui64vNV*(location: GLint, count: GLsizei, value: ptr GLuint64) {.stdcall,importc.} -proc glProgramUniformHandleui64NV*(program: GLuint, location: GLint, value: GLuint64) {.stdcall,importc.} -proc glProgramUniformHandleui64vNV*(program: GLuint, location: GLint, count: GLsizei, values: ptr GLuint64) {.stdcall,importc.} -proc glIsTextureHandleResidentNV*(handle: GLuint64): GLboolean {.stdcall,importc.} -proc glIsImageHandleResidentNV*(handle: GLuint64): GLboolean {.stdcall,importc.} -proc glBlendParameteriNV*(pname: GLenum, value: GLint) {.stdcall,importc.} -proc glBlendBarrierNV*() {.stdcall,importc.} -proc glViewportPositionWScaleNV*(index: GLuint, xcoeff: GLfloat, ycoeff: GLfloat) {.stdcall,importc.} -proc glBeginConditionalRenderNV*(id: GLuint, mode: GLenum) {.stdcall,importc.} -proc glEndConditionalRenderNV*() {.stdcall,importc.} -proc glSubpixelPrecisionBiasNV*(xbits: GLuint, ybits: GLuint) {.stdcall,importc.} -proc glConservativeRasterParameteriNV*(pname: GLenum, param: GLint) {.stdcall,importc.} -proc glCopyBufferSubDataNV*(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) {.stdcall,importc.} -proc glCoverageMaskNV*(mask: GLboolean) {.stdcall,importc.} -proc glCoverageOperationNV*(operation: GLenum) {.stdcall,importc.} -proc glDrawBuffersNV*(n: GLsizei, bufs: ptr GLenum) {.stdcall,importc.} -proc glDrawArraysInstancedNV*(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei) {.stdcall,importc.} -proc glDrawElementsInstancedNV*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall,importc.} -proc glDrawVkImageNV*(vkImage: GLuint64, sampler: GLuint, x0: GLfloat, y0: GLfloat, x1: GLfloat, y1: GLfloat, z: GLfloat, s0: GLfloat, t0: GLfloat, s1: GLfloat, t1: GLfloat) {.stdcall,importc.} -proc glGetVkProcAddrNV*(name: cstring): GLVULKANPROCNV {.stdcall,importc.} -proc glWaitVkSemaphoreNV*(vkSemaphore: GLuint64) {.stdcall,importc.} -proc glSignalVkSemaphoreNV*(vkSemaphore: GLuint64) {.stdcall,importc.} -proc glSignalVkFenceNV*(vkFence: GLuint64) {.stdcall,importc.} -proc glDeleteFencesNV*(n: GLsizei, fences: ptr GLuint) {.stdcall,importc.} -proc glGenFencesNV*(n: GLsizei, fences: ptr GLuint) {.stdcall,importc.} -proc glIsFenceNV*(fence: GLuint): GLboolean {.stdcall,importc.} -proc glTestFenceNV*(fence: GLuint): GLboolean {.stdcall,importc.} -proc glGetFenceivNV*(fence: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glFinishFenceNV*(fence: GLuint) {.stdcall,importc.} -proc glSetFenceNV*(fence: GLuint, condition: GLenum) {.stdcall,importc.} -proc glFragmentCoverageColorNV*(color: GLuint) {.stdcall,importc.} -proc glBlitFramebufferNV*(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall,importc.} -proc glCoverageModulationTableNV*(n: GLsizei, v: ptr GLfloat) {.stdcall,importc.} -proc glGetCoverageModulationTableNV*(bufSize: GLsizei, v: ptr GLfloat) {.stdcall,importc.} -proc glCoverageModulationNV*(components: GLenum) {.stdcall,importc.} -proc glRenderbufferStorageMultisampleNV*(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glUniform1i64NV*(location: GLint, x: GLint64EXT) {.stdcall,importc.} -proc glUniform2i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT) {.stdcall,importc.} -proc glUniform3i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT) {.stdcall,importc.} -proc glUniform4i64NV*(location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT, w: GLint64EXT) {.stdcall,importc.} -proc glUniform1i64vNV*(location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall,importc.} -proc glUniform2i64vNV*(location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall,importc.} -proc glUniform3i64vNV*(location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall,importc.} -proc glUniform4i64vNV*(location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall,importc.} -proc glUniform1ui64NV*(location: GLint, x: GLuint64EXT) {.stdcall,importc.} -proc glUniform2ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT) {.stdcall,importc.} -proc glUniform3ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT) {.stdcall,importc.} -proc glUniform4ui64NV*(location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT, w: GLuint64EXT) {.stdcall,importc.} -proc glUniform1ui64vNV*(location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall,importc.} -proc glUniform2ui64vNV*(location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall,importc.} -proc glUniform3ui64vNV*(location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall,importc.} -proc glUniform4ui64vNV*(location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall,importc.} -proc glGetUniformi64vNV*(program: GLuint, location: GLint, params: ptr GLint64EXT) {.stdcall,importc.} -proc glProgramUniform1i64NV*(program: GLuint, location: GLint, x: GLint64EXT) {.stdcall,importc.} -proc glProgramUniform2i64NV*(program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT) {.stdcall,importc.} -proc glProgramUniform3i64NV*(program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT) {.stdcall,importc.} -proc glProgramUniform4i64NV*(program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT, w: GLint64EXT) {.stdcall,importc.} -proc glProgramUniform1i64vNV*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall,importc.} -proc glProgramUniform2i64vNV*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall,importc.} -proc glProgramUniform3i64vNV*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall,importc.} -proc glProgramUniform4i64vNV*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall,importc.} -proc glProgramUniform1ui64NV*(program: GLuint, location: GLint, x: GLuint64EXT) {.stdcall,importc.} -proc glProgramUniform2ui64NV*(program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT) {.stdcall,importc.} -proc glProgramUniform3ui64NV*(program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT) {.stdcall,importc.} -proc glProgramUniform4ui64NV*(program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT, w: GLuint64EXT) {.stdcall,importc.} -proc glProgramUniform1ui64vNV*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall,importc.} -proc glProgramUniform2ui64vNV*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall,importc.} -proc glProgramUniform3ui64vNV*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall,importc.} -proc glProgramUniform4ui64vNV*(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall,importc.} -proc glVertexAttribDivisorNV*(index: GLuint, divisor: GLuint) {.stdcall,importc.} -proc glGetInternalformatSampleivNV*(target: GLenum, internalformat: GLenum, samples: GLsizei, pname: GLenum, count: GLsizei, params: ptr GLint) {.stdcall,importc.} -proc glGetMemoryObjectDetachedResourcesuivNV*(memory: GLuint, pname: GLenum, first: GLint, count: GLsizei, params: ptr GLuint) {.stdcall,importc.} -proc glResetMemoryObjectParameterNV*(memory: GLuint, pname: GLenum) {.stdcall,importc.} -proc glTexAttachMemoryNV*(target: GLenum, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glBufferAttachMemoryNV*(target: GLenum, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glTextureAttachMemoryNV*(texture: GLuint, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glNamedBufferAttachMemoryNV*(buffer: GLuint, memory: GLuint, offset: GLuint64) {.stdcall,importc.} -proc glBufferPageCommitmentMemNV*(target: GLenum, offset: GLintptr, size: GLsizeiptr, memory: GLuint, memOffset: GLuint64, commit: GLboolean) {.stdcall,importc.} -proc glTexPageCommitmentMemNV*(target: GLenum, layer: GLint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64, commit: GLboolean) {.stdcall,importc.} -proc glNamedBufferPageCommitmentMemNV*(buffer: GLuint, offset: GLintptr, size: GLsizeiptr, memory: GLuint, memOffset: GLuint64, commit: GLboolean) {.stdcall,importc.} -proc glTexturePageCommitmentMemNV*(texture: GLuint, layer: GLint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64, commit: GLboolean) {.stdcall,importc.} -proc glDrawMeshTasksNV*(first: GLuint, count: GLuint) {.stdcall,importc.} -proc glDrawMeshTasksIndirectNV*(indirect: GLintptr) {.stdcall,importc.} -proc glMultiDrawMeshTasksIndirectNV*(indirect: GLintptr, drawcount: GLsizei, stride: GLsizei) {.stdcall,importc.} -proc glMultiDrawMeshTasksIndirectCountNV*(indirect: GLintptr, drawcount: GLintptr, maxdrawcount: GLsizei, stride: GLsizei) {.stdcall,importc.} -proc glUniformMatrix2x3fvNV*(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glUniformMatrix3x2fvNV*(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glUniformMatrix2x4fvNV*(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glUniformMatrix4x2fvNV*(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glUniformMatrix3x4fvNV*(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glUniformMatrix4x3fvNV*(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall,importc.} -proc glGenPathsNV*(range: GLsizei): GLuint {.stdcall,importc.} -proc glDeletePathsNV*(path: GLuint, range: GLsizei) {.stdcall,importc.} -proc glIsPathNV*(path: GLuint): GLboolean {.stdcall,importc.} -proc glPathCommandsNV*(path: GLuint, numCommands: GLsizei, commands: ptr GLubyte, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall,importc.} -proc glPathCoordsNV*(path: GLuint, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall,importc.} -proc glPathSubCommandsNV*(path: GLuint, commandStart: GLsizei, commandsToDelete: GLsizei, numCommands: GLsizei, commands: ptr GLubyte, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall,importc.} -proc glPathSubCoordsNV*(path: GLuint, coordStart: GLsizei, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall,importc.} -proc glPathStringNV*(path: GLuint, format: GLenum, length: GLsizei, pathString: pointer) {.stdcall,importc.} -proc glPathGlyphsNV*(firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, numGlyphs: GLsizei, `type`: GLenum, charcodes: pointer, handleMissingGlyphs: GLenum, pathParameterTemplate: GLuint, emScale: GLfloat) {.stdcall,importc.} -proc glPathGlyphRangeNV*(firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, firstGlyph: GLuint, numGlyphs: GLsizei, handleMissingGlyphs: GLenum, pathParameterTemplate: GLuint, emScale: GLfloat) {.stdcall,importc.} -proc glWeightPathsNV*(resultPath: GLuint, numPaths: GLsizei, paths: ptr GLuint, weights: ptr GLfloat) {.stdcall,importc.} -proc glCopyPathNV*(resultPath: GLuint, srcPath: GLuint) {.stdcall,importc.} -proc glInterpolatePathsNV*(resultPath: GLuint, pathA: GLuint, pathB: GLuint, weight: GLfloat) {.stdcall,importc.} -proc glTransformPathNV*(resultPath: GLuint, srcPath: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall,importc.} -proc glPathParameterivNV*(path: GLuint, pname: GLenum, value: ptr GLint) {.stdcall,importc.} -proc glPathParameteriNV*(path: GLuint, pname: GLenum, value: GLint) {.stdcall,importc.} -proc glPathParameterfvNV*(path: GLuint, pname: GLenum, value: ptr GLfloat) {.stdcall,importc.} -proc glPathParameterfNV*(path: GLuint, pname: GLenum, value: GLfloat) {.stdcall,importc.} -proc glPathDashArrayNV*(path: GLuint, dashCount: GLsizei, dashArray: ptr GLfloat) {.stdcall,importc.} -proc glPathStencilFuncNV*(`func`: GLenum, `ref`: GLint, mask: GLuint) {.stdcall,importc.} -proc glPathStencilDepthOffsetNV*(factor: GLfloat, units: GLfloat) {.stdcall,importc.} -proc glStencilFillPathNV*(path: GLuint, fillMode: GLenum, mask: GLuint) {.stdcall,importc.} -proc glStencilStrokePathNV*(path: GLuint, reference: GLint, mask: GLuint) {.stdcall,importc.} -proc glStencilFillPathInstancedNV*(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, fillMode: GLenum, mask: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall,importc.} -proc glStencilStrokePathInstancedNV*(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, reference: GLint, mask: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall,importc.} -proc glPathCoverDepthFuncNV*(`func`: GLenum) {.stdcall,importc.} -proc glCoverFillPathNV*(path: GLuint, coverMode: GLenum) {.stdcall,importc.} -proc glCoverStrokePathNV*(path: GLuint, coverMode: GLenum) {.stdcall,importc.} -proc glCoverFillPathInstancedNV*(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall,importc.} -proc glCoverStrokePathInstancedNV*(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall,importc.} -proc glGetPathParameterivNV*(path: GLuint, pname: GLenum, value: ptr GLint) {.stdcall,importc.} -proc glGetPathParameterfvNV*(path: GLuint, pname: GLenum, value: ptr GLfloat) {.stdcall,importc.} -proc glGetPathCommandsNV*(path: GLuint, commands: ptr GLubyte) {.stdcall,importc.} -proc glGetPathCoordsNV*(path: GLuint, coords: ptr GLfloat) {.stdcall,importc.} -proc glGetPathDashArrayNV*(path: GLuint, dashArray: ptr GLfloat) {.stdcall,importc.} -proc glGetPathMetricsNV*(metricQueryMask: GLbitfield, numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, stride: GLsizei, metrics: ptr GLfloat) {.stdcall,importc.} -proc glGetPathMetricRangeNV*(metricQueryMask: GLbitfield, firstPathName: GLuint, numPaths: GLsizei, stride: GLsizei, metrics: ptr GLfloat) {.stdcall,importc.} -proc glGetPathSpacingNV*(pathListMode: GLenum, numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, advanceScale: GLfloat, kerningScale: GLfloat, transformType: GLenum, returnedSpacing: ptr GLfloat) {.stdcall,importc.} -proc glIsPointInFillPathNV*(path: GLuint, mask: GLuint, x: GLfloat, y: GLfloat): GLboolean {.stdcall,importc.} -proc glIsPointInStrokePathNV*(path: GLuint, x: GLfloat, y: GLfloat): GLboolean {.stdcall,importc.} -proc glGetPathLengthNV*(path: GLuint, startSegment: GLsizei, numSegments: GLsizei): GLfloat {.stdcall,importc.} -proc glPointAlongPathNV*(path: GLuint, startSegment: GLsizei, numSegments: GLsizei, distance: GLfloat, x: ptr GLfloat, y: ptr GLfloat, tangentX: ptr GLfloat, tangentY: ptr GLfloat): GLboolean {.stdcall,importc.} -proc glMatrixLoad3x2fNV*(matrixMode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixLoad3x3fNV*(matrixMode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixLoadTranspose3x3fNV*(matrixMode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixMult3x2fNV*(matrixMode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixMult3x3fNV*(matrixMode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixMultTranspose3x3fNV*(matrixMode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glStencilThenCoverFillPathNV*(path: GLuint, fillMode: GLenum, mask: GLuint, coverMode: GLenum) {.stdcall,importc.} -proc glStencilThenCoverStrokePathNV*(path: GLuint, reference: GLint, mask: GLuint, coverMode: GLenum) {.stdcall,importc.} -proc glStencilThenCoverFillPathInstancedNV*(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, fillMode: GLenum, mask: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall,importc.} -proc glStencilThenCoverStrokePathInstancedNV*(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, reference: GLint, mask: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall,importc.} -proc glPathGlyphIndexRangeNV*(fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, pathParameterTemplate: GLuint, emScale: GLfloat, baseAndCount: ptr GLuint): GLenum {.stdcall,importc.} -proc glPathGlyphIndexArrayNV*(firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, firstGlyphIndex: GLuint, numGlyphs: GLsizei, pathParameterTemplate: GLuint, emScale: GLfloat): GLenum {.stdcall,importc.} -proc glPathMemoryGlyphIndexArrayNV*(firstPathName: GLuint, fontTarget: GLenum, fontSize: GLsizeiptr, fontData: pointer, faceIndex: GLsizei, firstGlyphIndex: GLuint, numGlyphs: GLsizei, pathParameterTemplate: GLuint, emScale: GLfloat): GLenum {.stdcall,importc.} -proc glProgramPathFragmentInputGenNV*(program: GLuint, location: GLint, genMode: GLenum, components: GLint, coeffs: ptr GLfloat) {.stdcall,importc.} -proc glGetProgramResourcefvNV*(program: GLuint, programInterface: GLenum, index: GLuint, propCount: GLsizei, props: ptr GLenum, count: GLsizei, length: ptr GLsizei, params: ptr GLfloat) {.stdcall,importc.} -proc glPathColorGenNV*(color: GLenum, genMode: GLenum, colorFormat: GLenum, coeffs: ptr GLfloat) {.stdcall,importc.} -proc glPathTexGenNV*(texCoordSet: GLenum, genMode: GLenum, components: GLint, coeffs: ptr GLfloat) {.stdcall,importc.} -proc glPathFogGenNV*(genMode: GLenum) {.stdcall,importc.} -proc glGetPathColorGenivNV*(color: GLenum, pname: GLenum, value: ptr GLint) {.stdcall,importc.} -proc glGetPathColorGenfvNV*(color: GLenum, pname: GLenum, value: ptr GLfloat) {.stdcall,importc.} -proc glGetPathTexGenivNV*(texCoordSet: GLenum, pname: GLenum, value: ptr GLint) {.stdcall,importc.} -proc glGetPathTexGenfvNV*(texCoordSet: GLenum, pname: GLenum, value: ptr GLfloat) {.stdcall,importc.} -proc glMatrixFrustumEXT*(mode: GLenum, left: GLdouble, right: GLdouble, bottom: GLdouble, top: GLdouble, zNear: GLdouble, zFar: GLdouble) {.stdcall,importc.} -proc glMatrixLoadIdentityEXT*(mode: GLenum) {.stdcall,importc.} -proc glMatrixLoadTransposefEXT*(mode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixLoadTransposedEXT*(mode: GLenum, m: ptr GLdouble) {.stdcall,importc.} -proc glMatrixLoadfEXT*(mode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixLoaddEXT*(mode: GLenum, m: ptr GLdouble) {.stdcall,importc.} -proc glMatrixMultTransposefEXT*(mode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixMultTransposedEXT*(mode: GLenum, m: ptr GLdouble) {.stdcall,importc.} -proc glMatrixMultfEXT*(mode: GLenum, m: ptr GLfloat) {.stdcall,importc.} -proc glMatrixMultdEXT*(mode: GLenum, m: ptr GLdouble) {.stdcall,importc.} -proc glMatrixOrthoEXT*(mode: GLenum, left: GLdouble, right: GLdouble, bottom: GLdouble, top: GLdouble, zNear: GLdouble, zFar: GLdouble) {.stdcall,importc.} -proc glMatrixPopEXT*(mode: GLenum) {.stdcall,importc.} -proc glMatrixPushEXT*(mode: GLenum) {.stdcall,importc.} -proc glMatrixRotatefEXT*(mode: GLenum, angle: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall,importc.} -proc glMatrixRotatedEXT*(mode: GLenum, angle: GLdouble, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall,importc.} -proc glMatrixScalefEXT*(mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall,importc.} -proc glMatrixScaledEXT*(mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall,importc.} -proc glMatrixTranslatefEXT*(mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall,importc.} -proc glMatrixTranslatedEXT*(mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall,importc.} -proc glPolygonModeNV*(face: GLenum, mode: GLenum) {.stdcall,importc.} -proc glReadBufferNV*(mode: GLenum) {.stdcall,importc.} -proc glFramebufferSampleLocationsfvNV*(target: GLenum, start: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall,importc.} -proc glNamedFramebufferSampleLocationsfvNV*(framebuffer: GLuint, start: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall,importc.} -proc glResolveDepthValuesNV*() {.stdcall,importc.} -proc glScissorExclusiveNV*(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glScissorExclusiveArrayvNV*(first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall,importc.} -proc glBindShadingRateImageNV*(texture: GLuint) {.stdcall,importc.} -proc glGetShadingRateImagePaletteNV*(viewport: GLuint, entry: GLuint, rate: ptr GLenum) {.stdcall,importc.} -proc glGetShadingRateSampleLocationivNV*(rate: GLenum, samples: GLuint, index: GLuint, location: ptr GLint) {.stdcall,importc.} -proc glShadingRateImageBarrierNV*(synchronize: GLboolean) {.stdcall,importc.} -proc glShadingRateImagePaletteNV*(viewport: GLuint, first: GLuint, count: GLsizei, rates: ptr GLenum) {.stdcall,importc.} -proc glShadingRateSampleOrderNV*(order: GLenum) {.stdcall,importc.} -proc glShadingRateSampleOrderCustomNV*(rate: GLenum, samples: GLuint, locations: ptr GLint) {.stdcall,importc.} -proc glCreateSemaphoresNV*(n: GLsizei, semaphores: ptr GLuint) {.stdcall,importc.} -proc glSemaphoreParameterivNV*(semaphore: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetSemaphoreParameterivNV*(semaphore: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glViewportArrayvNV*(first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall,importc.} -proc glViewportIndexedfNV*(index: GLuint, x: GLfloat, y: GLfloat, w: GLfloat, h: GLfloat) {.stdcall,importc.} -proc glViewportIndexedfvNV*(index: GLuint, v: ptr GLfloat) {.stdcall,importc.} -proc glScissorArrayvNV*(first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall,importc.} -proc glScissorIndexedNV*(index: GLuint, left: GLint, bottom: GLint, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glScissorIndexedvNV*(index: GLuint, v: ptr GLint) {.stdcall,importc.} -proc glDepthRangeArrayfvNV*(first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall,importc.} -proc glDepthRangeIndexedfNV*(index: GLuint, n: GLfloat, f: GLfloat) {.stdcall,importc.} -proc glGetFloati_vNV*(target: GLenum, index: GLuint, data: ptr GLfloat) {.stdcall,importc.} -proc glEnableiNV*(target: GLenum, index: GLuint) {.stdcall,importc.} -proc glDisableiNV*(target: GLenum, index: GLuint) {.stdcall,importc.} -proc glIsEnablediNV*(target: GLenum, index: GLuint): GLboolean {.stdcall,importc.} -proc glViewportSwizzleNV*(index: GLuint, swizzlex: GLenum, swizzley: GLenum, swizzlez: GLenum, swizzlew: GLenum) {.stdcall,importc.} -proc glEGLImageTargetTexture2DOES*(target: GLenum, image: GLeglImageOES) {.stdcall,importc.} -proc glEGLImageTargetRenderbufferStorageOES*(target: GLenum, image: GLeglImageOES) {.stdcall,importc.} -proc glCopyImageSubDataOES*(srcName: GLuint, srcTarget: GLenum, srcLevel: GLint, srcX: GLint, srcY: GLint, srcZ: GLint, dstName: GLuint, dstTarget: GLenum, dstLevel: GLint, dstX: GLint, dstY: GLint, dstZ: GLint, srcWidth: GLsizei, srcHeight: GLsizei, srcDepth: GLsizei) {.stdcall,importc.} -proc glEnableiOES*(target: GLenum, index: GLuint) {.stdcall,importc.} -proc glDisableiOES*(target: GLenum, index: GLuint) {.stdcall,importc.} -proc glBlendEquationiOES*(buf: GLuint, mode: GLenum) {.stdcall,importc.} -proc glBlendEquationSeparateiOES*(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum) {.stdcall,importc.} -proc glBlendFunciOES*(buf: GLuint, src: GLenum, dst: GLenum) {.stdcall,importc.} -proc glBlendFuncSeparateiOES*(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) {.stdcall,importc.} -proc glColorMaskiOES*(index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean) {.stdcall,importc.} -proc glIsEnablediOES*(target: GLenum, index: GLuint): GLboolean {.stdcall,importc.} -proc glDrawElementsBaseVertexOES*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall,importc.} -proc glDrawRangeElementsBaseVertexOES*(mode: GLenum, start: GLuint, `end`: GLuint, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall,importc.} -proc glDrawElementsInstancedBaseVertexOES*(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint) {.stdcall,importc.} -proc glFramebufferTextureOES*(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint) {.stdcall,importc.} -proc glGetProgramBinaryOES*(program: GLuint, bufSize: GLsizei, length: ptr GLsizei, binaryFormat: ptr GLenum, binary: pointer) {.stdcall,importc.} -proc glProgramBinaryOES*(program: GLuint, binaryFormat: GLenum, binary: pointer, length: GLint) {.stdcall,importc.} -proc glMapBufferOES*(target: GLenum, access: GLenum): pointer {.stdcall,importc.} -proc glUnmapBufferOES*(target: GLenum): GLboolean {.stdcall,importc.} -proc glGetBufferPointervOES*(target: GLenum, pname: GLenum, params: ptr pointer) {.stdcall,importc.} -proc glPrimitiveBoundingBoxOES*(minX: GLfloat, minY: GLfloat, minZ: GLfloat, minW: GLfloat, maxX: GLfloat, maxY: GLfloat, maxZ: GLfloat, maxW: GLfloat) {.stdcall,importc.} -proc glMinSampleShadingOES*(value: GLfloat) {.stdcall,importc.} -proc glPatchParameteriOES*(pname: GLenum, value: GLint) {.stdcall,importc.} -proc glTexImage3DOES*(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, `type`: GLenum, pixels: pointer) {.stdcall,importc.} -proc glTexSubImage3DOES*(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, pixels: pointer) {.stdcall,importc.} -proc glCopyTexSubImage3DOES*(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glCompressedTexImage3DOES*(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, data: pointer) {.stdcall,importc.} -proc glCompressedTexSubImage3DOES*(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, data: pointer) {.stdcall,importc.} -proc glFramebufferTexture3DOES*(target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, zoffset: GLint) {.stdcall,importc.} -proc glTexParameterIivOES*(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glTexParameterIuivOES*(target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall,importc.} -proc glGetTexParameterIivOES*(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetTexParameterIuivOES*(target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall,importc.} -proc glSamplerParameterIivOES*(sampler: GLuint, pname: GLenum, param: ptr GLint) {.stdcall,importc.} -proc glSamplerParameterIuivOES*(sampler: GLuint, pname: GLenum, param: ptr GLuint) {.stdcall,importc.} -proc glGetSamplerParameterIivOES*(sampler: GLuint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glGetSamplerParameterIuivOES*(sampler: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall,importc.} -proc glTexBufferOES*(target: GLenum, internalformat: GLenum, buffer: GLuint) {.stdcall,importc.} -proc glTexBufferRangeOES*(target: GLenum, internalformat: GLenum, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) {.stdcall,importc.} -proc glTexStorage3DMultisampleOES*(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedsamplelocations: GLboolean) {.stdcall,importc.} -proc glTextureViewOES*(texture: GLuint, target: GLenum, origtexture: GLuint, internalformat: GLenum, minlevel: GLuint, numlevels: GLuint, minlayer: GLuint, numlayers: GLuint) {.stdcall,importc.} -proc glBindVertexArrayOES*(array: GLuint) {.stdcall,importc.} -proc glDeleteVertexArraysOES*(n: GLsizei, arrays: ptr GLuint) {.stdcall,importc.} -proc glGenVertexArraysOES*(n: GLsizei, arrays: ptr GLuint) {.stdcall,importc.} -proc glIsVertexArrayOES*(array: GLuint): GLboolean {.stdcall,importc.} -proc glViewportArrayvOES*(first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall,importc.} -proc glViewportIndexedfOES*(index: GLuint, x: GLfloat, y: GLfloat, w: GLfloat, h: GLfloat) {.stdcall,importc.} -proc glViewportIndexedfvOES*(index: GLuint, v: ptr GLfloat) {.stdcall,importc.} -proc glScissorArrayvOES*(first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall,importc.} -proc glScissorIndexedOES*(index: GLuint, left: GLint, bottom: GLint, width: GLsizei, height: GLsizei) {.stdcall,importc.} -proc glScissorIndexedvOES*(index: GLuint, v: ptr GLint) {.stdcall,importc.} -proc glDepthRangeArrayfvOES*(first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall,importc.} -proc glDepthRangeIndexedfOES*(index: GLuint, n: GLfloat, f: GLfloat) {.stdcall,importc.} -proc glGetFloati_vOES*(target: GLenum, index: GLuint, data: ptr GLfloat) {.stdcall,importc.} -proc glFramebufferTextureMultiviewOVR*(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, baseViewIndex: GLint, numViews: GLsizei) {.stdcall,importc.} -proc glNamedFramebufferTextureMultiviewOVR*(framebuffer: GLuint, attachment: GLenum, texture: GLuint, level: GLint, baseViewIndex: GLint, numViews: GLsizei) {.stdcall,importc.} -proc glFramebufferTextureMultisampleMultiviewOVR*(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, samples: GLsizei, baseViewIndex: GLint, numViews: GLsizei) {.stdcall,importc.} -proc glAlphaFuncQCOM*(`func`: GLenum, `ref`: GLclampf) {.stdcall,importc.} -proc glGetDriverControlsQCOM*(num: ptr GLint, size: GLsizei, driverControls: ptr GLuint) {.stdcall,importc.} -proc glGetDriverControlStringQCOM*(driverControl: GLuint, bufSize: GLsizei, length: ptr GLsizei, driverControlString: cstring) {.stdcall,importc.} -proc glEnableDriverControlQCOM*(driverControl: GLuint) {.stdcall,importc.} -proc glDisableDriverControlQCOM*(driverControl: GLuint) {.stdcall,importc.} -proc glExtGetTexturesQCOM*(textures: ptr GLuint, maxTextures: GLint, numTextures: ptr GLint) {.stdcall,importc.} -proc glExtGetBuffersQCOM*(buffers: ptr GLuint, maxBuffers: GLint, numBuffers: ptr GLint) {.stdcall,importc.} -proc glExtGetRenderbuffersQCOM*(renderbuffers: ptr GLuint, maxRenderbuffers: GLint, numRenderbuffers: ptr GLint) {.stdcall,importc.} -proc glExtGetFramebuffersQCOM*(framebuffers: ptr GLuint, maxFramebuffers: GLint, numFramebuffers: ptr GLint) {.stdcall,importc.} -proc glExtGetTexLevelParameterivQCOM*(texture: GLuint, face: GLenum, level: GLint, pname: GLenum, params: ptr GLint) {.stdcall,importc.} -proc glExtTexObjectStateOverrideiQCOM*(target: GLenum, pname: GLenum, param: GLint) {.stdcall,importc.} -proc glExtGetTexSubImageQCOM*(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, texels: pointer) {.stdcall,importc.} -proc glExtGetBufferPointervQCOM*(target: GLenum, params: ptr pointer) {.stdcall,importc.} -proc glExtGetShadersQCOM*(shaders: ptr GLuint, maxShaders: GLint, numShaders: ptr GLint) {.stdcall,importc.} -proc glExtGetProgramsQCOM*(programs: ptr GLuint, maxPrograms: GLint, numPrograms: ptr GLint) {.stdcall,importc.} -proc glExtIsProgramBinaryQCOM*(program: GLuint): GLboolean {.stdcall,importc.} -proc glExtGetProgramBinarySourceQCOM*(program: GLuint, shadertype: GLenum, source: cstring, length: ptr GLint) {.stdcall,importc.} -proc glExtrapolateTex2DQCOM*(src1: GLuint, src2: GLuint, output: GLuint, scaleFactor: GLfloat) {.stdcall,importc.} -proc glFramebufferFoveationConfigQCOM*(framebuffer: GLuint, numLayers: GLuint, focalPointsPerLayer: GLuint, requestedFeatures: GLuint, providedFeatures: ptr GLuint) {.stdcall,importc.} -proc glFramebufferFoveationParametersQCOM*(framebuffer: GLuint, layer: GLuint, focalPoint: GLuint, focalX: GLfloat, focalY: GLfloat, gainX: GLfloat, gainY: GLfloat, foveaArea: GLfloat) {.stdcall,importc.} -proc glTexEstimateMotionQCOM*(`ref`: GLuint, target: GLuint, output: GLuint) {.stdcall,importc.} -proc glTexEstimateMotionRegionsQCOM*(`ref`: GLuint, target: GLuint, output: GLuint, mask: GLuint) {.stdcall,importc.} -proc glFramebufferFetchBarrierQCOM*() {.stdcall,importc.} -proc glShadingRateQCOM*(rate: GLenum) {.stdcall,importc.} -proc glTextureFoveationParametersQCOM*(texture: GLuint, layer: GLuint, focalPoint: GLuint, focalX: GLfloat, focalY: GLfloat, gainX: GLfloat, gainY: GLfloat, foveaArea: GLfloat) {.stdcall,importc.} -proc glStartTilingQCOM*(x: GLuint, y: GLuint, width: GLuint, height: GLuint, preserveMask: GLbitfield) {.stdcall,importc.} -proc glEndTilingQCOM*(preserveMask: GLbitfield) {.stdcall,importc.} +var glRenderbufferStorageMultisampleAdvancedAMD*: proc(target: GLenum, samples: GLsizei, storageSamples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glNamedRenderbufferStorageMultisampleAdvancedAMD*: proc(renderbuffer: GLuint, samples: GLsizei, storageSamples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glGetPerfMonitorGroupsAMD*: proc(numGroups: ptr GLint, groupsSize: GLsizei, groups: ptr GLuint) {.stdcall.} +var glGetPerfMonitorCountersAMD*: proc(group: GLuint, numCounters: ptr GLint, maxActiveCounters: ptr GLint, counterSize: GLsizei, counters: ptr GLuint) {.stdcall.} +var glGetPerfMonitorGroupStringAMD*: proc(group: GLuint, bufSize: GLsizei, length: ptr GLsizei, groupString: cstring) {.stdcall.} +var glGetPerfMonitorCounterStringAMD*: proc(group: GLuint, counter: GLuint, bufSize: GLsizei, length: ptr GLsizei, counterString: cstring) {.stdcall.} +var glGetPerfMonitorCounterInfoAMD*: proc(group: GLuint, counter: GLuint, pname: GLenum, data: pointer) {.stdcall.} +var glGenPerfMonitorsAMD*: proc(n: GLsizei, monitors: ptr GLuint) {.stdcall.} +var glDeletePerfMonitorsAMD*: proc(n: GLsizei, monitors: ptr GLuint) {.stdcall.} +var glSelectPerfMonitorCountersAMD*: proc(monitor: GLuint, enable: GLboolean, group: GLuint, numCounters: GLint, counterList: ptr GLuint) {.stdcall.} +var glBeginPerfMonitorAMD*: proc(monitor: GLuint) {.stdcall.} +var glEndPerfMonitorAMD*: proc(monitor: GLuint) {.stdcall.} +var glGetPerfMonitorCounterDataAMD*: proc(monitor: GLuint, pname: GLenum, dataSize: GLsizei, data: ptr GLuint, bytesWritten: ptr GLint) {.stdcall.} +var glBlitFramebufferANGLE*: proc(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall.} +var glRenderbufferStorageMultisampleANGLE*: proc(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glDrawArraysInstancedANGLE*: proc(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei) {.stdcall.} +var glDrawElementsInstancedANGLE*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall.} +var glVertexAttribDivisorANGLE*: proc(index: GLuint, divisor: GLuint) {.stdcall.} +var glGetTranslatedShaderSourceANGLE*: proc(shader: GLuint, bufSize: GLsizei, length: ptr GLsizei, source: cstring) {.stdcall.} +var glCopyTextureLevelsAPPLE*: proc(destinationTexture: GLuint, sourceTexture: GLuint, sourceBaseLevel: GLint, sourceLevelCount: GLsizei) {.stdcall.} +var glRenderbufferStorageMultisampleAPPLE*: proc(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glResolveMultisampleFramebufferAPPLE*: proc() {.stdcall.} +var glFenceSyncAPPLE*: proc(condition: GLenum, flags: GLbitfield): GLsync {.stdcall.} +var glIsSyncAPPLE*: proc(sync: GLsync): GLboolean {.stdcall.} +var glDeleteSyncAPPLE*: proc(sync: GLsync) {.stdcall.} +var glClientWaitSyncAPPLE*: proc(sync: GLsync, flags: GLbitfield, timeout: GLuint64): GLenum {.stdcall.} +var glWaitSyncAPPLE*: proc(sync: GLsync, flags: GLbitfield, timeout: GLuint64) {.stdcall.} +var glGetInteger64vAPPLE*: proc(pname: GLenum, params: ptr GLint64) {.stdcall.} +var glGetSyncivAPPLE*: proc(sync: GLsync, pname: GLenum, count: GLsizei, length: ptr GLsizei, values: ptr GLint) {.stdcall.} +var glMaxActiveShaderCoresARM*: proc(count: GLuint) {.stdcall.} +var glEGLImageTargetTexStorageEXT*: proc(target: GLenum, image: GLeglImageOES, attrib_list: ptr GLint) {.stdcall.} +var glEGLImageTargetTextureStorageEXT*: proc(texture: GLuint, image: GLeglImageOES, attrib_list: ptr GLint) {.stdcall.} +var glDrawArraysInstancedBaseInstanceEXT*: proc(mode: GLenum, first: GLint, count: GLsizei, instancecount: GLsizei, baseinstance: GLuint) {.stdcall.} +var glDrawElementsInstancedBaseInstanceEXT*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, baseinstance: GLuint) {.stdcall.} +var glDrawElementsInstancedBaseVertexBaseInstanceEXT*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint, baseinstance: GLuint) {.stdcall.} +var glBindFragDataLocationIndexedEXT*: proc(program: GLuint, colorNumber: GLuint, index: GLuint, name: cstring) {.stdcall.} +var glBindFragDataLocationEXT*: proc(program: GLuint, color: GLuint, name: cstring) {.stdcall.} +var glGetProgramResourceLocationIndexEXT*: proc(program: GLuint, programInterface: GLenum, name: cstring): GLint {.stdcall.} +var glGetFragDataIndexEXT*: proc(program: GLuint, name: cstring): GLint {.stdcall.} +var glBlendEquationEXT*: proc(mode: GLenum) {.stdcall.} +var glBufferStorageEXT*: proc(target: GLenum, size: GLsizeiptr, data: pointer, flags: GLbitfield) {.stdcall.} +var glClearTexImageEXT*: proc(texture: GLuint, level: GLint, format: GLenum, `type`: GLenum, data: pointer) {.stdcall.} +var glClearTexSubImageEXT*: proc(texture: GLuint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, data: pointer) {.stdcall.} +var glClipControlEXT*: proc(origin: GLenum, depth: GLenum) {.stdcall.} +var glCopyImageSubDataEXT*: proc(srcName: GLuint, srcTarget: GLenum, srcLevel: GLint, srcX: GLint, srcY: GLint, srcZ: GLint, dstName: GLuint, dstTarget: GLenum, dstLevel: GLint, dstX: GLint, dstY: GLint, dstZ: GLint, srcWidth: GLsizei, srcHeight: GLsizei, srcDepth: GLsizei) {.stdcall.} +var glLabelObjectEXT*: proc(`type`: GLenum, `object`: GLuint, length: GLsizei, label: cstring) {.stdcall.} +var glGetObjectLabelEXT*: proc(`type`: GLenum, `object`: GLuint, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall.} +var glInsertEventMarkerEXT*: proc(length: GLsizei, marker: cstring) {.stdcall.} +var glPushGroupMarkerEXT*: proc(length: GLsizei, marker: cstring) {.stdcall.} +var glPopGroupMarkerEXT*: proc() {.stdcall.} +var glDiscardFramebufferEXT*: proc(target: GLenum, numAttachments: GLsizei, attachments: ptr GLenum) {.stdcall.} +var glGenQueriesEXT*: proc(n: GLsizei, ids: ptr GLuint) {.stdcall.} +var glDeleteQueriesEXT*: proc(n: GLsizei, ids: ptr GLuint) {.stdcall.} +var glIsQueryEXT*: proc(id: GLuint): GLboolean {.stdcall.} +var glBeginQueryEXT*: proc(target: GLenum, id: GLuint) {.stdcall.} +var glEndQueryEXT*: proc(target: GLenum) {.stdcall.} +var glQueryCounterEXT*: proc(id: GLuint, target: GLenum) {.stdcall.} +var glGetQueryivEXT*: proc(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetQueryObjectivEXT*: proc(id: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetQueryObjectuivEXT*: proc(id: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall.} +var glGetQueryObjecti64vEXT*: proc(id: GLuint, pname: GLenum, params: ptr GLint64) {.stdcall.} +var glGetQueryObjectui64vEXT*: proc(id: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall.} +var glGetInteger64vEXT*: proc(pname: GLenum, data: ptr GLint64) {.stdcall.} +var glDrawBuffersEXT*: proc(n: GLsizei, bufs: ptr GLenum) {.stdcall.} +var glEnableiEXT*: proc(target: GLenum, index: GLuint) {.stdcall.} +var glDisableiEXT*: proc(target: GLenum, index: GLuint) {.stdcall.} +var glBlendEquationiEXT*: proc(buf: GLuint, mode: GLenum) {.stdcall.} +var glBlendEquationSeparateiEXT*: proc(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum) {.stdcall.} +var glBlendFunciEXT*: proc(buf: GLuint, src: GLenum, dst: GLenum) {.stdcall.} +var glBlendFuncSeparateiEXT*: proc(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) {.stdcall.} +var glColorMaskiEXT*: proc(index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean) {.stdcall.} +var glIsEnablediEXT*: proc(target: GLenum, index: GLuint): GLboolean {.stdcall.} +var glDrawElementsBaseVertexEXT*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall.} +var glDrawRangeElementsBaseVertexEXT*: proc(mode: GLenum, start: GLuint, `end`: GLuint, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall.} +var glDrawElementsInstancedBaseVertexEXT*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint) {.stdcall.} +var glMultiDrawElementsBaseVertexEXT*: proc(mode: GLenum, count: ptr GLsizei, `type`: GLenum, indices: ptr pointer, drawcount: GLsizei, basevertex: ptr GLint) {.stdcall.} +var glDrawArraysInstancedEXT*: proc(mode: GLenum, start: GLint, count: GLsizei, primcount: GLsizei) {.stdcall.} +var glDrawElementsInstancedEXT*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall.} +var glDrawTransformFeedbackEXT*: proc(mode: GLenum, id: GLuint) {.stdcall.} +var glDrawTransformFeedbackInstancedEXT*: proc(mode: GLenum, id: GLuint, instancecount: GLsizei) {.stdcall.} +var glBufferStorageExternalEXT*: proc(target: GLenum, offset: GLintptr, size: GLsizeiptr, clientBuffer: GLeglClientBufferEXT, flags: GLbitfield) {.stdcall.} +var glNamedBufferStorageExternalEXT*: proc(buffer: GLuint, offset: GLintptr, size: GLsizeiptr, clientBuffer: GLeglClientBufferEXT, flags: GLbitfield) {.stdcall.} +var glGetFragmentShadingRatesEXT*: proc(samples: GLsizei, maxCount: GLsizei, count: ptr GLsizei, shadingRates: ptr GLenum) {.stdcall.} +var glShadingRateEXT*: proc(rate: GLenum) {.stdcall.} +var glShadingRateCombinerOpsEXT*: proc(combinerOp0: GLenum, combinerOp1: GLenum) {.stdcall.} +var glFramebufferShadingRateEXT*: proc(target: GLenum, attachment: GLenum, texture: GLuint, baseLayer: GLint, numLayers: GLsizei, texelWidth: GLsizei, texelHeight: GLsizei) {.stdcall.} +var glBlitFramebufferLayersEXT*: proc(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall.} +var glBlitFramebufferLayerEXT*: proc(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, srcLayer: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, dstLayer: GLint, mask: GLbitfield, filter: GLenum) {.stdcall.} +var glFramebufferTextureEXT*: proc(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint) {.stdcall.} +var glVertexAttribDivisorEXT*: proc(index: GLuint, divisor: GLuint) {.stdcall.} +var glMapBufferRangeEXT*: proc(target: GLenum, offset: GLintptr, length: GLsizeiptr, access: GLbitfield): pointer {.stdcall.} +var glFlushMappedBufferRangeEXT*: proc(target: GLenum, offset: GLintptr, length: GLsizeiptr) {.stdcall.} +var glGetUnsignedBytevEXT*: proc(pname: GLenum, data: ptr GLubyte) {.stdcall.} +var glGetUnsignedBytei_vEXT*: proc(target: GLenum, index: GLuint, data: ptr GLubyte) {.stdcall.} +var glDeleteMemoryObjectsEXT*: proc(n: GLsizei, memoryObjects: ptr GLuint) {.stdcall.} +var glIsMemoryObjectEXT*: proc(memoryObject: GLuint): GLboolean {.stdcall.} +var glCreateMemoryObjectsEXT*: proc(n: GLsizei, memoryObjects: ptr GLuint) {.stdcall.} +var glMemoryObjectParameterivEXT*: proc(memoryObject: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetMemoryObjectParameterivEXT*: proc(memoryObject: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glTexStorageMem2DEXT*: proc(target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTexStorageMem2DMultisampleEXT*: proc(target: GLenum, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTexStorageMem3DEXT*: proc(target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTexStorageMem3DMultisampleEXT*: proc(target: GLenum, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall.} +var glBufferStorageMemEXT*: proc(target: GLenum, size: GLsizeiptr, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTextureStorageMem2DEXT*: proc(texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTextureStorageMem2DMultisampleEXT*: proc(texture: GLuint, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTextureStorageMem3DEXT*: proc(texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTextureStorageMem3DMultisampleEXT*: proc(texture: GLuint, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall.} +var glNamedBufferStorageMemEXT*: proc(buffer: GLuint, size: GLsizeiptr, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTexStorageMem1DEXT*: proc(target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTextureStorageMem1DEXT*: proc(texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.} +var glImportMemoryFdEXT*: proc(memory: GLuint, size: GLuint64, handleType: GLenum, fd: GLint) {.stdcall.} +var glImportMemoryWin32HandleEXT*: proc(memory: GLuint, size: GLuint64, handleType: GLenum, handle: pointer) {.stdcall.} +var glImportMemoryWin32NameEXT*: proc(memory: GLuint, size: GLuint64, handleType: GLenum, name: pointer) {.stdcall.} +var glMultiDrawArraysEXT*: proc(mode: GLenum, first: ptr GLint, count: ptr GLsizei, primcount: GLsizei) {.stdcall.} +var glMultiDrawElementsEXT*: proc(mode: GLenum, count: ptr GLsizei, `type`: GLenum, indices: ptr pointer, primcount: GLsizei) {.stdcall.} +var glMultiDrawArraysIndirectEXT*: proc(mode: GLenum, indirect: pointer, drawcount: GLsizei, stride: GLsizei) {.stdcall.} +var glMultiDrawElementsIndirectEXT*: proc(mode: GLenum, `type`: GLenum, indirect: pointer, drawcount: GLsizei, stride: GLsizei) {.stdcall.} +var glRenderbufferStorageMultisampleEXT*: proc(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glFramebufferTexture2DMultisampleEXT*: proc(target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, samples: GLsizei) {.stdcall.} +var glReadBufferIndexedEXT*: proc(src: GLenum, index: GLint) {.stdcall.} +var glDrawBuffersIndexedEXT*: proc(n: GLint, location: ptr GLenum, indices: ptr GLint) {.stdcall.} +var glGetIntegeri_vEXT*: proc(target: GLenum, index: GLuint, data: ptr GLint) {.stdcall.} +var glPolygonOffsetClampEXT*: proc(factor: GLfloat, units: GLfloat, clamp: GLfloat) {.stdcall.} +var glPrimitiveBoundingBoxEXT*: proc(minX: GLfloat, minY: GLfloat, minZ: GLfloat, minW: GLfloat, maxX: GLfloat, maxY: GLfloat, maxZ: GLfloat, maxW: GLfloat) {.stdcall.} +var glRasterSamplesEXT*: proc(samples: GLuint, fixedsamplelocations: GLboolean) {.stdcall.} +var glGetGraphicsResetStatusEXT*: proc(): GLenum {.stdcall.} +var glReadnPixelsEXT*: proc(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, `type`: GLenum, bufSize: GLsizei, data: pointer) {.stdcall.} +var glGetnUniformfvEXT*: proc(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLfloat) {.stdcall.} +var glGetnUniformivEXT*: proc(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLint) {.stdcall.} +var glGenSemaphoresEXT*: proc(n: GLsizei, semaphores: ptr GLuint) {.stdcall.} +var glDeleteSemaphoresEXT*: proc(n: GLsizei, semaphores: ptr GLuint) {.stdcall.} +var glIsSemaphoreEXT*: proc(semaphore: GLuint): GLboolean {.stdcall.} +var glSemaphoreParameterui64vEXT*: proc(semaphore: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall.} +var glGetSemaphoreParameterui64vEXT*: proc(semaphore: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall.} +var glWaitSemaphoreEXT*: proc(semaphore: GLuint, numBufferBarriers: GLuint, buffers: ptr GLuint, numTextureBarriers: GLuint, textures: ptr GLuint, srcLayouts: ptr GLenum) {.stdcall.} +var glSignalSemaphoreEXT*: proc(semaphore: GLuint, numBufferBarriers: GLuint, buffers: ptr GLuint, numTextureBarriers: GLuint, textures: ptr GLuint, dstLayouts: ptr GLenum) {.stdcall.} +var glImportSemaphoreFdEXT*: proc(semaphore: GLuint, handleType: GLenum, fd: GLint) {.stdcall.} +var glImportSemaphoreWin32HandleEXT*: proc(semaphore: GLuint, handleType: GLenum, handle: pointer) {.stdcall.} +var glImportSemaphoreWin32NameEXT*: proc(semaphore: GLuint, handleType: GLenum, name: pointer) {.stdcall.} +var glUseShaderProgramEXT*: proc(`type`: GLenum, program: GLuint) {.stdcall.} +var glActiveProgramEXT*: proc(program: GLuint) {.stdcall.} +var glCreateShaderProgramEXT*: proc(`type`: GLenum, string: cstring): GLuint {.stdcall.} +var glActiveShaderProgramEXT*: proc(pipeline: GLuint, program: GLuint) {.stdcall.} +var glBindProgramPipelineEXT*: proc(pipeline: GLuint) {.stdcall.} +var glCreateShaderProgramvEXT*: proc(`type`: GLenum, count: GLsizei, strings: cstringArray): GLuint {.stdcall.} +var glDeleteProgramPipelinesEXT*: proc(n: GLsizei, pipelines: ptr GLuint) {.stdcall.} +var glGenProgramPipelinesEXT*: proc(n: GLsizei, pipelines: ptr GLuint) {.stdcall.} +var glGetProgramPipelineInfoLogEXT*: proc(pipeline: GLuint, bufSize: GLsizei, length: ptr GLsizei, infoLog: cstring) {.stdcall.} +var glGetProgramPipelineivEXT*: proc(pipeline: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glIsProgramPipelineEXT*: proc(pipeline: GLuint): GLboolean {.stdcall.} +var glProgramParameteriEXT*: proc(program: GLuint, pname: GLenum, value: GLint) {.stdcall.} +var glProgramUniform1fEXT*: proc(program: GLuint, location: GLint, v0: GLfloat) {.stdcall.} +var glProgramUniform1fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall.} +var glProgramUniform1iEXT*: proc(program: GLuint, location: GLint, v0: GLint) {.stdcall.} +var glProgramUniform1ivEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall.} +var glProgramUniform2fEXT*: proc(program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat) {.stdcall.} +var glProgramUniform2fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall.} +var glProgramUniform2iEXT*: proc(program: GLuint, location: GLint, v0: GLint, v1: GLint) {.stdcall.} +var glProgramUniform2ivEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall.} +var glProgramUniform3fEXT*: proc(program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) {.stdcall.} +var glProgramUniform3fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall.} +var glProgramUniform3iEXT*: proc(program: GLuint, location: GLint, v0: GLint, v1: GLint, v2: GLint) {.stdcall.} +var glProgramUniform3ivEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall.} +var glProgramUniform4fEXT*: proc(program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat) {.stdcall.} +var glProgramUniform4fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall.} +var glProgramUniform4iEXT*: proc(program: GLuint, location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint) {.stdcall.} +var glProgramUniform4ivEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall.} +var glProgramUniformMatrix2fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glProgramUniformMatrix3fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glProgramUniformMatrix4fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glUseProgramStagesEXT*: proc(pipeline: GLuint, stages: GLbitfield, program: GLuint) {.stdcall.} +var glValidateProgramPipelineEXT*: proc(pipeline: GLuint) {.stdcall.} +var glProgramUniform1uiEXT*: proc(program: GLuint, location: GLint, v0: GLuint) {.stdcall.} +var glProgramUniform2uiEXT*: proc(program: GLuint, location: GLint, v0: GLuint, v1: GLuint) {.stdcall.} +var glProgramUniform3uiEXT*: proc(program: GLuint, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint) {.stdcall.} +var glProgramUniform4uiEXT*: proc(program: GLuint, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) {.stdcall.} +var glProgramUniform1uivEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall.} +var glProgramUniform2uivEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall.} +var glProgramUniform3uivEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall.} +var glProgramUniform4uivEXT*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall.} +var glProgramUniformMatrix2x3fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glProgramUniformMatrix3x2fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glProgramUniformMatrix2x4fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glProgramUniformMatrix4x2fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glProgramUniformMatrix3x4fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glProgramUniformMatrix4x3fvEXT*: proc(program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glFramebufferFetchBarrierEXT*: proc() {.stdcall.} +var glFramebufferPixelLocalStorageSizeEXT*: proc(target: GLuint, size: GLsizei) {.stdcall.} +var glGetFramebufferPixelLocalStorageSizeEXT*: proc(target: GLuint): GLsizei {.stdcall.} +var glClearPixelLocalStorageuiEXT*: proc(offset: GLsizei, n: GLsizei, values: ptr GLuint) {.stdcall.} +var glTexPageCommitmentEXT*: proc(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, commit: GLboolean) {.stdcall.} +var glPatchParameteriEXT*: proc(pname: GLenum, value: GLint) {.stdcall.} +var glTexParameterIivEXT*: proc(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.} +var glTexParameterIuivEXT*: proc(target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall.} +var glGetTexParameterIivEXT*: proc(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetTexParameterIuivEXT*: proc(target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall.} +var glSamplerParameterIivEXT*: proc(sampler: GLuint, pname: GLenum, param: ptr GLint) {.stdcall.} +var glSamplerParameterIuivEXT*: proc(sampler: GLuint, pname: GLenum, param: ptr GLuint) {.stdcall.} +var glGetSamplerParameterIivEXT*: proc(sampler: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetSamplerParameterIuivEXT*: proc(sampler: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall.} +var glTexBufferEXT*: proc(target: GLenum, internalformat: GLenum, buffer: GLuint) {.stdcall.} +var glTexBufferRangeEXT*: proc(target: GLenum, internalformat: GLenum, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) {.stdcall.} +var glTexStorage1DEXT*: proc(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei) {.stdcall.} +var glTexStorage2DEXT*: proc(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glTexStorage3DEXT*: proc(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) {.stdcall.} +var glTextureStorage1DEXT*: proc(texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei) {.stdcall.} +var glTextureStorage2DEXT*: proc(texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glTextureStorage3DEXT*: proc(texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) {.stdcall.} +var glTexStorageAttribs2DEXT*: proc(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, attrib_list: ptr GLint) {.stdcall.} +var glTexStorageAttribs3DEXT*: proc(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, attrib_list: ptr GLint) {.stdcall.} +var glTextureViewEXT*: proc(texture: GLuint, target: GLenum, origtexture: GLuint, internalformat: GLenum, minlevel: GLuint, numlevels: GLuint, minlayer: GLuint, numlayers: GLuint) {.stdcall.} +var glAcquireKeyedMutexWin32EXT*: proc(memory: GLuint, key: GLuint64, timeout: GLuint): GLboolean {.stdcall.} +var glReleaseKeyedMutexWin32EXT*: proc(memory: GLuint, key: GLuint64): GLboolean {.stdcall.} +var glWindowRectanglesEXT*: proc(mode: GLenum, count: GLsizei, box: ptr GLint) {.stdcall.} +var glGetTextureHandleIMG*: proc(texture: GLuint): GLuint64 {.stdcall.} +var glGetTextureSamplerHandleIMG*: proc(texture: GLuint, sampler: GLuint): GLuint64 {.stdcall.} +var glUniformHandleui64IMG*: proc(location: GLint, value: GLuint64) {.stdcall.} +var glUniformHandleui64vIMG*: proc(location: GLint, count: GLsizei, value: ptr GLuint64) {.stdcall.} +var glProgramUniformHandleui64IMG*: proc(program: GLuint, location: GLint, value: GLuint64) {.stdcall.} +var glProgramUniformHandleui64vIMG*: proc(program: GLuint, location: GLint, count: GLsizei, values: ptr GLuint64) {.stdcall.} +var glFramebufferTexture2DDownsampleIMG*: proc(target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, xscale: GLint, yscale: GLint) {.stdcall.} +var glFramebufferTextureLayerDownsampleIMG*: proc(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, layer: GLint, xscale: GLint, yscale: GLint) {.stdcall.} +var glRenderbufferStorageMultisampleIMG*: proc(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glFramebufferTexture2DMultisampleIMG*: proc(target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, samples: GLsizei) {.stdcall.} +var glApplyFramebufferAttachmentCMAAINTEL*: proc() {.stdcall.} +var glBeginPerfQueryINTEL*: proc(queryHandle: GLuint) {.stdcall.} +var glCreatePerfQueryINTEL*: proc(queryId: GLuint, queryHandle: ptr GLuint) {.stdcall.} +var glDeletePerfQueryINTEL*: proc(queryHandle: GLuint) {.stdcall.} +var glEndPerfQueryINTEL*: proc(queryHandle: GLuint) {.stdcall.} +var glGetFirstPerfQueryIdINTEL*: proc(queryId: ptr GLuint) {.stdcall.} +var glGetNextPerfQueryIdINTEL*: proc(queryId: GLuint, nextQueryId: ptr GLuint) {.stdcall.} +var glGetPerfCounterInfoINTEL*: proc(queryId: GLuint, counterId: GLuint, counterNameLength: GLuint, counterName: cstring, counterDescLength: GLuint, counterDesc: cstring, counterOffset: ptr GLuint, counterDataSize: ptr GLuint, counterTypeEnum: ptr GLuint, counterDataTypeEnum: ptr GLuint, rawCounterMaxValue: ptr GLuint64) {.stdcall.} +var glGetPerfQueryDataINTEL*: proc(queryHandle: GLuint, flags: GLuint, dataSize: GLsizei, data: pointer, bytesWritten: ptr GLuint) {.stdcall.} +var glGetPerfQueryIdByNameINTEL*: proc(queryName: cstring, queryId: ptr GLuint) {.stdcall.} +var glGetPerfQueryInfoINTEL*: proc(queryId: GLuint, queryNameLength: GLuint, queryName: cstring, dataSize: ptr GLuint, noCounters: ptr GLuint, noInstances: ptr GLuint, capsMask: ptr GLuint) {.stdcall.} +var glBlendBarrierKHR*: proc() {.stdcall.} +var glDebugMessageControlKHR*: proc(source: GLenum, `type`: GLenum, severity: GLenum, count: GLsizei, ids: ptr GLuint, enabled: GLboolean) {.stdcall.} +var glDebugMessageInsertKHR*: proc(source: GLenum, `type`: GLenum, id: GLuint, severity: GLenum, length: GLsizei, buf: cstring) {.stdcall.} +var glDebugMessageCallbackKHR*: proc(callback: GLDEBUGPROCKHR, userParam: pointer) {.stdcall.} +var glGetDebugMessageLogKHR*: proc(count: GLuint, bufSize: GLsizei, sources: ptr GLenum, types: ptr GLenum, ids: ptr GLuint, severities: ptr GLenum, lengths: ptr GLsizei, messageLog: cstring): GLuint {.stdcall.} +var glPushDebugGroupKHR*: proc(source: GLenum, id: GLuint, length: GLsizei, message: cstring) {.stdcall.} +var glPopDebugGroupKHR*: proc() {.stdcall.} +var glObjectLabelKHR*: proc(identifier: GLenum, name: GLuint, length: GLsizei, label: cstring) {.stdcall.} +var glGetObjectLabelKHR*: proc(identifier: GLenum, name: GLuint, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall.} +var glObjectPtrLabelKHR*: proc(`ptr`: pointer, length: GLsizei, label: cstring) {.stdcall.} +var glGetObjectPtrLabelKHR*: proc(`ptr`: pointer, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall.} +var glGetPointervKHR*: proc(pname: GLenum, params: ptr pointer) {.stdcall.} +var glMaxShaderCompilerThreadsKHR*: proc(count: GLuint) {.stdcall.} +var glGetGraphicsResetStatusKHR*: proc(): GLenum {.stdcall.} +var glReadnPixelsKHR*: proc(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, `type`: GLenum, bufSize: GLsizei, data: pointer) {.stdcall.} +var glGetnUniformfvKHR*: proc(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLfloat) {.stdcall.} +var glGetnUniformivKHR*: proc(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLint) {.stdcall.} +var glGetnUniformuivKHR*: proc(program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLuint) {.stdcall.} +var glFramebufferParameteriMESA*: proc(target: GLenum, pname: GLenum, param: GLint) {.stdcall.} +var glGetFramebufferParameterivMESA*: proc(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetTextureHandleNV*: proc(texture: GLuint): GLuint64 {.stdcall.} +var glGetTextureSamplerHandleNV*: proc(texture: GLuint, sampler: GLuint): GLuint64 {.stdcall.} +var glMakeTextureHandleResidentNV*: proc(handle: GLuint64) {.stdcall.} +var glMakeTextureHandleNonResidentNV*: proc(handle: GLuint64) {.stdcall.} +var glGetImageHandleNV*: proc(texture: GLuint, level: GLint, layered: GLboolean, layer: GLint, format: GLenum): GLuint64 {.stdcall.} +var glMakeImageHandleResidentNV*: proc(handle: GLuint64, access: GLenum) {.stdcall.} +var glMakeImageHandleNonResidentNV*: proc(handle: GLuint64) {.stdcall.} +var glUniformHandleui64NV*: proc(location: GLint, value: GLuint64) {.stdcall.} +var glUniformHandleui64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLuint64) {.stdcall.} +var glProgramUniformHandleui64NV*: proc(program: GLuint, location: GLint, value: GLuint64) {.stdcall.} +var glProgramUniformHandleui64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, values: ptr GLuint64) {.stdcall.} +var glIsTextureHandleResidentNV*: proc(handle: GLuint64): GLboolean {.stdcall.} +var glIsImageHandleResidentNV*: proc(handle: GLuint64): GLboolean {.stdcall.} +var glBlendParameteriNV*: proc(pname: GLenum, value: GLint) {.stdcall.} +var glBlendBarrierNV*: proc() {.stdcall.} +var glViewportPositionWScaleNV*: proc(index: GLuint, xcoeff: GLfloat, ycoeff: GLfloat) {.stdcall.} +var glBeginConditionalRenderNV*: proc(id: GLuint, mode: GLenum) {.stdcall.} +var glEndConditionalRenderNV*: proc() {.stdcall.} +var glSubpixelPrecisionBiasNV*: proc(xbits: GLuint, ybits: GLuint) {.stdcall.} +var glConservativeRasterParameteriNV*: proc(pname: GLenum, param: GLint) {.stdcall.} +var glCopyBufferSubDataNV*: proc(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) {.stdcall.} +var glCoverageMaskNV*: proc(mask: GLboolean) {.stdcall.} +var glCoverageOperationNV*: proc(operation: GLenum) {.stdcall.} +var glDrawBuffersNV*: proc(n: GLsizei, bufs: ptr GLenum) {.stdcall.} +var glDrawArraysInstancedNV*: proc(mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei) {.stdcall.} +var glDrawElementsInstancedNV*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall.} +var glDrawVkImageNV*: proc(vkImage: GLuint64, sampler: GLuint, x0: GLfloat, y0: GLfloat, x1: GLfloat, y1: GLfloat, z: GLfloat, s0: GLfloat, t0: GLfloat, s1: GLfloat, t1: GLfloat) {.stdcall.} +var glGetVkProcAddrNV*: proc(name: cstring): GLVULKANPROCNV {.stdcall.} +var glWaitVkSemaphoreNV*: proc(vkSemaphore: GLuint64) {.stdcall.} +var glSignalVkSemaphoreNV*: proc(vkSemaphore: GLuint64) {.stdcall.} +var glSignalVkFenceNV*: proc(vkFence: GLuint64) {.stdcall.} +var glDeleteFencesNV*: proc(n: GLsizei, fences: ptr GLuint) {.stdcall.} +var glGenFencesNV*: proc(n: GLsizei, fences: ptr GLuint) {.stdcall.} +var glIsFenceNV*: proc(fence: GLuint): GLboolean {.stdcall.} +var glTestFenceNV*: proc(fence: GLuint): GLboolean {.stdcall.} +var glGetFenceivNV*: proc(fence: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glFinishFenceNV*: proc(fence: GLuint) {.stdcall.} +var glSetFenceNV*: proc(fence: GLuint, condition: GLenum) {.stdcall.} +var glFragmentCoverageColorNV*: proc(color: GLuint) {.stdcall.} +var glBlitFramebufferNV*: proc(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall.} +var glCoverageModulationTableNV*: proc(n: GLsizei, v: ptr GLfloat) {.stdcall.} +var glGetCoverageModulationTableNV*: proc(bufSize: GLsizei, v: ptr GLfloat) {.stdcall.} +var glCoverageModulationNV*: proc(components: GLenum) {.stdcall.} +var glRenderbufferStorageMultisampleNV*: proc(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.} +var glUniform1i64NV*: proc(location: GLint, x: GLint64EXT) {.stdcall.} +var glUniform2i64NV*: proc(location: GLint, x: GLint64EXT, y: GLint64EXT) {.stdcall.} +var glUniform3i64NV*: proc(location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT) {.stdcall.} +var glUniform4i64NV*: proc(location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT, w: GLint64EXT) {.stdcall.} +var glUniform1i64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.} +var glUniform2i64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.} +var glUniform3i64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.} +var glUniform4i64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.} +var glUniform1ui64NV*: proc(location: GLint, x: GLuint64EXT) {.stdcall.} +var glUniform2ui64NV*: proc(location: GLint, x: GLuint64EXT, y: GLuint64EXT) {.stdcall.} +var glUniform3ui64NV*: proc(location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT) {.stdcall.} +var glUniform4ui64NV*: proc(location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT, w: GLuint64EXT) {.stdcall.} +var glUniform1ui64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.} +var glUniform2ui64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.} +var glUniform3ui64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.} +var glUniform4ui64vNV*: proc(location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.} +var glGetUniformi64vNV*: proc(program: GLuint, location: GLint, params: ptr GLint64EXT) {.stdcall.} +var glProgramUniform1i64NV*: proc(program: GLuint, location: GLint, x: GLint64EXT) {.stdcall.} +var glProgramUniform2i64NV*: proc(program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT) {.stdcall.} +var glProgramUniform3i64NV*: proc(program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT) {.stdcall.} +var glProgramUniform4i64NV*: proc(program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT, w: GLint64EXT) {.stdcall.} +var glProgramUniform1i64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.} +var glProgramUniform2i64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.} +var glProgramUniform3i64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.} +var glProgramUniform4i64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.} +var glProgramUniform1ui64NV*: proc(program: GLuint, location: GLint, x: GLuint64EXT) {.stdcall.} +var glProgramUniform2ui64NV*: proc(program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT) {.stdcall.} +var glProgramUniform3ui64NV*: proc(program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT) {.stdcall.} +var glProgramUniform4ui64NV*: proc(program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT, w: GLuint64EXT) {.stdcall.} +var glProgramUniform1ui64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.} +var glProgramUniform2ui64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.} +var glProgramUniform3ui64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.} +var glProgramUniform4ui64vNV*: proc(program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.} +var glVertexAttribDivisorNV*: proc(index: GLuint, divisor: GLuint) {.stdcall.} +var glGetInternalformatSampleivNV*: proc(target: GLenum, internalformat: GLenum, samples: GLsizei, pname: GLenum, count: GLsizei, params: ptr GLint) {.stdcall.} +var glGetMemoryObjectDetachedResourcesuivNV*: proc(memory: GLuint, pname: GLenum, first: GLint, count: GLsizei, params: ptr GLuint) {.stdcall.} +var glResetMemoryObjectParameterNV*: proc(memory: GLuint, pname: GLenum) {.stdcall.} +var glTexAttachMemoryNV*: proc(target: GLenum, memory: GLuint, offset: GLuint64) {.stdcall.} +var glBufferAttachMemoryNV*: proc(target: GLenum, memory: GLuint, offset: GLuint64) {.stdcall.} +var glTextureAttachMemoryNV*: proc(texture: GLuint, memory: GLuint, offset: GLuint64) {.stdcall.} +var glNamedBufferAttachMemoryNV*: proc(buffer: GLuint, memory: GLuint, offset: GLuint64) {.stdcall.} +var glBufferPageCommitmentMemNV*: proc(target: GLenum, offset: GLintptr, size: GLsizeiptr, memory: GLuint, memOffset: GLuint64, commit: GLboolean) {.stdcall.} +var glTexPageCommitmentMemNV*: proc(target: GLenum, layer: GLint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64, commit: GLboolean) {.stdcall.} +var glNamedBufferPageCommitmentMemNV*: proc(buffer: GLuint, offset: GLintptr, size: GLsizeiptr, memory: GLuint, memOffset: GLuint64, commit: GLboolean) {.stdcall.} +var glTexturePageCommitmentMemNV*: proc(texture: GLuint, layer: GLint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64, commit: GLboolean) {.stdcall.} +var glDrawMeshTasksNV*: proc(first: GLuint, count: GLuint) {.stdcall.} +var glDrawMeshTasksIndirectNV*: proc(indirect: GLintptr) {.stdcall.} +var glMultiDrawMeshTasksIndirectNV*: proc(indirect: GLintptr, drawcount: GLsizei, stride: GLsizei) {.stdcall.} +var glMultiDrawMeshTasksIndirectCountNV*: proc(indirect: GLintptr, drawcount: GLintptr, maxdrawcount: GLsizei, stride: GLsizei) {.stdcall.} +var glUniformMatrix2x3fvNV*: proc(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glUniformMatrix3x2fvNV*: proc(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glUniformMatrix2x4fvNV*: proc(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glUniformMatrix4x2fvNV*: proc(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glUniformMatrix3x4fvNV*: proc(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glUniformMatrix4x3fvNV*: proc(location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.} +var glGenPathsNV*: proc(range: GLsizei): GLuint {.stdcall.} +var glDeletePathsNV*: proc(path: GLuint, range: GLsizei) {.stdcall.} +var glIsPathNV*: proc(path: GLuint): GLboolean {.stdcall.} +var glPathCommandsNV*: proc(path: GLuint, numCommands: GLsizei, commands: ptr GLubyte, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall.} +var glPathCoordsNV*: proc(path: GLuint, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall.} +var glPathSubCommandsNV*: proc(path: GLuint, commandStart: GLsizei, commandsToDelete: GLsizei, numCommands: GLsizei, commands: ptr GLubyte, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall.} +var glPathSubCoordsNV*: proc(path: GLuint, coordStart: GLsizei, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall.} +var glPathStringNV*: proc(path: GLuint, format: GLenum, length: GLsizei, pathString: pointer) {.stdcall.} +var glPathGlyphsNV*: proc(firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, numGlyphs: GLsizei, `type`: GLenum, charcodes: pointer, handleMissingGlyphs: GLenum, pathParameterTemplate: GLuint, emScale: GLfloat) {.stdcall.} +var glPathGlyphRangeNV*: proc(firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, firstGlyph: GLuint, numGlyphs: GLsizei, handleMissingGlyphs: GLenum, pathParameterTemplate: GLuint, emScale: GLfloat) {.stdcall.} +var glWeightPathsNV*: proc(resultPath: GLuint, numPaths: GLsizei, paths: ptr GLuint, weights: ptr GLfloat) {.stdcall.} +var glCopyPathNV*: proc(resultPath: GLuint, srcPath: GLuint) {.stdcall.} +var glInterpolatePathsNV*: proc(resultPath: GLuint, pathA: GLuint, pathB: GLuint, weight: GLfloat) {.stdcall.} +var glTransformPathNV*: proc(resultPath: GLuint, srcPath: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.} +var glPathParameterivNV*: proc(path: GLuint, pname: GLenum, value: ptr GLint) {.stdcall.} +var glPathParameteriNV*: proc(path: GLuint, pname: GLenum, value: GLint) {.stdcall.} +var glPathParameterfvNV*: proc(path: GLuint, pname: GLenum, value: ptr GLfloat) {.stdcall.} +var glPathParameterfNV*: proc(path: GLuint, pname: GLenum, value: GLfloat) {.stdcall.} +var glPathDashArrayNV*: proc(path: GLuint, dashCount: GLsizei, dashArray: ptr GLfloat) {.stdcall.} +var glPathStencilFuncNV*: proc(`func`: GLenum, `ref`: GLint, mask: GLuint) {.stdcall.} +var glPathStencilDepthOffsetNV*: proc(factor: GLfloat, units: GLfloat) {.stdcall.} +var glStencilFillPathNV*: proc(path: GLuint, fillMode: GLenum, mask: GLuint) {.stdcall.} +var glStencilStrokePathNV*: proc(path: GLuint, reference: GLint, mask: GLuint) {.stdcall.} +var glStencilFillPathInstancedNV*: proc(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, fillMode: GLenum, mask: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.} +var glStencilStrokePathInstancedNV*: proc(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, reference: GLint, mask: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.} +var glPathCoverDepthFuncNV*: proc(`func`: GLenum) {.stdcall.} +var glCoverFillPathNV*: proc(path: GLuint, coverMode: GLenum) {.stdcall.} +var glCoverStrokePathNV*: proc(path: GLuint, coverMode: GLenum) {.stdcall.} +var glCoverFillPathInstancedNV*: proc(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.} +var glCoverStrokePathInstancedNV*: proc(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.} +var glGetPathParameterivNV*: proc(path: GLuint, pname: GLenum, value: ptr GLint) {.stdcall.} +var glGetPathParameterfvNV*: proc(path: GLuint, pname: GLenum, value: ptr GLfloat) {.stdcall.} +var glGetPathCommandsNV*: proc(path: GLuint, commands: ptr GLubyte) {.stdcall.} +var glGetPathCoordsNV*: proc(path: GLuint, coords: ptr GLfloat) {.stdcall.} +var glGetPathDashArrayNV*: proc(path: GLuint, dashArray: ptr GLfloat) {.stdcall.} +var glGetPathMetricsNV*: proc(metricQueryMask: GLbitfield, numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, stride: GLsizei, metrics: ptr GLfloat) {.stdcall.} +var glGetPathMetricRangeNV*: proc(metricQueryMask: GLbitfield, firstPathName: GLuint, numPaths: GLsizei, stride: GLsizei, metrics: ptr GLfloat) {.stdcall.} +var glGetPathSpacingNV*: proc(pathListMode: GLenum, numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, advanceScale: GLfloat, kerningScale: GLfloat, transformType: GLenum, returnedSpacing: ptr GLfloat) {.stdcall.} +var glIsPointInFillPathNV*: proc(path: GLuint, mask: GLuint, x: GLfloat, y: GLfloat): GLboolean {.stdcall.} +var glIsPointInStrokePathNV*: proc(path: GLuint, x: GLfloat, y: GLfloat): GLboolean {.stdcall.} +var glGetPathLengthNV*: proc(path: GLuint, startSegment: GLsizei, numSegments: GLsizei): GLfloat {.stdcall.} +var glPointAlongPathNV*: proc(path: GLuint, startSegment: GLsizei, numSegments: GLsizei, distance: GLfloat, x: ptr GLfloat, y: ptr GLfloat, tangentX: ptr GLfloat, tangentY: ptr GLfloat): GLboolean {.stdcall.} +var glMatrixLoad3x2fNV*: proc(matrixMode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixLoad3x3fNV*: proc(matrixMode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixLoadTranspose3x3fNV*: proc(matrixMode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixMult3x2fNV*: proc(matrixMode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixMult3x3fNV*: proc(matrixMode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixMultTranspose3x3fNV*: proc(matrixMode: GLenum, m: ptr GLfloat) {.stdcall.} +var glStencilThenCoverFillPathNV*: proc(path: GLuint, fillMode: GLenum, mask: GLuint, coverMode: GLenum) {.stdcall.} +var glStencilThenCoverStrokePathNV*: proc(path: GLuint, reference: GLint, mask: GLuint, coverMode: GLenum) {.stdcall.} +var glStencilThenCoverFillPathInstancedNV*: proc(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, fillMode: GLenum, mask: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.} +var glStencilThenCoverStrokePathInstancedNV*: proc(numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, reference: GLint, mask: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.} +var glPathGlyphIndexRangeNV*: proc(fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, pathParameterTemplate: GLuint, emScale: GLfloat, baseAndCount: ptr GLuint): GLenum {.stdcall.} +var glPathGlyphIndexArrayNV*: proc(firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, firstGlyphIndex: GLuint, numGlyphs: GLsizei, pathParameterTemplate: GLuint, emScale: GLfloat): GLenum {.stdcall.} +var glPathMemoryGlyphIndexArrayNV*: proc(firstPathName: GLuint, fontTarget: GLenum, fontSize: GLsizeiptr, fontData: pointer, faceIndex: GLsizei, firstGlyphIndex: GLuint, numGlyphs: GLsizei, pathParameterTemplate: GLuint, emScale: GLfloat): GLenum {.stdcall.} +var glProgramPathFragmentInputGenNV*: proc(program: GLuint, location: GLint, genMode: GLenum, components: GLint, coeffs: ptr GLfloat) {.stdcall.} +var glGetProgramResourcefvNV*: proc(program: GLuint, programInterface: GLenum, index: GLuint, propCount: GLsizei, props: ptr GLenum, count: GLsizei, length: ptr GLsizei, params: ptr GLfloat) {.stdcall.} +var glPathColorGenNV*: proc(color: GLenum, genMode: GLenum, colorFormat: GLenum, coeffs: ptr GLfloat) {.stdcall.} +var glPathTexGenNV*: proc(texCoordSet: GLenum, genMode: GLenum, components: GLint, coeffs: ptr GLfloat) {.stdcall.} +var glPathFogGenNV*: proc(genMode: GLenum) {.stdcall.} +var glGetPathColorGenivNV*: proc(color: GLenum, pname: GLenum, value: ptr GLint) {.stdcall.} +var glGetPathColorGenfvNV*: proc(color: GLenum, pname: GLenum, value: ptr GLfloat) {.stdcall.} +var glGetPathTexGenivNV*: proc(texCoordSet: GLenum, pname: GLenum, value: ptr GLint) {.stdcall.} +var glGetPathTexGenfvNV*: proc(texCoordSet: GLenum, pname: GLenum, value: ptr GLfloat) {.stdcall.} +var glMatrixFrustumEXT*: proc(mode: GLenum, left: GLdouble, right: GLdouble, bottom: GLdouble, top: GLdouble, zNear: GLdouble, zFar: GLdouble) {.stdcall.} +var glMatrixLoadIdentityEXT*: proc(mode: GLenum) {.stdcall.} +var glMatrixLoadTransposefEXT*: proc(mode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixLoadTransposedEXT*: proc(mode: GLenum, m: ptr GLdouble) {.stdcall.} +var glMatrixLoadfEXT*: proc(mode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixLoaddEXT*: proc(mode: GLenum, m: ptr GLdouble) {.stdcall.} +var glMatrixMultTransposefEXT*: proc(mode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixMultTransposedEXT*: proc(mode: GLenum, m: ptr GLdouble) {.stdcall.} +var glMatrixMultfEXT*: proc(mode: GLenum, m: ptr GLfloat) {.stdcall.} +var glMatrixMultdEXT*: proc(mode: GLenum, m: ptr GLdouble) {.stdcall.} +var glMatrixOrthoEXT*: proc(mode: GLenum, left: GLdouble, right: GLdouble, bottom: GLdouble, top: GLdouble, zNear: GLdouble, zFar: GLdouble) {.stdcall.} +var glMatrixPopEXT*: proc(mode: GLenum) {.stdcall.} +var glMatrixPushEXT*: proc(mode: GLenum) {.stdcall.} +var glMatrixRotatefEXT*: proc(mode: GLenum, angle: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall.} +var glMatrixRotatedEXT*: proc(mode: GLenum, angle: GLdouble, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall.} +var glMatrixScalefEXT*: proc(mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall.} +var glMatrixScaledEXT*: proc(mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall.} +var glMatrixTranslatefEXT*: proc(mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall.} +var glMatrixTranslatedEXT*: proc(mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall.} +var glPolygonModeNV*: proc(face: GLenum, mode: GLenum) {.stdcall.} +var glReadBufferNV*: proc(mode: GLenum) {.stdcall.} +var glFramebufferSampleLocationsfvNV*: proc(target: GLenum, start: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.} +var glNamedFramebufferSampleLocationsfvNV*: proc(framebuffer: GLuint, start: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.} +var glResolveDepthValuesNV*: proc() {.stdcall.} +var glScissorExclusiveNV*: proc(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {.stdcall.} +var glScissorExclusiveArrayvNV*: proc(first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall.} +var glBindShadingRateImageNV*: proc(texture: GLuint) {.stdcall.} +var glGetShadingRateImagePaletteNV*: proc(viewport: GLuint, entry: GLuint, rate: ptr GLenum) {.stdcall.} +var glGetShadingRateSampleLocationivNV*: proc(rate: GLenum, samples: GLuint, index: GLuint, location: ptr GLint) {.stdcall.} +var glShadingRateImageBarrierNV*: proc(synchronize: GLboolean) {.stdcall.} +var glShadingRateImagePaletteNV*: proc(viewport: GLuint, first: GLuint, count: GLsizei, rates: ptr GLenum) {.stdcall.} +var glShadingRateSampleOrderNV*: proc(order: GLenum) {.stdcall.} +var glShadingRateSampleOrderCustomNV*: proc(rate: GLenum, samples: GLuint, locations: ptr GLint) {.stdcall.} +var glTextureBarrierNV*: proc () {.stdcall.} +var glCreateSemaphoresNV*: proc(n: GLsizei, semaphores: ptr GLuint) {.stdcall.} +var glSemaphoreParameterivNV*: proc(semaphore: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetSemaphoreParameterivNV*: proc(semaphore: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glViewportArrayvNV*: proc(first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.} +var glViewportIndexedfNV*: proc(index: GLuint, x: GLfloat, y: GLfloat, w: GLfloat, h: GLfloat) {.stdcall.} +var glViewportIndexedfvNV*: proc(index: GLuint, v: ptr GLfloat) {.stdcall.} +var glScissorArrayvNV*: proc(first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall.} +var glScissorIndexedNV*: proc(index: GLuint, left: GLint, bottom: GLint, width: GLsizei, height: GLsizei) {.stdcall.} +var glScissorIndexedvNV*: proc(index: GLuint, v: ptr GLint) {.stdcall.} +var glDepthRangeArrayfvNV*: proc(first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.} +var glDepthRangeIndexedfNV*: proc(index: GLuint, n: GLfloat, f: GLfloat) {.stdcall.} +var glGetFloati_vNV*: proc(target: GLenum, index: GLuint, data: ptr GLfloat) {.stdcall.} +var glEnableiNV*: proc(target: GLenum, index: GLuint) {.stdcall.} +var glDisableiNV*: proc(target: GLenum, index: GLuint) {.stdcall.} +var glIsEnablediNV*: proc(target: GLenum, index: GLuint): GLboolean {.stdcall.} +var glViewportSwizzleNV*: proc(index: GLuint, swizzlex: GLenum, swizzley: GLenum, swizzlez: GLenum, swizzlew: GLenum) {.stdcall.} +var glEGLImageTargetTexture2DOES*: proc(target: GLenum, image: GLeglImageOES) {.stdcall.} +var glEGLImageTargetRenderbufferStorageOES*: proc(target: GLenum, image: GLeglImageOES) {.stdcall.} +var glCopyImageSubDataOES*: proc(srcName: GLuint, srcTarget: GLenum, srcLevel: GLint, srcX: GLint, srcY: GLint, srcZ: GLint, dstName: GLuint, dstTarget: GLenum, dstLevel: GLint, dstX: GLint, dstY: GLint, dstZ: GLint, srcWidth: GLsizei, srcHeight: GLsizei, srcDepth: GLsizei) {.stdcall.} +var glEnableiOES*: proc(target: GLenum, index: GLuint) {.stdcall.} +var glDisableiOES*: proc(target: GLenum, index: GLuint) {.stdcall.} +var glBlendEquationiOES*: proc(buf: GLuint, mode: GLenum) {.stdcall.} +var glBlendEquationSeparateiOES*: proc(buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum) {.stdcall.} +var glBlendFunciOES*: proc(buf: GLuint, src: GLenum, dst: GLenum) {.stdcall.} +var glBlendFuncSeparateiOES*: proc(buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) {.stdcall.} +var glColorMaskiOES*: proc(index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean) {.stdcall.} +var glIsEnablediOES*: proc(target: GLenum, index: GLuint): GLboolean {.stdcall.} +var glDrawElementsBaseVertexOES*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall.} +var glDrawRangeElementsBaseVertexOES*: proc(mode: GLenum, start: GLuint, `end`: GLuint, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall.} +var glDrawElementsInstancedBaseVertexOES*: proc(mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint) {.stdcall.} +var glFramebufferTextureOES*: proc(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint) {.stdcall.} +var glGetProgramBinaryOES*: proc(program: GLuint, bufSize: GLsizei, length: ptr GLsizei, binaryFormat: ptr GLenum, binary: pointer) {.stdcall.} +var glProgramBinaryOES*: proc(program: GLuint, binaryFormat: GLenum, binary: pointer, length: GLint) {.stdcall.} +var glMapBufferOES*: proc(target: GLenum, access: GLenum): pointer {.stdcall.} +var glUnmapBufferOES*: proc(target: GLenum): GLboolean {.stdcall.} +var glGetBufferPointervOES*: proc(target: GLenum, pname: GLenum, params: ptr pointer) {.stdcall.} +var glPrimitiveBoundingBoxOES*: proc(minX: GLfloat, minY: GLfloat, minZ: GLfloat, minW: GLfloat, maxX: GLfloat, maxY: GLfloat, maxZ: GLfloat, maxW: GLfloat) {.stdcall.} +var glMinSampleShadingOES*: proc(value: GLfloat) {.stdcall.} +var glPatchParameteriOES*: proc(pname: GLenum, value: GLint) {.stdcall.} +var glTexImage3DOES*: proc(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, `type`: GLenum, pixels: pointer) {.stdcall.} +var glTexSubImage3DOES*: proc(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, pixels: pointer) {.stdcall.} +var glCopyTexSubImage3DOES*: proc(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {.stdcall.} +var glCompressedTexImage3DOES*: proc(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, data: pointer) {.stdcall.} +var glCompressedTexSubImage3DOES*: proc(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, data: pointer) {.stdcall.} +var glFramebufferTexture3DOES*: proc(target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, zoffset: GLint) {.stdcall.} +var glTexParameterIivOES*: proc(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.} +var glTexParameterIuivOES*: proc(target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall.} +var glGetTexParameterIivOES*: proc(target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetTexParameterIuivOES*: proc(target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall.} +var glSamplerParameterIivOES*: proc(sampler: GLuint, pname: GLenum, param: ptr GLint) {.stdcall.} +var glSamplerParameterIuivOES*: proc(sampler: GLuint, pname: GLenum, param: ptr GLuint) {.stdcall.} +var glGetSamplerParameterIivOES*: proc(sampler: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glGetSamplerParameterIuivOES*: proc(sampler: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall.} +var glTexBufferOES*: proc(target: GLenum, internalformat: GLenum, buffer: GLuint) {.stdcall.} +var glTexBufferRangeOES*: proc(target: GLenum, internalformat: GLenum, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) {.stdcall.} +var glTexStorage3DMultisampleOES*: proc(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedsamplelocations: GLboolean) {.stdcall.} +var glTextureViewOES*: proc(texture: GLuint, target: GLenum, origtexture: GLuint, internalformat: GLenum, minlevel: GLuint, numlevels: GLuint, minlayer: GLuint, numlayers: GLuint) {.stdcall.} +var glBindVertexArrayOES*: proc(array: GLuint) {.stdcall.} +var glDeleteVertexArraysOES*: proc(n: GLsizei, arrays: ptr GLuint) {.stdcall.} +var glGenVertexArraysOES*: proc(n: GLsizei, arrays: ptr GLuint) {.stdcall.} +var glIsVertexArrayOES*: proc(array: GLuint): GLboolean {.stdcall.} +var glViewportArrayvOES*: proc(first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.} +var glViewportIndexedfOES*: proc(index: GLuint, x: GLfloat, y: GLfloat, w: GLfloat, h: GLfloat) {.stdcall.} +var glViewportIndexedfvOES*: proc(index: GLuint, v: ptr GLfloat) {.stdcall.} +var glScissorArrayvOES*: proc(first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall.} +var glScissorIndexedOES*: proc(index: GLuint, left: GLint, bottom: GLint, width: GLsizei, height: GLsizei) {.stdcall.} +var glScissorIndexedvOES*: proc(index: GLuint, v: ptr GLint) {.stdcall.} +var glDepthRangeArrayfvOES*: proc(first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.} +var glDepthRangeIndexedfOES*: proc(index: GLuint, n: GLfloat, f: GLfloat) {.stdcall.} +var glGetFloati_vOES*: proc(target: GLenum, index: GLuint, data: ptr GLfloat) {.stdcall.} +var glFramebufferTextureMultiviewOVR*: proc(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, baseViewIndex: GLint, numViews: GLsizei) {.stdcall.} +var glNamedFramebufferTextureMultiviewOVR*: proc(framebuffer: GLuint, attachment: GLenum, texture: GLuint, level: GLint, baseViewIndex: GLint, numViews: GLsizei) {.stdcall.} +var glFramebufferTextureMultisampleMultiviewOVR*: proc(target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, samples: GLsizei, baseViewIndex: GLint, numViews: GLsizei) {.stdcall.} +var glAlphaFuncQCOM*: proc(`func`: GLenum, `ref`: GLclampf) {.stdcall.} +var glGetDriverControlsQCOM*: proc(num: ptr GLint, size: GLsizei, driverControls: ptr GLuint) {.stdcall.} +var glGetDriverControlStringQCOM*: proc(driverControl: GLuint, bufSize: GLsizei, length: ptr GLsizei, driverControlString: cstring) {.stdcall.} +var glEnableDriverControlQCOM*: proc(driverControl: GLuint) {.stdcall.} +var glDisableDriverControlQCOM*: proc(driverControl: GLuint) {.stdcall.} +var glExtGetTexturesQCOM*: proc(textures: ptr GLuint, maxTextures: GLint, numTextures: ptr GLint) {.stdcall.} +var glExtGetBuffersQCOM*: proc(buffers: ptr GLuint, maxBuffers: GLint, numBuffers: ptr GLint) {.stdcall.} +var glExtGetRenderbuffersQCOM*: proc(renderbuffers: ptr GLuint, maxRenderbuffers: GLint, numRenderbuffers: ptr GLint) {.stdcall.} +var glExtGetFramebuffersQCOM*: proc(framebuffers: ptr GLuint, maxFramebuffers: GLint, numFramebuffers: ptr GLint) {.stdcall.} +var glExtGetTexLevelParameterivQCOM*: proc(texture: GLuint, face: GLenum, level: GLint, pname: GLenum, params: ptr GLint) {.stdcall.} +var glExtTexObjectStateOverrideiQCOM*: proc(target: GLenum, pname: GLenum, param: GLint) {.stdcall.} +var glExtGetTexSubImageQCOM*: proc(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, texels: pointer) {.stdcall.} +var glExtGetBufferPointervQCOM*: proc(target: GLenum, params: ptr pointer) {.stdcall.} +var glExtGetShadersQCOM*: proc(shaders: ptr GLuint, maxShaders: GLint, numShaders: ptr GLint) {.stdcall.} +var glExtGetProgramsQCOM*: proc(programs: ptr GLuint, maxPrograms: GLint, numPrograms: ptr GLint) {.stdcall.} +var glExtIsProgramBinaryQCOM*: proc(program: GLuint): GLboolean {.stdcall.} +var glExtGetProgramBinarySourceQCOM*: proc(program: GLuint, shadertype: GLenum, source: cstring, length: ptr GLint) {.stdcall.} +var glExtrapolateTex2DQCOM*: proc(src1: GLuint, src2: GLuint, output: GLuint, scaleFactor: GLfloat) {.stdcall.} +var glFramebufferFoveationConfigQCOM*: proc(framebuffer: GLuint, numLayers: GLuint, focalPointsPerLayer: GLuint, requestedFeatures: GLuint, providedFeatures: ptr GLuint) {.stdcall.} +var glFramebufferFoveationParametersQCOM*: proc(framebuffer: GLuint, layer: GLuint, focalPoint: GLuint, focalX: GLfloat, focalY: GLfloat, gainX: GLfloat, gainY: GLfloat, foveaArea: GLfloat) {.stdcall.} +var glTexEstimateMotionQCOM*: proc(`ref`: GLuint, target: GLuint, output: GLuint) {.stdcall.} +var glTexEstimateMotionRegionsQCOM*: proc(`ref`: GLuint, target: GLuint, output: GLuint, mask: GLuint) {.stdcall.} +var glFramebufferFetchBarrierQCOM*: proc() {.stdcall.} +var glShadingRateQCOM*: proc(rate: GLenum) {.stdcall.} +var glTextureFoveationParametersQCOM*: proc(texture: GLuint, layer: GLuint, focalPoint: GLuint, focalX: GLfloat, focalY: GLfloat, gainX: GLfloat, gainY: GLfloat, foveaArea: GLfloat) {.stdcall.} +var glStartTilingQCOM*: proc(x: GLuint, y: GLuint, width: GLuint, height: GLuint, preserveMask: GLbitfield) {.stdcall.} +var glEndTilingQCOM*: proc(preserveMask: GLbitfield) {.stdcall.} proc hasExt(extname: string): bool = @@ -4471,902 +4473,1133 @@ proc load_GL_ES_VERSION_3_2(load: proc) = proc load_GL_AMD_framebuffer_multisample_advanced(load: proc) = if not GLAD_GL_AMD_framebuffer_multisample_advanced: return + glRenderbufferStorageMultisampleAdvancedAMD = cast[proc (target: GLenum, samples: GLsizei, storageSamples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glRenderbufferStorageMultisampleAdvancedAMD")) + glNamedRenderbufferStorageMultisampleAdvancedAMD = cast[proc (renderbuffer: GLuint, samples: GLsizei, storageSamples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glNamedRenderbufferStorageMultisampleAdvancedAMD")) + proc load_GL_AMD_performance_monitor(load: proc) = if not GLAD_GL_AMD_performance_monitor: return + glGetPerfMonitorGroupsAMD = cast[proc (numGroups: ptr GLint, groupsSize: GLsizei, groups: ptr GLuint) {.stdcall.}](load("glGetPerfMonitorGroupsAMD")) + glGetPerfMonitorCountersAMD = cast[proc (group: GLuint, numCounters: ptr GLint, maxActiveCounters: ptr GLint, counterSize: GLsizei, counters: ptr GLuint) {.stdcall.}](load("glGetPerfMonitorCountersAMD")) + glGetPerfMonitorGroupStringAMD = cast[proc (group: GLuint, bufSize: GLsizei, length: ptr GLsizei, groupString: cstring) {.stdcall.}](load("glGetPerfMonitorGroupStringAMD")) + glGetPerfMonitorCounterStringAMD = cast[proc (group: GLuint, counter: GLuint, bufSize: GLsizei, length: ptr GLsizei, counterString: cstring) {.stdcall.}](load("glGetPerfMonitorCounterStringAMD")) + glGetPerfMonitorCounterInfoAMD = cast[proc (group: GLuint, counter: GLuint, pname: GLenum, data: pointer) {.stdcall.}](load("glGetPerfMonitorCounterInfoAMD")) + glGenPerfMonitorsAMD = cast[proc (n: GLsizei, monitors: ptr GLuint) {.stdcall.}](load("glGenPerfMonitorsAMD")) + glDeletePerfMonitorsAMD = cast[proc (n: GLsizei, monitors: ptr GLuint) {.stdcall.}](load("glDeletePerfMonitorsAMD")) + glSelectPerfMonitorCountersAMD = cast[proc (monitor: GLuint, enable: GLboolean, group: GLuint, numCounters: GLint, counterList: ptr GLuint) {.stdcall.}](load("glSelectPerfMonitorCountersAMD")) + glBeginPerfMonitorAMD = cast[proc (monitor: GLuint) {.stdcall.}](load("glBeginPerfMonitorAMD")) + glEndPerfMonitorAMD = cast[proc (monitor: GLuint) {.stdcall.}](load("glEndPerfMonitorAMD")) + glGetPerfMonitorCounterDataAMD = cast[proc (monitor: GLuint, pname: GLenum, dataSize: GLsizei, data: ptr GLuint, bytesWritten: ptr GLint) {.stdcall.}](load("glGetPerfMonitorCounterDataAMD")) + proc load_GL_ANGLE_framebuffer_blit(load: proc) = if not GLAD_GL_ANGLE_framebuffer_blit: return + glBlitFramebufferANGLE = cast[proc (srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall.}](load("glBlitFramebufferANGLE")) + proc load_GL_ANGLE_framebuffer_multisample(load: proc) = if not GLAD_GL_ANGLE_framebuffer_multisample: return + glRenderbufferStorageMultisampleANGLE = cast[proc (target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glRenderbufferStorageMultisampleANGLE")) + proc load_GL_ANGLE_instanced_arrays(load: proc) = if not GLAD_GL_ANGLE_instanced_arrays: return + glDrawArraysInstancedANGLE = cast[proc (mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei) {.stdcall.}](load("glDrawArraysInstancedANGLE")) + glDrawElementsInstancedANGLE = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall.}](load("glDrawElementsInstancedANGLE")) + glVertexAttribDivisorANGLE = cast[proc (index: GLuint, divisor: GLuint) {.stdcall.}](load("glVertexAttribDivisorANGLE")) + proc load_GL_ANGLE_translated_shader_source(load: proc) = if not GLAD_GL_ANGLE_translated_shader_source: return + glGetTranslatedShaderSourceANGLE = cast[proc (shader: GLuint, bufSize: GLsizei, length: ptr GLsizei, source: cstring) {.stdcall.}](load("glGetTranslatedShaderSourceANGLE")) + proc load_GL_APPLE_copy_texture_levels(load: proc) = if not GLAD_GL_APPLE_copy_texture_levels: return + glCopyTextureLevelsAPPLE = cast[proc (destinationTexture: GLuint, sourceTexture: GLuint, sourceBaseLevel: GLint, sourceLevelCount: GLsizei) {.stdcall.}](load("glCopyTextureLevelsAPPLE")) + proc load_GL_APPLE_framebuffer_multisample(load: proc) = if not GLAD_GL_APPLE_framebuffer_multisample: return + glRenderbufferStorageMultisampleAPPLE = cast[proc (target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glRenderbufferStorageMultisampleAPPLE")) + glResolveMultisampleFramebufferAPPLE = cast[proc () {.stdcall.}](load("glResolveMultisampleFramebufferAPPLE")) + proc load_GL_APPLE_sync(load: proc) = if not GLAD_GL_APPLE_sync: return + glFenceSyncAPPLE = cast[proc (condition: GLenum, flags: GLbitfield): GLsync {.stdcall.}](load("glFenceSyncAPPLE")) + glIsSyncAPPLE = cast[proc (sync: GLsync): GLboolean {.stdcall.}](load("glIsSyncAPPLE")) + glDeleteSyncAPPLE = cast[proc (sync: GLsync) {.stdcall.}](load("glDeleteSyncAPPLE")) + glClientWaitSyncAPPLE = cast[proc (sync: GLsync, flags: GLbitfield, timeout: GLuint64): GLenum {.stdcall.}](load("glClientWaitSyncAPPLE")) + glWaitSyncAPPLE = cast[proc (sync: GLsync, flags: GLbitfield, timeout: GLuint64) {.stdcall.}](load("glWaitSyncAPPLE")) + glGetInteger64vAPPLE = cast[proc (pname: GLenum, params: ptr GLint64) {.stdcall.}](load("glGetInteger64vAPPLE")) + glGetSyncivAPPLE = cast[proc (sync: GLsync, pname: GLenum, count: GLsizei, length: ptr GLsizei, values: ptr GLint) {.stdcall.}](load("glGetSyncivAPPLE")) + proc load_GL_ARM_shader_core_properties(load: proc) = if not GLAD_GL_ARM_shader_core_properties: return + glMaxActiveShaderCoresARM = cast[proc (count: GLuint) {.stdcall.}](load("glMaxActiveShaderCoresARM")) + proc load_GL_EXT_EGL_image_storage(load: proc) = if not GLAD_GL_EXT_EGL_image_storage: return + glEGLImageTargetTexStorageEXT = cast[proc (target: GLenum, image: GLeglImageOES, attrib_list: ptr GLint) {.stdcall.}](load("glEGLImageTargetTexStorageEXT")) + glEGLImageTargetTextureStorageEXT = cast[proc (texture: GLuint, image: GLeglImageOES, attrib_list: ptr GLint) {.stdcall.}](load("glEGLImageTargetTextureStorageEXT")) + proc load_GL_EXT_base_instance(load: proc) = if not GLAD_GL_EXT_base_instance: return + glDrawArraysInstancedBaseInstanceEXT = cast[proc (mode: GLenum, first: GLint, count: GLsizei, instancecount: GLsizei, baseinstance: GLuint) {.stdcall.}](load("glDrawArraysInstancedBaseInstanceEXT")) + glDrawElementsInstancedBaseInstanceEXT = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, baseinstance: GLuint) {.stdcall.}](load("glDrawElementsInstancedBaseInstanceEXT")) + glDrawElementsInstancedBaseVertexBaseInstanceEXT = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint, baseinstance: GLuint) {.stdcall.}](load("glDrawElementsInstancedBaseVertexBaseInstanceEXT")) + proc load_GL_EXT_blend_func_extended(load: proc) = if not GLAD_GL_EXT_blend_func_extended: return + glBindFragDataLocationIndexedEXT = cast[proc (program: GLuint, colorNumber: GLuint, index: GLuint, name: cstring) {.stdcall.}](load("glBindFragDataLocationIndexedEXT")) + glBindFragDataLocationEXT = cast[proc (program: GLuint, color: GLuint, name: cstring) {.stdcall.}](load("glBindFragDataLocationEXT")) + glGetProgramResourceLocationIndexEXT = cast[proc (program: GLuint, programInterface: GLenum, name: cstring): GLint {.stdcall.}](load("glGetProgramResourceLocationIndexEXT")) + glGetFragDataIndexEXT = cast[proc (program: GLuint, name: cstring): GLint {.stdcall.}](load("glGetFragDataIndexEXT")) + proc load_GL_EXT_blend_minmax(load: proc) = if not GLAD_GL_EXT_blend_minmax: return + glBlendEquationEXT = cast[proc (mode: GLenum) {.stdcall.}](load("glBlendEquationEXT")) + proc load_GL_EXT_buffer_storage(load: proc) = if not GLAD_GL_EXT_buffer_storage: return + glBufferStorageEXT = cast[proc (target: GLenum, size: GLsizeiptr, data: pointer, flags: GLbitfield) {.stdcall.}](load("glBufferStorageEXT")) + proc load_GL_EXT_clear_texture(load: proc) = if not GLAD_GL_EXT_clear_texture: return + glClearTexImageEXT = cast[proc (texture: GLuint, level: GLint, format: GLenum, `type`: GLenum, data: pointer) {.stdcall.}](load("glClearTexImageEXT")) + glClearTexSubImageEXT = cast[proc (texture: GLuint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, data: pointer) {.stdcall.}](load("glClearTexSubImageEXT")) + proc load_GL_EXT_clip_control(load: proc) = if not GLAD_GL_EXT_clip_control: return + glClipControlEXT = cast[proc (origin: GLenum, depth: GLenum) {.stdcall.}](load("glClipControlEXT")) + proc load_GL_EXT_copy_image(load: proc) = if not GLAD_GL_EXT_copy_image: return + glCopyImageSubDataEXT = cast[proc (srcName: GLuint, srcTarget: GLenum, srcLevel: GLint, srcX: GLint, srcY: GLint, srcZ: GLint, dstName: GLuint, dstTarget: GLenum, dstLevel: GLint, dstX: GLint, dstY: GLint, dstZ: GLint, srcWidth: GLsizei, srcHeight: GLsizei, srcDepth: GLsizei) {.stdcall.}](load("glCopyImageSubDataEXT")) + proc load_GL_EXT_debug_label(load: proc) = if not GLAD_GL_EXT_debug_label: return + glLabelObjectEXT = cast[proc (`type`: GLenum, `object`: GLuint, length: GLsizei, label: cstring) {.stdcall.}](load("glLabelObjectEXT")) + glGetObjectLabelEXT = cast[proc (`type`: GLenum, `object`: GLuint, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall.}](load("glGetObjectLabelEXT")) + proc load_GL_EXT_debug_marker(load: proc) = if not GLAD_GL_EXT_debug_marker: return + glInsertEventMarkerEXT = cast[proc (length: GLsizei, marker: cstring) {.stdcall.}](load("glInsertEventMarkerEXT")) + glPushGroupMarkerEXT = cast[proc (length: GLsizei, marker: cstring) {.stdcall.}](load("glPushGroupMarkerEXT")) + glPopGroupMarkerEXT = cast[proc () {.stdcall.}](load("glPopGroupMarkerEXT")) + proc load_GL_EXT_discard_framebuffer(load: proc) = if not GLAD_GL_EXT_discard_framebuffer: return + glDiscardFramebufferEXT = cast[proc (target: GLenum, numAttachments: GLsizei, attachments: ptr GLenum) {.stdcall.}](load("glDiscardFramebufferEXT")) + proc load_GL_EXT_disjoint_timer_query(load: proc) = if not GLAD_GL_EXT_disjoint_timer_query: return + glGenQueriesEXT = cast[proc (n: GLsizei, ids: ptr GLuint) {.stdcall.}](load("glGenQueriesEXT")) + glDeleteQueriesEXT = cast[proc (n: GLsizei, ids: ptr GLuint) {.stdcall.}](load("glDeleteQueriesEXT")) + glIsQueryEXT = cast[proc (id: GLuint): GLboolean {.stdcall.}](load("glIsQueryEXT")) + glBeginQueryEXT = cast[proc (target: GLenum, id: GLuint) {.stdcall.}](load("glBeginQueryEXT")) + glEndQueryEXT = cast[proc (target: GLenum) {.stdcall.}](load("glEndQueryEXT")) + glQueryCounterEXT = cast[proc (id: GLuint, target: GLenum) {.stdcall.}](load("glQueryCounterEXT")) + glGetQueryivEXT = cast[proc (target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetQueryivEXT")) + glGetQueryObjectivEXT = cast[proc (id: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetQueryObjectivEXT")) + glGetQueryObjectuivEXT = cast[proc (id: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall.}](load("glGetQueryObjectuivEXT")) + glGetQueryObjecti64vEXT = cast[proc (id: GLuint, pname: GLenum, params: ptr GLint64) {.stdcall.}](load("glGetQueryObjecti64vEXT")) + glGetQueryObjectui64vEXT = cast[proc (id: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall.}](load("glGetQueryObjectui64vEXT")) + glGetInteger64vEXT = cast[proc (pname: GLenum, data: ptr GLint64) {.stdcall.}](load("glGetInteger64vEXT")) + proc load_GL_EXT_draw_buffers(load: proc) = if not GLAD_GL_EXT_draw_buffers: return + glDrawBuffersEXT = cast[proc (n: GLsizei, bufs: ptr GLenum) {.stdcall.}](load("glDrawBuffersEXT")) + proc load_GL_EXT_draw_buffers_indexed(load: proc) = if not GLAD_GL_EXT_draw_buffers_indexed: return + glEnableiEXT = cast[proc (target: GLenum, index: GLuint) {.stdcall.}](load("glEnableiEXT")) + glDisableiEXT = cast[proc (target: GLenum, index: GLuint) {.stdcall.}](load("glDisableiEXT")) + glBlendEquationiEXT = cast[proc (buf: GLuint, mode: GLenum) {.stdcall.}](load("glBlendEquationiEXT")) + glBlendEquationSeparateiEXT = cast[proc (buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum) {.stdcall.}](load("glBlendEquationSeparateiEXT")) + glBlendFunciEXT = cast[proc (buf: GLuint, src: GLenum, dst: GLenum) {.stdcall.}](load("glBlendFunciEXT")) + glBlendFuncSeparateiEXT = cast[proc (buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) {.stdcall.}](load("glBlendFuncSeparateiEXT")) + glColorMaskiEXT = cast[proc (index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean) {.stdcall.}](load("glColorMaskiEXT")) + glIsEnablediEXT = cast[proc (target: GLenum, index: GLuint): GLboolean {.stdcall.}](load("glIsEnablediEXT")) + proc load_GL_EXT_draw_elements_base_vertex(load: proc) = if not GLAD_GL_EXT_draw_elements_base_vertex: return - - - - + glDrawElementsBaseVertexEXT = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall.}](load("glDrawElementsBaseVertexEXT")) + glDrawRangeElementsBaseVertexEXT = cast[proc (mode: GLenum, start: GLuint, `end`: GLuint, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall.}](load("glDrawRangeElementsBaseVertexEXT")) + glDrawElementsInstancedBaseVertexEXT = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint) {.stdcall.}](load("glDrawElementsInstancedBaseVertexEXT")) + glMultiDrawElementsBaseVertexEXT = cast[proc (mode: GLenum, count: ptr GLsizei, `type`: GLenum, indices: ptr pointer, drawcount: GLsizei, basevertex: ptr GLint) {.stdcall.}](load("glMultiDrawElementsBaseVertexEXT")) proc load_GL_EXT_draw_instanced(load: proc) = if not GLAD_GL_EXT_draw_instanced: return - - + glDrawArraysInstancedEXT = cast[proc (mode: GLenum, start: GLint, count: GLsizei, primcount: GLsizei) {.stdcall.}](load("glDrawArraysInstancedEXT")) + glDrawElementsInstancedEXT = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall.}](load("glDrawElementsInstancedEXT")) proc load_GL_EXT_draw_transform_feedback(load: proc) = if not GLAD_GL_EXT_draw_transform_feedback: return - - + glDrawTransformFeedbackEXT = cast[proc (mode: GLenum, id: GLuint) {.stdcall.}](load("glDrawTransformFeedbackEXT")) + glDrawTransformFeedbackInstancedEXT = cast[proc (mode: GLenum, id: GLuint, instancecount: GLsizei) {.stdcall.}](load("glDrawTransformFeedbackInstancedEXT")) proc load_GL_EXT_external_buffer(load: proc) = if not GLAD_GL_EXT_external_buffer: return - - + glBufferStorageExternalEXT = cast[proc (target: GLenum, offset: GLintptr, size: GLsizeiptr, clientBuffer: GLeglClientBufferEXT, flags: GLbitfield) {.stdcall.}](load("glBufferStorageExternalEXT")) + glNamedBufferStorageExternalEXT = cast[proc (buffer: GLuint, offset: GLintptr, size: GLsizeiptr, clientBuffer: GLeglClientBufferEXT, flags: GLbitfield) {.stdcall.}](load("glNamedBufferStorageExternalEXT")) proc load_GL_EXT_fragment_shading_rate(load: proc) = if not GLAD_GL_EXT_fragment_shading_rate: return - - - - + glGetFragmentShadingRatesEXT = cast[proc (samples: GLsizei, maxCount: GLsizei, count: ptr GLsizei, shadingRates: ptr GLenum) {.stdcall.}](load("glGetFragmentShadingRatesEXT")) + glShadingRateEXT = cast[proc (rate: GLenum) {.stdcall.}](load("glShadingRateEXT")) + glShadingRateCombinerOpsEXT = cast[proc (combinerOp0: GLenum, combinerOp1: GLenum) {.stdcall.}](load("glShadingRateCombinerOpsEXT")) + glFramebufferShadingRateEXT = cast[proc (target: GLenum, attachment: GLenum, texture: GLuint, baseLayer: GLint, numLayers: GLsizei, texelWidth: GLsizei, texelHeight: GLsizei) {.stdcall.}](load("glFramebufferShadingRateEXT")) proc load_GL_EXT_framebuffer_blit_layers(load: proc) = if not GLAD_GL_EXT_framebuffer_blit_layers: return - - + glBlitFramebufferLayersEXT = cast[proc (srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall.}](load("glBlitFramebufferLayersEXT")) + glBlitFramebufferLayerEXT = cast[proc (srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, srcLayer: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, dstLayer: GLint, mask: GLbitfield, filter: GLenum) {.stdcall.}](load("glBlitFramebufferLayerEXT")) proc load_GL_EXT_geometry_shader(load: proc) = if not GLAD_GL_EXT_geometry_shader: return - + glFramebufferTextureEXT = cast[proc (target: GLenum, attachment: GLenum, texture: GLuint, level: GLint) {.stdcall.}](load("glFramebufferTextureEXT")) proc load_GL_EXT_instanced_arrays(load: proc) = if not GLAD_GL_EXT_instanced_arrays: return - - - + glDrawArraysInstancedEXT = cast[proc (mode: GLenum, start: GLint, count: GLsizei, primcount: GLsizei) {.stdcall.}](load("glDrawArraysInstancedEXT")) + glDrawElementsInstancedEXT = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall.}](load("glDrawElementsInstancedEXT")) + glVertexAttribDivisorEXT = cast[proc (index: GLuint, divisor: GLuint) {.stdcall.}](load("glVertexAttribDivisorEXT")) proc load_GL_EXT_map_buffer_range(load: proc) = if not GLAD_GL_EXT_map_buffer_range: return - - + glMapBufferRangeEXT = cast[proc (target: GLenum, offset: GLintptr, length: GLsizeiptr, access: GLbitfield): pointer {.stdcall.}](load("glMapBufferRangeEXT")) + glFlushMappedBufferRangeEXT = cast[proc (target: GLenum, offset: GLintptr, length: GLsizeiptr) {.stdcall.}](load("glFlushMappedBufferRangeEXT")) proc load_GL_EXT_memory_object(load: proc) = if not GLAD_GL_EXT_memory_object: return - - - - - - - - - - - - - - - - - - - + glGetUnsignedBytevEXT = cast[proc (pname: GLenum, data: ptr GLubyte) {.stdcall.}](load("glGetUnsignedBytevEXT")) + glGetUnsignedBytei_vEXT = cast[proc (target: GLenum, index: GLuint, data: ptr GLubyte) {.stdcall.}](load("glGetUnsignedBytei_vEXT")) + glDeleteMemoryObjectsEXT = cast[proc (n: GLsizei, memoryObjects: ptr GLuint) {.stdcall.}](load("glDeleteMemoryObjectsEXT")) + glIsMemoryObjectEXT = cast[proc (memoryObject: GLuint): GLboolean {.stdcall.}](load("glIsMemoryObjectEXT")) + glCreateMemoryObjectsEXT = cast[proc (n: GLsizei, memoryObjects: ptr GLuint) {.stdcall.}](load("glCreateMemoryObjectsEXT")) + glMemoryObjectParameterivEXT = cast[proc (memoryObject: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glMemoryObjectParameterivEXT")) + glGetMemoryObjectParameterivEXT = cast[proc (memoryObject: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetMemoryObjectParameterivEXT")) + glTexStorageMem2DEXT = cast[proc (target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTexStorageMem2DEXT")) + glTexStorageMem2DMultisampleEXT = cast[proc (target: GLenum, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTexStorageMem2DMultisampleEXT")) + glTexStorageMem3DEXT = cast[proc (target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTexStorageMem3DEXT")) + glTexStorageMem3DMultisampleEXT = cast[proc (target: GLenum, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTexStorageMem3DMultisampleEXT")) + glBufferStorageMemEXT = cast[proc (target: GLenum, size: GLsizeiptr, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glBufferStorageMemEXT")) + glTextureStorageMem2DEXT = cast[proc (texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTextureStorageMem2DEXT")) + glTextureStorageMem2DMultisampleEXT = cast[proc (texture: GLuint, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTextureStorageMem2DMultisampleEXT")) + glTextureStorageMem3DEXT = cast[proc (texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTextureStorageMem3DEXT")) + glTextureStorageMem3DMultisampleEXT = cast[proc (texture: GLuint, samples: GLsizei, internalFormat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedSampleLocations: GLboolean, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTextureStorageMem3DMultisampleEXT")) + glNamedBufferStorageMemEXT = cast[proc (buffer: GLuint, size: GLsizeiptr, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glNamedBufferStorageMemEXT")) + glTexStorageMem1DEXT = cast[proc (target: GLenum, levels: GLsizei, internalFormat: GLenum, width: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTexStorageMem1DEXT")) + glTextureStorageMem1DEXT = cast[proc (texture: GLuint, levels: GLsizei, internalFormat: GLenum, width: GLsizei, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTextureStorageMem1DEXT")) proc load_GL_EXT_memory_object_fd(load: proc) = if not GLAD_GL_EXT_memory_object_fd: return - + glImportMemoryFdEXT = cast[proc (memory: GLuint, size: GLuint64, handleType: GLenum, fd: GLint) {.stdcall.}](load("glImportMemoryFdEXT")) proc load_GL_EXT_memory_object_win32(load: proc) = if not GLAD_GL_EXT_memory_object_win32: return - - + glImportMemoryWin32HandleEXT = cast[proc (memory: GLuint, size: GLuint64, handleType: GLenum, handle: pointer) {.stdcall.}](load("glImportMemoryWin32HandleEXT")) + glImportMemoryWin32NameEXT = cast[proc (memory: GLuint, size: GLuint64, handleType: GLenum, name: pointer) {.stdcall.}](load("glImportMemoryWin32NameEXT")) proc load_GL_EXT_multi_draw_arrays(load: proc) = if not GLAD_GL_EXT_multi_draw_arrays: return - - + glMultiDrawArraysEXT = cast[proc (mode: GLenum, first: ptr GLint, count: ptr GLsizei, primcount: GLsizei) {.stdcall.}](load("glMultiDrawArraysEXT")) + glMultiDrawElementsEXT = cast[proc (mode: GLenum, count: ptr GLsizei, `type`: GLenum, indices: ptr pointer, primcount: GLsizei) {.stdcall.}](load("glMultiDrawElementsEXT")) proc load_GL_EXT_multi_draw_indirect(load: proc) = if not GLAD_GL_EXT_multi_draw_indirect: return - - + glMultiDrawArraysIndirectEXT = cast[proc (mode: GLenum, indirect: pointer, drawcount: GLsizei, stride: GLsizei) {.stdcall.}](load("glMultiDrawArraysIndirectEXT")) + glMultiDrawElementsIndirectEXT = cast[proc (mode: GLenum, `type`: GLenum, indirect: pointer, drawcount: GLsizei, stride: GLsizei) {.stdcall.}](load("glMultiDrawElementsIndirectEXT")) proc load_GL_EXT_multisampled_render_to_texture(load: proc) = if not GLAD_GL_EXT_multisampled_render_to_texture: return - - + glRenderbufferStorageMultisampleEXT = cast[proc (target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glRenderbufferStorageMultisampleEXT")) + glFramebufferTexture2DMultisampleEXT = cast[proc (target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, samples: GLsizei) {.stdcall.}](load("glFramebufferTexture2DMultisampleEXT")) proc load_GL_EXT_multiview_draw_buffers(load: proc) = if not GLAD_GL_EXT_multiview_draw_buffers: return - - - + glReadBufferIndexedEXT = cast[proc (src: GLenum, index: GLint) {.stdcall.}](load("glReadBufferIndexedEXT")) + glDrawBuffersIndexedEXT = cast[proc (n: GLint, location: ptr GLenum, indices: ptr GLint) {.stdcall.}](load("glDrawBuffersIndexedEXT")) + glGetIntegeri_vEXT = cast[proc (target: GLenum, index: GLuint, data: ptr GLint) {.stdcall.}](load("glGetIntegeri_vEXT")) proc load_GL_EXT_occlusion_query_boolean(load: proc) = if not GLAD_GL_EXT_occlusion_query_boolean: return - - - - - - - + glGenQueriesEXT = cast[proc (n: GLsizei, ids: ptr GLuint) {.stdcall.}](load("glGenQueriesEXT")) + glDeleteQueriesEXT = cast[proc (n: GLsizei, ids: ptr GLuint) {.stdcall.}](load("glDeleteQueriesEXT")) + glIsQueryEXT = cast[proc (id: GLuint): GLboolean {.stdcall.}](load("glIsQueryEXT")) + glBeginQueryEXT = cast[proc (target: GLenum, id: GLuint) {.stdcall.}](load("glBeginQueryEXT")) + glEndQueryEXT = cast[proc (target: GLenum) {.stdcall.}](load("glEndQueryEXT")) + glGetQueryivEXT = cast[proc (target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetQueryivEXT")) + glGetQueryObjectuivEXT = cast[proc (id: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall.}](load("glGetQueryObjectuivEXT")) proc load_GL_EXT_polygon_offset_clamp(load: proc) = if not GLAD_GL_EXT_polygon_offset_clamp: return - + glPolygonOffsetClampEXT = cast[proc (factor: GLfloat, units: GLfloat, clamp: GLfloat) {.stdcall.}](load("glPolygonOffsetClampEXT")) proc load_GL_EXT_primitive_bounding_box(load: proc) = if not GLAD_GL_EXT_primitive_bounding_box: return - + glPrimitiveBoundingBoxEXT = cast[proc (minX: GLfloat, minY: GLfloat, minZ: GLfloat, minW: GLfloat, maxX: GLfloat, maxY: GLfloat, maxZ: GLfloat, maxW: GLfloat) {.stdcall.}](load("glPrimitiveBoundingBoxEXT")) proc load_GL_EXT_raster_multisample(load: proc) = if not GLAD_GL_EXT_raster_multisample: return - + glRasterSamplesEXT = cast[proc (samples: GLuint, fixedsamplelocations: GLboolean) {.stdcall.}](load("glRasterSamplesEXT")) proc load_GL_EXT_robustness(load: proc) = if not GLAD_GL_EXT_robustness: return - - - - + glGetGraphicsResetStatusEXT = cast[proc (): GLenum {.stdcall.}](load("glGetGraphicsResetStatusEXT")) + glReadnPixelsEXT = cast[proc (x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, `type`: GLenum, bufSize: GLsizei, data: pointer) {.stdcall.}](load("glReadnPixelsEXT")) + glGetnUniformfvEXT = cast[proc (program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLfloat) {.stdcall.}](load("glGetnUniformfvEXT")) + glGetnUniformivEXT = cast[proc (program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLint) {.stdcall.}](load("glGetnUniformivEXT")) proc load_GL_EXT_semaphore(load: proc) = if not GLAD_GL_EXT_semaphore: return - - - - - - - - - + glGetUnsignedBytevEXT = cast[proc (pname: GLenum, data: ptr GLubyte) {.stdcall.}](load("glGetUnsignedBytevEXT")) + glGetUnsignedBytei_vEXT = cast[proc (target: GLenum, index: GLuint, data: ptr GLubyte) {.stdcall.}](load("glGetUnsignedBytei_vEXT")) + glGenSemaphoresEXT = cast[proc (n: GLsizei, semaphores: ptr GLuint) {.stdcall.}](load("glGenSemaphoresEXT")) + glDeleteSemaphoresEXT = cast[proc (n: GLsizei, semaphores: ptr GLuint) {.stdcall.}](load("glDeleteSemaphoresEXT")) + glIsSemaphoreEXT = cast[proc (semaphore: GLuint): GLboolean {.stdcall.}](load("glIsSemaphoreEXT")) + glSemaphoreParameterui64vEXT = cast[proc (semaphore: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall.}](load("glSemaphoreParameterui64vEXT")) + glGetSemaphoreParameterui64vEXT = cast[proc (semaphore: GLuint, pname: GLenum, params: ptr GLuint64) {.stdcall.}](load("glGetSemaphoreParameterui64vEXT")) + glWaitSemaphoreEXT = cast[proc (semaphore: GLuint, numBufferBarriers: GLuint, buffers: ptr GLuint, numTextureBarriers: GLuint, textures: ptr GLuint, srcLayouts: ptr GLenum) {.stdcall.}](load("glWaitSemaphoreEXT")) + glSignalSemaphoreEXT = cast[proc (semaphore: GLuint, numBufferBarriers: GLuint, buffers: ptr GLuint, numTextureBarriers: GLuint, textures: ptr GLuint, dstLayouts: ptr GLenum) {.stdcall.}](load("glSignalSemaphoreEXT")) proc load_GL_EXT_semaphore_fd(load: proc) = if not GLAD_GL_EXT_semaphore_fd: return - + glImportSemaphoreFdEXT = cast[proc (semaphore: GLuint, handleType: GLenum, fd: GLint) {.stdcall.}](load("glImportSemaphoreFdEXT")) proc load_GL_EXT_semaphore_win32(load: proc) = if not GLAD_GL_EXT_semaphore_win32: return - - + glImportSemaphoreWin32HandleEXT = cast[proc (semaphore: GLuint, handleType: GLenum, handle: pointer) {.stdcall.}](load("glImportSemaphoreWin32HandleEXT")) + glImportSemaphoreWin32NameEXT = cast[proc (semaphore: GLuint, handleType: GLenum, name: pointer) {.stdcall.}](load("glImportSemaphoreWin32NameEXT")) proc load_GL_EXT_separate_shader_objects(load: proc) = if not GLAD_GL_EXT_separate_shader_objects: return + glUseShaderProgramEXT = cast[proc (`type`: GLenum, program: GLuint) {.stdcall.}](load("glUseShaderProgramEXT")) + glActiveProgramEXT = cast[proc (program: GLuint) {.stdcall.}](load("glActiveProgramEXT")) + glCreateShaderProgramEXT = cast[proc (`type`: GLenum, string: cstring): GLuint {.stdcall.}](load("glCreateShaderProgramEXT")) + glActiveShaderProgramEXT = cast[proc (pipeline: GLuint, program: GLuint) {.stdcall.}](load("glActiveShaderProgramEXT")) + glBindProgramPipelineEXT = cast[proc (pipeline: GLuint) {.stdcall.}](load("glBindProgramPipelineEXT")) + glCreateShaderProgramvEXT = cast[proc (`type`: GLenum, count: GLsizei, strings: cstringArray): GLuint {.stdcall.}](load("glCreateShaderProgramvEXT")) + glDeleteProgramPipelinesEXT = cast[proc (n: GLsizei, pipelines: ptr GLuint) {.stdcall.}](load("glDeleteProgramPipelinesEXT")) + glGenProgramPipelinesEXT = cast[proc (n: GLsizei, pipelines: ptr GLuint) {.stdcall.}](load("glGenProgramPipelinesEXT")) + glGetProgramPipelineInfoLogEXT = cast[proc (pipeline: GLuint, bufSize: GLsizei, length: ptr GLsizei, infoLog: cstring) {.stdcall.}](load("glGetProgramPipelineInfoLogEXT")) + glGetProgramPipelineivEXT = cast[proc (pipeline: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetProgramPipelineivEXT")) + glIsProgramPipelineEXT = cast[proc (pipeline: GLuint): GLboolean {.stdcall.}](load("glIsProgramPipelineEXT")) + glProgramParameteriEXT = cast[proc (program: GLuint, pname: GLenum, value: GLint) {.stdcall.}](load("glProgramParameteriEXT")) + glProgramUniform1fEXT = cast[proc (program: GLuint, location: GLint, v0: GLfloat) {.stdcall.}](load("glProgramUniform1fEXT")) + glProgramUniform1fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall.}](load("glProgramUniform1fvEXT")) + glProgramUniform1iEXT = cast[proc (program: GLuint, location: GLint, v0: GLint) {.stdcall.}](load("glProgramUniform1iEXT")) + glProgramUniform1ivEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall.}](load("glProgramUniform1ivEXT")) + glProgramUniform2fEXT = cast[proc (program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat) {.stdcall.}](load("glProgramUniform2fEXT")) + glProgramUniform2fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall.}](load("glProgramUniform2fvEXT")) + glProgramUniform2iEXT = cast[proc (program: GLuint, location: GLint, v0: GLint, v1: GLint) {.stdcall.}](load("glProgramUniform2iEXT")) + glProgramUniform2ivEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall.}](load("glProgramUniform2ivEXT")) + glProgramUniform3fEXT = cast[proc (program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat) {.stdcall.}](load("glProgramUniform3fEXT")) + glProgramUniform3fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall.}](load("glProgramUniform3fvEXT")) + glProgramUniform3iEXT = cast[proc (program: GLuint, location: GLint, v0: GLint, v1: GLint, v2: GLint) {.stdcall.}](load("glProgramUniform3iEXT")) + glProgramUniform3ivEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall.}](load("glProgramUniform3ivEXT")) + glProgramUniform4fEXT = cast[proc (program: GLuint, location: GLint, v0: GLfloat, v1: GLfloat, v2: GLfloat, v3: GLfloat) {.stdcall.}](load("glProgramUniform4fEXT")) + glProgramUniform4fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLfloat) {.stdcall.}](load("glProgramUniform4fvEXT")) + glProgramUniform4iEXT = cast[proc (program: GLuint, location: GLint, v0: GLint, v1: GLint, v2: GLint, v3: GLint) {.stdcall.}](load("glProgramUniform4iEXT")) + glProgramUniform4ivEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLint) {.stdcall.}](load("glProgramUniform4ivEXT")) + glProgramUniformMatrix2fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix2fvEXT")) + glProgramUniformMatrix3fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix3fvEXT")) + glProgramUniformMatrix4fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix4fvEXT")) + glUseProgramStagesEXT = cast[proc (pipeline: GLuint, stages: GLbitfield, program: GLuint) {.stdcall.}](load("glUseProgramStagesEXT")) + glValidateProgramPipelineEXT = cast[proc (pipeline: GLuint) {.stdcall.}](load("glValidateProgramPipelineEXT")) + glProgramUniform1uiEXT = cast[proc (program: GLuint, location: GLint, v0: GLuint) {.stdcall.}](load("glProgramUniform1uiEXT")) + glProgramUniform2uiEXT = cast[proc (program: GLuint, location: GLint, v0: GLuint, v1: GLuint) {.stdcall.}](load("glProgramUniform2uiEXT")) + glProgramUniform3uiEXT = cast[proc (program: GLuint, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint) {.stdcall.}](load("glProgramUniform3uiEXT")) + glProgramUniform4uiEXT = cast[proc (program: GLuint, location: GLint, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) {.stdcall.}](load("glProgramUniform4uiEXT")) + glProgramUniform1uivEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall.}](load("glProgramUniform1uivEXT")) + glProgramUniform2uivEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall.}](load("glProgramUniform2uivEXT")) + glProgramUniform3uivEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall.}](load("glProgramUniform3uivEXT")) + glProgramUniform4uivEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint) {.stdcall.}](load("glProgramUniform4uivEXT")) + glProgramUniformMatrix2x3fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix2x3fvEXT")) + glProgramUniformMatrix3x2fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix3x2fvEXT")) + glProgramUniformMatrix2x4fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix2x4fvEXT")) + glProgramUniformMatrix4x2fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix4x2fvEXT")) + glProgramUniformMatrix3x4fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix3x4fvEXT")) + glProgramUniformMatrix4x3fvEXT = cast[proc (program: GLuint, location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glProgramUniformMatrix4x3fvEXT")) proc load_GL_EXT_shader_framebuffer_fetch_non_coherent(load: proc) = if not GLAD_GL_EXT_shader_framebuffer_fetch_non_coherent: return - + glFramebufferFetchBarrierEXT = cast[proc () {.stdcall.}](load("glFramebufferFetchBarrierEXT")) proc load_GL_EXT_shader_pixel_local_storage2(load: proc) = if not GLAD_GL_EXT_shader_pixel_local_storage2: return - - - + glFramebufferPixelLocalStorageSizeEXT = cast[proc (target: GLuint, size: GLsizei) {.stdcall.}](load("glFramebufferPixelLocalStorageSizeEXT")) + glGetFramebufferPixelLocalStorageSizeEXT = cast[proc (target: GLuint): GLsizei {.stdcall.}](load("glGetFramebufferPixelLocalStorageSizeEXT")) + glClearPixelLocalStorageuiEXT = cast[proc (offset: GLsizei, n: GLsizei, values: ptr GLuint) {.stdcall.}](load("glClearPixelLocalStorageuiEXT")) proc load_GL_EXT_sparse_texture(load: proc) = if not GLAD_GL_EXT_sparse_texture: return - + glTexPageCommitmentEXT = cast[proc (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, commit: GLboolean) {.stdcall.}](load("glTexPageCommitmentEXT")) proc load_GL_EXT_tessellation_shader(load: proc) = if not GLAD_GL_EXT_tessellation_shader: return - + glPatchParameteriEXT = cast[proc (pname: GLenum, value: GLint) {.stdcall.}](load("glPatchParameteriEXT")) proc load_GL_EXT_texture_border_clamp(load: proc) = if not GLAD_GL_EXT_texture_border_clamp: return - - - - - - - - + glTexParameterIivEXT = cast[proc (target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glTexParameterIivEXT")) + glTexParameterIuivEXT = cast[proc (target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall.}](load("glTexParameterIuivEXT")) + glGetTexParameterIivEXT = cast[proc (target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetTexParameterIivEXT")) + glGetTexParameterIuivEXT = cast[proc (target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall.}](load("glGetTexParameterIuivEXT")) + glSamplerParameterIivEXT = cast[proc (sampler: GLuint, pname: GLenum, param: ptr GLint) {.stdcall.}](load("glSamplerParameterIivEXT")) + glSamplerParameterIuivEXT = cast[proc (sampler: GLuint, pname: GLenum, param: ptr GLuint) {.stdcall.}](load("glSamplerParameterIuivEXT")) + glGetSamplerParameterIivEXT = cast[proc (sampler: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetSamplerParameterIivEXT")) + glGetSamplerParameterIuivEXT = cast[proc (sampler: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall.}](load("glGetSamplerParameterIuivEXT")) proc load_GL_EXT_texture_buffer(load: proc) = if not GLAD_GL_EXT_texture_buffer: return - - + glTexBufferEXT = cast[proc (target: GLenum, internalformat: GLenum, buffer: GLuint) {.stdcall.}](load("glTexBufferEXT")) + glTexBufferRangeEXT = cast[proc (target: GLenum, internalformat: GLenum, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) {.stdcall.}](load("glTexBufferRangeEXT")) proc load_GL_EXT_texture_storage(load: proc) = if not GLAD_GL_EXT_texture_storage: return - - - - - - + glTexStorage1DEXT = cast[proc (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei) {.stdcall.}](load("glTexStorage1DEXT")) + glTexStorage2DEXT = cast[proc (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glTexStorage2DEXT")) + glTexStorage3DEXT = cast[proc (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) {.stdcall.}](load("glTexStorage3DEXT")) + glTextureStorage1DEXT = cast[proc (texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei) {.stdcall.}](load("glTextureStorage1DEXT")) + glTextureStorage2DEXT = cast[proc (texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glTextureStorage2DEXT")) + glTextureStorage3DEXT = cast[proc (texture: GLuint, target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) {.stdcall.}](load("glTextureStorage3DEXT")) proc load_GL_EXT_texture_storage_compression(load: proc) = if not GLAD_GL_EXT_texture_storage_compression: return - - + glTexStorageAttribs2DEXT = cast[proc (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, attrib_list: ptr GLint) {.stdcall.}](load("glTexStorageAttribs2DEXT")) + glTexStorageAttribs3DEXT = cast[proc (target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, attrib_list: ptr GLint) {.stdcall.}](load("glTexStorageAttribs3DEXT")) proc load_GL_EXT_texture_view(load: proc) = if not GLAD_GL_EXT_texture_view: return - + glTextureViewEXT = cast[proc (texture: GLuint, target: GLenum, origtexture: GLuint, internalformat: GLenum, minlevel: GLuint, numlevels: GLuint, minlayer: GLuint, numlayers: GLuint) {.stdcall.}](load("glTextureViewEXT")) proc load_GL_EXT_win32_keyed_mutex(load: proc) = if not GLAD_GL_EXT_win32_keyed_mutex: return - - + glAcquireKeyedMutexWin32EXT = cast[proc (memory: GLuint, key: GLuint64, timeout: GLuint): GLboolean {.stdcall.}](load("glAcquireKeyedMutexWin32EXT")) + glReleaseKeyedMutexWin32EXT = cast[proc (memory: GLuint, key: GLuint64): GLboolean {.stdcall.}](load("glReleaseKeyedMutexWin32EXT")) proc load_GL_EXT_window_rectangles(load: proc) = if not GLAD_GL_EXT_window_rectangles: return - + glWindowRectanglesEXT = cast[proc (mode: GLenum, count: GLsizei, box: ptr GLint) {.stdcall.}](load("glWindowRectanglesEXT")) proc load_GL_IMG_bindless_texture(load: proc) = if not GLAD_GL_IMG_bindless_texture: return - - - - - - + glGetTextureHandleIMG = cast[proc (texture: GLuint): GLuint64 {.stdcall.}](load("glGetTextureHandleIMG")) + glGetTextureSamplerHandleIMG = cast[proc (texture: GLuint, sampler: GLuint): GLuint64 {.stdcall.}](load("glGetTextureSamplerHandleIMG")) + glUniformHandleui64IMG = cast[proc (location: GLint, value: GLuint64) {.stdcall.}](load("glUniformHandleui64IMG")) + glUniformHandleui64vIMG = cast[proc (location: GLint, count: GLsizei, value: ptr GLuint64) {.stdcall.}](load("glUniformHandleui64vIMG")) + glProgramUniformHandleui64IMG = cast[proc (program: GLuint, location: GLint, value: GLuint64) {.stdcall.}](load("glProgramUniformHandleui64IMG")) + glProgramUniformHandleui64vIMG = cast[proc (program: GLuint, location: GLint, count: GLsizei, values: ptr GLuint64) {.stdcall.}](load("glProgramUniformHandleui64vIMG")) proc load_GL_IMG_framebuffer_downsample(load: proc) = if not GLAD_GL_IMG_framebuffer_downsample: return - - + glFramebufferTexture2DDownsampleIMG = cast[proc (target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, xscale: GLint, yscale: GLint) {.stdcall.}](load("glFramebufferTexture2DDownsampleIMG")) + glFramebufferTextureLayerDownsampleIMG = cast[proc (target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, layer: GLint, xscale: GLint, yscale: GLint) {.stdcall.}](load("glFramebufferTextureLayerDownsampleIMG")) proc load_GL_IMG_multisampled_render_to_texture(load: proc) = if not GLAD_GL_IMG_multisampled_render_to_texture: return - - + glRenderbufferStorageMultisampleIMG = cast[proc (target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glRenderbufferStorageMultisampleIMG")) + glFramebufferTexture2DMultisampleIMG = cast[proc (target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, samples: GLsizei) {.stdcall.}](load("glFramebufferTexture2DMultisampleIMG")) proc load_GL_INTEL_framebuffer_CMAA(load: proc) = if not GLAD_GL_INTEL_framebuffer_CMAA: return - + glApplyFramebufferAttachmentCMAAINTEL = cast[proc () {.stdcall.}](load("glApplyFramebufferAttachmentCMAAINTEL")) proc load_GL_INTEL_performance_query(load: proc) = if not GLAD_GL_INTEL_performance_query: return - - - - - - - - - - + glBeginPerfQueryINTEL = cast[proc (queryHandle: GLuint) {.stdcall.}](load("glBeginPerfQueryINTEL")) + glCreatePerfQueryINTEL = cast[proc (queryId: GLuint, queryHandle: ptr GLuint) {.stdcall.}](load("glCreatePerfQueryINTEL")) + glDeletePerfQueryINTEL = cast[proc (queryHandle: GLuint) {.stdcall.}](load("glDeletePerfQueryINTEL")) + glEndPerfQueryINTEL = cast[proc (queryHandle: GLuint) {.stdcall.}](load("glEndPerfQueryINTEL")) + glGetFirstPerfQueryIdINTEL = cast[proc (queryId: ptr GLuint) {.stdcall.}](load("glGetFirstPerfQueryIdINTEL")) + glGetNextPerfQueryIdINTEL = cast[proc (queryId: GLuint, nextQueryId: ptr GLuint) {.stdcall.}](load("glGetNextPerfQueryIdINTEL")) + glGetPerfCounterInfoINTEL = cast[proc (queryId: GLuint, counterId: GLuint, counterNameLength: GLuint, counterName: cstring, counterDescLength: GLuint, counterDesc: cstring, counterOffset: ptr GLuint, counterDataSize: ptr GLuint, counterTypeEnum: ptr GLuint, counterDataTypeEnum: ptr GLuint, rawCounterMaxValue: ptr GLuint64) {.stdcall.}](load("glGetPerfCounterInfoINTEL")) + glGetPerfQueryDataINTEL = cast[proc (queryHandle: GLuint, flags: GLuint, dataSize: GLsizei, data: pointer, bytesWritten: ptr GLuint) {.stdcall.}](load("glGetPerfQueryDataINTEL")) + glGetPerfQueryIdByNameINTEL = cast[proc (queryName: cstring, queryId: ptr GLuint) {.stdcall.}](load("glGetPerfQueryIdByNameINTEL")) + glGetPerfQueryInfoINTEL = cast[proc (queryId: GLuint, queryNameLength: GLuint, queryName: cstring, dataSize: ptr GLuint, noCounters: ptr GLuint, noInstances: ptr GLuint, capsMask: ptr GLuint) {.stdcall.}](load("glGetPerfQueryInfoINTEL")) proc load_GL_KHR_blend_equation_advanced(load: proc) = if not GLAD_GL_KHR_blend_equation_advanced: return - + glBlendBarrierKHR = cast[proc () {.stdcall.}](load("glBlendBarrierKHR")) proc load_GL_KHR_debug(load: proc) = if not GLAD_GL_KHR_debug: return - - - - - - - - - - - - - - - - - - - - - - + # glDebugMessageControl = cast[proc (source: GLenum, `type`: GLenum, severity: GLenum, count: GLsizei, ids: ptr GLuint, enabled: GLboolean) {.stdcall.}](load("glDebugMessageControl")) + # glDebugMessageInsert = cast[proc (source: GLenum, `type`: GLenum, id: GLuint, severity: GLenum, length: GLsizei, buf: cstring) {.stdcall.}](load("glDebugMessageInsert")) + # glDebugMessageCallback = cast[proc (callback: GLDEBUGPROC, userParam: pointer) {.stdcall.}](load("glDebugMessageCallback")) + # glGetDebugMessageLog = cast[proc (count: GLuint, bufSize: GLsizei, sources: ptr GLenum, types: ptr GLenum, ids: ptr GLuint, severities: ptr GLenum, lengths: ptr GLsizei, messageLog: cstring): GLuint {.stdcall.}](load("glGetDebugMessageLog")) + # glPushDebugGroup = cast[proc (source: GLenum, id: GLuint, length: GLsizei, message: cstring) {.stdcall.}](load("glPushDebugGroup")) + # glPopDebugGroup = cast[proc () {.stdcall.}](load("glPopDebugGroup")) + # glObjectLabel = cast[proc (identifier: GLenum, name: GLuint, length: GLsizei, label: cstring) {.stdcall.}](load("glObjectLabel")) + # glGetObjectLabel = cast[proc (identifier: GLenum, name: GLuint, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall.}](load("glGetObjectLabel")) + # glObjectPtrLabel = cast[proc (`ptr`: pointer, length: GLsizei, label: cstring) {.stdcall.}](load("glObjectPtrLabel")) + # glGetObjectPtrLabel = cast[proc (`ptr`: pointer, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall.}](load("glGetObjectPtrLabel")) + # glGetPointerv = cast[proc (pname: GLenum, params: ptr pointer) {.stdcall.}](load("glGetPointerv")) + glDebugMessageControlKHR = cast[proc (source: GLenum, `type`: GLenum, severity: GLenum, count: GLsizei, ids: ptr GLuint, enabled: GLboolean) {.stdcall.}](load("glDebugMessageControlKHR")) + glDebugMessageInsertKHR = cast[proc (source: GLenum, `type`: GLenum, id: GLuint, severity: GLenum, length: GLsizei, buf: cstring) {.stdcall.}](load("glDebugMessageInsertKHR")) + glDebugMessageCallbackKHR = cast[proc (callback: GLDEBUGPROCKHR, userParam: pointer) {.stdcall.}](load("glDebugMessageCallbackKHR")) + glGetDebugMessageLogKHR = cast[proc (count: GLuint, bufSize: GLsizei, sources: ptr GLenum, types: ptr GLenum, ids: ptr GLuint, severities: ptr GLenum, lengths: ptr GLsizei, messageLog: cstring): GLuint {.stdcall.}](load("glGetDebugMessageLogKHR")) + glPushDebugGroupKHR = cast[proc (source: GLenum, id: GLuint, length: GLsizei, message: cstring) {.stdcall.}](load("glPushDebugGroupKHR")) + glPopDebugGroupKHR = cast[proc () {.stdcall.}](load("glPopDebugGroupKHR")) + glObjectLabelKHR = cast[proc (identifier: GLenum, name: GLuint, length: GLsizei, label: cstring) {.stdcall.}](load("glObjectLabelKHR")) + glGetObjectLabelKHR = cast[proc (identifier: GLenum, name: GLuint, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall.}](load("glGetObjectLabelKHR")) + glObjectPtrLabelKHR = cast[proc (`ptr`: pointer, length: GLsizei, label: cstring) {.stdcall.}](load("glObjectPtrLabelKHR")) + glGetObjectPtrLabelKHR = cast[proc (`ptr`: pointer, bufSize: GLsizei, length: ptr GLsizei, label: cstring) {.stdcall.}](load("glGetObjectPtrLabelKHR")) + glGetPointervKHR = cast[proc (pname: GLenum, params: ptr pointer) {.stdcall.}](load("glGetPointervKHR")) proc load_GL_KHR_parallel_shader_compile(load: proc) = if not GLAD_GL_KHR_parallel_shader_compile: return - + glMaxShaderCompilerThreadsKHR = cast[proc (count: GLuint) {.stdcall.}](load("glMaxShaderCompilerThreadsKHR")) proc load_GL_KHR_robustness(load: proc) = if not GLAD_GL_KHR_robustness: return - - - - - - - - - - + # glGetGraphicsResetStatus = cast[proc (): GLenum {.stdcall.}](load("glGetGraphicsResetStatus")) + # glReadnPixels = cast[proc (x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, `type`: GLenum, bufSize: GLsizei, data: pointer) {.stdcall.}](load("glReadnPixels")) + # glGetnUniformfv = cast[proc (program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLfloat) {.stdcall.}](load("glGetnUniformfv")) + # glGetnUniformiv = cast[proc (program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLint) {.stdcall.}](load("glGetnUniformiv")) + # glGetnUniformuiv = cast[proc (program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLuint) {.stdcall.}](load("glGetnUniformuiv")) + glGetGraphicsResetStatusKHR = cast[proc (): GLenum {.stdcall.}](load("glGetGraphicsResetStatusKHR")) + glReadnPixelsKHR = cast[proc (x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, `type`: GLenum, bufSize: GLsizei, data: pointer) {.stdcall.}](load("glReadnPixelsKHR")) + glGetnUniformfvKHR = cast[proc (program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLfloat) {.stdcall.}](load("glGetnUniformfvKHR")) + glGetnUniformivKHR = cast[proc (program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLint) {.stdcall.}](load("glGetnUniformivKHR")) + glGetnUniformuivKHR = cast[proc (program: GLuint, location: GLint, bufSize: GLsizei, params: ptr GLuint) {.stdcall.}](load("glGetnUniformuivKHR")) proc load_GL_MESA_framebuffer_flip_y(load: proc) = if not GLAD_GL_MESA_framebuffer_flip_y: return - - + glFramebufferParameteriMESA = cast[proc (target: GLenum, pname: GLenum, param: GLint) {.stdcall.}](load("glFramebufferParameteriMESA")) + glGetFramebufferParameterivMESA = cast[proc (target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetFramebufferParameterivMESA")) proc load_GL_MESA_sampler_objects(load: proc) = if not GLAD_GL_MESA_sampler_objects: return - - - - - - - - - - + # glGenSamplers = cast[proc (count: GLsizei, samplers: ptr GLuint) {.stdcall.}](load("glGenSamplers")) + # glDeleteSamplers = cast[proc (count: GLsizei, samplers: ptr GLuint) {.stdcall.}](load("glDeleteSamplers")) + # glIsSampler = cast[proc (sampler: GLuint): GLboolean {.stdcall.}](load("glIsSampler")) + # glBindSampler = cast[proc (unit: GLuint, sampler: GLuint) {.stdcall.}](load("glBindSampler")) + # glSamplerParameteri = cast[proc (sampler: GLuint, pname: GLenum, param: GLint) {.stdcall.}](load("glSamplerParameteri")) + # glSamplerParameteriv = cast[proc (sampler: GLuint, pname: GLenum, param: ptr GLint) {.stdcall.}](load("glSamplerParameteriv")) + # glSamplerParameterf = cast[proc (sampler: GLuint, pname: GLenum, param: GLfloat) {.stdcall.}](load("glSamplerParameterf")) + # glSamplerParameterfv = cast[proc (sampler: GLuint, pname: GLenum, param: ptr GLfloat) {.stdcall.}](load("glSamplerParameterfv")) + # glGetSamplerParameteriv = cast[proc (sampler: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetSamplerParameteriv")) + # glGetSamplerParameterfv = cast[proc (sampler: GLuint, pname: GLenum, params: ptr GLfloat) {.stdcall.}](load("glGetSamplerParameterfv")) proc load_GL_NV_bindless_texture(load: proc) = if not GLAD_GL_NV_bindless_texture: return - - - - - - - - - - - - - + glGetTextureHandleNV = cast[proc (texture: GLuint): GLuint64 {.stdcall.}](load("glGetTextureHandleNV")) + glGetTextureSamplerHandleNV = cast[proc (texture: GLuint, sampler: GLuint): GLuint64 {.stdcall.}](load("glGetTextureSamplerHandleNV")) + glMakeTextureHandleResidentNV = cast[proc (handle: GLuint64) {.stdcall.}](load("glMakeTextureHandleResidentNV")) + glMakeTextureHandleNonResidentNV = cast[proc (handle: GLuint64) {.stdcall.}](load("glMakeTextureHandleNonResidentNV")) + glGetImageHandleNV = cast[proc (texture: GLuint, level: GLint, layered: GLboolean, layer: GLint, format: GLenum): GLuint64 {.stdcall.}](load("glGetImageHandleNV")) + glMakeImageHandleResidentNV = cast[proc (handle: GLuint64, access: GLenum) {.stdcall.}](load("glMakeImageHandleResidentNV")) + glMakeImageHandleNonResidentNV = cast[proc (handle: GLuint64) {.stdcall.}](load("glMakeImageHandleNonResidentNV")) + glUniformHandleui64NV = cast[proc (location: GLint, value: GLuint64) {.stdcall.}](load("glUniformHandleui64NV")) + glUniformHandleui64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLuint64) {.stdcall.}](load("glUniformHandleui64vNV")) + glProgramUniformHandleui64NV = cast[proc (program: GLuint, location: GLint, value: GLuint64) {.stdcall.}](load("glProgramUniformHandleui64NV")) + glProgramUniformHandleui64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, values: ptr GLuint64) {.stdcall.}](load("glProgramUniformHandleui64vNV")) + glIsTextureHandleResidentNV = cast[proc (handle: GLuint64): GLboolean {.stdcall.}](load("glIsTextureHandleResidentNV")) + glIsImageHandleResidentNV = cast[proc (handle: GLuint64): GLboolean {.stdcall.}](load("glIsImageHandleResidentNV")) proc load_GL_NV_blend_equation_advanced(load: proc) = if not GLAD_GL_NV_blend_equation_advanced: return - - + glBlendParameteriNV = cast[proc (pname: GLenum, value: GLint) {.stdcall.}](load("glBlendParameteriNV")) + glBlendBarrierNV = cast[proc () {.stdcall.}](load("glBlendBarrierNV")) proc load_GL_NV_clip_space_w_scaling(load: proc) = if not GLAD_GL_NV_clip_space_w_scaling: return - + glViewportPositionWScaleNV = cast[proc (index: GLuint, xcoeff: GLfloat, ycoeff: GLfloat) {.stdcall.}](load("glViewportPositionWScaleNV")) proc load_GL_NV_conditional_render(load: proc) = if not GLAD_GL_NV_conditional_render: return - - + glBeginConditionalRenderNV = cast[proc (id: GLuint, mode: GLenum) {.stdcall.}](load("glBeginConditionalRenderNV")) + glEndConditionalRenderNV = cast[proc () {.stdcall.}](load("glEndConditionalRenderNV")) proc load_GL_NV_conservative_raster(load: proc) = if not GLAD_GL_NV_conservative_raster: return - + glSubpixelPrecisionBiasNV = cast[proc (xbits: GLuint, ybits: GLuint) {.stdcall.}](load("glSubpixelPrecisionBiasNV")) proc load_GL_NV_conservative_raster_pre_snap_triangles(load: proc) = if not GLAD_GL_NV_conservative_raster_pre_snap_triangles: return - + glConservativeRasterParameteriNV = cast[proc (pname: GLenum, param: GLint) {.stdcall.}](load("glConservativeRasterParameteriNV")) proc load_GL_NV_copy_buffer(load: proc) = if not GLAD_GL_NV_copy_buffer: return - + glCopyBufferSubDataNV = cast[proc (readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) {.stdcall.}](load("glCopyBufferSubDataNV")) proc load_GL_NV_coverage_sample(load: proc) = if not GLAD_GL_NV_coverage_sample: return - - + glCoverageMaskNV = cast[proc (mask: GLboolean) {.stdcall.}](load("glCoverageMaskNV")) + glCoverageOperationNV = cast[proc (operation: GLenum) {.stdcall.}](load("glCoverageOperationNV")) proc load_GL_NV_draw_buffers(load: proc) = if not GLAD_GL_NV_draw_buffers: return - + glDrawBuffersNV = cast[proc (n: GLsizei, bufs: ptr GLenum) {.stdcall.}](load("glDrawBuffersNV")) proc load_GL_NV_draw_instanced(load: proc) = if not GLAD_GL_NV_draw_instanced: return - - + glDrawArraysInstancedNV = cast[proc (mode: GLenum, first: GLint, count: GLsizei, primcount: GLsizei) {.stdcall.}](load("glDrawArraysInstancedNV")) + glDrawElementsInstancedNV = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, primcount: GLsizei) {.stdcall.}](load("glDrawElementsInstancedNV")) proc load_GL_NV_draw_vulkan_image(load: proc) = if not GLAD_GL_NV_draw_vulkan_image: return - - - - - + glDrawVkImageNV = cast[proc (vkImage: GLuint64, sampler: GLuint, x0: GLfloat, y0: GLfloat, x1: GLfloat, y1: GLfloat, z: GLfloat, s0: GLfloat, t0: GLfloat, s1: GLfloat, t1: GLfloat) {.stdcall.}](load("glDrawVkImageNV")) + glGetVkProcAddrNV = cast[proc (name: cstring): GLVULKANPROCNV {.stdcall.}](load("glGetVkProcAddrNV")) + glWaitVkSemaphoreNV = cast[proc (vkSemaphore: GLuint64) {.stdcall.}](load("glWaitVkSemaphoreNV")) + glSignalVkSemaphoreNV = cast[proc (vkSemaphore: GLuint64) {.stdcall.}](load("glSignalVkSemaphoreNV")) + glSignalVkFenceNV = cast[proc (vkFence: GLuint64) {.stdcall.}](load("glSignalVkFenceNV")) proc load_GL_NV_fence(load: proc) = if not GLAD_GL_NV_fence: return - - - - - - - + glDeleteFencesNV = cast[proc (n: GLsizei, fences: ptr GLuint) {.stdcall.}](load("glDeleteFencesNV")) + glGenFencesNV = cast[proc (n: GLsizei, fences: ptr GLuint) {.stdcall.}](load("glGenFencesNV")) + glIsFenceNV = cast[proc (fence: GLuint): GLboolean {.stdcall.}](load("glIsFenceNV")) + glTestFenceNV = cast[proc (fence: GLuint): GLboolean {.stdcall.}](load("glTestFenceNV")) + glGetFenceivNV = cast[proc (fence: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetFenceivNV")) + glFinishFenceNV = cast[proc (fence: GLuint) {.stdcall.}](load("glFinishFenceNV")) + glSetFenceNV = cast[proc (fence: GLuint, condition: GLenum) {.stdcall.}](load("glSetFenceNV")) proc load_GL_NV_fragment_coverage_to_color(load: proc) = if not GLAD_GL_NV_fragment_coverage_to_color: return - + glFragmentCoverageColorNV = cast[proc (color: GLuint) {.stdcall.}](load("glFragmentCoverageColorNV")) proc load_GL_NV_framebuffer_blit(load: proc) = if not GLAD_GL_NV_framebuffer_blit: return - + glBlitFramebufferNV = cast[proc (srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {.stdcall.}](load("glBlitFramebufferNV")) proc load_GL_NV_framebuffer_mixed_samples(load: proc) = if not GLAD_GL_NV_framebuffer_mixed_samples: return - - - - + glRasterSamplesEXT = cast[proc (samples: GLuint, fixedsamplelocations: GLboolean) {.stdcall.}](load("glRasterSamplesEXT")) + glCoverageModulationTableNV = cast[proc (n: GLsizei, v: ptr GLfloat) {.stdcall.}](load("glCoverageModulationTableNV")) + glGetCoverageModulationTableNV = cast[proc (bufSize: GLsizei, v: ptr GLfloat) {.stdcall.}](load("glGetCoverageModulationTableNV")) + glCoverageModulationNV = cast[proc (components: GLenum) {.stdcall.}](load("glCoverageModulationNV")) proc load_GL_NV_framebuffer_multisample(load: proc) = if not GLAD_GL_NV_framebuffer_multisample: return - + glRenderbufferStorageMultisampleNV = cast[proc (target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {.stdcall.}](load("glRenderbufferStorageMultisampleNV")) proc load_GL_NV_gpu_shader5(load: proc) = if not GLAD_GL_NV_gpu_shader5: return - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + glUniform1i64NV = cast[proc (location: GLint, x: GLint64EXT) {.stdcall.}](load("glUniform1i64NV")) + glUniform2i64NV = cast[proc (location: GLint, x: GLint64EXT, y: GLint64EXT) {.stdcall.}](load("glUniform2i64NV")) + glUniform3i64NV = cast[proc (location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT) {.stdcall.}](load("glUniform3i64NV")) + glUniform4i64NV = cast[proc (location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT, w: GLint64EXT) {.stdcall.}](load("glUniform4i64NV")) + glUniform1i64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.}](load("glUniform1i64vNV")) + glUniform2i64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.}](load("glUniform2i64vNV")) + glUniform3i64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.}](load("glUniform3i64vNV")) + glUniform4i64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.}](load("glUniform4i64vNV")) + glUniform1ui64NV = cast[proc (location: GLint, x: GLuint64EXT) {.stdcall.}](load("glUniform1ui64NV")) + glUniform2ui64NV = cast[proc (location: GLint, x: GLuint64EXT, y: GLuint64EXT) {.stdcall.}](load("glUniform2ui64NV")) + glUniform3ui64NV = cast[proc (location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT) {.stdcall.}](load("glUniform3ui64NV")) + glUniform4ui64NV = cast[proc (location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT, w: GLuint64EXT) {.stdcall.}](load("glUniform4ui64NV")) + glUniform1ui64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.}](load("glUniform1ui64vNV")) + glUniform2ui64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.}](load("glUniform2ui64vNV")) + glUniform3ui64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.}](load("glUniform3ui64vNV")) + glUniform4ui64vNV = cast[proc (location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.}](load("glUniform4ui64vNV")) + glGetUniformi64vNV = cast[proc (program: GLuint, location: GLint, params: ptr GLint64EXT) {.stdcall.}](load("glGetUniformi64vNV")) + glProgramUniform1i64NV = cast[proc (program: GLuint, location: GLint, x: GLint64EXT) {.stdcall.}](load("glProgramUniform1i64NV")) + glProgramUniform2i64NV = cast[proc (program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT) {.stdcall.}](load("glProgramUniform2i64NV")) + glProgramUniform3i64NV = cast[proc (program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT) {.stdcall.}](load("glProgramUniform3i64NV")) + glProgramUniform4i64NV = cast[proc (program: GLuint, location: GLint, x: GLint64EXT, y: GLint64EXT, z: GLint64EXT, w: GLint64EXT) {.stdcall.}](load("glProgramUniform4i64NV")) + glProgramUniform1i64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.}](load("glProgramUniform1i64vNV")) + glProgramUniform2i64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.}](load("glProgramUniform2i64vNV")) + glProgramUniform3i64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.}](load("glProgramUniform3i64vNV")) + glProgramUniform4i64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLint64EXT) {.stdcall.}](load("glProgramUniform4i64vNV")) + glProgramUniform1ui64NV = cast[proc (program: GLuint, location: GLint, x: GLuint64EXT) {.stdcall.}](load("glProgramUniform1ui64NV")) + glProgramUniform2ui64NV = cast[proc (program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT) {.stdcall.}](load("glProgramUniform2ui64NV")) + glProgramUniform3ui64NV = cast[proc (program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT) {.stdcall.}](load("glProgramUniform3ui64NV")) + glProgramUniform4ui64NV = cast[proc (program: GLuint, location: GLint, x: GLuint64EXT, y: GLuint64EXT, z: GLuint64EXT, w: GLuint64EXT) {.stdcall.}](load("glProgramUniform4ui64NV")) + glProgramUniform1ui64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.}](load("glProgramUniform1ui64vNV")) + glProgramUniform2ui64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.}](load("glProgramUniform2ui64vNV")) + glProgramUniform3ui64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.}](load("glProgramUniform3ui64vNV")) + glProgramUniform4ui64vNV = cast[proc (program: GLuint, location: GLint, count: GLsizei, value: ptr GLuint64EXT) {.stdcall.}](load("glProgramUniform4ui64vNV")) proc load_GL_NV_instanced_arrays(load: proc) = if not GLAD_GL_NV_instanced_arrays: return - + glVertexAttribDivisorNV = cast[proc (index: GLuint, divisor: GLuint) {.stdcall.}](load("glVertexAttribDivisorNV")) proc load_GL_NV_internalformat_sample_query(load: proc) = if not GLAD_GL_NV_internalformat_sample_query: return - + glGetInternalformatSampleivNV = cast[proc (target: GLenum, internalformat: GLenum, samples: GLsizei, pname: GLenum, count: GLsizei, params: ptr GLint) {.stdcall.}](load("glGetInternalformatSampleivNV")) proc load_GL_NV_memory_attachment(load: proc) = if not GLAD_GL_NV_memory_attachment: return - - - - - - + glGetMemoryObjectDetachedResourcesuivNV = cast[proc (memory: GLuint, pname: GLenum, first: GLint, count: GLsizei, params: ptr GLuint) {.stdcall.}](load("glGetMemoryObjectDetachedResourcesuivNV")) + glResetMemoryObjectParameterNV = cast[proc (memory: GLuint, pname: GLenum) {.stdcall.}](load("glResetMemoryObjectParameterNV")) + glTexAttachMemoryNV = cast[proc (target: GLenum, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTexAttachMemoryNV")) + glBufferAttachMemoryNV = cast[proc (target: GLenum, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glBufferAttachMemoryNV")) + glTextureAttachMemoryNV = cast[proc (texture: GLuint, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glTextureAttachMemoryNV")) + glNamedBufferAttachMemoryNV = cast[proc (buffer: GLuint, memory: GLuint, offset: GLuint64) {.stdcall.}](load("glNamedBufferAttachMemoryNV")) proc load_GL_NV_memory_object_sparse(load: proc) = if not GLAD_GL_NV_memory_object_sparse: return - - - - + glBufferPageCommitmentMemNV = cast[proc (target: GLenum, offset: GLintptr, size: GLsizeiptr, memory: GLuint, memOffset: GLuint64, commit: GLboolean) {.stdcall.}](load("glBufferPageCommitmentMemNV")) + glTexPageCommitmentMemNV = cast[proc (target: GLenum, layer: GLint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64, commit: GLboolean) {.stdcall.}](load("glTexPageCommitmentMemNV")) + glNamedBufferPageCommitmentMemNV = cast[proc (buffer: GLuint, offset: GLintptr, size: GLsizeiptr, memory: GLuint, memOffset: GLuint64, commit: GLboolean) {.stdcall.}](load("glNamedBufferPageCommitmentMemNV")) + glTexturePageCommitmentMemNV = cast[proc (texture: GLuint, layer: GLint, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, memory: GLuint, offset: GLuint64, commit: GLboolean) {.stdcall.}](load("glTexturePageCommitmentMemNV")) proc load_GL_NV_mesh_shader(load: proc) = if not GLAD_GL_NV_mesh_shader: return - - - - + glDrawMeshTasksNV = cast[proc (first: GLuint, count: GLuint) {.stdcall.}](load("glDrawMeshTasksNV")) + glDrawMeshTasksIndirectNV = cast[proc (indirect: GLintptr) {.stdcall.}](load("glDrawMeshTasksIndirectNV")) + glMultiDrawMeshTasksIndirectNV = cast[proc (indirect: GLintptr, drawcount: GLsizei, stride: GLsizei) {.stdcall.}](load("glMultiDrawMeshTasksIndirectNV")) + glMultiDrawMeshTasksIndirectCountNV = cast[proc (indirect: GLintptr, drawcount: GLintptr, maxdrawcount: GLsizei, stride: GLsizei) {.stdcall.}](load("glMultiDrawMeshTasksIndirectCountNV")) proc load_GL_NV_non_square_matrices(load: proc) = if not GLAD_GL_NV_non_square_matrices: return - - - - - - + glUniformMatrix2x3fvNV = cast[proc (location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glUniformMatrix2x3fvNV")) + glUniformMatrix3x2fvNV = cast[proc (location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glUniformMatrix3x2fvNV")) + glUniformMatrix2x4fvNV = cast[proc (location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glUniformMatrix2x4fvNV")) + glUniformMatrix4x2fvNV = cast[proc (location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glUniformMatrix4x2fvNV")) + glUniformMatrix3x4fvNV = cast[proc (location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glUniformMatrix3x4fvNV")) + glUniformMatrix4x3fvNV = cast[proc (location: GLint, count: GLsizei, transpose: GLboolean, value: ptr GLfloat) {.stdcall.}](load("glUniformMatrix4x3fvNV")) proc load_GL_NV_path_rendering(load: proc) = if not GLAD_GL_NV_path_rendering: return + glGenPathsNV = cast[proc (range: GLsizei): GLuint {.stdcall.}](load("glGenPathsNV")) + glDeletePathsNV = cast[proc (path: GLuint, range: GLsizei) {.stdcall.}](load("glDeletePathsNV")) + glIsPathNV = cast[proc (path: GLuint): GLboolean {.stdcall.}](load("glIsPathNV")) + glPathCommandsNV = cast[proc (path: GLuint, numCommands: GLsizei, commands: ptr GLubyte, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall.}](load("glPathCommandsNV")) + glPathCoordsNV = cast[proc (path: GLuint, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall.}](load("glPathCoordsNV")) + glPathSubCommandsNV = cast[proc (path: GLuint, commandStart: GLsizei, commandsToDelete: GLsizei, numCommands: GLsizei, commands: ptr GLubyte, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall.}](load("glPathSubCommandsNV")) + glPathSubCoordsNV = cast[proc (path: GLuint, coordStart: GLsizei, numCoords: GLsizei, coordType: GLenum, coords: pointer) {.stdcall.}](load("glPathSubCoordsNV")) + glPathStringNV = cast[proc (path: GLuint, format: GLenum, length: GLsizei, pathString: pointer) {.stdcall.}](load("glPathStringNV")) + glPathGlyphsNV = cast[proc (firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, numGlyphs: GLsizei, `type`: GLenum, charcodes: pointer, handleMissingGlyphs: GLenum, pathParameterTemplate: GLuint, emScale: GLfloat) {.stdcall.}](load("glPathGlyphsNV")) + glPathGlyphRangeNV = cast[proc (firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, firstGlyph: GLuint, numGlyphs: GLsizei, handleMissingGlyphs: GLenum, pathParameterTemplate: GLuint, emScale: GLfloat) {.stdcall.}](load("glPathGlyphRangeNV")) + glWeightPathsNV = cast[proc (resultPath: GLuint, numPaths: GLsizei, paths: ptr GLuint, weights: ptr GLfloat) {.stdcall.}](load("glWeightPathsNV")) + glCopyPathNV = cast[proc (resultPath: GLuint, srcPath: GLuint) {.stdcall.}](load("glCopyPathNV")) + glInterpolatePathsNV = cast[proc (resultPath: GLuint, pathA: GLuint, pathB: GLuint, weight: GLfloat) {.stdcall.}](load("glInterpolatePathsNV")) + glTransformPathNV = cast[proc (resultPath: GLuint, srcPath: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.}](load("glTransformPathNV")) + glPathParameterivNV = cast[proc (path: GLuint, pname: GLenum, value: ptr GLint) {.stdcall.}](load("glPathParameterivNV")) + glPathParameteriNV = cast[proc (path: GLuint, pname: GLenum, value: GLint) {.stdcall.}](load("glPathParameteriNV")) + glPathParameterfvNV = cast[proc (path: GLuint, pname: GLenum, value: ptr GLfloat) {.stdcall.}](load("glPathParameterfvNV")) + glPathParameterfNV = cast[proc (path: GLuint, pname: GLenum, value: GLfloat) {.stdcall.}](load("glPathParameterfNV")) + glPathDashArrayNV = cast[proc (path: GLuint, dashCount: GLsizei, dashArray: ptr GLfloat) {.stdcall.}](load("glPathDashArrayNV")) + glPathStencilFuncNV = cast[proc (`func`: GLenum, `ref`: GLint, mask: GLuint) {.stdcall.}](load("glPathStencilFuncNV")) + glPathStencilDepthOffsetNV = cast[proc (factor: GLfloat, units: GLfloat) {.stdcall.}](load("glPathStencilDepthOffsetNV")) + glStencilFillPathNV = cast[proc (path: GLuint, fillMode: GLenum, mask: GLuint) {.stdcall.}](load("glStencilFillPathNV")) + glStencilStrokePathNV = cast[proc (path: GLuint, reference: GLint, mask: GLuint) {.stdcall.}](load("glStencilStrokePathNV")) + glStencilFillPathInstancedNV = cast[proc (numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, fillMode: GLenum, mask: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.}](load("glStencilFillPathInstancedNV")) + glStencilStrokePathInstancedNV = cast[proc (numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, reference: GLint, mask: GLuint, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.}](load("glStencilStrokePathInstancedNV")) + glPathCoverDepthFuncNV = cast[proc (`func`: GLenum) {.stdcall.}](load("glPathCoverDepthFuncNV")) + glCoverFillPathNV = cast[proc (path: GLuint, coverMode: GLenum) {.stdcall.}](load("glCoverFillPathNV")) + glCoverStrokePathNV = cast[proc (path: GLuint, coverMode: GLenum) {.stdcall.}](load("glCoverStrokePathNV")) + glCoverFillPathInstancedNV = cast[proc (numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.}](load("glCoverFillPathInstancedNV")) + glCoverStrokePathInstancedNV = cast[proc (numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.}](load("glCoverStrokePathInstancedNV")) + glGetPathParameterivNV = cast[proc (path: GLuint, pname: GLenum, value: ptr GLint) {.stdcall.}](load("glGetPathParameterivNV")) + glGetPathParameterfvNV = cast[proc (path: GLuint, pname: GLenum, value: ptr GLfloat) {.stdcall.}](load("glGetPathParameterfvNV")) + glGetPathCommandsNV = cast[proc (path: GLuint, commands: ptr GLubyte) {.stdcall.}](load("glGetPathCommandsNV")) + glGetPathCoordsNV = cast[proc (path: GLuint, coords: ptr GLfloat) {.stdcall.}](load("glGetPathCoordsNV")) + glGetPathDashArrayNV = cast[proc (path: GLuint, dashArray: ptr GLfloat) {.stdcall.}](load("glGetPathDashArrayNV")) + glGetPathMetricsNV = cast[proc (metricQueryMask: GLbitfield, numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, stride: GLsizei, metrics: ptr GLfloat) {.stdcall.}](load("glGetPathMetricsNV")) + glGetPathMetricRangeNV = cast[proc (metricQueryMask: GLbitfield, firstPathName: GLuint, numPaths: GLsizei, stride: GLsizei, metrics: ptr GLfloat) {.stdcall.}](load("glGetPathMetricRangeNV")) + glGetPathSpacingNV = cast[proc (pathListMode: GLenum, numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, advanceScale: GLfloat, kerningScale: GLfloat, transformType: GLenum, returnedSpacing: ptr GLfloat) {.stdcall.}](load("glGetPathSpacingNV")) + glIsPointInFillPathNV = cast[proc (path: GLuint, mask: GLuint, x: GLfloat, y: GLfloat): GLboolean {.stdcall.}](load("glIsPointInFillPathNV")) + glIsPointInStrokePathNV = cast[proc (path: GLuint, x: GLfloat, y: GLfloat): GLboolean {.stdcall.}](load("glIsPointInStrokePathNV")) + glGetPathLengthNV = cast[proc (path: GLuint, startSegment: GLsizei, numSegments: GLsizei): GLfloat {.stdcall.}](load("glGetPathLengthNV")) + glPointAlongPathNV = cast[proc (path: GLuint, startSegment: GLsizei, numSegments: GLsizei, distance: GLfloat, x: ptr GLfloat, y: ptr GLfloat, tangentX: ptr GLfloat, tangentY: ptr GLfloat): GLboolean {.stdcall.}](load("glPointAlongPathNV")) + glMatrixLoad3x2fNV = cast[proc (matrixMode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixLoad3x2fNV")) + glMatrixLoad3x3fNV = cast[proc (matrixMode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixLoad3x3fNV")) + glMatrixLoadTranspose3x3fNV = cast[proc (matrixMode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixLoadTranspose3x3fNV")) + glMatrixMult3x2fNV = cast[proc (matrixMode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixMult3x2fNV")) + glMatrixMult3x3fNV = cast[proc (matrixMode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixMult3x3fNV")) + glMatrixMultTranspose3x3fNV = cast[proc (matrixMode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixMultTranspose3x3fNV")) + glStencilThenCoverFillPathNV = cast[proc (path: GLuint, fillMode: GLenum, mask: GLuint, coverMode: GLenum) {.stdcall.}](load("glStencilThenCoverFillPathNV")) + glStencilThenCoverStrokePathNV = cast[proc (path: GLuint, reference: GLint, mask: GLuint, coverMode: GLenum) {.stdcall.}](load("glStencilThenCoverStrokePathNV")) + glStencilThenCoverFillPathInstancedNV = cast[proc (numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, fillMode: GLenum, mask: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.}](load("glStencilThenCoverFillPathInstancedNV")) + glStencilThenCoverStrokePathInstancedNV = cast[proc (numPaths: GLsizei, pathNameType: GLenum, paths: pointer, pathBase: GLuint, reference: GLint, mask: GLuint, coverMode: GLenum, transformType: GLenum, transformValues: ptr GLfloat) {.stdcall.}](load("glStencilThenCoverStrokePathInstancedNV")) + glPathGlyphIndexRangeNV = cast[proc (fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, pathParameterTemplate: GLuint, emScale: GLfloat, baseAndCount: ptr GLuint): GLenum {.stdcall.}](load("glPathGlyphIndexRangeNV")) + glPathGlyphIndexArrayNV = cast[proc (firstPathName: GLuint, fontTarget: GLenum, fontName: pointer, fontStyle: GLbitfield, firstGlyphIndex: GLuint, numGlyphs: GLsizei, pathParameterTemplate: GLuint, emScale: GLfloat): GLenum {.stdcall.}](load("glPathGlyphIndexArrayNV")) + glPathMemoryGlyphIndexArrayNV = cast[proc (firstPathName: GLuint, fontTarget: GLenum, fontSize: GLsizeiptr, fontData: pointer, faceIndex: GLsizei, firstGlyphIndex: GLuint, numGlyphs: GLsizei, pathParameterTemplate: GLuint, emScale: GLfloat): GLenum {.stdcall.}](load("glPathMemoryGlyphIndexArrayNV")) + glProgramPathFragmentInputGenNV = cast[proc (program: GLuint, location: GLint, genMode: GLenum, components: GLint, coeffs: ptr GLfloat) {.stdcall.}](load("glProgramPathFragmentInputGenNV")) + glGetProgramResourcefvNV = cast[proc (program: GLuint, programInterface: GLenum, index: GLuint, propCount: GLsizei, props: ptr GLenum, count: GLsizei, length: ptr GLsizei, params: ptr GLfloat) {.stdcall.}](load("glGetProgramResourcefvNV")) + glPathColorGenNV = cast[proc (color: GLenum, genMode: GLenum, colorFormat: GLenum, coeffs: ptr GLfloat) {.stdcall.}](load("glPathColorGenNV")) + glPathTexGenNV = cast[proc (texCoordSet: GLenum, genMode: GLenum, components: GLint, coeffs: ptr GLfloat) {.stdcall.}](load("glPathTexGenNV")) + glPathFogGenNV = cast[proc (genMode: GLenum) {.stdcall.}](load("glPathFogGenNV")) + glGetPathColorGenivNV = cast[proc (color: GLenum, pname: GLenum, value: ptr GLint) {.stdcall.}](load("glGetPathColorGenivNV")) + glGetPathColorGenfvNV = cast[proc (color: GLenum, pname: GLenum, value: ptr GLfloat) {.stdcall.}](load("glGetPathColorGenfvNV")) + glGetPathTexGenivNV = cast[proc (texCoordSet: GLenum, pname: GLenum, value: ptr GLint) {.stdcall.}](load("glGetPathTexGenivNV")) + glGetPathTexGenfvNV = cast[proc (texCoordSet: GLenum, pname: GLenum, value: ptr GLfloat) {.stdcall.}](load("glGetPathTexGenfvNV")) + glMatrixFrustumEXT = cast[proc (mode: GLenum, left: GLdouble, right: GLdouble, bottom: GLdouble, top: GLdouble, zNear: GLdouble, zFar: GLdouble) {.stdcall.}](load("glMatrixFrustumEXT")) + glMatrixLoadIdentityEXT = cast[proc (mode: GLenum) {.stdcall.}](load("glMatrixLoadIdentityEXT")) + glMatrixLoadTransposefEXT = cast[proc (mode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixLoadTransposefEXT")) + glMatrixLoadTransposedEXT = cast[proc (mode: GLenum, m: ptr GLdouble) {.stdcall.}](load("glMatrixLoadTransposedEXT")) + glMatrixLoadfEXT = cast[proc (mode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixLoadfEXT")) + glMatrixLoaddEXT = cast[proc (mode: GLenum, m: ptr GLdouble) {.stdcall.}](load("glMatrixLoaddEXT")) + glMatrixMultTransposefEXT = cast[proc (mode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixMultTransposefEXT")) + glMatrixMultTransposedEXT = cast[proc (mode: GLenum, m: ptr GLdouble) {.stdcall.}](load("glMatrixMultTransposedEXT")) + glMatrixMultfEXT = cast[proc (mode: GLenum, m: ptr GLfloat) {.stdcall.}](load("glMatrixMultfEXT")) + glMatrixMultdEXT = cast[proc (mode: GLenum, m: ptr GLdouble) {.stdcall.}](load("glMatrixMultdEXT")) + glMatrixOrthoEXT = cast[proc (mode: GLenum, left: GLdouble, right: GLdouble, bottom: GLdouble, top: GLdouble, zNear: GLdouble, zFar: GLdouble) {.stdcall.}](load("glMatrixOrthoEXT")) + glMatrixPopEXT = cast[proc (mode: GLenum) {.stdcall.}](load("glMatrixPopEXT")) + glMatrixPushEXT = cast[proc (mode: GLenum) {.stdcall.}](load("glMatrixPushEXT")) + glMatrixRotatefEXT = cast[proc (mode: GLenum, angle: GLfloat, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall.}](load("glMatrixRotatefEXT")) + glMatrixRotatedEXT = cast[proc (mode: GLenum, angle: GLdouble, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall.}](load("glMatrixRotatedEXT")) + glMatrixScalefEXT = cast[proc (mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall.}](load("glMatrixScalefEXT")) + glMatrixScaledEXT = cast[proc (mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall.}](load("glMatrixScaledEXT")) + glMatrixTranslatefEXT = cast[proc (mode: GLenum, x: GLfloat, y: GLfloat, z: GLfloat) {.stdcall.}](load("glMatrixTranslatefEXT")) + glMatrixTranslatedEXT = cast[proc (mode: GLenum, x: GLdouble, y: GLdouble, z: GLdouble) {.stdcall.}](load("glMatrixTranslatedEXT")) proc load_GL_NV_polygon_mode(load: proc) = if not GLAD_GL_NV_polygon_mode: return - + glPolygonModeNV = cast[proc (face: GLenum, mode: GLenum) {.stdcall.}](load("glPolygonModeNV")) proc load_GL_NV_read_buffer(load: proc) = if not GLAD_GL_NV_read_buffer: return - + glReadBufferNV = cast[proc (mode: GLenum) {.stdcall.}](load("glReadBufferNV")) proc load_GL_NV_sample_locations(load: proc) = if not GLAD_GL_NV_sample_locations: return - - - + glFramebufferSampleLocationsfvNV = cast[proc (target: GLenum, start: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.}](load("glFramebufferSampleLocationsfvNV")) + glNamedFramebufferSampleLocationsfvNV = cast[proc (framebuffer: GLuint, start: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.}](load("glNamedFramebufferSampleLocationsfvNV")) + glResolveDepthValuesNV = cast[proc () {.stdcall.}](load("glResolveDepthValuesNV")) proc load_GL_NV_scissor_exclusive(load: proc) = if not GLAD_GL_NV_scissor_exclusive: return - - + glScissorExclusiveNV = cast[proc (x: GLint, y: GLint, width: GLsizei, height: GLsizei) {.stdcall.}](load("glScissorExclusiveNV")) + glScissorExclusiveArrayvNV = cast[proc (first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall.}](load("glScissorExclusiveArrayvNV")) proc load_GL_NV_shading_rate_image(load: proc) = if not GLAD_GL_NV_shading_rate_image: return + glBindShadingRateImageNV = cast[proc (texture: GLuint) {.stdcall.}](load("glBindShadingRateImageNV")) + glGetShadingRateImagePaletteNV = cast[proc (viewport: GLuint, entry: GLuint, rate: ptr GLenum) {.stdcall.}](load("glGetShadingRateImagePaletteNV")) + glGetShadingRateSampleLocationivNV = cast[proc (rate: GLenum, samples: GLuint, index: GLuint, location: ptr GLint) {.stdcall.}](load("glGetShadingRateSampleLocationivNV")) + glShadingRateImageBarrierNV = cast[proc (synchronize: GLboolean) {.stdcall.}](load("glShadingRateImageBarrierNV")) + glShadingRateImagePaletteNV = cast[proc (viewport: GLuint, first: GLuint, count: GLsizei, rates: ptr GLenum) {.stdcall.}](load("glShadingRateImagePaletteNV")) + glShadingRateSampleOrderNV = cast[proc (order: GLenum) {.stdcall.}](load("glShadingRateSampleOrderNV")) + glShadingRateSampleOrderCustomNV = cast[proc (rate: GLenum, samples: GLuint, locations: ptr GLint) {.stdcall.}](load("glShadingRateSampleOrderCustomNV")) - - - - - +proc load_GL_NV_texture_barrier(load: proc) = + if not GLAD_GL_NV_texture_barrier: return + glTextureBarrierNV = cast[proc () {.stdcall.}](load("glTextureBarrierNV")) proc load_GL_NV_timeline_semaphore(load: proc) = if not GLAD_GL_NV_timeline_semaphore: return - - - + glCreateSemaphoresNV = cast[proc (n: GLsizei, semaphores: ptr GLuint) {.stdcall.}](load("glCreateSemaphoresNV")) + glSemaphoreParameterivNV = cast[proc (semaphore: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glSemaphoreParameterivNV")) + glGetSemaphoreParameterivNV = cast[proc (semaphore: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetSemaphoreParameterivNV")) proc load_GL_NV_viewport_array(load: proc) = if not GLAD_GL_NV_viewport_array: return - - - - - - - - - - - - + glViewportArrayvNV = cast[proc (first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.}](load("glViewportArrayvNV")) + glViewportIndexedfNV = cast[proc (index: GLuint, x: GLfloat, y: GLfloat, w: GLfloat, h: GLfloat) {.stdcall.}](load("glViewportIndexedfNV")) + glViewportIndexedfvNV = cast[proc (index: GLuint, v: ptr GLfloat) {.stdcall.}](load("glViewportIndexedfvNV")) + glScissorArrayvNV = cast[proc (first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall.}](load("glScissorArrayvNV")) + glScissorIndexedNV = cast[proc (index: GLuint, left: GLint, bottom: GLint, width: GLsizei, height: GLsizei) {.stdcall.}](load("glScissorIndexedNV")) + glScissorIndexedvNV = cast[proc (index: GLuint, v: ptr GLint) {.stdcall.}](load("glScissorIndexedvNV")) + glDepthRangeArrayfvNV = cast[proc (first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.}](load("glDepthRangeArrayfvNV")) + glDepthRangeIndexedfNV = cast[proc (index: GLuint, n: GLfloat, f: GLfloat) {.stdcall.}](load("glDepthRangeIndexedfNV")) + glGetFloati_vNV = cast[proc (target: GLenum, index: GLuint, data: ptr GLfloat) {.stdcall.}](load("glGetFloati_vNV")) + glEnableiNV = cast[proc (target: GLenum, index: GLuint) {.stdcall.}](load("glEnableiNV")) + glDisableiNV = cast[proc (target: GLenum, index: GLuint) {.stdcall.}](load("glDisableiNV")) + glIsEnablediNV = cast[proc (target: GLenum, index: GLuint): GLboolean {.stdcall.}](load("glIsEnablediNV")) proc load_GL_NV_viewport_swizzle(load: proc) = if not GLAD_GL_NV_viewport_swizzle: return - + glViewportSwizzleNV = cast[proc (index: GLuint, swizzlex: GLenum, swizzley: GLenum, swizzlez: GLenum, swizzlew: GLenum) {.stdcall.}](load("glViewportSwizzleNV")) proc load_GL_OES_EGL_image(load: proc) = if not GLAD_GL_OES_EGL_image: return - - + glEGLImageTargetTexture2DOES = cast[proc (target: GLenum, image: GLeglImageOES) {.stdcall.}](load("glEGLImageTargetTexture2DOES")) + glEGLImageTargetRenderbufferStorageOES = cast[proc (target: GLenum, image: GLeglImageOES) {.stdcall.}](load("glEGLImageTargetRenderbufferStorageOES")) proc load_GL_OES_copy_image(load: proc) = if not GLAD_GL_OES_copy_image: return - + glCopyImageSubDataOES = cast[proc (srcName: GLuint, srcTarget: GLenum, srcLevel: GLint, srcX: GLint, srcY: GLint, srcZ: GLint, dstName: GLuint, dstTarget: GLenum, dstLevel: GLint, dstX: GLint, dstY: GLint, dstZ: GLint, srcWidth: GLsizei, srcHeight: GLsizei, srcDepth: GLsizei) {.stdcall.}](load("glCopyImageSubDataOES")) proc load_GL_OES_draw_buffers_indexed(load: proc) = if not GLAD_GL_OES_draw_buffers_indexed: return - - - - - - - - + glEnableiOES = cast[proc (target: GLenum, index: GLuint) {.stdcall.}](load("glEnableiOES")) + glDisableiOES = cast[proc (target: GLenum, index: GLuint) {.stdcall.}](load("glDisableiOES")) + glBlendEquationiOES = cast[proc (buf: GLuint, mode: GLenum) {.stdcall.}](load("glBlendEquationiOES")) + glBlendEquationSeparateiOES = cast[proc (buf: GLuint, modeRGB: GLenum, modeAlpha: GLenum) {.stdcall.}](load("glBlendEquationSeparateiOES")) + glBlendFunciOES = cast[proc (buf: GLuint, src: GLenum, dst: GLenum) {.stdcall.}](load("glBlendFunciOES")) + glBlendFuncSeparateiOES = cast[proc (buf: GLuint, srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) {.stdcall.}](load("glBlendFuncSeparateiOES")) + glColorMaskiOES = cast[proc (index: GLuint, r: GLboolean, g: GLboolean, b: GLboolean, a: GLboolean) {.stdcall.}](load("glColorMaskiOES")) + glIsEnablediOES = cast[proc (target: GLenum, index: GLuint): GLboolean {.stdcall.}](load("glIsEnablediOES")) proc load_GL_OES_draw_elements_base_vertex(load: proc) = if not GLAD_GL_OES_draw_elements_base_vertex: return - - - - + glDrawElementsBaseVertexOES = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall.}](load("glDrawElementsBaseVertexOES")) + glDrawRangeElementsBaseVertexOES = cast[proc (mode: GLenum, start: GLuint, `end`: GLuint, count: GLsizei, `type`: GLenum, indices: pointer, basevertex: GLint) {.stdcall.}](load("glDrawRangeElementsBaseVertexOES")) + glDrawElementsInstancedBaseVertexOES = cast[proc (mode: GLenum, count: GLsizei, `type`: GLenum, indices: pointer, instancecount: GLsizei, basevertex: GLint) {.stdcall.}](load("glDrawElementsInstancedBaseVertexOES")) + glMultiDrawElementsBaseVertexEXT = cast[proc (mode: GLenum, count: ptr GLsizei, `type`: GLenum, indices: ptr pointer, drawcount: GLsizei, basevertex: ptr GLint) {.stdcall.}](load("glMultiDrawElementsBaseVertexEXT")) proc load_GL_OES_geometry_shader(load: proc) = if not GLAD_GL_OES_geometry_shader: return - + glFramebufferTextureOES = cast[proc (target: GLenum, attachment: GLenum, texture: GLuint, level: GLint) {.stdcall.}](load("glFramebufferTextureOES")) proc load_GL_OES_get_program_binary(load: proc) = if not GLAD_GL_OES_get_program_binary: return - - + glGetProgramBinaryOES = cast[proc (program: GLuint, bufSize: GLsizei, length: ptr GLsizei, binaryFormat: ptr GLenum, binary: pointer) {.stdcall.}](load("glGetProgramBinaryOES")) + glProgramBinaryOES = cast[proc (program: GLuint, binaryFormat: GLenum, binary: pointer, length: GLint) {.stdcall.}](load("glProgramBinaryOES")) proc load_GL_OES_mapbuffer(load: proc) = if not GLAD_GL_OES_mapbuffer: return - - - + glMapBufferOES = cast[proc (target: GLenum, access: GLenum): pointer {.stdcall.}](load("glMapBufferOES")) + glUnmapBufferOES = cast[proc (target: GLenum): GLboolean {.stdcall.}](load("glUnmapBufferOES")) + glGetBufferPointervOES = cast[proc (target: GLenum, pname: GLenum, params: ptr pointer) {.stdcall.}](load("glGetBufferPointervOES")) proc load_GL_OES_primitive_bounding_box(load: proc) = if not GLAD_GL_OES_primitive_bounding_box: return - + glPrimitiveBoundingBoxOES = cast[proc (minX: GLfloat, minY: GLfloat, minZ: GLfloat, minW: GLfloat, maxX: GLfloat, maxY: GLfloat, maxZ: GLfloat, maxW: GLfloat) {.stdcall.}](load("glPrimitiveBoundingBoxOES")) proc load_GL_OES_sample_shading(load: proc) = if not GLAD_GL_OES_sample_shading: return - + glMinSampleShadingOES = cast[proc (value: GLfloat) {.stdcall.}](load("glMinSampleShadingOES")) proc load_GL_OES_tessellation_shader(load: proc) = if not GLAD_GL_OES_tessellation_shader: return - + glPatchParameteriOES = cast[proc (pname: GLenum, value: GLint) {.stdcall.}](load("glPatchParameteriOES")) proc load_GL_OES_texture_3D(load: proc) = if not GLAD_GL_OES_texture_3D: return - - - - - - + glTexImage3DOES = cast[proc (target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, `type`: GLenum, pixels: pointer) {.stdcall.}](load("glTexImage3DOES")) + glTexSubImage3DOES = cast[proc (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, pixels: pointer) {.stdcall.}](load("glTexSubImage3DOES")) + glCopyTexSubImage3DOES = cast[proc (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {.stdcall.}](load("glCopyTexSubImage3DOES")) + glCompressedTexImage3DOES = cast[proc (target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, data: pointer) {.stdcall.}](load("glCompressedTexImage3DOES")) + glCompressedTexSubImage3DOES = cast[proc (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, data: pointer) {.stdcall.}](load("glCompressedTexSubImage3DOES")) + glFramebufferTexture3DOES = cast[proc (target: GLenum, attachment: GLenum, textarget: GLenum, texture: GLuint, level: GLint, zoffset: GLint) {.stdcall.}](load("glFramebufferTexture3DOES")) proc load_GL_OES_texture_border_clamp(load: proc) = if not GLAD_GL_OES_texture_border_clamp: return - - - - - - - - + glTexParameterIivOES = cast[proc (target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glTexParameterIivOES")) + glTexParameterIuivOES = cast[proc (target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall.}](load("glTexParameterIuivOES")) + glGetTexParameterIivOES = cast[proc (target: GLenum, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetTexParameterIivOES")) + glGetTexParameterIuivOES = cast[proc (target: GLenum, pname: GLenum, params: ptr GLuint) {.stdcall.}](load("glGetTexParameterIuivOES")) + glSamplerParameterIivOES = cast[proc (sampler: GLuint, pname: GLenum, param: ptr GLint) {.stdcall.}](load("glSamplerParameterIivOES")) + glSamplerParameterIuivOES = cast[proc (sampler: GLuint, pname: GLenum, param: ptr GLuint) {.stdcall.}](load("glSamplerParameterIuivOES")) + glGetSamplerParameterIivOES = cast[proc (sampler: GLuint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glGetSamplerParameterIivOES")) + glGetSamplerParameterIuivOES = cast[proc (sampler: GLuint, pname: GLenum, params: ptr GLuint) {.stdcall.}](load("glGetSamplerParameterIuivOES")) proc load_GL_OES_texture_buffer(load: proc) = if not GLAD_GL_OES_texture_buffer: return - - + glTexBufferOES = cast[proc (target: GLenum, internalformat: GLenum, buffer: GLuint) {.stdcall.}](load("glTexBufferOES")) + glTexBufferRangeOES = cast[proc (target: GLenum, internalformat: GLenum, buffer: GLuint, offset: GLintptr, size: GLsizeiptr) {.stdcall.}](load("glTexBufferRangeOES")) proc load_GL_OES_texture_storage_multisample_2d_array(load: proc) = if not GLAD_GL_OES_texture_storage_multisample_2d_array: return - + glTexStorage3DMultisampleOES = cast[proc (target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, fixedsamplelocations: GLboolean) {.stdcall.}](load("glTexStorage3DMultisampleOES")) proc load_GL_OES_texture_view(load: proc) = if not GLAD_GL_OES_texture_view: return - + glTextureViewOES = cast[proc (texture: GLuint, target: GLenum, origtexture: GLuint, internalformat: GLenum, minlevel: GLuint, numlevels: GLuint, minlayer: GLuint, numlayers: GLuint) {.stdcall.}](load("glTextureViewOES")) proc load_GL_OES_vertex_array_object(load: proc) = if not GLAD_GL_OES_vertex_array_object: return - - - - + glBindVertexArrayOES = cast[proc (array: GLuint) {.stdcall.}](load("glBindVertexArrayOES")) + glDeleteVertexArraysOES = cast[proc (n: GLsizei, arrays: ptr GLuint) {.stdcall.}](load("glDeleteVertexArraysOES")) + glGenVertexArraysOES = cast[proc (n: GLsizei, arrays: ptr GLuint) {.stdcall.}](load("glGenVertexArraysOES")) + glIsVertexArrayOES = cast[proc (array: GLuint): GLboolean {.stdcall.}](load("glIsVertexArrayOES")) proc load_GL_OES_viewport_array(load: proc) = if not GLAD_GL_OES_viewport_array: return - - - - - - - - - - - - + glViewportArrayvOES = cast[proc (first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.}](load("glViewportArrayvOES")) + glViewportIndexedfOES = cast[proc (index: GLuint, x: GLfloat, y: GLfloat, w: GLfloat, h: GLfloat) {.stdcall.}](load("glViewportIndexedfOES")) + glViewportIndexedfvOES = cast[proc (index: GLuint, v: ptr GLfloat) {.stdcall.}](load("glViewportIndexedfvOES")) + glScissorArrayvOES = cast[proc (first: GLuint, count: GLsizei, v: ptr GLint) {.stdcall.}](load("glScissorArrayvOES")) + glScissorIndexedOES = cast[proc (index: GLuint, left: GLint, bottom: GLint, width: GLsizei, height: GLsizei) {.stdcall.}](load("glScissorIndexedOES")) + glScissorIndexedvOES = cast[proc (index: GLuint, v: ptr GLint) {.stdcall.}](load("glScissorIndexedvOES")) + glDepthRangeArrayfvOES = cast[proc (first: GLuint, count: GLsizei, v: ptr GLfloat) {.stdcall.}](load("glDepthRangeArrayfvOES")) + glDepthRangeIndexedfOES = cast[proc (index: GLuint, n: GLfloat, f: GLfloat) {.stdcall.}](load("glDepthRangeIndexedfOES")) + glGetFloati_vOES = cast[proc (target: GLenum, index: GLuint, data: ptr GLfloat) {.stdcall.}](load("glGetFloati_vOES")) + glEnableiOES = cast[proc (target: GLenum, index: GLuint) {.stdcall.}](load("glEnableiOES")) + glDisableiOES = cast[proc (target: GLenum, index: GLuint) {.stdcall.}](load("glDisableiOES")) + glIsEnablediOES = cast[proc (target: GLenum, index: GLuint): GLboolean {.stdcall.}](load("glIsEnablediOES")) proc load_GL_OVR_multiview(load: proc) = if not GLAD_GL_OVR_multiview: return - - + glFramebufferTextureMultiviewOVR = cast[proc (target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, baseViewIndex: GLint, numViews: GLsizei) {.stdcall.}](load("glFramebufferTextureMultiviewOVR")) + glNamedFramebufferTextureMultiviewOVR = cast[proc (framebuffer: GLuint, attachment: GLenum, texture: GLuint, level: GLint, baseViewIndex: GLint, numViews: GLsizei) {.stdcall.}](load("glNamedFramebufferTextureMultiviewOVR")) proc load_GL_OVR_multiview_multisampled_render_to_texture(load: proc) = if not GLAD_GL_OVR_multiview_multisampled_render_to_texture: return - + glFramebufferTextureMultisampleMultiviewOVR = cast[proc (target: GLenum, attachment: GLenum, texture: GLuint, level: GLint, samples: GLsizei, baseViewIndex: GLint, numViews: GLsizei) {.stdcall.}](load("glFramebufferTextureMultisampleMultiviewOVR")) proc load_GL_QCOM_alpha_test(load: proc) = if not GLAD_GL_QCOM_alpha_test: return - + glAlphaFuncQCOM = cast[proc (`func`: GLenum, `ref`: GLclampf) {.stdcall.}](load("glAlphaFuncQCOM")) proc load_GL_QCOM_driver_control(load: proc) = if not GLAD_GL_QCOM_driver_control: return - - - - + glGetDriverControlsQCOM = cast[proc (num: ptr GLint, size: GLsizei, driverControls: ptr GLuint) {.stdcall.}](load("glGetDriverControlsQCOM")) + glGetDriverControlStringQCOM = cast[proc (driverControl: GLuint, bufSize: GLsizei, length: ptr GLsizei, driverControlString: cstring) {.stdcall.}](load("glGetDriverControlStringQCOM")) + glEnableDriverControlQCOM = cast[proc (driverControl: GLuint) {.stdcall.}](load("glEnableDriverControlQCOM")) + glDisableDriverControlQCOM = cast[proc (driverControl: GLuint) {.stdcall.}](load("glDisableDriverControlQCOM")) proc load_GL_QCOM_extended_get(load: proc) = if not GLAD_GL_QCOM_extended_get: return - - - - - - - - + glExtGetTexturesQCOM = cast[proc (textures: ptr GLuint, maxTextures: GLint, numTextures: ptr GLint) {.stdcall.}](load("glExtGetTexturesQCOM")) + glExtGetBuffersQCOM = cast[proc (buffers: ptr GLuint, maxBuffers: GLint, numBuffers: ptr GLint) {.stdcall.}](load("glExtGetBuffersQCOM")) + glExtGetRenderbuffersQCOM = cast[proc (renderbuffers: ptr GLuint, maxRenderbuffers: GLint, numRenderbuffers: ptr GLint) {.stdcall.}](load("glExtGetRenderbuffersQCOM")) + glExtGetFramebuffersQCOM = cast[proc (framebuffers: ptr GLuint, maxFramebuffers: GLint, numFramebuffers: ptr GLint) {.stdcall.}](load("glExtGetFramebuffersQCOM")) + glExtGetTexLevelParameterivQCOM = cast[proc (texture: GLuint, face: GLenum, level: GLint, pname: GLenum, params: ptr GLint) {.stdcall.}](load("glExtGetTexLevelParameterivQCOM")) + glExtTexObjectStateOverrideiQCOM = cast[proc (target: GLenum, pname: GLenum, param: GLint) {.stdcall.}](load("glExtTexObjectStateOverrideiQCOM")) + glExtGetTexSubImageQCOM = cast[proc (target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, `type`: GLenum, texels: pointer) {.stdcall.}](load("glExtGetTexSubImageQCOM")) + glExtGetBufferPointervQCOM = cast[proc (target: GLenum, params: ptr pointer) {.stdcall.}](load("glExtGetBufferPointervQCOM")) proc load_GL_QCOM_extended_get2(load: proc) = if not GLAD_GL_QCOM_extended_get2: return - - - - + glExtGetShadersQCOM = cast[proc (shaders: ptr GLuint, maxShaders: GLint, numShaders: ptr GLint) {.stdcall.}](load("glExtGetShadersQCOM")) + glExtGetProgramsQCOM = cast[proc (programs: ptr GLuint, maxPrograms: GLint, numPrograms: ptr GLint) {.stdcall.}](load("glExtGetProgramsQCOM")) + glExtIsProgramBinaryQCOM = cast[proc (program: GLuint): GLboolean {.stdcall.}](load("glExtIsProgramBinaryQCOM")) + glExtGetProgramBinarySourceQCOM = cast[proc (program: GLuint, shadertype: GLenum, source: cstring, length: ptr GLint) {.stdcall.}](load("glExtGetProgramBinarySourceQCOM")) proc load_GL_QCOM_frame_extrapolation(load: proc) = if not GLAD_GL_QCOM_frame_extrapolation: return - + glExtrapolateTex2DQCOM = cast[proc (src1: GLuint, src2: GLuint, output: GLuint, scaleFactor: GLfloat) {.stdcall.}](load("glExtrapolateTex2DQCOM")) proc load_GL_QCOM_framebuffer_foveated(load: proc) = if not GLAD_GL_QCOM_framebuffer_foveated: return - - + glFramebufferFoveationConfigQCOM = cast[proc (framebuffer: GLuint, numLayers: GLuint, focalPointsPerLayer: GLuint, requestedFeatures: GLuint, providedFeatures: ptr GLuint) {.stdcall.}](load("glFramebufferFoveationConfigQCOM")) + glFramebufferFoveationParametersQCOM = cast[proc (framebuffer: GLuint, layer: GLuint, focalPoint: GLuint, focalX: GLfloat, focalY: GLfloat, gainX: GLfloat, gainY: GLfloat, foveaArea: GLfloat) {.stdcall.}](load("glFramebufferFoveationParametersQCOM")) proc load_GL_QCOM_motion_estimation(load: proc) = if not GLAD_GL_QCOM_motion_estimation: return - - + glTexEstimateMotionQCOM = cast[proc (`ref`: GLuint, target: GLuint, output: GLuint) {.stdcall.}](load("glTexEstimateMotionQCOM")) + glTexEstimateMotionRegionsQCOM = cast[proc (`ref`: GLuint, target: GLuint, output: GLuint, mask: GLuint) {.stdcall.}](load("glTexEstimateMotionRegionsQCOM")) proc load_GL_QCOM_shader_framebuffer_fetch_noncoherent(load: proc) = if not GLAD_GL_QCOM_shader_framebuffer_fetch_noncoherent: return - + glFramebufferFetchBarrierQCOM = cast[proc () {.stdcall.}](load("glFramebufferFetchBarrierQCOM")) proc load_GL_QCOM_shading_rate(load: proc) = if not GLAD_GL_QCOM_shading_rate: return - + glShadingRateQCOM = cast[proc (rate: GLenum) {.stdcall.}](load("glShadingRateQCOM")) proc load_GL_QCOM_texture_foveated(load: proc) = if not GLAD_GL_QCOM_texture_foveated: return - + glTextureFoveationParametersQCOM = cast[proc (texture: GLuint, layer: GLuint, focalPoint: GLuint, focalX: GLfloat, focalY: GLfloat, gainX: GLfloat, gainY: GLfloat, foveaArea: GLfloat) {.stdcall.}](load("glTextureFoveationParametersQCOM")) proc load_GL_QCOM_tiled_rendering(load: proc) = if not GLAD_GL_QCOM_tiled_rendering: return - - + glStartTilingQCOM = cast[proc (x: GLuint, y: GLuint, width: GLuint, height: GLuint, preserveMask: GLbitfield) {.stdcall.}](load("glStartTilingQCOM")) + glEndTilingQCOM = cast[proc (preserveMask: GLbitfield) {.stdcall.}](load("glEndTilingQCOM")) proc findExtensionsGLES2() = @@ -5605,6 +5838,7 @@ proc findExtensionsGLES2() = GLAD_GL_NV_shadow_samplers_array = hasExt("GL_NV_shadow_samplers_array") GLAD_GL_NV_shadow_samplers_cube = hasExt("GL_NV_shadow_samplers_cube") GLAD_GL_NV_stereo_view_rendering = hasExt("GL_NV_stereo_view_rendering") + GLAD_GL_NV_texture_barrier = hasExt("GL_NV_texture_barrier") GLAD_GL_NV_texture_border_clamp = hasExt("GL_NV_texture_border_clamp") GLAD_GL_NV_texture_compression_s3tc_update = hasExt("GL_NV_texture_compression_s3tc_update") GLAD_GL_NV_texture_npot_2D_mipmap = hasExt("GL_NV_texture_npot_2D_mipmap") @@ -5717,12 +5951,14 @@ proc findCoreGLES2(glVersion: string) = GLAD_GL_ES_VERSION_3_2 = (major == 3 and minor >= 2) or major > 3 -proc gladLoadGLES2*(load: proc): bool = +proc gladLoadGLES2*(load: proc, override_version = ""): bool = if glGetString == nil: return false - var glVersion = cast[cstring](glGetString(GL_VERSION)) - if glVersion == nil: return false + var glVersion = if override_version != "": + override_version.cstring + else: + cast[cstring](glGetString(GL_VERSION)) findCoreGLES2($glVersion) diff --git a/src/platform/glfm_wrap.nim b/src/platform/glfm_wrap.nim index 068d9c3..fc207d7 100644 --- a/src/platform/glfm_wrap.nim +++ b/src/platform/glfm_wrap.nim @@ -219,6 +219,9 @@ proc make_window*(width, height: int32, title: string): Window = proc set_vsync*(window: Window, vsync: bool) = discard +type ProcAddress* = proc() {.cdecl.} +proc eglGetProcAddress*(procName: cstring): ProcAddress {.importc, discardable.} + var max_messages = 0 proc init_graphics*(engine: MyouEngine, width, height: int32, title: string, @@ -257,7 +260,7 @@ proc init_graphics*(engine: MyouEngine, width, height: int32, title: string, window.glfmSetSurfaceCreatedFunc proc(window: Window, w,h: cint) {.cdecl.} = # force resize window.screen = window.screen - if not gladLoadGLES2(nil): + if not gladLoadGLES2(eglGetProcAddress): echo "Could not initialize OpenGL" quit -1 window.screen.engine.renderer.initialize()