46# pragma warning(disable:4996)
48# define _USE_MATH_DEFINES
62# define GLFW3_CONFIGURATION "Debug"
67# define GLFW3_CONFIGURATION "Release"
71# define GLFW3_PLATFORM "x64"
73# define GLFW3_PLATFORM "Win32"
87# define GL_SILENCE_DEPRECATION
91#if defined(IMGUI_IMPL_OPENGL_ES2)
92# define GLFW_INCLUDE_ES2
93#elif defined(IMGUI_IMPL_OPENGL_ES3)
94# define GLFW_INCLUDE_ES3
96# define GLFW_INCLUDE_GLCOREARB
98#include <GLFW/glfw3.h>
102#if !defined(__GL_H__)
107#if !defined(GL3_PROTOTYPES) && !defined(GL_GLES_PROTOTYPES)
108extern PFNGLACTIVEPROGRAMEXTPROC glActiveProgramEXT;
109extern PFNGLACTIVESHADERPROGRAMPROC glActiveShaderProgram;
110extern PFNGLACTIVETEXTUREPROC glActiveTexture;
111extern PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC glApplyFramebufferAttachmentCMAAINTEL;
112extern PFNGLATTACHSHADERPROC glAttachShader;
113extern PFNGLBEGINCONDITIONALRENDERNVPROC glBeginConditionalRenderNV;
114extern PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender;
115extern PFNGLBEGINPERFMONITORAMDPROC glBeginPerfMonitorAMD;
116extern PFNGLBEGINPERFQUERYINTELPROC glBeginPerfQueryINTEL;
117extern PFNGLBEGINQUERYINDEXEDPROC glBeginQueryIndexed;
118extern PFNGLBEGINQUERYPROC glBeginQuery;
119extern PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
120extern PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
121extern PFNGLBINDBUFFERBASEPROC glBindBufferBase;
122extern PFNGLBINDBUFFERPROC glBindBuffer;
123extern PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
124extern PFNGLBINDBUFFERSBASEPROC glBindBuffersBase;
125extern PFNGLBINDBUFFERSRANGEPROC glBindBuffersRange;
126extern PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glBindFragDataLocationIndexed;
127extern PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation;
128extern PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
129extern PFNGLBINDIMAGETEXTUREPROC glBindImageTexture;
130extern PFNGLBINDIMAGETEXTURESPROC glBindImageTextures;
131extern PFNGLBINDMULTITEXTUREEXTPROC glBindMultiTextureEXT;
132extern PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline;
133extern PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
134extern PFNGLBINDSAMPLERPROC glBindSampler;
135extern PFNGLBINDSAMPLERSPROC glBindSamplers;
136extern PFNGLBINDTEXTUREPROC glBindTexture;
137extern PFNGLBINDTEXTURESPROC glBindTextures;
138extern PFNGLBINDTEXTUREUNITPROC glBindTextureUnit;
139extern PFNGLBINDTRANSFORMFEEDBACKPROC glBindTransformFeedback;
140extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
141extern PFNGLBINDVERTEXBUFFERPROC glBindVertexBuffer;
142extern PFNGLBINDVERTEXBUFFERSPROC glBindVertexBuffers;
143extern PFNGLBLENDBARRIERKHRPROC glBlendBarrierKHR;
144extern PFNGLBLENDBARRIERNVPROC glBlendBarrierNV;
145extern PFNGLBLENDCOLORPROC glBlendColor;
146extern PFNGLBLENDEQUATIONIARBPROC glBlendEquationiARB;
147extern PFNGLBLENDEQUATIONIPROC glBlendEquationi;
148extern PFNGLBLENDEQUATIONPROC glBlendEquation;
149extern PFNGLBLENDEQUATIONSEPARATEIARBPROC glBlendEquationSeparateiARB;
150extern PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
151extern PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
152extern PFNGLBLENDFUNCIARBPROC glBlendFunciARB;
153extern PFNGLBLENDFUNCIPROC glBlendFunci;
154extern PFNGLBLENDFUNCPROC glBlendFunc;
155extern PFNGLBLENDFUNCSEPARATEIARBPROC glBlendFuncSeparateiARB;
156extern PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
157extern PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
158extern PFNGLBLENDPARAMETERINVPROC glBlendParameteriNV;
159extern PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
160extern PFNGLBLITNAMEDFRAMEBUFFERPROC glBlitNamedFramebuffer;
161extern PFNGLBUFFERADDRESSRANGENVPROC glBufferAddressRangeNV;
162extern PFNGLBUFFERDATAPROC glBufferData;
163extern PFNGLBUFFERPAGECOMMITMENTARBPROC glBufferPageCommitmentARB;
164extern PFNGLBUFFERSTORAGEPROC glBufferStorage;
165extern PFNGLBUFFERSUBDATAPROC glBufferSubData;
166extern PFNGLCALLCOMMANDLISTNVPROC glCallCommandListNV;
167extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
168extern PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC glCheckNamedFramebufferStatusEXT;
169extern PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glCheckNamedFramebufferStatus;
170extern PFNGLCLAMPCOLORPROC glClampColor;
171extern PFNGLCLEARBUFFERDATAPROC glClearBufferData;
172extern PFNGLCLEARBUFFERFIPROC glClearBufferfi;
173extern PFNGLCLEARBUFFERFVPROC glClearBufferfv;
174extern PFNGLCLEARBUFFERIVPROC glClearBufferiv;
175extern PFNGLCLEARBUFFERSUBDATAPROC glClearBufferSubData;
176extern PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
177extern PFNGLCLEARCOLORPROC glClearColor;
178extern PFNGLCLEARDEPTHFPROC glClearDepthf;
179extern PFNGLCLEARDEPTHPROC glClearDepth;
180extern PFNGLCLEARNAMEDBUFFERDATAEXTPROC glClearNamedBufferDataEXT;
181extern PFNGLCLEARNAMEDBUFFERDATAPROC glClearNamedBufferData;
182extern PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC glClearNamedBufferSubDataEXT;
183extern PFNGLCLEARNAMEDBUFFERSUBDATAPROC glClearNamedBufferSubData;
184extern PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glClearNamedFramebufferfi;
185extern PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glClearNamedFramebufferfv;
186extern PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glClearNamedFramebufferiv;
187extern PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glClearNamedFramebufferuiv;
188extern PFNGLCLEARPROC glClear;
189extern PFNGLCLEARSTENCILPROC glClearStencil;
190extern PFNGLCLEARTEXIMAGEPROC glClearTexImage;
191extern PFNGLCLEARTEXSUBIMAGEPROC glClearTexSubImage;
192extern PFNGLCLIENTATTRIBDEFAULTEXTPROC glClientAttribDefaultEXT;
193extern PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
194extern PFNGLCLIPCONTROLPROC glClipControl;
195extern PFNGLCOLORFORMATNVPROC glColorFormatNV;
196extern PFNGLCOLORMASKIPROC glColorMaski;
197extern PFNGLCOLORMASKPROC glColorMask;
198extern PFNGLCOMMANDLISTSEGMENTSNVPROC glCommandListSegmentsNV;
199extern PFNGLCOMPILECOMMANDLISTNVPROC glCompileCommandListNV;
200extern PFNGLCOMPILESHADERINCLUDEARBPROC glCompileShaderIncludeARB;
201extern PFNGLCOMPILESHADERPROC glCompileShader;
202extern PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC glCompressedMultiTexImage1DEXT;
203extern PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC glCompressedMultiTexImage2DEXT;
204extern PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC glCompressedMultiTexImage3DEXT;
205extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC glCompressedMultiTexSubImage1DEXT;
206extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC glCompressedMultiTexSubImage2DEXT;
207extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC glCompressedMultiTexSubImage3DEXT;
208extern PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D;
209extern PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D;
210extern PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
211extern PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D;
212extern PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
213extern PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
214extern PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC glCompressedTextureImage1DEXT;
215extern PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC glCompressedTextureImage2DEXT;
216extern PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC glCompressedTextureImage3DEXT;
217extern PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC glCompressedTextureSubImage1DEXT;
218extern PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glCompressedTextureSubImage1D;
219extern PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC glCompressedTextureSubImage2DEXT;
220extern PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glCompressedTextureSubImage2D;
221extern PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC glCompressedTextureSubImage3DEXT;
222extern PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glCompressedTextureSubImage3D;
223extern PFNGLCONSERVATIVERASTERPARAMETERFNVPROC glConservativeRasterParameterfNV;
224extern PFNGLCONSERVATIVERASTERPARAMETERINVPROC glConservativeRasterParameteriNV;
225extern PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData;
226extern PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
227extern PFNGLCOPYMULTITEXIMAGE1DEXTPROC glCopyMultiTexImage1DEXT;
228extern PFNGLCOPYMULTITEXIMAGE2DEXTPROC glCopyMultiTexImage2DEXT;
229extern PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC glCopyMultiTexSubImage1DEXT;
230extern PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC glCopyMultiTexSubImage2DEXT;
231extern PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC glCopyMultiTexSubImage3DEXT;
232extern PFNGLCOPYNAMEDBUFFERSUBDATAPROC glCopyNamedBufferSubData;
233extern PFNGLCOPYPATHNVPROC glCopyPathNV;
234extern PFNGLCOPYTEXIMAGE1DPROC glCopyTexImage1D;
235extern PFNGLCOPYTEXIMAGE2DPROC glCopyTexImage2D;
236extern PFNGLCOPYTEXSUBIMAGE1DPROC glCopyTexSubImage1D;
237extern PFNGLCOPYTEXSUBIMAGE2DPROC glCopyTexSubImage2D;
238extern PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
239extern PFNGLCOPYTEXTUREIMAGE1DEXTPROC glCopyTextureImage1DEXT;
240extern PFNGLCOPYTEXTUREIMAGE2DEXTPROC glCopyTextureImage2DEXT;
241extern PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC glCopyTextureSubImage1DEXT;
242extern PFNGLCOPYTEXTURESUBIMAGE1DPROC glCopyTextureSubImage1D;
243extern PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC glCopyTextureSubImage2DEXT;
244extern PFNGLCOPYTEXTURESUBIMAGE2DPROC glCopyTextureSubImage2D;
245extern PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC glCopyTextureSubImage3DEXT;
246extern PFNGLCOPYTEXTURESUBIMAGE3DPROC glCopyTextureSubImage3D;
247extern PFNGLCOVERAGEMODULATIONNVPROC glCoverageModulationNV;
248extern PFNGLCOVERAGEMODULATIONTABLENVPROC glCoverageModulationTableNV;
249extern PFNGLCOVERFILLPATHINSTANCEDNVPROC glCoverFillPathInstancedNV;
250extern PFNGLCOVERFILLPATHNVPROC glCoverFillPathNV;
251extern PFNGLCOVERSTROKEPATHINSTANCEDNVPROC glCoverStrokePathInstancedNV;
252extern PFNGLCOVERSTROKEPATHNVPROC glCoverStrokePathNV;
253extern PFNGLCREATEBUFFERSPROC glCreateBuffers;
254extern PFNGLCREATECOMMANDLISTSNVPROC glCreateCommandListsNV;
255extern PFNGLCREATEFRAMEBUFFERSPROC glCreateFramebuffers;
256extern PFNGLCREATEPERFQUERYINTELPROC glCreatePerfQueryINTEL;
257extern PFNGLCREATEPROGRAMPIPELINESPROC glCreateProgramPipelines;
258extern PFNGLCREATEPROGRAMPROC glCreateProgram;
259extern PFNGLCREATEQUERIESPROC glCreateQueries;
260extern PFNGLCREATERENDERBUFFERSPROC glCreateRenderbuffers;
261extern PFNGLCREATESAMPLERSPROC glCreateSamplers;
262extern PFNGLCREATESHADERPROC glCreateShader;
263extern PFNGLCREATESHADERPROGRAMEXTPROC glCreateShaderProgramEXT;
264extern PFNGLCREATESHADERPROGRAMVPROC glCreateShaderProgramv;
265extern PFNGLCREATESTATESNVPROC glCreateStatesNV;
266extern PFNGLCREATESYNCFROMCLEVENTARBPROC glCreateSyncFromCLeventARB;
267extern PFNGLCREATETEXTURESPROC glCreateTextures;
268extern PFNGLCREATETRANSFORMFEEDBACKSPROC glCreateTransformFeedbacks;
269extern PFNGLCREATEVERTEXARRAYSPROC glCreateVertexArrays;
270extern PFNGLCULLFACEPROC glCullFace;
271extern PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARB;
272extern PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
273extern PFNGLDEBUGMESSAGECONTROLARBPROC glDebugMessageControlARB;
274extern PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
275extern PFNGLDEBUGMESSAGEINSERTARBPROC glDebugMessageInsertARB;
276extern PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
277extern PFNGLDELETEBUFFERSPROC glDeleteBuffers;
278extern PFNGLDELETECOMMANDLISTSNVPROC glDeleteCommandListsNV;
279extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
280extern PFNGLDELETENAMEDSTRINGARBPROC glDeleteNamedStringARB;
281extern PFNGLDELETEPATHSNVPROC glDeletePathsNV;
282extern PFNGLDELETEPERFMONITORSAMDPROC glDeletePerfMonitorsAMD;
283extern PFNGLDELETEPERFQUERYINTELPROC glDeletePerfQueryINTEL;
284extern PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines;
285extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
286extern PFNGLDELETEQUERIESPROC glDeleteQueries;
287extern PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
288extern PFNGLDELETESAMPLERSPROC glDeleteSamplers;
289extern PFNGLDELETESHADERPROC glDeleteShader;
290extern PFNGLDELETESTATESNVPROC glDeleteStatesNV;
291extern PFNGLDELETESYNCPROC glDeleteSync;
292extern PFNGLDELETETEXTURESPROC glDeleteTextures;
293extern PFNGLDELETETRANSFORMFEEDBACKSPROC glDeleteTransformFeedbacks;
294extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
295extern PFNGLDEPTHFUNCPROC glDepthFunc;
296extern PFNGLDEPTHMASKPROC glDepthMask;
297extern PFNGLDEPTHRANGEARRAYVPROC glDepthRangeArrayv;
298extern PFNGLDEPTHRANGEFPROC glDepthRangef;
299extern PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed;
300extern PFNGLDEPTHRANGEPROC glDepthRange;
301extern PFNGLDETACHSHADERPROC glDetachShader;
302extern PFNGLDISABLECLIENTSTATEIEXTPROC glDisableClientStateiEXT;
303extern PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC glDisableClientStateIndexedEXT;
304extern PFNGLDISABLEINDEXEDEXTPROC glDisableIndexedEXT;
305extern PFNGLDISABLEIPROC glDisablei;
306extern PFNGLDISABLEPROC glDisable;
307extern PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC glDisableVertexArrayAttribEXT;
308extern PFNGLDISABLEVERTEXARRAYATTRIBPROC glDisableVertexArrayAttrib;
309extern PFNGLDISABLEVERTEXARRAYEXTPROC glDisableVertexArrayEXT;
310extern PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
311extern PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glDispatchComputeGroupSizeARB;
312extern PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect;
313extern PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
314extern PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect;
315extern PFNGLDRAWARRAYSINSTANCEDARBPROC glDrawArraysInstancedARB;
316extern PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glDrawArraysInstancedBaseInstance;
317extern PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstancedEXT;
318extern PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
319extern PFNGLDRAWARRAYSPROC glDrawArrays;
320extern PFNGLDRAWBUFFERPROC glDrawBuffer;
321extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
322extern PFNGLDRAWCOMMANDSADDRESSNVPROC glDrawCommandsAddressNV;
323extern PFNGLDRAWCOMMANDSNVPROC glDrawCommandsNV;
324extern PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC glDrawCommandsStatesAddressNV;
325extern PFNGLDRAWCOMMANDSSTATESNVPROC glDrawCommandsStatesNV;
326extern PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
327extern PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect;
328extern PFNGLDRAWELEMENTSINSTANCEDARBPROC glDrawElementsInstancedARB;
329extern PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glDrawElementsInstancedBaseInstance;
330extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glDrawElementsInstancedBaseVertexBaseInstance;
331extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
332extern PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstancedEXT;
333extern PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
334extern PFNGLDRAWELEMENTSPROC glDrawElements;
335extern PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
336extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
337extern PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glDrawTransformFeedbackInstanced;
338extern PFNGLDRAWTRANSFORMFEEDBACKPROC glDrawTransformFeedback;
339extern PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glDrawTransformFeedbackStreamInstanced;
340extern PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glDrawTransformFeedbackStream;
341extern PFNGLDRAWVKIMAGENVPROC glDrawVkImageNV;
342extern PFNGLEDGEFLAGFORMATNVPROC glEdgeFlagFormatNV;
343extern PFNGLENABLECLIENTSTATEIEXTPROC glEnableClientStateiEXT;
344extern PFNGLENABLECLIENTSTATEINDEXEDEXTPROC glEnableClientStateIndexedEXT;
345extern PFNGLENABLEINDEXEDEXTPROC glEnableIndexedEXT;
346extern PFNGLENABLEIPROC glEnablei;
347extern PFNGLENABLEPROC glEnable;
348extern PFNGLENABLEVERTEXARRAYATTRIBEXTPROC glEnableVertexArrayAttribEXT;
349extern PFNGLENABLEVERTEXARRAYATTRIBPROC glEnableVertexArrayAttrib;
350extern PFNGLENABLEVERTEXARRAYEXTPROC glEnableVertexArrayEXT;
351extern PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
352extern PFNGLENDCONDITIONALRENDERNVPROC glEndConditionalRenderNV;
353extern PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender;
354extern PFNGLENDPERFMONITORAMDPROC glEndPerfMonitorAMD;
355extern PFNGLENDPERFQUERYINTELPROC glEndPerfQueryINTEL;
356extern PFNGLENDQUERYINDEXEDPROC glEndQueryIndexed;
357extern PFNGLENDQUERYPROC glEndQuery;
358extern PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
359extern PFNGLEVALUATEDEPTHVALUESARBPROC glEvaluateDepthValuesARB;
360extern PFNGLFENCESYNCPROC glFenceSync;
361extern PFNGLFINISHPROC glFinish;
362extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
363extern PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC glFlushMappedNamedBufferRangeEXT;
364extern PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glFlushMappedNamedBufferRange;
365extern PFNGLFLUSHPROC glFlush;
366extern PFNGLFOGCOORDFORMATNVPROC glFogCoordFormatNV;
367extern PFNGLFRAGMENTCOVERAGECOLORNVPROC glFragmentCoverageColorNV;
368extern PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC glFramebufferDrawBufferEXT;
369extern PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC glFramebufferDrawBuffersEXT;
370extern PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri;
371extern PFNGLFRAMEBUFFERREADBUFFEREXTPROC glFramebufferReadBufferEXT;
372extern PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
373extern PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glFramebufferSampleLocationsfvARB;
374extern PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC glFramebufferSampleLocationsfvNV;
375extern PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D;
376extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
377extern PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
378extern PFNGLFRAMEBUFFERTEXTUREARBPROC glFramebufferTextureARB;
379extern PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glFramebufferTextureFaceARB;
380extern PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glFramebufferTextureLayerARB;
381extern PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
382extern PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC glFramebufferTextureMultiviewOVR;
383extern PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
384extern PFNGLFRONTFACEPROC glFrontFace;
385extern PFNGLGENBUFFERSPROC glGenBuffers;
386extern PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
387extern PFNGLGENERATEMULTITEXMIPMAPEXTPROC glGenerateMultiTexMipmapEXT;
388extern PFNGLGENERATETEXTUREMIPMAPEXTPROC glGenerateTextureMipmapEXT;
389extern PFNGLGENERATETEXTUREMIPMAPPROC glGenerateTextureMipmap;
390extern PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
391extern PFNGLGENPATHSNVPROC glGenPathsNV;
392extern PFNGLGENPERFMONITORSAMDPROC glGenPerfMonitorsAMD;
393extern PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines;
394extern PFNGLGENQUERIESPROC glGenQueries;
395extern PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
396extern PFNGLGENSAMPLERSPROC glGenSamplers;
397extern PFNGLGENTEXTURESPROC glGenTextures;
398extern PFNGLGENTRANSFORMFEEDBACKSPROC glGenTransformFeedbacks;
399extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
400extern PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glGetActiveAtomicCounterBufferiv;
401extern PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib;
402extern PFNGLGETACTIVESUBROUTINENAMEPROC glGetActiveSubroutineName;
403extern PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glGetActiveSubroutineUniformiv;
404extern PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glGetActiveSubroutineUniformName;
405extern PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
406extern PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
407extern PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformName;
408extern PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
409extern PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
410extern PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders;
411extern PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
412extern PFNGLGETBOOLEANINDEXEDVEXTPROC glGetBooleanIndexedvEXT;
413extern PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
414extern PFNGLGETBOOLEANVPROC glGetBooleanv;
415extern PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
416extern PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv;
417extern PFNGLGETBUFFERPARAMETERUI64VNVPROC glGetBufferParameterui64vNV;
418extern PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
419extern PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData;
420extern PFNGLGETCOMMANDHEADERNVPROC glGetCommandHeaderNV;
421extern PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC glGetCompressedMultiTexImageEXT;
422extern PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage;
423extern PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC glGetCompressedTextureImageEXT;
424extern PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glGetCompressedTextureImage;
425extern PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glGetCompressedTextureSubImage;
426extern PFNGLGETCOVERAGEMODULATIONTABLENVPROC glGetCoverageModulationTableNV;
427extern PFNGLGETDEBUGMESSAGELOGARBPROC glGetDebugMessageLogARB;
428extern PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
429extern PFNGLGETDOUBLEINDEXEDVEXTPROC glGetDoubleIndexedvEXT;
430extern PFNGLGETDOUBLEI_VEXTPROC glGetDoublei_vEXT;
431extern PFNGLGETDOUBLEI_VPROC glGetDoublei_v;
432extern PFNGLGETDOUBLEVPROC glGetDoublev;
433extern PFNGLGETERRORPROC glGetError;
434extern PFNGLGETFIRSTPERFQUERYIDINTELPROC glGetFirstPerfQueryIdINTEL;
435extern PFNGLGETFLOATINDEXEDVEXTPROC glGetFloatIndexedvEXT;
436extern PFNGLGETFLOATI_VEXTPROC glGetFloati_vEXT;
437extern PFNGLGETFLOATI_VPROC glGetFloati_v;
438extern PFNGLGETFLOATVPROC glGetFloatv;
439extern PFNGLGETFRAGDATAINDEXPROC glGetFragDataIndex;
440extern PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
441extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
442extern PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC glGetFramebufferParameterivEXT;
443extern PFNGLGETFRAMEBUFFERPARAMETERIVPROC glGetFramebufferParameteriv;
444extern PFNGLGETGRAPHICSRESETSTATUSARBPROC glGetGraphicsResetStatusARB;
445extern PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
446extern PFNGLGETIMAGEHANDLEARBPROC glGetImageHandleARB;
447extern PFNGLGETIMAGEHANDLENVPROC glGetImageHandleNV;
448extern PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
449extern PFNGLGETINTEGER64VPROC glGetInteger64v;
450extern PFNGLGETINTEGERINDEXEDVEXTPROC glGetIntegerIndexedvEXT;
451extern PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
452extern PFNGLGETINTEGERUI64I_VNVPROC glGetIntegerui64i_vNV;
453extern PFNGLGETINTEGERUI64VNVPROC glGetIntegerui64vNV;
454extern PFNGLGETINTEGERVPROC glGetIntegerv;
455extern PFNGLGETINTERNALFORMATI64VPROC glGetInternalformati64v;
456extern PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ;
457extern PFNGLGETINTERNALFORMATSAMPLEIVNVPROC glGetInternalformatSampleivNV;
458extern PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
459extern PFNGLGETMULTITEXENVFVEXTPROC glGetMultiTexEnvfvEXT;
460extern PFNGLGETMULTITEXENVIVEXTPROC glGetMultiTexEnvivEXT;
461extern PFNGLGETMULTITEXGENDVEXTPROC glGetMultiTexGendvEXT;
462extern PFNGLGETMULTITEXGENFVEXTPROC glGetMultiTexGenfvEXT;
463extern PFNGLGETMULTITEXGENIVEXTPROC glGetMultiTexGenivEXT;
464extern PFNGLGETMULTITEXIMAGEEXTPROC glGetMultiTexImageEXT;
465extern PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC glGetMultiTexLevelParameterfvEXT;
466extern PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC glGetMultiTexLevelParameterivEXT;
467extern PFNGLGETMULTITEXPARAMETERFVEXTPROC glGetMultiTexParameterfvEXT;
468extern PFNGLGETMULTITEXPARAMETERIIVEXTPROC glGetMultiTexParameterIivEXT;
469extern PFNGLGETMULTITEXPARAMETERIUIVEXTPROC glGetMultiTexParameterIuivEXT;
470extern PFNGLGETMULTITEXPARAMETERIVEXTPROC glGetMultiTexParameterivEXT;
471extern PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glGetNamedBufferParameteri64v;
472extern PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC glGetNamedBufferParameterivEXT;
473extern PFNGLGETNAMEDBUFFERPARAMETERIVPROC glGetNamedBufferParameteriv;
474extern PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC glGetNamedBufferParameterui64vNV;
475extern PFNGLGETNAMEDBUFFERPOINTERVEXTPROC glGetNamedBufferPointervEXT;
476extern PFNGLGETNAMEDBUFFERPOINTERVPROC glGetNamedBufferPointerv;
477extern PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glGetNamedBufferSubDataEXT;
478extern PFNGLGETNAMEDBUFFERSUBDATAPROC glGetNamedBufferSubData;
479extern PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetNamedFramebufferAttachmentParameterivEXT;
480extern PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetNamedFramebufferAttachmentParameteriv;
481extern PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC glGetNamedFramebufferParameterivEXT;
482extern PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glGetNamedFramebufferParameteriv;
483extern PFNGLGETNAMEDPROGRAMIVEXTPROC glGetNamedProgramivEXT;
484extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC glGetNamedProgramLocalParameterdvEXT;
485extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC glGetNamedProgramLocalParameterfvEXT;
486extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC glGetNamedProgramLocalParameterIivEXT;
487extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC glGetNamedProgramLocalParameterIuivEXT;
488extern PFNGLGETNAMEDPROGRAMSTRINGEXTPROC glGetNamedProgramStringEXT;
489extern PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC glGetNamedRenderbufferParameterivEXT;
490extern PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glGetNamedRenderbufferParameteriv;
491extern PFNGLGETNAMEDSTRINGARBPROC glGetNamedStringARB;
492extern PFNGLGETNAMEDSTRINGIVARBPROC glGetNamedStringivARB;
493extern PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC glGetnCompressedTexImageARB;
494extern PFNGLGETNCOMPRESSEDTEXIMAGEPROC glGetnCompressedTexImage;
495extern PFNGLGETNEXTPERFQUERYIDINTELPROC glGetNextPerfQueryIdINTEL;
496extern PFNGLGETNTEXIMAGEARBPROC glGetnTexImageARB;
497extern PFNGLGETNTEXIMAGEPROC glGetnTexImage;
498extern PFNGLGETNUNIFORMDVARBPROC glGetnUniformdvARB;
499extern PFNGLGETNUNIFORMDVPROC glGetnUniformdv;
500extern PFNGLGETNUNIFORMFVARBPROC glGetnUniformfvARB;
501extern PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
502extern PFNGLGETNUNIFORMI64VARBPROC glGetnUniformi64vARB;
503extern PFNGLGETNUNIFORMIVARBPROC glGetnUniformivARB;
504extern PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
505extern PFNGLGETNUNIFORMUI64VARBPROC glGetnUniformui64vARB;
506extern PFNGLGETNUNIFORMUIVARBPROC glGetnUniformuivARB;
507extern PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
508extern PFNGLGETOBJECTLABELEXTPROC glGetObjectLabelEXT;
509extern PFNGLGETOBJECTLABELPROC glGetObjectLabel;
510extern PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
511extern PFNGLGETPATHCOMMANDSNVPROC glGetPathCommandsNV;
512extern PFNGLGETPATHCOORDSNVPROC glGetPathCoordsNV;
513extern PFNGLGETPATHDASHARRAYNVPROC glGetPathDashArrayNV;
514extern PFNGLGETPATHLENGTHNVPROC glGetPathLengthNV;
515extern PFNGLGETPATHMETRICRANGENVPROC glGetPathMetricRangeNV;
516extern PFNGLGETPATHMETRICSNVPROC glGetPathMetricsNV;
517extern PFNGLGETPATHPARAMETERFVNVPROC glGetPathParameterfvNV;
518extern PFNGLGETPATHPARAMETERIVNVPROC glGetPathParameterivNV;
519extern PFNGLGETPATHSPACINGNVPROC glGetPathSpacingNV;
520extern PFNGLGETPERFCOUNTERINFOINTELPROC glGetPerfCounterInfoINTEL;
521extern PFNGLGETPERFMONITORCOUNTERDATAAMDPROC glGetPerfMonitorCounterDataAMD;
522extern PFNGLGETPERFMONITORCOUNTERINFOAMDPROC glGetPerfMonitorCounterInfoAMD;
523extern PFNGLGETPERFMONITORCOUNTERSAMDPROC glGetPerfMonitorCountersAMD;
524extern PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC glGetPerfMonitorCounterStringAMD;
525extern PFNGLGETPERFMONITORGROUPSAMDPROC glGetPerfMonitorGroupsAMD;
526extern PFNGLGETPERFMONITORGROUPSTRINGAMDPROC glGetPerfMonitorGroupStringAMD;
527extern PFNGLGETPERFQUERYDATAINTELPROC glGetPerfQueryDataINTEL;
528extern PFNGLGETPERFQUERYIDBYNAMEINTELPROC glGetPerfQueryIdByNameINTEL;
529extern PFNGLGETPERFQUERYINFOINTELPROC glGetPerfQueryInfoINTEL;
530extern PFNGLGETPOINTERINDEXEDVEXTPROC glGetPointerIndexedvEXT;
531extern PFNGLGETPOINTERI_VEXTPROC glGetPointeri_vEXT;
532extern PFNGLGETPOINTERVPROC glGetPointerv;
533extern PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
534extern PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
535extern PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv;
536extern PFNGLGETPROGRAMIVPROC glGetProgramiv;
537extern PFNGLGETPROGRAMPIPELINEINFOLOGPROC glGetProgramPipelineInfoLog;
538extern PFNGLGETPROGRAMPIPELINEIVPROC glGetProgramPipelineiv;
539extern PFNGLGETPROGRAMRESOURCEFVNVPROC glGetProgramResourcefvNV;
540extern PFNGLGETPROGRAMRESOURCEINDEXPROC glGetProgramResourceIndex;
541extern PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv;
542extern PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glGetProgramResourceLocationIndex;
543extern PFNGLGETPROGRAMRESOURCELOCATIONPROC glGetProgramResourceLocation;
544extern PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName;
545extern PFNGLGETPROGRAMSTAGEIVPROC glGetProgramStageiv;
546extern PFNGLGETQUERYBUFFEROBJECTI64VPROC glGetQueryBufferObjecti64v;
547extern PFNGLGETQUERYBUFFEROBJECTIVPROC glGetQueryBufferObjectiv;
548extern PFNGLGETQUERYBUFFEROBJECTUI64VPROC glGetQueryBufferObjectui64v;
549extern PFNGLGETQUERYBUFFEROBJECTUIVPROC glGetQueryBufferObjectuiv;
550extern PFNGLGETQUERYINDEXEDIVPROC glGetQueryIndexediv;
551extern PFNGLGETQUERYIVPROC glGetQueryiv;
552extern PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v;
553extern PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv;
554extern PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v;
555extern PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
556extern PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv;
557extern PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
558extern PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
559extern PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
560extern PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
561extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
562extern PFNGLGETSHADERIVPROC glGetShaderiv;
563extern PFNGLGETSHADERPRECISIONFORMATPROC glGetShaderPrecisionFormat;
564extern PFNGLGETSHADERSOURCEPROC glGetShaderSource;
565extern PFNGLGETSTAGEINDEXNVPROC glGetStageIndexNV;
566extern PFNGLGETSTRINGIPROC glGetStringi;
567extern PFNGLGETSTRINGPROC glGetString;
568extern PFNGLGETSUBROUTINEINDEXPROC glGetSubroutineIndex;
569extern PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glGetSubroutineUniformLocation;
570extern PFNGLGETSYNCIVPROC glGetSynciv;
571extern PFNGLGETTEXIMAGEPROC glGetTexImage;
572extern PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
573extern PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
574extern PFNGLGETTEXPARAMETERFVPROC glGetTexParameterfv;
575extern PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
576extern PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
577extern PFNGLGETTEXPARAMETERIVPROC glGetTexParameteriv;
578extern PFNGLGETTEXTUREHANDLEARBPROC glGetTextureHandleARB;
579extern PFNGLGETTEXTUREHANDLENVPROC glGetTextureHandleNV;
580extern PFNGLGETTEXTUREIMAGEEXTPROC glGetTextureImageEXT;
581extern PFNGLGETTEXTUREIMAGEPROC glGetTextureImage;
582extern PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC glGetTextureLevelParameterfvEXT;
583extern PFNGLGETTEXTURELEVELPARAMETERFVPROC glGetTextureLevelParameterfv;
584extern PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC glGetTextureLevelParameterivEXT;
585extern PFNGLGETTEXTURELEVELPARAMETERIVPROC glGetTextureLevelParameteriv;
586extern PFNGLGETTEXTUREPARAMETERFVEXTPROC glGetTextureParameterfvEXT;
587extern PFNGLGETTEXTUREPARAMETERFVPROC glGetTextureParameterfv;
588extern PFNGLGETTEXTUREPARAMETERIIVEXTPROC glGetTextureParameterIivEXT;
589extern PFNGLGETTEXTUREPARAMETERIIVPROC glGetTextureParameterIiv;
590extern PFNGLGETTEXTUREPARAMETERIUIVEXTPROC glGetTextureParameterIuivEXT;
591extern PFNGLGETTEXTUREPARAMETERIUIVPROC glGetTextureParameterIuiv;
592extern PFNGLGETTEXTUREPARAMETERIVEXTPROC glGetTextureParameterivEXT;
593extern PFNGLGETTEXTUREPARAMETERIVPROC glGetTextureParameteriv;
594extern PFNGLGETTEXTURESAMPLERHANDLEARBPROC glGetTextureSamplerHandleARB;
595extern PFNGLGETTEXTURESAMPLERHANDLENVPROC glGetTextureSamplerHandleNV;
596extern PFNGLGETTEXTURESUBIMAGEPROC glGetTextureSubImage;
597extern PFNGLGETTRANSFORMFEEDBACKI64_VPROC glGetTransformFeedbacki64_v;
598extern PFNGLGETTRANSFORMFEEDBACKIVPROC glGetTransformFeedbackiv;
599extern PFNGLGETTRANSFORMFEEDBACKI_VPROC glGetTransformFeedbacki_v;
600extern PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
601extern PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
602extern PFNGLGETUNIFORMDVPROC glGetUniformdv;
603extern PFNGLGETUNIFORMFVPROC glGetUniformfv;
604extern PFNGLGETUNIFORMI64VARBPROC glGetUniformi64vARB;
605extern PFNGLGETUNIFORMI64VNVPROC glGetUniformi64vNV;
606extern PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
607extern PFNGLGETUNIFORMIVPROC glGetUniformiv;
608extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
609extern PFNGLGETUNIFORMSUBROUTINEUIVPROC glGetUniformSubroutineuiv;
610extern PFNGLGETUNIFORMUI64VARBPROC glGetUniformui64vARB;
611extern PFNGLGETUNIFORMUI64VNVPROC glGetUniformui64vNV;
612extern PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
613extern PFNGLGETVERTEXARRAYINDEXED64IVPROC glGetVertexArrayIndexed64iv;
614extern PFNGLGETVERTEXARRAYINDEXEDIVPROC glGetVertexArrayIndexediv;
615extern PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC glGetVertexArrayIntegeri_vEXT;
616extern PFNGLGETVERTEXARRAYINTEGERVEXTPROC glGetVertexArrayIntegervEXT;
617extern PFNGLGETVERTEXARRAYIVPROC glGetVertexArrayiv;
618extern PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC glGetVertexArrayPointeri_vEXT;
619extern PFNGLGETVERTEXARRAYPOINTERVEXTPROC glGetVertexArrayPointervEXT;
620extern PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv;
621extern PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
622extern PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
623extern PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
624extern PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv;
625extern PFNGLGETVERTEXATTRIBLDVPROC glGetVertexAttribLdv;
626extern PFNGLGETVERTEXATTRIBLI64VNVPROC glGetVertexAttribLi64vNV;
627extern PFNGLGETVERTEXATTRIBLUI64VARBPROC glGetVertexAttribLui64vARB;
628extern PFNGLGETVERTEXATTRIBLUI64VNVPROC glGetVertexAttribLui64vNV;
629extern PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv;
630extern PFNGLGETVKPROCADDRNVPROC glGetVkProcAddrNV;
631extern PFNGLHINTPROC glHint;
632extern PFNGLINDEXFORMATNVPROC glIndexFormatNV;
633extern PFNGLINSERTEVENTMARKEREXTPROC glInsertEventMarkerEXT;
634extern PFNGLINTERPOLATEPATHSNVPROC glInterpolatePathsNV;
635extern PFNGLINVALIDATEBUFFERDATAPROC glInvalidateBufferData;
636extern PFNGLINVALIDATEBUFFERSUBDATAPROC glInvalidateBufferSubData;
637extern PFNGLINVALIDATEFRAMEBUFFERPROC glInvalidateFramebuffer;
638extern PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glInvalidateNamedFramebufferData;
639extern PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glInvalidateNamedFramebufferSubData;
640extern PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer;
641extern PFNGLINVALIDATETEXIMAGEPROC glInvalidateTexImage;
642extern PFNGLINVALIDATETEXSUBIMAGEPROC glInvalidateTexSubImage;
643extern PFNGLISBUFFERPROC glIsBuffer;
644extern PFNGLISBUFFERRESIDENTNVPROC glIsBufferResidentNV;
645extern PFNGLISCOMMANDLISTNVPROC glIsCommandListNV;
646extern PFNGLISENABLEDINDEXEDEXTPROC glIsEnabledIndexedEXT;
647extern PFNGLISENABLEDIPROC glIsEnabledi;
648extern PFNGLISENABLEDPROC glIsEnabled;
649extern PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
650extern PFNGLISIMAGEHANDLERESIDENTARBPROC glIsImageHandleResidentARB;
651extern PFNGLISIMAGEHANDLERESIDENTNVPROC glIsImageHandleResidentNV;
652extern PFNGLISNAMEDBUFFERRESIDENTNVPROC glIsNamedBufferResidentNV;
653extern PFNGLISNAMEDSTRINGARBPROC glIsNamedStringARB;
654extern PFNGLISPATHNVPROC glIsPathNV;
655extern PFNGLISPOINTINFILLPATHNVPROC glIsPointInFillPathNV;
656extern PFNGLISPOINTINSTROKEPATHNVPROC glIsPointInStrokePathNV;
657extern PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline;
658extern PFNGLISPROGRAMPROC glIsProgram;
659extern PFNGLISQUERYPROC glIsQuery;
660extern PFNGLISRENDERBUFFERPROC glIsRenderbuffer;
661extern PFNGLISSAMPLERPROC glIsSampler;
662extern PFNGLISSHADERPROC glIsShader;
663extern PFNGLISSTATENVPROC glIsStateNV;
664extern PFNGLISSYNCPROC glIsSync;
665extern PFNGLISTEXTUREHANDLERESIDENTARBPROC glIsTextureHandleResidentARB;
666extern PFNGLISTEXTUREHANDLERESIDENTNVPROC glIsTextureHandleResidentNV;
667extern PFNGLISTEXTUREPROC glIsTexture;
668extern PFNGLISTRANSFORMFEEDBACKPROC glIsTransformFeedback;
669extern PFNGLISVERTEXARRAYPROC glIsVertexArray;
670extern PFNGLLABELOBJECTEXTPROC glLabelObjectEXT;
671extern PFNGLLINEWIDTHPROC glLineWidth;
672extern PFNGLLINKPROGRAMPROC glLinkProgram;
673extern PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC glListDrawCommandsStatesClientNV;
674extern PFNGLLOGICOPPROC glLogicOp;
675extern PFNGLMAKEBUFFERNONRESIDENTNVPROC glMakeBufferNonResidentNV;
676extern PFNGLMAKEBUFFERRESIDENTNVPROC glMakeBufferResidentNV;
677extern PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC glMakeImageHandleNonResidentARB;
678extern PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC glMakeImageHandleNonResidentNV;
679extern PFNGLMAKEIMAGEHANDLERESIDENTARBPROC glMakeImageHandleResidentARB;
680extern PFNGLMAKEIMAGEHANDLERESIDENTNVPROC glMakeImageHandleResidentNV;
681extern PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC glMakeNamedBufferNonResidentNV;
682extern PFNGLMAKENAMEDBUFFERRESIDENTNVPROC glMakeNamedBufferResidentNV;
683extern PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC glMakeTextureHandleNonResidentARB;
684extern PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC glMakeTextureHandleNonResidentNV;
685extern PFNGLMAKETEXTUREHANDLERESIDENTARBPROC glMakeTextureHandleResidentARB;
686extern PFNGLMAKETEXTUREHANDLERESIDENTNVPROC glMakeTextureHandleResidentNV;
687extern PFNGLMAPBUFFERPROC glMapBuffer;
688extern PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
689extern PFNGLMAPNAMEDBUFFEREXTPROC glMapNamedBufferEXT;
690extern PFNGLMAPNAMEDBUFFERPROC glMapNamedBuffer;
691extern PFNGLMAPNAMEDBUFFERRANGEEXTPROC glMapNamedBufferRangeEXT;
692extern PFNGLMAPNAMEDBUFFERRANGEPROC glMapNamedBufferRange;
693extern PFNGLMATRIXFRUSTUMEXTPROC glMatrixFrustumEXT;
694extern PFNGLMATRIXLOAD3X2FNVPROC glMatrixLoad3x2fNV;
695extern PFNGLMATRIXLOAD3X3FNVPROC glMatrixLoad3x3fNV;
696extern PFNGLMATRIXLOADDEXTPROC glMatrixLoaddEXT;
697extern PFNGLMATRIXLOADFEXTPROC glMatrixLoadfEXT;
698extern PFNGLMATRIXLOADIDENTITYEXTPROC glMatrixLoadIdentityEXT;
699extern PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC glMatrixLoadTranspose3x3fNV;
700extern PFNGLMATRIXLOADTRANSPOSEDEXTPROC glMatrixLoadTransposedEXT;
701extern PFNGLMATRIXLOADTRANSPOSEFEXTPROC glMatrixLoadTransposefEXT;
702extern PFNGLMATRIXMULT3X2FNVPROC glMatrixMult3x2fNV;
703extern PFNGLMATRIXMULT3X3FNVPROC glMatrixMult3x3fNV;
704extern PFNGLMATRIXMULTDEXTPROC glMatrixMultdEXT;
705extern PFNGLMATRIXMULTFEXTPROC glMatrixMultfEXT;
706extern PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC glMatrixMultTranspose3x3fNV;
707extern PFNGLMATRIXMULTTRANSPOSEDEXTPROC glMatrixMultTransposedEXT;
708extern PFNGLMATRIXMULTTRANSPOSEFEXTPROC glMatrixMultTransposefEXT;
709extern PFNGLMATRIXORTHOEXTPROC glMatrixOrthoEXT;
710extern PFNGLMATRIXPOPEXTPROC glMatrixPopEXT;
711extern PFNGLMATRIXPUSHEXTPROC glMatrixPushEXT;
712extern PFNGLMATRIXROTATEDEXTPROC glMatrixRotatedEXT;
713extern PFNGLMATRIXROTATEFEXTPROC glMatrixRotatefEXT;
714extern PFNGLMATRIXSCALEDEXTPROC glMatrixScaledEXT;
715extern PFNGLMATRIXSCALEFEXTPROC glMatrixScalefEXT;
716extern PFNGLMATRIXTRANSLATEDEXTPROC glMatrixTranslatedEXT;
717extern PFNGLMATRIXTRANSLATEFEXTPROC glMatrixTranslatefEXT;
718extern PFNGLMAXSHADERCOMPILERTHREADSARBPROC glMaxShaderCompilerThreadsARB;
719extern PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
720extern PFNGLMEMORYBARRIERPROC glMemoryBarrier;
721extern PFNGLMINSAMPLESHADINGARBPROC glMinSampleShadingARB;
722extern PFNGLMINSAMPLESHADINGPROC glMinSampleShading;
723extern PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC glMultiDrawArraysIndirectBindlessCountNV;
724extern PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC glMultiDrawArraysIndirectBindlessNV;
725extern PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC glMultiDrawArraysIndirectCountARB;
726extern PFNGLMULTIDRAWARRAYSINDIRECTPROC glMultiDrawArraysIndirect;
727extern PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays;
728extern PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex;
729extern PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC glMultiDrawElementsIndirectBindlessCountNV;
730extern PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC glMultiDrawElementsIndirectBindlessNV;
731extern PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC glMultiDrawElementsIndirectCountARB;
732extern PFNGLMULTIDRAWELEMENTSINDIRECTPROC glMultiDrawElementsIndirect;
733extern PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements;
734extern PFNGLMULTITEXBUFFEREXTPROC glMultiTexBufferEXT;
735extern PFNGLMULTITEXCOORDPOINTEREXTPROC glMultiTexCoordPointerEXT;
736extern PFNGLMULTITEXENVFEXTPROC glMultiTexEnvfEXT;
737extern PFNGLMULTITEXENVFVEXTPROC glMultiTexEnvfvEXT;
738extern PFNGLMULTITEXENVIEXTPROC glMultiTexEnviEXT;
739extern PFNGLMULTITEXENVIVEXTPROC glMultiTexEnvivEXT;
740extern PFNGLMULTITEXGENDEXTPROC glMultiTexGendEXT;
741extern PFNGLMULTITEXGENDVEXTPROC glMultiTexGendvEXT;
742extern PFNGLMULTITEXGENFEXTPROC glMultiTexGenfEXT;
743extern PFNGLMULTITEXGENFVEXTPROC glMultiTexGenfvEXT;
744extern PFNGLMULTITEXGENIEXTPROC glMultiTexGeniEXT;
745extern PFNGLMULTITEXGENIVEXTPROC glMultiTexGenivEXT;
746extern PFNGLMULTITEXIMAGE1DEXTPROC glMultiTexImage1DEXT;
747extern PFNGLMULTITEXIMAGE2DEXTPROC glMultiTexImage2DEXT;
748extern PFNGLMULTITEXIMAGE3DEXTPROC glMultiTexImage3DEXT;
749extern PFNGLMULTITEXPARAMETERFEXTPROC glMultiTexParameterfEXT;
750extern PFNGLMULTITEXPARAMETERFVEXTPROC glMultiTexParameterfvEXT;
751extern PFNGLMULTITEXPARAMETERIEXTPROC glMultiTexParameteriEXT;
752extern PFNGLMULTITEXPARAMETERIIVEXTPROC glMultiTexParameterIivEXT;
753extern PFNGLMULTITEXPARAMETERIUIVEXTPROC glMultiTexParameterIuivEXT;
754extern PFNGLMULTITEXPARAMETERIVEXTPROC glMultiTexParameterivEXT;
755extern PFNGLMULTITEXRENDERBUFFEREXTPROC glMultiTexRenderbufferEXT;
756extern PFNGLMULTITEXSUBIMAGE1DEXTPROC glMultiTexSubImage1DEXT;
757extern PFNGLMULTITEXSUBIMAGE2DEXTPROC glMultiTexSubImage2DEXT;
758extern PFNGLMULTITEXSUBIMAGE3DEXTPROC glMultiTexSubImage3DEXT;
759extern PFNGLNAMEDBUFFERDATAEXTPROC glNamedBufferDataEXT;
760extern PFNGLNAMEDBUFFERDATAPROC glNamedBufferData;
761extern PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC glNamedBufferPageCommitmentARB;
762extern PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC glNamedBufferPageCommitmentEXT;
763extern PFNGLNAMEDBUFFERSTORAGEEXTPROC glNamedBufferStorageEXT;
764extern PFNGLNAMEDBUFFERSTORAGEPROC glNamedBufferStorage;
765extern PFNGLNAMEDBUFFERSUBDATAEXTPROC glNamedBufferSubDataEXT;
766extern PFNGLNAMEDBUFFERSUBDATAPROC glNamedBufferSubData;
767extern PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC glNamedCopyBufferSubDataEXT;
768extern PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glNamedFramebufferDrawBuffer;
769extern PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glNamedFramebufferDrawBuffers;
770extern PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC glNamedFramebufferParameteriEXT;
771extern PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glNamedFramebufferParameteri;
772extern PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glNamedFramebufferReadBuffer;
773extern PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC glNamedFramebufferRenderbufferEXT;
774extern PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glNamedFramebufferRenderbuffer;
775extern PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glNamedFramebufferSampleLocationsfvARB;
776extern PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC glNamedFramebufferSampleLocationsfvNV;
777extern PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC glNamedFramebufferTexture1DEXT;
778extern PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC glNamedFramebufferTexture2DEXT;
779extern PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC glNamedFramebufferTexture3DEXT;
780extern PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC glNamedFramebufferTextureEXT;
781extern PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC glNamedFramebufferTextureFaceEXT;
782extern PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC glNamedFramebufferTextureLayerEXT;
783extern PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glNamedFramebufferTextureLayer;
784extern PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glNamedFramebufferTexture;
785extern PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC glNamedProgramLocalParameter4dEXT;
786extern PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC glNamedProgramLocalParameter4dvEXT;
787extern PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC glNamedProgramLocalParameter4fEXT;
788extern PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC glNamedProgramLocalParameter4fvEXT;
789extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC glNamedProgramLocalParameterI4iEXT;
790extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC glNamedProgramLocalParameterI4ivEXT;
791extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC glNamedProgramLocalParameterI4uiEXT;
792extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC glNamedProgramLocalParameterI4uivEXT;
793extern PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC glNamedProgramLocalParameters4fvEXT;
794extern PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC glNamedProgramLocalParametersI4ivEXT;
795extern PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC glNamedProgramLocalParametersI4uivEXT;
796extern PFNGLNAMEDPROGRAMSTRINGEXTPROC glNamedProgramStringEXT;
797extern PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC glNamedRenderbufferStorageEXT;
798extern PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC glNamedRenderbufferStorageMultisampleCoverageEXT;
799extern PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glNamedRenderbufferStorageMultisampleEXT;
800extern PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glNamedRenderbufferStorageMultisample;
801extern PFNGLNAMEDRENDERBUFFERSTORAGEPROC glNamedRenderbufferStorage;
802extern PFNGLNAMEDSTRINGARBPROC glNamedStringARB;
803extern PFNGLNORMALFORMATNVPROC glNormalFormatNV;
804extern PFNGLOBJECTLABELPROC glObjectLabel;
805extern PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
806extern PFNGLPATCHPARAMETERFVPROC glPatchParameterfv;
807extern PFNGLPATCHPARAMETERIPROC glPatchParameteri;
808extern PFNGLPATHCOMMANDSNVPROC glPathCommandsNV;
809extern PFNGLPATHCOORDSNVPROC glPathCoordsNV;
810extern PFNGLPATHCOVERDEPTHFUNCNVPROC glPathCoverDepthFuncNV;
811extern PFNGLPATHDASHARRAYNVPROC glPathDashArrayNV;
812extern PFNGLPATHGLYPHINDEXARRAYNVPROC glPathGlyphIndexArrayNV;
813extern PFNGLPATHGLYPHINDEXRANGENVPROC glPathGlyphIndexRangeNV;
814extern PFNGLPATHGLYPHRANGENVPROC glPathGlyphRangeNV;
815extern PFNGLPATHGLYPHSNVPROC glPathGlyphsNV;
816extern PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC glPathMemoryGlyphIndexArrayNV;
817extern PFNGLPATHPARAMETERFNVPROC glPathParameterfNV;
818extern PFNGLPATHPARAMETERFVNVPROC glPathParameterfvNV;
819extern PFNGLPATHPARAMETERINVPROC glPathParameteriNV;
820extern PFNGLPATHPARAMETERIVNVPROC glPathParameterivNV;
821extern PFNGLPATHSTENCILDEPTHOFFSETNVPROC glPathStencilDepthOffsetNV;
822extern PFNGLPATHSTENCILFUNCNVPROC glPathStencilFuncNV;
823extern PFNGLPATHSTRINGNVPROC glPathStringNV;
824extern PFNGLPATHSUBCOMMANDSNVPROC glPathSubCommandsNV;
825extern PFNGLPATHSUBCOORDSNVPROC glPathSubCoordsNV;
826extern PFNGLPAUSETRANSFORMFEEDBACKPROC glPauseTransformFeedback;
827extern PFNGLPIXELSTOREFPROC glPixelStoref;
828extern PFNGLPIXELSTOREIPROC glPixelStorei;
829extern PFNGLPOINTALONGPATHNVPROC glPointAlongPathNV;
830extern PFNGLPOINTPARAMETERFPROC glPointParameterf;
831extern PFNGLPOINTPARAMETERFVPROC glPointParameterfv;
832extern PFNGLPOINTPARAMETERIPROC glPointParameteri;
833extern PFNGLPOINTPARAMETERIVPROC glPointParameteriv;
834extern PFNGLPOINTSIZEPROC glPointSize;
835extern PFNGLPOLYGONMODEPROC glPolygonMode;
836extern PFNGLPOLYGONOFFSETCLAMPEXTPROC glPolygonOffsetClampEXT;
837extern PFNGLPOLYGONOFFSETPROC glPolygonOffset;
838extern PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
839extern PFNGLPOPGROUPMARKEREXTPROC glPopGroupMarkerEXT;
840extern PFNGLPRIMITIVEBOUNDINGBOXARBPROC glPrimitiveBoundingBoxARB;
841extern PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex;
842extern PFNGLPROGRAMBINARYPROC glProgramBinary;
843extern PFNGLPROGRAMPARAMETERIARBPROC glProgramParameteriARB;
844extern PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
845extern PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC glProgramPathFragmentInputGenNV;
846extern PFNGLPROGRAMUNIFORM1DEXTPROC glProgramUniform1dEXT;
847extern PFNGLPROGRAMUNIFORM1DPROC glProgramUniform1d;
848extern PFNGLPROGRAMUNIFORM1DVEXTPROC glProgramUniform1dvEXT;
849extern PFNGLPROGRAMUNIFORM1DVPROC glProgramUniform1dv;
850extern PFNGLPROGRAMUNIFORM1FEXTPROC glProgramUniform1fEXT;
851extern PFNGLPROGRAMUNIFORM1FPROC glProgramUniform1f;
852extern PFNGLPROGRAMUNIFORM1FVEXTPROC glProgramUniform1fvEXT;
853extern PFNGLPROGRAMUNIFORM1FVPROC glProgramUniform1fv;
854extern PFNGLPROGRAMUNIFORM1I64ARBPROC glProgramUniform1i64ARB;
855extern PFNGLPROGRAMUNIFORM1I64NVPROC glProgramUniform1i64NV;
856extern PFNGLPROGRAMUNIFORM1I64VARBPROC glProgramUniform1i64vARB;
857extern PFNGLPROGRAMUNIFORM1I64VNVPROC glProgramUniform1i64vNV;
858extern PFNGLPROGRAMUNIFORM1IEXTPROC glProgramUniform1iEXT;
859extern PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i;
860extern PFNGLPROGRAMUNIFORM1IVEXTPROC glProgramUniform1ivEXT;
861extern PFNGLPROGRAMUNIFORM1IVPROC glProgramUniform1iv;
862extern PFNGLPROGRAMUNIFORM1UI64ARBPROC glProgramUniform1ui64ARB;
863extern PFNGLPROGRAMUNIFORM1UI64NVPROC glProgramUniform1ui64NV;
864extern PFNGLPROGRAMUNIFORM1UI64VARBPROC glProgramUniform1ui64vARB;
865extern PFNGLPROGRAMUNIFORM1UI64VNVPROC glProgramUniform1ui64vNV;
866extern PFNGLPROGRAMUNIFORM1UIEXTPROC glProgramUniform1uiEXT;
867extern PFNGLPROGRAMUNIFORM1UIPROC glProgramUniform1ui;
868extern PFNGLPROGRAMUNIFORM1UIVEXTPROC glProgramUniform1uivEXT;
869extern PFNGLPROGRAMUNIFORM1UIVPROC glProgramUniform1uiv;
870extern PFNGLPROGRAMUNIFORM2DEXTPROC glProgramUniform2dEXT;
871extern PFNGLPROGRAMUNIFORM2DPROC glProgramUniform2d;
872extern PFNGLPROGRAMUNIFORM2DVEXTPROC glProgramUniform2dvEXT;
873extern PFNGLPROGRAMUNIFORM2DVPROC glProgramUniform2dv;
874extern PFNGLPROGRAMUNIFORM2FEXTPROC glProgramUniform2fEXT;
875extern PFNGLPROGRAMUNIFORM2FPROC glProgramUniform2f;
876extern PFNGLPROGRAMUNIFORM2FVEXTPROC glProgramUniform2fvEXT;
877extern PFNGLPROGRAMUNIFORM2FVPROC glProgramUniform2fv;
878extern PFNGLPROGRAMUNIFORM2I64ARBPROC glProgramUniform2i64ARB;
879extern PFNGLPROGRAMUNIFORM2I64NVPROC glProgramUniform2i64NV;
880extern PFNGLPROGRAMUNIFORM2I64VARBPROC glProgramUniform2i64vARB;
881extern PFNGLPROGRAMUNIFORM2I64VNVPROC glProgramUniform2i64vNV;
882extern PFNGLPROGRAMUNIFORM2IEXTPROC glProgramUniform2iEXT;
883extern PFNGLPROGRAMUNIFORM2IPROC glProgramUniform2i;
884extern PFNGLPROGRAMUNIFORM2IVEXTPROC glProgramUniform2ivEXT;
885extern PFNGLPROGRAMUNIFORM2IVPROC glProgramUniform2iv;
886extern PFNGLPROGRAMUNIFORM2UI64ARBPROC glProgramUniform2ui64ARB;
887extern PFNGLPROGRAMUNIFORM2UI64NVPROC glProgramUniform2ui64NV;
888extern PFNGLPROGRAMUNIFORM2UI64VARBPROC glProgramUniform2ui64vARB;
889extern PFNGLPROGRAMUNIFORM2UI64VNVPROC glProgramUniform2ui64vNV;
890extern PFNGLPROGRAMUNIFORM2UIEXTPROC glProgramUniform2uiEXT;
891extern PFNGLPROGRAMUNIFORM2UIPROC glProgramUniform2ui;
892extern PFNGLPROGRAMUNIFORM2UIVEXTPROC glProgramUniform2uivEXT;
893extern PFNGLPROGRAMUNIFORM2UIVPROC glProgramUniform2uiv;
894extern PFNGLPROGRAMUNIFORM3DEXTPROC glProgramUniform3dEXT;
895extern PFNGLPROGRAMUNIFORM3DPROC glProgramUniform3d;
896extern PFNGLPROGRAMUNIFORM3DVEXTPROC glProgramUniform3dvEXT;
897extern PFNGLPROGRAMUNIFORM3DVPROC glProgramUniform3dv;
898extern PFNGLPROGRAMUNIFORM3FEXTPROC glProgramUniform3fEXT;
899extern PFNGLPROGRAMUNIFORM3FPROC glProgramUniform3f;
900extern PFNGLPROGRAMUNIFORM3FVEXTPROC glProgramUniform3fvEXT;
901extern PFNGLPROGRAMUNIFORM3FVPROC glProgramUniform3fv;
902extern PFNGLPROGRAMUNIFORM3I64ARBPROC glProgramUniform3i64ARB;
903extern PFNGLPROGRAMUNIFORM3I64NVPROC glProgramUniform3i64NV;
904extern PFNGLPROGRAMUNIFORM3I64VARBPROC glProgramUniform3i64vARB;
905extern PFNGLPROGRAMUNIFORM3I64VNVPROC glProgramUniform3i64vNV;
906extern PFNGLPROGRAMUNIFORM3IEXTPROC glProgramUniform3iEXT;
907extern PFNGLPROGRAMUNIFORM3IPROC glProgramUniform3i;
908extern PFNGLPROGRAMUNIFORM3IVEXTPROC glProgramUniform3ivEXT;
909extern PFNGLPROGRAMUNIFORM3IVPROC glProgramUniform3iv;
910extern PFNGLPROGRAMUNIFORM3UI64ARBPROC glProgramUniform3ui64ARB;
911extern PFNGLPROGRAMUNIFORM3UI64NVPROC glProgramUniform3ui64NV;
912extern PFNGLPROGRAMUNIFORM3UI64VARBPROC glProgramUniform3ui64vARB;
913extern PFNGLPROGRAMUNIFORM3UI64VNVPROC glProgramUniform3ui64vNV;
914extern PFNGLPROGRAMUNIFORM3UIEXTPROC glProgramUniform3uiEXT;
915extern PFNGLPROGRAMUNIFORM3UIPROC glProgramUniform3ui;
916extern PFNGLPROGRAMUNIFORM3UIVEXTPROC glProgramUniform3uivEXT;
917extern PFNGLPROGRAMUNIFORM3UIVPROC glProgramUniform3uiv;
918extern PFNGLPROGRAMUNIFORM4DEXTPROC glProgramUniform4dEXT;
919extern PFNGLPROGRAMUNIFORM4DPROC glProgramUniform4d;
920extern PFNGLPROGRAMUNIFORM4DVEXTPROC glProgramUniform4dvEXT;
921extern PFNGLPROGRAMUNIFORM4DVPROC glProgramUniform4dv;
922extern PFNGLPROGRAMUNIFORM4FEXTPROC glProgramUniform4fEXT;
923extern PFNGLPROGRAMUNIFORM4FPROC glProgramUniform4f;
924extern PFNGLPROGRAMUNIFORM4FVEXTPROC glProgramUniform4fvEXT;
925extern PFNGLPROGRAMUNIFORM4FVPROC glProgramUniform4fv;
926extern PFNGLPROGRAMUNIFORM4I64ARBPROC glProgramUniform4i64ARB;
927extern PFNGLPROGRAMUNIFORM4I64NVPROC glProgramUniform4i64NV;
928extern PFNGLPROGRAMUNIFORM4I64VARBPROC glProgramUniform4i64vARB;
929extern PFNGLPROGRAMUNIFORM4I64VNVPROC glProgramUniform4i64vNV;
930extern PFNGLPROGRAMUNIFORM4IEXTPROC glProgramUniform4iEXT;
931extern PFNGLPROGRAMUNIFORM4IPROC glProgramUniform4i;
932extern PFNGLPROGRAMUNIFORM4IVEXTPROC glProgramUniform4ivEXT;
933extern PFNGLPROGRAMUNIFORM4IVPROC glProgramUniform4iv;
934extern PFNGLPROGRAMUNIFORM4UI64ARBPROC glProgramUniform4ui64ARB;
935extern PFNGLPROGRAMUNIFORM4UI64NVPROC glProgramUniform4ui64NV;
936extern PFNGLPROGRAMUNIFORM4UI64VARBPROC glProgramUniform4ui64vARB;
937extern PFNGLPROGRAMUNIFORM4UI64VNVPROC glProgramUniform4ui64vNV;
938extern PFNGLPROGRAMUNIFORM4UIEXTPROC glProgramUniform4uiEXT;
939extern PFNGLPROGRAMUNIFORM4UIPROC glProgramUniform4ui;
940extern PFNGLPROGRAMUNIFORM4UIVEXTPROC glProgramUniform4uivEXT;
941extern PFNGLPROGRAMUNIFORM4UIVPROC glProgramUniform4uiv;
942extern PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC glProgramUniformHandleui64ARB;
943extern PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC glProgramUniformHandleui64NV;
944extern PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC glProgramUniformHandleui64vARB;
945extern PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC glProgramUniformHandleui64vNV;
946extern PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC glProgramUniformMatrix2dvEXT;
947extern PFNGLPROGRAMUNIFORMMATRIX2DVPROC glProgramUniformMatrix2dv;
948extern PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC glProgramUniformMatrix2fvEXT;
949extern PFNGLPROGRAMUNIFORMMATRIX2FVPROC glProgramUniformMatrix2fv;
950extern PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC glProgramUniformMatrix2x3dvEXT;
951extern PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glProgramUniformMatrix2x3dv;
952extern PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC glProgramUniformMatrix2x3fvEXT;
953extern PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glProgramUniformMatrix2x3fv;
954extern PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC glProgramUniformMatrix2x4dvEXT;
955extern PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glProgramUniformMatrix2x4dv;
956extern PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC glProgramUniformMatrix2x4fvEXT;
957extern PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glProgramUniformMatrix2x4fv;
958extern PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC glProgramUniformMatrix3dvEXT;
959extern PFNGLPROGRAMUNIFORMMATRIX3DVPROC glProgramUniformMatrix3dv;
960extern PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC glProgramUniformMatrix3fvEXT;
961extern PFNGLPROGRAMUNIFORMMATRIX3FVPROC glProgramUniformMatrix3fv;
962extern PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC glProgramUniformMatrix3x2dvEXT;
963extern PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glProgramUniformMatrix3x2dv;
964extern PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC glProgramUniformMatrix3x2fvEXT;
965extern PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glProgramUniformMatrix3x2fv;
966extern PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC glProgramUniformMatrix3x4dvEXT;
967extern PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glProgramUniformMatrix3x4dv;
968extern PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC glProgramUniformMatrix3x4fvEXT;
969extern PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glProgramUniformMatrix3x4fv;
970extern PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC glProgramUniformMatrix4dvEXT;
971extern PFNGLPROGRAMUNIFORMMATRIX4DVPROC glProgramUniformMatrix4dv;
972extern PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC glProgramUniformMatrix4fvEXT;
973extern PFNGLPROGRAMUNIFORMMATRIX4FVPROC glProgramUniformMatrix4fv;
974extern PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC glProgramUniformMatrix4x2dvEXT;
975extern PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glProgramUniformMatrix4x2dv;
976extern PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC glProgramUniformMatrix4x2fvEXT;
977extern PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glProgramUniformMatrix4x2fv;
978extern PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC glProgramUniformMatrix4x3dvEXT;
979extern PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glProgramUniformMatrix4x3dv;
980extern PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC glProgramUniformMatrix4x3fvEXT;
981extern PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glProgramUniformMatrix4x3fv;
982extern PFNGLPROGRAMUNIFORMUI64NVPROC glProgramUniformui64NV;
983extern PFNGLPROGRAMUNIFORMUI64VNVPROC glProgramUniformui64vNV;
984extern PFNGLPROVOKINGVERTEXPROC glProvokingVertex;
985extern PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC glPushClientAttribDefaultEXT;
986extern PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
987extern PFNGLPUSHGROUPMARKEREXTPROC glPushGroupMarkerEXT;
988extern PFNGLQUERYCOUNTERPROC glQueryCounter;
989extern PFNGLRASTERSAMPLESEXTPROC glRasterSamplesEXT;
990extern PFNGLREADBUFFERPROC glReadBuffer;
991extern PFNGLREADNPIXELSARBPROC glReadnPixelsARB;
992extern PFNGLREADNPIXELSPROC glReadnPixels;
993extern PFNGLREADPIXELSPROC glReadPixels;
994extern PFNGLRELEASESHADERCOMPILERPROC glReleaseShaderCompiler;
995extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC glRenderbufferStorageMultisampleCoverageNV;
996extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
997extern PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
998extern PFNGLRESOLVEDEPTHVALUESNVPROC glResolveDepthValuesNV;
999extern PFNGLRESUMETRANSFORMFEEDBACKPROC glResumeTransformFeedback;
1000extern PFNGLSAMPLECOVERAGEPROC glSampleCoverage;
1001extern PFNGLSAMPLEMASKIPROC glSampleMaski;
1002extern PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
1003extern PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
1004extern PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
1005extern PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
1006extern PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
1007extern PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
1008extern PFNGLSCISSORARRAYVPROC glScissorArrayv;
1009extern PFNGLSCISSORINDEXEDPROC glScissorIndexed;
1010extern PFNGLSCISSORINDEXEDVPROC glScissorIndexedv;
1011extern PFNGLSCISSORPROC glScissor;
1012extern PFNGLSECONDARYCOLORFORMATNVPROC glSecondaryColorFormatNV;
1013extern PFNGLSELECTPERFMONITORCOUNTERSAMDPROC glSelectPerfMonitorCountersAMD;
1014extern PFNGLSHADERBINARYPROC glShaderBinary;
1015extern PFNGLSHADERSOURCEPROC glShaderSource;
1016extern PFNGLSHADERSTORAGEBLOCKBINDINGPROC glShaderStorageBlockBinding;
1017extern PFNGLSIGNALVKFENCENVPROC glSignalVkFenceNV;
1018extern PFNGLSIGNALVKSEMAPHORENVPROC glSignalVkSemaphoreNV;
1019extern PFNGLSPECIALIZESHADERARBPROC glSpecializeShaderARB;
1020extern PFNGLSTATECAPTURENVPROC glStateCaptureNV;
1021extern PFNGLSTENCILFILLPATHINSTANCEDNVPROC glStencilFillPathInstancedNV;
1022extern PFNGLSTENCILFILLPATHNVPROC glStencilFillPathNV;
1023extern PFNGLSTENCILFUNCPROC glStencilFunc;
1024extern PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
1025extern PFNGLSTENCILMASKPROC glStencilMask;
1026extern PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate;
1027extern PFNGLSTENCILOPPROC glStencilOp;
1028extern PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate;
1029extern PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC glStencilStrokePathInstancedNV;
1030extern PFNGLSTENCILSTROKEPATHNVPROC glStencilStrokePathNV;
1031extern PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC glStencilThenCoverFillPathInstancedNV;
1032extern PFNGLSTENCILTHENCOVERFILLPATHNVPROC glStencilThenCoverFillPathNV;
1033extern PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC glStencilThenCoverStrokePathInstancedNV;
1034extern PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC glStencilThenCoverStrokePathNV;
1035extern PFNGLSUBPIXELPRECISIONBIASNVPROC glSubpixelPrecisionBiasNV;
1036extern PFNGLTEXBUFFERARBPROC glTexBufferARB;
1037extern PFNGLTEXBUFFERPROC glTexBuffer;
1038extern PFNGLTEXBUFFERRANGEPROC glTexBufferRange;
1039extern PFNGLTEXCOORDFORMATNVPROC glTexCoordFormatNV;
1040extern PFNGLTEXIMAGE1DPROC glTexImage1D;
1041extern PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
1042extern PFNGLTEXIMAGE2DPROC glTexImage2D;
1043extern PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample;
1044extern PFNGLTEXIMAGE3DPROC glTexImage3D;
1045extern PFNGLTEXPAGECOMMITMENTARBPROC glTexPageCommitmentARB;
1046extern PFNGLTEXPARAMETERFPROC glTexParameterf;
1047extern PFNGLTEXPARAMETERFVPROC glTexParameterfv;
1048extern PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
1049extern PFNGLTEXPARAMETERIPROC glTexParameteri;
1050extern PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
1051extern PFNGLTEXPARAMETERIVPROC glTexParameteriv;
1052extern PFNGLTEXSTORAGE1DPROC glTexStorage1D;
1053extern PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
1054extern PFNGLTEXSTORAGE2DPROC glTexStorage2D;
1055extern PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
1056extern PFNGLTEXSTORAGE3DPROC glTexStorage3D;
1057extern PFNGLTEXSUBIMAGE1DPROC glTexSubImage1D;
1058extern PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
1059extern PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
1060extern PFNGLTEXTUREBARRIERNVPROC glTextureBarrierNV;
1061extern PFNGLTEXTUREBARRIERPROC glTextureBarrier;
1062extern PFNGLTEXTUREBUFFEREXTPROC glTextureBufferEXT;
1063extern PFNGLTEXTUREBUFFERPROC glTextureBuffer;
1064extern PFNGLTEXTUREBUFFERRANGEEXTPROC glTextureBufferRangeEXT;
1065extern PFNGLTEXTUREBUFFERRANGEPROC glTextureBufferRange;
1066extern PFNGLTEXTUREIMAGE1DEXTPROC glTextureImage1DEXT;
1067extern PFNGLTEXTUREIMAGE2DEXTPROC glTextureImage2DEXT;
1068extern PFNGLTEXTUREIMAGE3DEXTPROC glTextureImage3DEXT;
1069extern PFNGLTEXTUREPAGECOMMITMENTEXTPROC glTexturePageCommitmentEXT;
1070extern PFNGLTEXTUREPARAMETERFEXTPROC glTextureParameterfEXT;
1071extern PFNGLTEXTUREPARAMETERFPROC glTextureParameterf;
1072extern PFNGLTEXTUREPARAMETERFVEXTPROC glTextureParameterfvEXT;
1073extern PFNGLTEXTUREPARAMETERFVPROC glTextureParameterfv;
1074extern PFNGLTEXTUREPARAMETERIEXTPROC glTextureParameteriEXT;
1075extern PFNGLTEXTUREPARAMETERIIVEXTPROC glTextureParameterIivEXT;
1076extern PFNGLTEXTUREPARAMETERIIVPROC glTextureParameterIiv;
1077extern PFNGLTEXTUREPARAMETERIPROC glTextureParameteri;
1078extern PFNGLTEXTUREPARAMETERIUIVEXTPROC glTextureParameterIuivEXT;
1079extern PFNGLTEXTUREPARAMETERIUIVPROC glTextureParameterIuiv;
1080extern PFNGLTEXTUREPARAMETERIVEXTPROC glTextureParameterivEXT;
1081extern PFNGLTEXTUREPARAMETERIVPROC glTextureParameteriv;
1082extern PFNGLTEXTURERENDERBUFFEREXTPROC glTextureRenderbufferEXT;
1083extern PFNGLTEXTURESTORAGE1DEXTPROC glTextureStorage1DEXT;
1084extern PFNGLTEXTURESTORAGE1DPROC glTextureStorage1D;
1085extern PFNGLTEXTURESTORAGE2DEXTPROC glTextureStorage2DEXT;
1086extern PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC glTextureStorage2DMultisampleEXT;
1087extern PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glTextureStorage2DMultisample;
1088extern PFNGLTEXTURESTORAGE2DPROC glTextureStorage2D;
1089extern PFNGLTEXTURESTORAGE3DEXTPROC glTextureStorage3DEXT;
1090extern PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC glTextureStorage3DMultisampleEXT;
1091extern PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glTextureStorage3DMultisample;
1092extern PFNGLTEXTURESTORAGE3DPROC glTextureStorage3D;
1093extern PFNGLTEXTURESUBIMAGE1DEXTPROC glTextureSubImage1DEXT;
1094extern PFNGLTEXTURESUBIMAGE1DPROC glTextureSubImage1D;
1095extern PFNGLTEXTURESUBIMAGE2DEXTPROC glTextureSubImage2DEXT;
1096extern PFNGLTEXTURESUBIMAGE2DPROC glTextureSubImage2D;
1097extern PFNGLTEXTURESUBIMAGE3DEXTPROC glTextureSubImage3DEXT;
1098extern PFNGLTEXTURESUBIMAGE3DPROC glTextureSubImage3D;
1099extern PFNGLTEXTUREVIEWPROC glTextureView;
1100extern PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glTransformFeedbackBufferBase;
1101extern PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glTransformFeedbackBufferRange;
1102extern PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
1103extern PFNGLTRANSFORMPATHNVPROC glTransformPathNV;
1104extern PFNGLUNIFORM1DPROC glUniform1d;
1105extern PFNGLUNIFORM1DVPROC glUniform1dv;
1106extern PFNGLUNIFORM1FPROC glUniform1f;
1107extern PFNGLUNIFORM1FVPROC glUniform1fv;
1108extern PFNGLUNIFORM1I64ARBPROC glUniform1i64ARB;
1109extern PFNGLUNIFORM1I64NVPROC glUniform1i64NV;
1110extern PFNGLUNIFORM1I64VARBPROC glUniform1i64vARB;
1111extern PFNGLUNIFORM1I64VNVPROC glUniform1i64vNV;
1112extern PFNGLUNIFORM1IPROC glUniform1i;
1113extern PFNGLUNIFORM1IVPROC glUniform1iv;
1114extern PFNGLUNIFORM1UI64ARBPROC glUniform1ui64ARB;
1115extern PFNGLUNIFORM1UI64NVPROC glUniform1ui64NV;
1116extern PFNGLUNIFORM1UI64VARBPROC glUniform1ui64vARB;
1117extern PFNGLUNIFORM1UI64VNVPROC glUniform1ui64vNV;
1118extern PFNGLUNIFORM1UIPROC glUniform1ui;
1119extern PFNGLUNIFORM1UIVPROC glUniform1uiv;
1120extern PFNGLUNIFORM2DPROC glUniform2d;
1121extern PFNGLUNIFORM2DVPROC glUniform2dv;
1122extern PFNGLUNIFORM2FPROC glUniform2f;
1123extern PFNGLUNIFORM2FVPROC glUniform2fv;
1124extern PFNGLUNIFORM2I64ARBPROC glUniform2i64ARB;
1125extern PFNGLUNIFORM2I64NVPROC glUniform2i64NV;
1126extern PFNGLUNIFORM2I64VARBPROC glUniform2i64vARB;
1127extern PFNGLUNIFORM2I64VNVPROC glUniform2i64vNV;
1128extern PFNGLUNIFORM2IPROC glUniform2i;
1129extern PFNGLUNIFORM2IVPROC glUniform2iv;
1130extern PFNGLUNIFORM2UI64ARBPROC glUniform2ui64ARB;
1131extern PFNGLUNIFORM2UI64NVPROC glUniform2ui64NV;
1132extern PFNGLUNIFORM2UI64VARBPROC glUniform2ui64vARB;
1133extern PFNGLUNIFORM2UI64VNVPROC glUniform2ui64vNV;
1134extern PFNGLUNIFORM2UIPROC glUniform2ui;
1135extern PFNGLUNIFORM2UIVPROC glUniform2uiv;
1136extern PFNGLUNIFORM3DPROC glUniform3d;
1137extern PFNGLUNIFORM3DVPROC glUniform3dv;
1138extern PFNGLUNIFORM3FPROC glUniform3f;
1139extern PFNGLUNIFORM3FVPROC glUniform3fv;
1140extern PFNGLUNIFORM3I64ARBPROC glUniform3i64ARB;
1141extern PFNGLUNIFORM3I64NVPROC glUniform3i64NV;
1142extern PFNGLUNIFORM3I64VARBPROC glUniform3i64vARB;
1143extern PFNGLUNIFORM3I64VNVPROC glUniform3i64vNV;
1144extern PFNGLUNIFORM3IPROC glUniform3i;
1145extern PFNGLUNIFORM3IVPROC glUniform3iv;
1146extern PFNGLUNIFORM3UI64ARBPROC glUniform3ui64ARB;
1147extern PFNGLUNIFORM3UI64NVPROC glUniform3ui64NV;
1148extern PFNGLUNIFORM3UI64VARBPROC glUniform3ui64vARB;
1149extern PFNGLUNIFORM3UI64VNVPROC glUniform3ui64vNV;
1150extern PFNGLUNIFORM3UIPROC glUniform3ui;
1151extern PFNGLUNIFORM3UIVPROC glUniform3uiv;
1152extern PFNGLUNIFORM4DPROC glUniform4d;
1153extern PFNGLUNIFORM4DVPROC glUniform4dv;
1154extern PFNGLUNIFORM4FPROC glUniform4f;
1155extern PFNGLUNIFORM4FVPROC glUniform4fv;
1156extern PFNGLUNIFORM4I64ARBPROC glUniform4i64ARB;
1157extern PFNGLUNIFORM4I64NVPROC glUniform4i64NV;
1158extern PFNGLUNIFORM4I64VARBPROC glUniform4i64vARB;
1159extern PFNGLUNIFORM4I64VNVPROC glUniform4i64vNV;
1160extern PFNGLUNIFORM4IPROC glUniform4i;
1161extern PFNGLUNIFORM4IVPROC glUniform4iv;
1162extern PFNGLUNIFORM4UI64ARBPROC glUniform4ui64ARB;
1163extern PFNGLUNIFORM4UI64NVPROC glUniform4ui64NV;
1164extern PFNGLUNIFORM4UI64VARBPROC glUniform4ui64vARB;
1165extern PFNGLUNIFORM4UI64VNVPROC glUniform4ui64vNV;
1166extern PFNGLUNIFORM4UIPROC glUniform4ui;
1167extern PFNGLUNIFORM4UIVPROC glUniform4uiv;
1168extern PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
1169extern PFNGLUNIFORMHANDLEUI64ARBPROC glUniformHandleui64ARB;
1170extern PFNGLUNIFORMHANDLEUI64NVPROC glUniformHandleui64NV;
1171extern PFNGLUNIFORMHANDLEUI64VARBPROC glUniformHandleui64vARB;
1172extern PFNGLUNIFORMHANDLEUI64VNVPROC glUniformHandleui64vNV;
1173extern PFNGLUNIFORMMATRIX2DVPROC glUniformMatrix2dv;
1174extern PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv;
1175extern PFNGLUNIFORMMATRIX2X3DVPROC glUniformMatrix2x3dv;
1176extern PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv;
1177extern PFNGLUNIFORMMATRIX2X4DVPROC glUniformMatrix2x4dv;
1178extern PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv;
1179extern PFNGLUNIFORMMATRIX3DVPROC glUniformMatrix3dv;
1180extern PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv;
1181extern PFNGLUNIFORMMATRIX3X2DVPROC glUniformMatrix3x2dv;
1182extern PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv;
1183extern PFNGLUNIFORMMATRIX3X4DVPROC glUniformMatrix3x4dv;
1184extern PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
1185extern PFNGLUNIFORMMATRIX4DVPROC glUniformMatrix4dv;
1186extern PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
1187extern PFNGLUNIFORMMATRIX4X2DVPROC glUniformMatrix4x2dv;
1188extern PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv;
1189extern PFNGLUNIFORMMATRIX4X3DVPROC glUniformMatrix4x3dv;
1190extern PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv;
1191extern PFNGLUNIFORMSUBROUTINESUIVPROC glUniformSubroutinesuiv;
1192extern PFNGLUNIFORMUI64NVPROC glUniformui64NV;
1193extern PFNGLUNIFORMUI64VNVPROC glUniformui64vNV;
1194extern PFNGLUNMAPBUFFERPROC glUnmapBuffer;
1195extern PFNGLUNMAPNAMEDBUFFEREXTPROC glUnmapNamedBufferEXT;
1196extern PFNGLUNMAPNAMEDBUFFERPROC glUnmapNamedBuffer;
1197extern PFNGLUSEPROGRAMPROC glUseProgram;
1198extern PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages;
1199extern PFNGLUSESHADERPROGRAMEXTPROC glUseShaderProgramEXT;
1200extern PFNGLVALIDATEPROGRAMPIPELINEPROC glValidateProgramPipeline;
1201extern PFNGLVALIDATEPROGRAMPROC glValidateProgram;
1202extern PFNGLVERTEXARRAYATTRIBBINDINGPROC glVertexArrayAttribBinding;
1203extern PFNGLVERTEXARRAYATTRIBFORMATPROC glVertexArrayAttribFormat;
1204extern PFNGLVERTEXARRAYATTRIBIFORMATPROC glVertexArrayAttribIFormat;
1205extern PFNGLVERTEXARRAYATTRIBLFORMATPROC glVertexArrayAttribLFormat;
1206extern PFNGLVERTEXARRAYBINDINGDIVISORPROC glVertexArrayBindingDivisor;
1207extern PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC glVertexArrayBindVertexBufferEXT;
1208extern PFNGLVERTEXARRAYCOLOROFFSETEXTPROC glVertexArrayColorOffsetEXT;
1209extern PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC glVertexArrayEdgeFlagOffsetEXT;
1210extern PFNGLVERTEXARRAYELEMENTBUFFERPROC glVertexArrayElementBuffer;
1211extern PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC glVertexArrayFogCoordOffsetEXT;
1212extern PFNGLVERTEXARRAYINDEXOFFSETEXTPROC glVertexArrayIndexOffsetEXT;
1213extern PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC glVertexArrayMultiTexCoordOffsetEXT;
1214extern PFNGLVERTEXARRAYNORMALOFFSETEXTPROC glVertexArrayNormalOffsetEXT;
1215extern PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC glVertexArraySecondaryColorOffsetEXT;
1216extern PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC glVertexArrayTexCoordOffsetEXT;
1217extern PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC glVertexArrayVertexAttribBindingEXT;
1218extern PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC glVertexArrayVertexAttribDivisorEXT;
1219extern PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC glVertexArrayVertexAttribFormatEXT;
1220extern PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC glVertexArrayVertexAttribIFormatEXT;
1221extern PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC glVertexArrayVertexAttribIOffsetEXT;
1222extern PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC glVertexArrayVertexAttribLFormatEXT;
1223extern PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC glVertexArrayVertexAttribLOffsetEXT;
1224extern PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC glVertexArrayVertexAttribOffsetEXT;
1225extern PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC glVertexArrayVertexBindingDivisorEXT;
1226extern PFNGLVERTEXARRAYVERTEXBUFFERPROC glVertexArrayVertexBuffer;
1227extern PFNGLVERTEXARRAYVERTEXBUFFERSPROC glVertexArrayVertexBuffers;
1228extern PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC glVertexArrayVertexOffsetEXT;
1229extern PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d;
1230extern PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv;
1231extern PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
1232extern PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
1233extern PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s;
1234extern PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv;
1235extern PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d;
1236extern PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv;
1237extern PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f;
1238extern PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
1239extern PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s;
1240extern PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv;
1241extern PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d;
1242extern PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv;
1243extern PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f;
1244extern PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
1245extern PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s;
1246extern PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv;
1247extern PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv;
1248extern PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d;
1249extern PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv;
1250extern PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f;
1251extern PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
1252extern PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv;
1253extern PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv;
1254extern PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv;
1255extern PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv;
1256extern PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub;
1257extern PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv;
1258extern PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv;
1259extern PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv;
1260extern PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s;
1261extern PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv;
1262extern PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv;
1263extern PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv;
1264extern PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv;
1265extern PFNGLVERTEXATTRIBBINDINGPROC glVertexAttribBinding;
1266extern PFNGLVERTEXATTRIBDIVISORARBPROC glVertexAttribDivisorARB;
1267extern PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
1268extern PFNGLVERTEXATTRIBFORMATNVPROC glVertexAttribFormatNV;
1269extern PFNGLVERTEXATTRIBFORMATPROC glVertexAttribFormat;
1270extern PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i;
1271extern PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv;
1272extern PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui;
1273extern PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv;
1274extern PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i;
1275extern PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv;
1276extern PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui;
1277extern PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv;
1278extern PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i;
1279extern PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv;
1280extern PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui;
1281extern PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv;
1282extern PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv;
1283extern PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
1284extern PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
1285extern PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv;
1286extern PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv;
1287extern PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
1288extern PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
1289extern PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv;
1290extern PFNGLVERTEXATTRIBIFORMATNVPROC glVertexAttribIFormatNV;
1291extern PFNGLVERTEXATTRIBIFORMATPROC glVertexAttribIFormat;
1292extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
1293extern PFNGLVERTEXATTRIBL1DPROC glVertexAttribL1d;
1294extern PFNGLVERTEXATTRIBL1DVPROC glVertexAttribL1dv;
1295extern PFNGLVERTEXATTRIBL1I64NVPROC glVertexAttribL1i64NV;
1296extern PFNGLVERTEXATTRIBL1I64VNVPROC glVertexAttribL1i64vNV;
1297extern PFNGLVERTEXATTRIBL1UI64ARBPROC glVertexAttribL1ui64ARB;
1298extern PFNGLVERTEXATTRIBL1UI64NVPROC glVertexAttribL1ui64NV;
1299extern PFNGLVERTEXATTRIBL1UI64VARBPROC glVertexAttribL1ui64vARB;
1300extern PFNGLVERTEXATTRIBL1UI64VNVPROC glVertexAttribL1ui64vNV;
1301extern PFNGLVERTEXATTRIBL2DPROC glVertexAttribL2d;
1302extern PFNGLVERTEXATTRIBL2DVPROC glVertexAttribL2dv;
1303extern PFNGLVERTEXATTRIBL2I64NVPROC glVertexAttribL2i64NV;
1304extern PFNGLVERTEXATTRIBL2I64VNVPROC glVertexAttribL2i64vNV;
1305extern PFNGLVERTEXATTRIBL2UI64NVPROC glVertexAttribL2ui64NV;
1306extern PFNGLVERTEXATTRIBL2UI64VNVPROC glVertexAttribL2ui64vNV;
1307extern PFNGLVERTEXATTRIBL3DPROC glVertexAttribL3d;
1308extern PFNGLVERTEXATTRIBL3DVPROC glVertexAttribL3dv;
1309extern PFNGLVERTEXATTRIBL3I64NVPROC glVertexAttribL3i64NV;
1310extern PFNGLVERTEXATTRIBL3I64VNVPROC glVertexAttribL3i64vNV;
1311extern PFNGLVERTEXATTRIBL3UI64NVPROC glVertexAttribL3ui64NV;
1312extern PFNGLVERTEXATTRIBL3UI64VNVPROC glVertexAttribL3ui64vNV;
1313extern PFNGLVERTEXATTRIBL4DPROC glVertexAttribL4d;
1314extern PFNGLVERTEXATTRIBL4DVPROC glVertexAttribL4dv;
1315extern PFNGLVERTEXATTRIBL4I64NVPROC glVertexAttribL4i64NV;
1316extern PFNGLVERTEXATTRIBL4I64VNVPROC glVertexAttribL4i64vNV;
1317extern PFNGLVERTEXATTRIBL4UI64NVPROC glVertexAttribL4ui64NV;
1318extern PFNGLVERTEXATTRIBL4UI64VNVPROC glVertexAttribL4ui64vNV;
1319extern PFNGLVERTEXATTRIBLFORMATNVPROC glVertexAttribLFormatNV;
1320extern PFNGLVERTEXATTRIBLFORMATPROC glVertexAttribLFormat;
1321extern PFNGLVERTEXATTRIBLPOINTERPROC glVertexAttribLPointer;
1322extern PFNGLVERTEXATTRIBP1UIPROC glVertexAttribP1ui;
1323extern PFNGLVERTEXATTRIBP1UIVPROC glVertexAttribP1uiv;
1324extern PFNGLVERTEXATTRIBP2UIPROC glVertexAttribP2ui;
1325extern PFNGLVERTEXATTRIBP2UIVPROC glVertexAttribP2uiv;
1326extern PFNGLVERTEXATTRIBP3UIPROC glVertexAttribP3ui;
1327extern PFNGLVERTEXATTRIBP3UIVPROC glVertexAttribP3uiv;
1328extern PFNGLVERTEXATTRIBP4UIPROC glVertexAttribP4ui;
1329extern PFNGLVERTEXATTRIBP4UIVPROC glVertexAttribP4uiv;
1330extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
1331extern PFNGLVERTEXBINDINGDIVISORPROC glVertexBindingDivisor;
1332extern PFNGLVERTEXFORMATNVPROC glVertexFormatNV;
1333extern PFNGLVIEWPORTARRAYVPROC glViewportArrayv;
1334extern PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf;
1335extern PFNGLVIEWPORTINDEXEDFVPROC glViewportIndexedfv;
1336extern PFNGLVIEWPORTPOSITIONWSCALENVPROC glViewportPositionWScaleNV;
1337extern PFNGLVIEWPORTPROC glViewport;
1338extern PFNGLVIEWPORTSWIZZLENVPROC glViewportSwizzleNV;
1339extern PFNGLWAITSYNCPROC glWaitSync;
1340extern PFNGLWAITVKSEMAPHORENVPROC glWaitVkSemaphoreNV;
1341extern PFNGLWEIGHTPATHSNVPROC glWeightPathsNV;
1342extern PFNGLWINDOWRECTANGLESEXTPROC glWindowRectanglesEXT;
1383 extern void _ggError(
const std::string& name =
"",
unsigned int line = 0);
1396# define ggError() gg::_ggError(__FILE__, __LINE__)
1410 extern void _ggFBOError(
const std::string& name =
"",
unsigned int line = 0);
1423# define ggFBOError() gg::_ggFBOError(__FILE__, __LINE__)
1425# define ggFBOError()
1435 inline void ggCross(GLfloat* c,
const GLfloat* a,
const GLfloat* b)
1437 c[0] = a[1] * b[2] - a[2] * b[1];
1438 c[1] = a[2] * b[0] - a[0] * b[2];
1439 c[2] = a[0] * b[1] - a[1] * b[0];
1449 inline GLfloat
ggDot3(
const GLfloat* a,
const GLfloat* b)
1451 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
1462 return sqrtf(
ggDot3(a, a));
1474 const GLfloat c[]{ a[0] - b[0], a[1] - b[1], a[2] - b[2], 0.0f };
1514 inline GLfloat
ggDot4(
const GLfloat* a,
const GLfloat* b)
1516 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
1527 return sqrtf(
ggDot4(a, a));
1539 const GLfloat c[]{ a[0] - b[0], a[1] - b[1], a[2] - b[2], a[3] - b[3] };
1594 constexpr GgVector(GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3) :
1595 std::array<GLfloat, 4>{ v0, v1, v2, v3 }
1656 return GgVector{ (*this)[0] + v[0], (*this)[1] + v[1], (*this)[2] + v[2], (*this)[3] + v[3] };
1667 return GgVector{ (*this)[0] + c, (*this)[1] + c, (*this)[2] + c, (*this)[3] + c };
1708 return GgVector{ (*this)[0] - v[0], (*this)[1] - v[1], (*this)[2] - v[2], (*this)[3] - v[3] };
1719 return GgVector{ (*this)[0] - c, (*this)[1] - c, (*this)[2] - c, (*this)[3] - c };
1760 return GgVector{ (*this)[0] * v[0], (*this)[1] * v[1], (*this)[2] * v[2], (*this)[3] * v[3] };
1771 return GgVector{ (*this)[0] * c, (*this)[1] * c, (*this)[2] * c, (*this)[3] * c };
1812 return GgVector{ (*this)[0] / v[0], (*this)[1] / v[1], (*this)[2] / v[2], (*this)[3] / v[3] };
1823 return GgVector{ (*this)[0] / c, (*this)[1] / c, (*this)[2] / c, (*this)[3] / c };
1864 return ggDot3(data(), v.data());
1908 return ggDot4(data(), v.data());
1965 return GgVector{ a + b[0], a + b[1], a + b[2], a + b[3] };
1976 return GgVector{ -v[0], -v[1], -v[2], -v[3] };
1988 return GgVector{ a - b[0], a - b[1], a - b[2], a - b[3] };
2000 return GgVector{ a * b[0], a * b[1], a * b[2], a * b[3] };
2012 return GgVector{ a / b[0], a / b[1], a / b[2], a / b[3] };
2028 ggCross(c.data(), a.data(), b.data());
2041 return ggDot3(a.data(), b.data());
2105 return ggDot4(a.data(), b.data());
2160 void projection(GLfloat* c,
const GLfloat* a,
const GLfloat* b)
const;
2163 void multiply(GLfloat* c,
const GLfloat* a,
const GLfloat* b)
const;
2193 GLfloat m00, GLfloat m01, GLfloat m02, GLfloat m03,
2194 GLfloat m10, GLfloat m11, GLfloat m12, GLfloat m13,
2195 GLfloat m20, GLfloat m21, GLfloat m22, GLfloat m23,
2196 GLfloat m30, GLfloat m31, GLfloat m32, GLfloat m33
2198 std::array<GLfloat, 16>{ m00, m01, m02, m03, m10, m11, m12, m13, m20, m21, m22, m23, m30, m31, m32, m33 }
2208 GgMatrix{ a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15] }
2218 GgMatrix{ c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c }
2272 for (std::size_t i = 0; i < size(); ++i) t[i] = data()[i] + a[i];
2295 for (std::size_t i = 0; i < size(); ++i) data()[i] += a[i];
2319 for (std::size_t i = 0; i < size(); ++i) t[i] = data()[i] - a[i];
2342 for (std::size_t i = 0; i < size(); ++i) data()[i] -= a[i];
2366 multiply(t.data(), data(), a);
2414 multiply(t.data(), data(), i.data());
2520 return loadScale(s[0], s[1], s[2], s[3]);
2619 GLfloat tx, GLfloat ty, GLfloat tz,
2620 GLfloat ux, GLfloat uy, GLfloat uz);
2632 return loadLookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2645 return loadLookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2660 GLfloat bottom, GLfloat top,
2661 GLfloat zNear, GLfloat zFar);
2675 GLfloat bottom, GLfloat top,
2676 GLfloat zNear, GLfloat zFar);
2688 GLfloat zNear, GLfloat zFar);
2781 return translate(t[0], t[1], t[2], t[3]);
2807 return scale(s[0], s[1], s[2]);
2818 return scale(s[0], s[1], s[2], s[3]);
2881 return rotate(r[0], r[1], r[2], a);
2893 return rotate(r[0], r[1], r[2], a);
2904 return rotate(r[0], r[1], r[2], r[3]);
2915 return rotate(r[0], r[1], r[2], r[3]);
2933 GLfloat ex, GLfloat ey, GLfloat ez,
2934 GLfloat tx, GLfloat ty, GLfloat tz,
2935 GLfloat ux, GLfloat uy, GLfloat uz
2952 return lookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2965 return lookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2980 GLfloat left, GLfloat right,
2981 GLfloat bottom, GLfloat top,
2982 GLfloat zNear, GLfloat zFar
3001 GLfloat left, GLfloat right,
3002 GLfloat bottom, GLfloat top,
3003 GLfloat zNear, GLfloat zFar
3020 GLfloat fovy, GLfloat aspect,
3021 GLfloat zNear, GLfloat zFar
3069 projection(c, data(), v);
3080 projection(c, v.data());
3091 projection(c.data(), v);
3102 projection(c.data(), v.data());
3135 std::copy(data(), data() + size(), a);
3225 return m.
loadScale(s[0], s[1], s[2], s[3]);
3344 GLfloat ex, GLfloat ey, GLfloat ez,
3345 GLfloat tx, GLfloat ty, GLfloat tz,
3346 GLfloat ux, GLfloat uy, GLfloat uz
3350 return m.
loadLookat(ex, ey, ez, tx, ty, tz, ux, uy, uz);
3368 return m.
loadLookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
3386 return m.
loadLookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
3401 GLfloat bottom, GLfloat top,
3402 GLfloat zNear, GLfloat zFar)
3420 GLfloat left, GLfloat right,
3421 GLfloat bottom, GLfloat top,
3422 GLfloat zNear, GLfloat zFar
3426 return m.
loadFrustum(left, right, bottom, top, zNear, zFar);
3439 GLfloat fovy, GLfloat aspect,
3440 GLfloat zNear, GLfloat zFar
3486 void multiply(GLfloat* r,
const GLfloat* p,
const GLfloat* q)
const;
3489 void toMatrix(GLfloat* m,
const GLfloat* q)
const;
3492 void toQuaternion(GLfloat* q,
const GLfloat* m)
const;
3495 void slerp(GLfloat* p,
const GLfloat* q,
const GLfloat* r, GLfloat t)
const;
3619 return loadAdd(a[0], a[1], a[2], a[3]);
3630 return loadAdd(v[0], v[1], v[2], v[3]);
3641 return loadAdd(q[0], q[1], q[2], q[3]);
3707 const GLfloat a[]{ x, y, z, w };
3719 return *
this = multiply(a);
3755 const GLfloat a[]{ x, y, z, w };
3767 return *
this =
divide(a);
3815 return add(a[0], a[1], a[2], a[3]);
3826 return add(v[0], v[1], v[2], v[3]);
3837 return add(q[0], q[1], q[2], q[3]);
3863 return subtract(a[0], a[1], a[2], a[3]);
3874 return subtract(v[0], v[1], v[2], v[3]);
3885 return subtract(q[0], q[1], q[2], q[3]);
3899 const GLfloat a[]{ x, y, z, w };
3912 multiply(s.data(), data(), a);
3924 return multiply(v.data());
3935 return multiply(q.data());
3949 const GLfloat a[]{ x, y, z, w };
3963 multiply(s.data(), data(), ia.data());
4103 toQuaternion(data(), a);
4210 return rotate(v[0], v[1], v[2], a);
4221 return rotate(v[0], v[1], v[2], v[3]);
4232 return rotate(1.0f, 0.0f, 0.0f, a);
4243 return rotate(0.0f, 1.0f, 0.0f, a);
4254 return rotate(0.0f, 0.0f, 1.0f, a);
4289 return multiply(r.
loadEuler(heading, pitch, roll));
4300 return euler(e[0], e[1], e[2]);
4314 return euler(e[0], e[1], e[2]);
4327 slerp(data(), a, b, t);
4341 return loadSlerp(q.data(), r.data(), t);
4437 slerp(p.data(), data(), a, t);
4451 slerp(p.data(), data(), q.data(), t);
4511 toMatrix(a, data());
4545 toMatrix(a, c.data());
4681 return q.
loadEuler(heading, pitch, roll);
4730 return ggSlerp(q.data(), r.data(), t);
4743 return ggSlerp(q.data(), a, t);
4756 return ggSlerp(a, q.data(), t);
4851 void region(GLfloat w, GLfloat h);
4864 region(
static_cast<GLfloat
>(w),
static_cast<GLfloat
>(h));
4876 void begin(GLfloat x, GLfloat y);
4887 void motion(GLfloat x, GLfloat y);
4905 void end(GLfloat x, GLfloat y);
4929 return start[direction];
4939 position[0] = start[0];
4940 position[1] = start[1];
4960 return scale[direction];
4970 factor[0] = scale[0];
4971 factor[1] = scale[1];
5016 const std::string& name,
5019 unsigned int height,
5050 const std::string& name,
5051 std::vector<GLubyte>& image,
5071 const GLvoid* image,
5074 GLenum format = GL_RGB,
5075 GLenum type = GL_UNSIGNED_BYTE,
5076 GLenum internal = GL_RGB,
5077 GLenum wrap = GL_CLAMP_TO_EDGE,
5078 bool swizzle =
false
5092 const std::string& name,
5093 GLsizei* pWidth =
nullptr,
5094 GLsizei* pHeight =
nullptr,
5095 GLenum internal = GL_RGBA,
5096 GLenum wrap = GL_CLAMP_TO_EDGE
5111 const GLubyte* hmap,
5117 std::vector<GgVector>& nmap
5131 const std::string& name,
5133 GLsizei* pWidth =
nullptr,
5134 GLsizei* pHeight =
nullptr,
5135 GLenum internal = GL_RGBA
5152 const std::string& vsrc,
5153 const std::string& fsrc =
"",
5154 const std::string& gsrc =
"",
5156 const char*
const* varyings =
nullptr,
5157 const std::string& vtext =
"vertex shader",
5158 const std::string& ftext =
"fragment shader",
5159 const std::string& gtext =
"geometry shader");
5172 const std::string& vert,
5173 const std::string& frag =
"",
5174 const std::string& geom =
"",
5176 const char*
const* varyings =
nullptr
5188 const std::array<std::string, 3>& files,
5190 const char*
const* varyings =
nullptr
5193 return ggLoadShader(files[0], files[1], files[2], nvarying, varyings);
5196#if !defined(__APPLE__)
5205 const std::string& csrc,
5206 const std::string& ctext =
"compute shader"
5247 const GLvoid* image,
5250 GLenum format = GL_RGB,
5251 GLenum type = GL_UNSIGNED_BYTE,
5252 GLenum internal = GL_RGBA,
5253 GLenum wrap = GL_CLAMP_TO_EDGE,
5254 bool swizzle =
false
5256 texture{
ggLoadTexture(image, width, height, format, type, internal, wrap, swizzle) },
5257 size{ width, height }
5278 texture{ o.texture },
5279 size{ o.size[0], o.size[1] }
5289 glBindTexture(GL_TEXTURE_2D, 0);
5290 glDeleteTextures(1, &texture);
5315 glBindTexture(GL_TEXTURE_2D, 0);
5316 glDeleteTextures(1, &texture);
5319 texture = o.texture;
5320 size[0] = o.size[0];
5321 size[1] = o.size[1];
5333 glBindTexture(GL_TEXTURE_2D, texture);
5341 glBindTexture(GL_TEXTURE_2D, 0);
5412 std::shared_ptr<GgTexture> texture;
5436 const GLvoid* image,
5439 GLenum format = GL_RGB,
5440 GLenum type = GL_UNSIGNED_BYTE,
5441 GLenum internal = GL_RGB,
5442 GLenum wrap = GL_CLAMP_TO_EDGE,
5446 load(image, width, height, format, type, internal, wrap, swizzle);
5457 const std::string& name,
5458 GLenum internal = 0,
5459 GLenum wrap = GL_CLAMP_TO_EDGE
5462 load(name, internal, wrap);
5485 const GLvoid* image,
5488 GLenum format = GL_RGB,
5489 GLenum type = GL_UNSIGNED_BYTE,
5490 GLenum internal = GL_RGB,
5491 GLenum wrap = GL_CLAMP_TO_EDGE,
5496 texture = std::make_shared<GgTexture>(image, width, height, format, type, internal, wrap, swizzle);
5507 const std::string& name,
5508 GLenum internal = 0,
5509 GLenum wrap = GL_CLAMP_TO_EDGE
5517 explicit operator bool() const noexcept
5519 return texture !=
nullptr;
5529 return !
static_cast<bool>(*this);
5539 return texture.get();
5549 return texture ? texture->getTexture() : 0;
5559 return texture ? texture->getWidth() : 0;
5569 return texture ? texture->getHeight() : 0;
5579 if (texture) texture->getSize(size);
5589 return texture ? texture->getSize() :
nullptr;
5597 if (texture) texture->bind();
5605 if (texture) texture->unbind();
5618 std::shared_ptr<GgTexture> texture;
5640 const GLubyte* image,
5643 GLenum format = GL_RED,
5645 GLenum internal = GL_RGBA
5649 load(image, width, height, format, nz, internal);
5660 const std::string& name,
5662 GLenum internal = GL_RGBA
5666 load(name, nz, internal);
5687 const GLubyte* hmap,
5690 GLenum format = GL_RED,
5692 GLenum internal = GL_RGBA
5696 std::vector<GgVector> nmap;
5702 texture = std::make_shared<GgTexture>(nmap.data(), width, height, GL_RGBA, GL_FLOAT, internal, GL_REPEAT);
5713 const std::string& name,
5715 GLenum internal = GL_RGBA
5723 explicit operator bool() const noexcept
5725 return texture !=
nullptr;
5735 return !
static_cast<bool>(*this);
5745 return texture.get();
5755 return texture ? texture->getTexture() : 0;
5765 return texture ? texture->getWidth() : 0;
5775 return texture ? texture->getHeight() : 0;
5785 if (texture) texture->getSize(size);
5795 return texture ? texture->getSize() :
nullptr;
5803 if (texture) texture->bind();
5811 if (texture) texture->unbind();
5821 template <
typename T>
5825 const GLenum target;
5828 const GLsizei stride;
5831 const GLsizei count;
5857 buffer{ [] { GLuint buffer; glGenBuffers(1, &buffer);
return buffer; } () }
5860 glBindBuffer(target, buffer);
5861 glBufferData(target, getStride() * count, data, usage);
5896 glBindBuffer(target, 0);
5897 glDeleteBuffers(1, &buffer);
5925 return static_cast<GLsizeiptr
>(stride);
5953 glBindBuffer(target, buffer);
5961 glBindBuffer(target, 0);
5971 glBindBuffer(target, buffer);
5972#if defined(GL_GLES_PROTOTYPES)
5973 return glMapBufferRange(target, 0,
getStride() * count, GL_MAP_WRITE_BIT);
5975 return glMapBuffer(target, GL_WRITE_ONLY);
5986 void*
map(GLint first, GLsizei count)
const
5989 if (count == 0) count =
getCount();
5992 glBindBuffer(target, buffer);
5993 return glMapBufferRange(target,
getStride() * first,
getStride() * count, GL_MAP_WRITE_BIT);
6001 glUnmapBuffer(target);
6011 void send(
const T* data, GLint first, GLsizei count)
const
6014 if (count == 0) count =
getCount();
6018 glBindBuffer(target, buffer);
6029 void read(T* data, GLint first, GLsizei count)
const
6032 if (count == 0) count =
getCount();
6036 glBindBuffer(target, buffer);
6037#if defined(GL_GLES_PROTOTYPES)
6038 const GLsizeiptr begin{
getStride() * first };
6039 const GLsizeiptr range{
getStride() * count };
6040 T*
const source{ glMapBufferRange(target, begin, range, GL_MAP_READ_BIT) };
6041 std::copy(source, source + count, data);
6042 glUnmapBuffer(target);
6056 void copy(GLuint src_buffer, GLint src_first = 0, GLint dst_first = 0, GLsizei count = 0)
const
6059 if (count == 0) count =
getCount();
6066 glBindBuffer(GL_COPY_READ_BUFFER, src_buffer);
6067 glBindBuffer(GL_COPY_WRITE_BUFFER, buffer);
6068 glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER,
6069 stride * src_first, stride * dst_first, stride * count);
6070 glBindBuffer(GL_COPY_WRITE_BUFFER, 0);
6071 glBindBuffer(GL_COPY_READ_BUFFER, 0);
6081 template <
typename T>
6085 std::shared_ptr<GgBuffer<T>> uniform;
6105 load(data, count, usage);
6117 load(data, count, usage);
6134 return uniform->getTarget();
6144 return uniform->getStride();
6154 return uniform->getCount();
6164 return uniform->getBuffer();
6190 return uniform->map();
6200 void*
map(GLint first, GLsizei count)
const
6202 return uniform->map(first, count);
6220 void load(
const T* data, GLsizei count, GLenum usage = GL_STATIC_DRAW)
6226 uniform = std::make_shared<GgBuffer<T>>(GL_UNIFORM_BUFFER,
nullptr, stride, count, usage);
6229 if (data)
send(data, 0,
sizeof(T), 0, count);
6239 void load(
const T& data, GLsizei count, GLenum usage = GL_STATIC_DRAW)
6245 uniform = std::make_shared<GgBuffer<T>>(GL_UNIFORM_BUFFER,
nullptr, stride, count, usage);
6248 fill(&data, 0,
sizeof(T), 0, count);
6263 GLsizei size =
sizeof(T),
6269 if (count == 0) count =
getCount();
6273 const char* source{
reinterpret_cast<const char*
>(data) };
6283 for (GLsizei i = 0; i < count; ++i)
6285 glBufferSubData(target, stride * (first + i) + offset, size, source + size * i);
6301 GLsizei size =
sizeof(T),
6307 if (count == 0) count =
getCount();
6318 for (GLsizei i = 0; i < count; ++i)
6320 glBufferSubData(target, stride * (first + i) + offset, size, data);
6336 GLsizei size =
sizeof(T),
6342 if (count == 0) count =
getCount();
6346 char*
const destination{
reinterpret_cast<char*
>(data) };
6356#if defined(GL_GLES_PROTOTYPES)
6357 const char*
const source{ glMapBufferRange(target, stride * first, stride * count, GL_MAP_READ_BIT) };
6358 for (GLsizei i = 0; i < count; ++i)
6360 const char*
const begin{ source + stride * i + offset };
6361 const char*
const end{ begin + size };
6362 std::copy(begin, end, destination +
sizeof(T) * i);
6364 glUnmapBuffer(target);
6366 for (GLsizei i = 0; i < count; ++i)
6368 glGetBufferSubData(target, stride * (first + i) + offset, size, destination +
sizeof(T) * i);
6383 GLint src_first = 0,
6384 GLint dst_first = 0,
6389 if (count == 0) count =
getCount();
6397 glBindBuffer(GL_COPY_READ_BUFFER, src_buffer);
6398 glBindBuffer(GL_COPY_WRITE_BUFFER,
getBuffer());
6399 for (GLsizei i = 0; i < count; ++i)
6401 glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER,
6402 stride * (src_first + i), stride * (dst_first + i),
sizeof(T));
6404 glBindBuffer(GL_COPY_WRITE_BUFFER, 0);
6405 glBindBuffer(GL_COPY_READ_BUFFER, 0);
6425 vao{ [] { GLuint vao; glGenVertexArrays(1, &vao);
return vao; } () }
6427 glBindVertexArray(vao);
6459 glBindVertexArray(0);
6460 glDeleteVertexArrays(1, &vao);
6486 glBindVertexArray(0);
6487 glDeleteVertexArrays(1, &vao);
6512 glBindVertexArray(vao);
6526 std::shared_ptr<GgVertexArray> object;
6556 virtual explicit operator bool() const noexcept
6558 return object.get() !=
nullptr;
6568 return !
static_cast<bool>(*this);
6578 return object->get();
6607 virtual void draw(GLint first = 0, GLsizei count = 0)
const
6620 std::shared_ptr<GgBuffer<GgVector>> position;
6643 GLenum mode = GL_POINTS,
6644 GLenum usage = GL_STATIC_DRAW
6648 load(pos, countv, usage);
6663 explicit operator bool() const noexcept
6665 return position.get() !=
nullptr;
6675 return !
static_cast<bool>(*this);
6685 return position->getCount();
6695 return position->getBuffer();
6707 position->send(pos, first, count);
6717 void load(
const GgVector* pos, GLsizei count, GLenum usage = GL_STATIC_DRAW);
6725 virtual void draw(GLint first = 0, GLsizei count = 0)
const;
6769 GLfloat px, GLfloat py, GLfloat pz,
6770 GLfloat nx, GLfloat ny, GLfloat nz
6773 normal{ nx, ny, nz, 0.0f }
6784 GgVertex(pos[0], pos[1], pos[2], norm[0], norm[1], norm[2])
6796 std::shared_ptr<GgBuffer<GgVertex>> vertex;
6821 GLenum mode = GL_TRIANGLES,
6822 GLenum usage = GL_STATIC_DRAW
6826 load(vert, count, usage);
6843 return vertex->getCount();
6853 return vertex->getBuffer();
6865 vertex->send(vert, first, count);
6875 void load(
const GgVertex* vert, GLsizei count, GLenum usage = GL_STATIC_DRAW);
6883 virtual void draw(GLint first = 0, GLsizei count = 0)
const;
6893 std::shared_ptr<GgBuffer<GLuint>> index;
6922 GLenum mode = GL_TRIANGLES,
6923 GLenum usage = GL_STATIC_DRAW
6927 load(vert, countv, face, countf, usage);
6943 return index->getCount();
6953 return index->getBuffer();
6970 const GLuint* face =
nullptr,
6976 if (face !=
nullptr && countf > 0) index->send(face, firstf, countf);
6993 GLenum usage = GL_STATIC_DRAW
7000 index = std::make_shared<GgBuffer<GLuint>>(GL_ELEMENT_ARRAY_BUFFER, face,
static_cast<GLsizei
>(
sizeof(GLuint)), countf, usage);
7009 virtual void draw(GLint first = 0, GLsizei count = 0)
const;
7022 extern std::shared_ptr<GgPoints> ggPointsCube(
7024 GLfloat length = 1.0f,
7040 extern std::shared_ptr<GgPoints> ggPointsSphere(
7042 GLfloat radius = 0.5f,
7055 extern std::shared_ptr<GgTriangles> ggRectangle(
7056 GLfloat width = 1.0f,
7057 GLfloat height = 1.0f
7068 extern std::shared_ptr<GgTriangles> ggEllipse(
7069 GLfloat width = 1.0f,
7070 GLfloat height = 1.0f,
7085 extern std::shared_ptr<GgTriangles> ggArraysObj(
7086 const std::string& name,
7087 bool normalize =
false
7101 extern std::shared_ptr<GgElements> ggElementsObj(
7102 const std::string& name,
7103 bool normalize =
false
7118 extern std::shared_ptr<GgElements> ggElementsMesh(
7121 const GLfloat(*pos)[3],
7122 const GLfloat(*norm)[3] =
nullptr
7135 extern std::shared_ptr<GgElements> ggElementsSphere(
7136 GLfloat radius = 1.0f,
7164 const std::string& vert,
7165 const std::string& frag =
"",
7166 const std::string& geom =
"",
7168 const char*
const* varyings =
nullptr
7170 program(
ggLoadShader(vert, frag, geom, nvarying, varyings))
7182 const std::array<std::string, 3>& files,
7184 const char*
const* varyings =
nullptr
7186 GgShader(files[0], files[1], files[2], nvarying, varyings)
7207 program{ o.program }
7219 glDeleteProgram(program);
7246 glDeleteProgram(program);
7249 program = o.program;
7261 glUseProgram(program);
7289 std::shared_ptr<GgShader> shader;
7318 const std::string& vert,
7319 const std::string& frag =
"",
7320 const std::string& geom =
"",
7322 const char*
const* varyings =
nullptr
7326 load(vert, frag, geom, nvarying, varyings);
7337 const std::array<std::string, 3>& files,
7339 const char*
const* varyings =
nullptr
7341 GgPointShader(files[0], files[1], files[2], nvarying, varyings)
7363 const std::string& vert,
7364 const std::string& frag =
"",
7365 const std::string& geom =
"",
7367 const char*
const* varyings =
nullptr
7371 shader = std::make_shared<GgShader>(vert, frag, geom, nvarying, varyings);
7374 const GLuint program(shader->get());
7377 if (program == 0)
return false;
7380 mpLoc = glGetUniformLocation(program,
"mp");
7381 mvLoc = glGetUniformLocation(program,
"mv");
7396 const std::array<std::string, 3>& files,
7398 const char*
const* varyings =
nullptr
7401 return load(files[0], files[1], files[2], nvarying, varyings);
7411 glUniformMatrix4fv(mpLoc, 1, GL_FALSE, mp);
7431 glUniformMatrix4fv(mvLoc, 1, GL_FALSE, mv);
7450 virtual void loadMatrix(
const GLfloat* mp,
const GLfloat* mv)
const
7480 void use(
const GLfloat* mp)
const
7502 void use(
const GLfloat* mp,
const GLfloat* mv)
const
7534 return shader->get();
7568 const std::string& vert,
7569 const std::string& frag =
"",
7570 const std::string& geom =
"",
7572 const char*
const* varyings =
nullptr
7575 load(vert, frag, geom, nvarying, varyings);
7586 const std::array<std::string, 3>& files,
7588 const char*
const* varyings =
nullptr
7620 GgPointShader::operator=(o);
7638 const std::string& vert,
7639 const std::string& frag =
"",
7640 const std::string& geom =
"",
7642 const char*
const* varyings =
nullptr
7654 const std::array<std::string, 3>& files,
7656 const char*
const* varyings =
nullptr
7659 return load(files[0], files[1], files[2], nvarying, varyings);
7671 glUniformMatrix4fv(mnLoc, 1, GL_FALSE, mn);
7712 virtual void loadMatrix(
const GLfloat* mp,
const GLfloat* mv,
const GLfloat* mn)
const
7715 glUniformMatrix4fv(mnLoc, 1, GL_FALSE, mn);
7736 virtual void loadMatrix(
const GLfloat* mp,
const GLfloat* mv)
const
7779 const Light* light =
nullptr,
7781 GLenum usage = GL_STATIC_DRAW
7797 GLenum usage = GL_STATIC_DRAW
7819 GLenum usage = GL_STATIC_DRAW
7843 GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f,
7844 GLint first = 0, GLsizei count = 1
7854 void loadAmbient(
const GgVector& ambient, GLint first = 0, GLsizei count = 1)
const;
7863 void loadAmbient(
const GLfloat* ambient, GLint first = 0, GLsizei count = 1)
const
7880 GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f,
7881 GLint first = 0, GLsizei count = 1
7891 void loadDiffuse(
const GgVector& diffuse, GLint first = 0, GLsizei count = 1)
const;
7900 void loadDiffuse(
const GLfloat* diffuse, GLint first = 0, GLsizei count = 1)
const
7917 GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f,
7918 GLint first = 0, GLsizei count = 1
7928 void loadSpecular(
const GgVector& specular, GLint first = 0, GLsizei count = 1)
const;
7937 void loadSpecular(
const GLfloat* specular, GLint first = 0, GLsizei count = 1)
const
7950 void loadColor(
const Light& color, GLint first = 0, GLsizei count = 1)
const;
7963 GLfloat x, GLfloat y, GLfloat z, GLfloat w = 1.0f,
7964 GLint first = 0, GLsizei count = 1
7974 void loadPosition(
const GgVector& position, GLint first = 0, GLsizei count = 1)
const;
7983 void loadPosition(
const GLfloat* position, GLint first = 0, GLsizei count = 1)
const
8008 void load(
const Light* light, GLint first = 0, GLsizei count = 1)
const
8010 send(light, 0,
sizeof(
Light), first, count);
8020 void load(
const Light& light, GLint first = 0, GLsizei count = 1)
const
8022 load(&light, first, count);
8033 const GLintptr offset(
static_cast<GLintptr
>(
getStride()) * i);
8065 const Material* material =
nullptr,
8067 GLenum usage = GL_STATIC_DRAW
8083 GLenum usage = GL_STATIC_DRAW
8105 GLenum usage = GL_STATIC_DRAW
8129 GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f,
8130 GLint first = 0, GLsizei count = 1
8140 void loadAmbient(
const GgVector& ambient, GLint first = 0, GLsizei count = 1)
const;
8149 void loadAmbient(
const GLfloat* ambient, GLint first = 0, GLsizei count = 1)
const
8166 GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f,
8167 GLint first = 0, GLsizei count = 1
8177 void loadDiffuse(
const GgVector& diffuse, GLint first = 0, GLsizei count = 1)
const;
8186 void loadDiffuse(
const GLfloat* diffuse, GLint first = 0, GLsizei count = 1)
const
8202 void loadAmbientAndDiffuse(
8203 GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f,
8204 GLint first = 0, GLsizei count = 1
8214 void loadAmbientAndDiffuse(
const GgVector& color, GLint first = 0, GLsizei count = 1)
const;
8223 void loadAmbientAndDiffuse(
const GLfloat* color, GLint first = 0, GLsizei count = 1)
const;
8236 GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f,
8237 GLint first = 0, GLsizei count = 1
8247 void loadSpecular(
const GgVector& specular, GLint first = 0, GLsizei count = 1)
const;
8256 void loadSpecular(
const GLfloat* specular, GLint first = 0, GLsizei count = 1)
const
8269 void loadShininess(GLfloat shininess, GLint first = 0, GLsizei count = 1)
const;
8278 void loadShininess(
const GLfloat* shininess, GLint first = 0, GLsizei count = 1)
const;
8287 void load(
const Material* material, GLint first = 0, GLsizei count = 1)
const
8299 void load(
const Material& material, GLint first = 0, GLsizei count = 1)
const
8301 load(&material, first, count);
8312 const GLintptr offset{
static_cast<GLintptr
>(
getStride()) * i };
8333 void use(
const GLfloat* mp,
const GLfloat* mv,
const GLfloat* mn)
const
8360 void use(
const GLfloat* mp,
const GLfloat* mv)
const
8508 use(mp.
get(), &light, i);
8522 extern bool ggLoadSimpleObj(
8523 const std::string& name,
8524 std::vector<std::array<GLuint, 3>>& group,
8525 std::vector<GgSimpleShader::Material>& material,
8526 std::vector<GgVertex>& vert,
8527 bool normalize =
false
8541 extern bool ggLoadSimpleObj(
8542 const std::string& name,
8543 std::vector<std::array<GLuint, 3>>& group,
8544 std::vector<GgSimpleShader::Material>& material,
8545 std::vector<GgVertex>& vert,
8546 std::vector<GLuint>& face,
8547 bool normalize =
false
8556 std::shared_ptr <std::vector<std::array<GLuint, 3>>> group;
8559 std::shared_ptr<GgSimpleShader::MaterialBuffer> material;
8562 std::shared_ptr<GgElements> data;
8572 GgSimpleObj(
const std::string& name,
bool normalize =
false);
8585 explicit operator bool() const noexcept
8587 return data.get() !=
nullptr;
8597 return !
static_cast<bool>(*this);
8616 virtual void draw(GLint first = 0, GLsizei count = 0)
const;
GgBuffer(const GgBuffer< T > &buffer)=delete
void copy(GLuint src_buffer, GLint src_first=0, GLint dst_first=0, GLsizei count=0) const
void read(T *data, GLint first, GLsizei count) const
void send(const T *data, GLint first, GLsizei count) const
GgBuffer(GgBuffer< T > &&o) noexcept
GgBuffer< T > & operator=(const GgBuffer< T > &buffer)=delete
GgBuffer(GLenum target, const T *data, GLsizei stride, GLsizei count, GLenum usage)
const GLsizei & getCount() const
const GLuint & getBuffer() const
void * map(GLint first, GLsizei count) const
const GLuint & getTarget() const
GLsizeiptr getStride() const
const GgTexture * get() const
const GLsizei * getSize() const
GLuint getTexture() const
GLsizei getHeight() const
bool operator!() const noexcept
virtual ~GgColorTexture()
GgColorTexture(const std::string &name, GLenum internal=0, GLenum wrap=GL_CLAMP_TO_EDGE)
void load(const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_RGB, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGB, GLenum wrap=GL_CLAMP_TO_EDGE, bool swizzle=true)
void getSize(GLsizei *size) const
GgColorTexture(const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_RGB, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGB, GLenum wrap=GL_CLAMP_TO_EDGE, bool swizzle=true)
GgElements(const GgVertex *vert, GLsizei countv, const GLuint *face, GLsizei countf, GLenum mode=GL_TRIANGLES, GLenum usage=GL_STATIC_DRAW)
const GLuint & getIndexBuffer() const
void send(const GgVertex *vert, GLuint firstv, GLsizei countv, const GLuint *face=nullptr, GLuint firstf=0, GLsizei countf=0) const
GgElements(GLenum mode=GL_TRIANGLES)
const GLsizei & getIndexCount() const
void load(const GgVertex *vert, GLsizei countv, const GLuint *face, GLsizei countf, GLenum usage=GL_STATIC_DRAW)
GgMatrix & loadNormal(const GgMatrix &m)
GgMatrix translate(const GLfloat *t) const
GgMatrix scale(const GLfloat *s) const
GgMatrix & operator+=(const GLfloat *a)
GgVector operator*(const GgVector &v) const
GgMatrix & loadIdentity()
GgMatrix & loadFrustum(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
GgMatrix & loadTranslate(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
GgMatrix operator+(const GLfloat *a) const
GgMatrix & operator+=(const GgMatrix &m)
GgMatrix & loadLookat(const GLfloat *e, const GLfloat *t, const GLfloat *u)
GgMatrix rotate(const GLfloat *r, GLfloat a) const
void projection(GLfloat *c, const GLfloat *v) const
GgMatrix & operator=(const GLfloat *a)
constexpr GgMatrix(const GLfloat *a)
GgMatrix & loadPerspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar)
GgMatrix operator/(const GLfloat *a) const
GgMatrix rotate(const GgVector &r, GLfloat a) const
GgMatrix operator-(const GLfloat *a) const
void projection(GgVector &c, const GLfloat *v) const
GgMatrix & loadRotate(const GLfloat *r)
GgMatrix & operator/=(const GgMatrix &m)
GgMatrix & operator*=(const GLfloat *a)
GgMatrix lookat(const GgVector &e, const GgVector &t, const GgVector &u) const
GgMatrix lookat(GLfloat ex, GLfloat ey, GLfloat ez, GLfloat tx, GLfloat ty, GLfloat tz, GLfloat ux, GLfloat uy, GLfloat uz) const
GgMatrix & loadTranslate(const GLfloat *t)
GgMatrix & loadRotate(const GLfloat *r, GLfloat a)
GgMatrix & operator=(GgMatrix &&m)=default
GgMatrix & loadInvert(const GLfloat *a)
GgMatrix rotateZ(GLfloat a) const
GgMatrix scale(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f) const
GgMatrix rotateX(GLfloat a) const
GgMatrix translate(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f) const
GgMatrix & loadLookat(const GgVector &e, const GgVector &t, const GgVector &u)
GgMatrix rotate(const GLfloat *r) const
GgMatrix & loadLookat(GLfloat ex, GLfloat ey, GLfloat ez, GLfloat tx, GLfloat ty, GLfloat tz, GLfloat ux, GLfloat uy, GLfloat uz)
GgMatrix & operator=(const GgMatrix &m)=default
GgMatrix & operator*=(const GgMatrix &m)
GgMatrix rotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a) const
GgMatrix(GgMatrix &&m)=default
const GLfloat * get() const
GgMatrix & loadTranslate(const GgVector &t)
GgMatrix & loadRotate(const GgVector &r, GLfloat a)
GgMatrix(const GgMatrix &m)=default
GgMatrix operator+(const GgMatrix &m) const
constexpr GgMatrix(GLfloat c)
GgMatrix & loadRotate(const GgVector &r)
GgMatrix & loadTranspose(const GgMatrix &m)
GgMatrix frustum(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) const
GgMatrix rotate(const GgVector &r) const
GgMatrix rotateY(GLfloat a) const
GgMatrix operator/(const GgMatrix &m) const
GgMatrix & loadInvert(const GgMatrix &m)
GgMatrix operator*(const GgMatrix &m) const
GgMatrix lookat(const GLfloat *e, const GLfloat *t, const GLfloat *u) const
GgMatrix operator-(const GgMatrix &m) const
GgMatrix & loadScale(const GLfloat *s)
GgMatrix operator*(const GLfloat *a) const
GgMatrix & operator-=(const GLfloat *a)
void projection(GLfloat *c, const GgVector &v) const
GgMatrix orthogonal(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) const
GgMatrix & operator/=(const GLfloat *a)
GgMatrix & loadScale(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
GgMatrix & loadRotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a)
GgMatrix & loadRotateX(GLfloat a)
GgMatrix & loadRotateY(GLfloat a)
GgMatrix transpose() const
GgMatrix & loadOrthogonal(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
GgMatrix & loadRotateZ(GLfloat a)
GgMatrix scale(const GgVector &s) const
void get(GLfloat *a) const
GgMatrix & loadTranspose(const GLfloat *a)
GgMatrix translate(const GgVector &t) const
void projection(GgVector &c, const GgVector &v) const
constexpr GgMatrix(GLfloat m00, GLfloat m01, GLfloat m02, GLfloat m03, GLfloat m10, GLfloat m11, GLfloat m12, GLfloat m13, GLfloat m20, GLfloat m21, GLfloat m22, GLfloat m23, GLfloat m30, GLfloat m31, GLfloat m32, GLfloat m33)
GgMatrix & operator-=(const GgMatrix &m)
GgMatrix & loadScale(const GgVector &s)
GgMatrix perspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar) const
GgMatrix & loadNormal(const GLfloat *a)
const GgTexture * get() const
GLuint getTexture() const
GgNormalTexture(const std::string &name, GLfloat nz=1.0f, GLenum internal=GL_RGBA)
GLsizei getHeight() const
GgNormalTexture(const GLubyte *image, GLsizei width, GLsizei height, GLenum format=GL_RED, GLfloat nz=1.0f, GLenum internal=GL_RGBA)
void load(const GLubyte *hmap, GLsizei width, GLsizei height, GLenum format=GL_RED, GLfloat nz=1.0f, GLenum internal=GL_RGBA)
void getSize(GLsizei *size) const
virtual ~GgNormalTexture()
bool operator!() const noexcept
const GLsizei * getSize() const
void use(const GLfloat *mp) const
virtual void loadProjectionMatrix(const GLfloat *mp) const
bool load(const std::string &vert, const std::string &frag="", const std::string &geom="", GLint nvarying=0, const char *const *varyings=nullptr)
virtual void loadMatrix(const GgMatrix &mp, const GgMatrix &mv) const
GgPointShader(const std::array< std::string, 3 > &files, int nvarying=0, const char *const *varyings=nullptr)
virtual void loadProjectionMatrix(const GgMatrix &mp) const
void use(const GgMatrix &mp, const GgMatrix &mv) const
void use(const GgMatrix &mp) const
bool load(const std::array< std::string, 3 > &files, GLint nvarying=0, const char *const *varyings=nullptr)
virtual void loadMatrix(const GLfloat *mp, const GLfloat *mv) const
void use(const GLfloat *mp, const GLfloat *mv) const
GgPointShader(const std::string &vert, const std::string &frag="", const std::string &geom="", GLint nvarying=0, const char *const *varyings=nullptr)
virtual void loadModelviewMatrix(const GLfloat *mv) const
virtual void loadModelviewMatrix(const GgMatrix &mv) const
void send(const GgVector *pos, GLint first=0, GLsizei count=0) const
const GLuint & getBuffer() const
bool operator!() const noexcept
const GLsizei & getCount() const
void load(const GgVector *pos, GLsizei count, GLenum usage=GL_STATIC_DRAW)
GgPoints(const GgVector *pos, GLsizei countv, GLenum mode=GL_POINTS, GLenum usage=GL_STATIC_DRAW)
GgPoints(GLenum mode=GL_POINTS)
GgQuaternion multiply(GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
GgQuaternion rotateY(GLfloat a) const
GgQuaternion multiply(const GgVector &v) const
GgQuaternion divide(const GLfloat *a) const
GgQuaternion divide(GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
GgQuaternion & operator-=(const GLfloat *a)
void getConjugateMatrix(GLfloat *a) const
GgQuaternion & operator+=(const GgVector &v)
GgQuaternion(const GgQuaternion &q)=default
GgQuaternion & loadMatrix(const GgMatrix &m)
GgQuaternion & operator/=(const GgQuaternion &q)
GgQuaternion multiply(const GgQuaternion &q) const
GgQuaternion operator*(const GgQuaternion &q) const
GgQuaternion & loadMultiply(const GgVector &v)
GgQuaternion add(const GLfloat *a) const
GgQuaternion & loadSubtract(const GLfloat *a)
GgQuaternion & loadRotateY(GLfloat a)
GgQuaternion(GgQuaternion &&q)=default
GgQuaternion & loadRotateZ(GLfloat a)
GgQuaternion & loadEuler(GLfloat heading, GLfloat pitch, GLfloat roll)
GgQuaternion divide(const GgQuaternion &q) const
GgQuaternion subtract(GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
GgQuaternion & loadConjugate(const GgQuaternion &q)
GgQuaternion & loadRotate(const GLfloat *v)
GgQuaternion & loadInvert(const GLfloat *a)
GgQuaternion(const GgVector &v)
GgQuaternion & loadEuler(const GLfloat *e)
GgQuaternion operator*(const GgVector &v) const
GgQuaternion & loadAdd(const GgVector &v)
GgQuaternion & loadRotate(const GLfloat *v, GLfloat a)
GgQuaternion & operator*=(const GLfloat *a)
GgQuaternion divide(const GgVector &v) const
GgQuaternion operator+(const GLfloat *a) const
GgQuaternion & loadMultiply(const GgQuaternion &q)
GgQuaternion subtract(const GLfloat *a) const
GgQuaternion & loadIdentity()
GgQuaternion rotateZ(GLfloat a) const
GgQuaternion & operator*=(const GgQuaternion &q)
GgQuaternion subtract(const GgQuaternion &q) const
GgQuaternion add(GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
void getMatrix(GLfloat *a) const
GgQuaternion & loadMultiply(const GLfloat *a)
GgQuaternion & loadMultiply(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
GgQuaternion euler(const GLfloat *e) const
GgQuaternion euler(const GgVector &e) const
void get(GLfloat *a) const
GgQuaternion & loadAdd(const GgQuaternion &q)
GgMatrix getMatrix() const
GgQuaternion operator-(const GgQuaternion &q) const
GgQuaternion & loadRotateX(GLfloat a)
GgQuaternion & loadDivide(const GLfloat *a)
GgQuaternion rotate(const GLfloat *v, GLfloat a) const
GgQuaternion & loadNormalize(const GgQuaternion &q)
GgQuaternion & loadInvert(const GgQuaternion &q)
void getMatrix(GgMatrix &m) const
GgQuaternion operator/(const GgQuaternion &q) const
GgQuaternion & loadRotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a)
GgQuaternion normalize() const
GgQuaternion & loadDivide(const GgQuaternion &q)
GgQuaternion rotate(const GLfloat *v) const
GgQuaternion operator/(const GLfloat *a) const
void getConjugateMatrix(GgMatrix &m) const
GgQuaternion operator-(const GgVector &v) const
GgQuaternion & operator/=(const GgVector &v)
GgQuaternion add(const GgQuaternion &q) const
GgQuaternion & operator-=(const GgQuaternion &q)
GgQuaternion & loadSlerp(const GLfloat *a, const GLfloat *b, GLfloat t)
GgQuaternion & operator+=(const GLfloat *a)
GgQuaternion conjugate() const
GgQuaternion & operator+=(const GgQuaternion &q)
GgQuaternion & operator*=(const GgVector &v)
GgQuaternion rotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a) const
GgQuaternion & loadDivide(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
GgQuaternion operator-(const GLfloat *a) const
GgQuaternion rotateX(GLfloat a) const
GgQuaternion euler(GLfloat heading, GLfloat pitch, GLfloat roll) const
GgQuaternion & loadDivide(const GgVector &v)
GgQuaternion add(const GgVector &v) const
GgQuaternion operator+(const GgQuaternion &q) const
GgQuaternion(const GLfloat *a)
GgMatrix getConjugateMatrix() const
GgQuaternion subtract(const GgVector &v) const
GgQuaternion & operator/=(const GLfloat *a)
GgQuaternion & loadAdd(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
GgQuaternion & loadMatrix(const GLfloat *a)
constexpr GgQuaternion(GLfloat c)
GgQuaternion operator+(const GgVector &v) const
GgQuaternion & operator=(const GgQuaternion &q)=default
GgQuaternion & operator=(const GgVector &v)
GgQuaternion & loadSubtract(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
GgQuaternion invert() const
GgQuaternion slerp(GLfloat *a, GLfloat t) const
GgQuaternion & operator-=(const GgVector &v)
GgQuaternion & loadSubtract(const GgQuaternion &q)
GgQuaternion & loadSlerp(const GgQuaternion &q, const GLfloat *a, GLfloat t)
GgQuaternion & loadSlerp(const GLfloat *a, const GgQuaternion &q, GLfloat t)
GgQuaternion & operator=(const GLfloat *a)
GgQuaternion & operator=(GgQuaternion &&q)=default
GgQuaternion operator/(const GgVector &v) const
GgQuaternion & loadNormalize(const GLfloat *a)
GgQuaternion slerp(const GgQuaternion &q, GLfloat t) const
GgQuaternion & loadConjugate(const GLfloat *a)
GgQuaternion operator*(const GLfloat *a) const
constexpr GgQuaternion(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
GgQuaternion multiply(const GLfloat *a) const
GgQuaternion & loadSlerp(const GgQuaternion &q, const GgQuaternion &r, GLfloat t)
GgQuaternion & loadSubtract(const GgVector &v)
GgQuaternion & loadAdd(const GLfloat *a)
GgShader(GgShader &&o) noexcept
GgShader & operator=(const GgShader &shader)=delete
GgShader(const std::array< std::string, 3 > &files, int nvarying=0, const char *const *varyings=nullptr)
GgShader(const std::string &vert, const std::string &frag="", const std::string &geom="", int nvarying=0, const char *const *varyings=nullptr)
GgShader & operator=(GgShader &&o) noexcept
GgShader(const GgShader &shader)=delete
void setMode(GLenum mode)
const GLenum & getMode() const
virtual bool operator!() const noexcept
const GLuint & get() const
virtual void draw(GLint first=0, GLsizei count=0) const
GgSimpleObj(const std::string &name, bool normalize=false)
const GgTriangles * get() const
virtual ~GgSimpleObj()
デストラクタ.
bool operator!() const noexcept
void loadPosition(const GgVector *position, GLint first=0, GLsizei count=1) const
void loadAmbient(const GLfloat *ambient, GLint first=0, GLsizei count=1) const
void select(GLint i=0) const
LightBuffer(const Light &light, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
void loadSpecular(const GLfloat *specular, GLint first=0, GLsizei count=1) const
void load(const Light &light, GLint first=0, GLsizei count=1) const
void loadPosition(const GLfloat *position, GLint first=0, GLsizei count=1) const
void loadPosition(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f, GLint first=0, GLsizei count=1) const
void loadDiffuse(const GLfloat *diffuse, GLint first=0, GLsizei count=1) const
LightBuffer(GgVector ambient, GgVector diffuse, GgVector specular, GgVector position, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
LightBuffer(const Light *light=nullptr, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
void load(const Light *light, GLint first=0, GLsizei count=1) const
MaterialBuffer(const Material &material, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
void loadSpecular(const GLfloat *specular, GLint first=0, GLsizei count=1) const
void select(GLint i=0) const
void loadAmbient(const GLfloat *ambient, GLint first=0, GLsizei count=1) const
void load(const Material &material, GLint first=0, GLsizei count=1) const
MaterialBuffer(GgVector ambient, GgVector diffuse, GgVector specular, GLfloat shininess, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
virtual ~MaterialBuffer()
void loadDiffuse(const GLfloat *diffuse, GLint first=0, GLsizei count=1) const
MaterialBuffer(const Material *material=nullptr, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
void load(const Material *material, GLint first=0, GLsizei count=1) const
virtual void loadModelviewMatrix(const GgMatrix &mv, const GgMatrix &mn) const
void use(const GgMatrix &mp, const GgMatrix &mv, const GgMatrix &mn, const LightBuffer &light, GLint i=0) const
virtual void loadMatrix(const GLfloat *mp, const GLfloat *mv, const GLfloat *mn) const
virtual void loadModelviewMatrix(const GLfloat *mv) const
GgSimpleShader & operator=(const GgSimpleShader &o)
void use(const GLfloat *mp, const GLfloat *mv, const GLfloat *mn) const
void use(const GLfloat *mp, const GLfloat *mv, const GLfloat *mn, const LightBuffer *light, GLint i=0) const
virtual void loadModelviewMatrix(const GLfloat *mv, const GLfloat *mn) const
GgSimpleShader(const std::array< std::string, 3 > &files, GLint nvarying=0, const char *const *varyings=nullptr)
virtual void loadModelviewMatrix(const GgMatrix &mv) const
void use(const GLfloat *mp, const LightBuffer *light, GLint i=0) const
void use(const GgMatrix &mp, const GgMatrix &mv, const LightBuffer &light, GLint i=0) const
virtual void loadMatrix(const GgMatrix &mp, const GgMatrix &mv, const GgMatrix &mn) const
GgSimpleShader(const GgSimpleShader &o)
virtual void loadMatrix(const GgMatrix &mp, const GgMatrix &mv) const
GgSimpleShader(const std::string &vert, const std::string &frag="", const std::string &geom="", GLint nvarying=0, const char *const *varyings=nullptr)
void use(const GgMatrix &mp, const GgMatrix &mv) const
void use(const GgMatrix &mp, const GgMatrix &mv, const GgMatrix &mn) const
void use(const LightBuffer *light, GLint i=0) const
virtual void loadMatrix(const GLfloat *mp, const GLfloat *mv) const
bool load(const std::string &vert, const std::string &frag="", const std::string &geom="", GLint nvarying=0, const char *const *varyings=nullptr)
bool load(const std::array< std::string, 3 > &files, GLint nvarying=0, const char *const *varyings=nullptr)
void use(const GLfloat *mp, const GLfloat *mv, const LightBuffer *light, GLint i=0) const
virtual ~GgSimpleShader()
void use(const LightBuffer &light, GLint i=0) const
void use(const GLfloat *mp, const GLfloat *mv) const
void use(const GgMatrix &mp, const LightBuffer &light, GLint i=0) const
const GLsizei & getWidth() const
const GLuint & getTexture() const
GgTexture(const GgTexture &texture)=delete
GgTexture & operator=(const GgTexture &texture)=delete
const GLsizei & getHeight() const
void swapRandB(bool swizzle) const
GgTexture(const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_RGB, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGBA, GLenum wrap=GL_CLAMP_TO_EDGE, bool swizzle=false)
GgTexture & operator=(GgTexture &&o) noexcept
GgTexture(GgTexture &&o) noexcept
const GLsizei * getSize() const
void getSize(GLsizei *size) const
const GLfloat * getStart() const
const GgMatrix & getMatrix() const
const GLfloat * get() const
void end(GLfloat x, GLfloat y)
const GLfloat getScale(int direction) const
const GgQuaternion & getQuaternion() const
const GLfloat * getScale() const
GgTrackball(const GgQuaternion &q=ggIdentityQuaternion())
void motion(GLfloat x, GLfloat y)
GgTrackball & operator=(const GgQuaternion &q)
void begin(GLfloat x, GLfloat y)
void reset(const GgQuaternion &q=ggIdentityQuaternion())
void getScale(GLfloat *factor) const
void region(GLfloat w, GLfloat h)
const GLfloat & getStart(int direction) const
void rotate(const GgQuaternion &q)
void getStart(GLfloat *position) const
void region(int w, int h)
const GLsizei & getCount() const
void load(const GgVertex *vert, GLsizei count, GLenum usage=GL_STATIC_DRAW)
GgTriangles(GLenum mode=GL_TRIANGLES)
void send(const GgVertex *vert, GLint first=0, GLsizei count=0) const
const GLuint & getBuffer() const
GgTriangles(const GgVertex *vert, GLsizei count, GLenum mode=GL_TRIANGLES, GLenum usage=GL_STATIC_DRAW)
constexpr GgVector operator+(GLfloat c) const noexcept
constexpr GgVector operator*(const GgVector &v) const noexcept
constexpr GgVector operator-(const GgVector &v) const noexcept
constexpr GgVector operator-(GLfloat c) const noexcept
GgVector & operator=(GgVector &&v)=default
constexpr GgVector & operator+=(GLfloat c) noexcept
constexpr GgVector operator+(const GgVector &v) const noexcept
constexpr GgVector operator/(const GgVector &v) const noexcept
GgVector(const GgVector &v)=default
constexpr GgVector operator/(GLfloat c) const noexcept
GgVector normalize3() const
constexpr GgVector & operator*=(const GgVector &v) noexcept
constexpr GgVector & operator/=(GLfloat c) noexcept
GLfloat distance3(const GgVector &v) const
GLfloat dot3(const GgVector &v) const
constexpr GgVector & operator+=(const GgVector &v) noexcept
GLfloat distance4(const GgVector &v) const
GgVector & operator=(const GgVector &v)=default
constexpr GgVector(GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
constexpr GgVector & operator/=(const GgVector &v) noexcept
GgVector normalize4() const
constexpr GgVector(const GLfloat *a)
constexpr GgVector(GLfloat c)
constexpr GgVector & operator*=(GLfloat c) noexcept
GLfloat dot4(const GgVector &v) const
constexpr GgVector operator*(GLfloat c) const noexcept
GgVector(GgVector &&v)=default
constexpr GgVector & operator-=(GLfloat c) noexcept
constexpr GgVector & operator-=(const GgVector &v) noexcept
GgVertexArray & operator=(GgVertexArray &&o) noexcept
const GLuint & get() const
GgVertexArray(GgVertexArray &&o) noexcept
GgVertexArray & operator=(const GgVertexArray &array)=delete
GgVertexArray(const GgVertexArray &array)=delete
GgVertexArray(GLenum mode=0)
std::string TCharToUtf8(const pathString &cstring)
pathString Utf8ToTChar(const std::string &string)
GgMatrix ggQuaternionTransposeMatrix(const GgQuaternion &q)
GgMatrix ggScale(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
GLuint ggCreateShader(const std::string &vsrc, const std::string &fsrc="", const std::string &gsrc="", GLint nvarying=0, const char *const *varyings=nullptr, const std::string &vtext="vertex shader", const std::string &ftext="fragment shader", const std::string >ext="geometry shader")
GgMatrix ggRotateZ(GLfloat a)
GgQuaternion ggSlerp(const GLfloat *a, const GLfloat *b, GLfloat t)
GLfloat ggDistance3(const GLfloat *a, const GLfloat *b)
GgMatrix ggTranslate(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
const GgVector & operator+(const GgVector &v)
bool ggSaveDepth(const std::string &name)
const GgVector operator-(const GgVector &v)
GgMatrix ggLookat(GLfloat ex, GLfloat ey, GLfloat ez, GLfloat tx, GLfloat ty, GLfloat tz, GLfloat ux, GLfloat uy, GLfloat uz)
void ggCreateNormalMap(const GLubyte *hmap, GLsizei width, GLsizei height, GLenum format, GLfloat nz, GLenum internal, std::vector< GgVector > &nmap)
GLfloat ggLength4(const GLfloat *a)
GLfloat ggDot4(const GLfloat *a, const GLfloat *b)
GgMatrix ggNormal(const GgMatrix &m)
GgMatrix ggRotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a)
GLint ggBufferAlignment
使用している GPU のバッファアライメント.
void ggCross(GLfloat *c, const GLfloat *a, const GLfloat *b)
GgVector operator/(GLfloat a, const GgVector &b)
void _ggError(const std::string &name="", unsigned int line=0)
GLfloat ggDot3(const GLfloat *a, const GLfloat *b)
GLuint ggLoadHeight(const std::string &name, GLfloat nz, GLsizei *pWidth=nullptr, GLsizei *pHeight=nullptr, GLenum internal=GL_RGBA)
void ggNormalize4(const GLfloat *a, GLfloat *b)
GgMatrix ggFrustum(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
GgQuaternion ggRotateQuaternion(GLfloat x, GLfloat y, GLfloat z, GLfloat a)
bool ggSaveColor(const std::string &name)
void _ggFBOError(const std::string &name="", unsigned int line=0)
GgVector operator*(GLfloat a, const GgVector &b)
GgQuaternion ggConjugate(const GgQuaternion &q)
GgMatrix ggPerspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar)
GLfloat ggLength3(const GLfloat *a)
GgMatrix ggTranspose(const GgMatrix &m)
GLfloat ggDistance4(const GLfloat *a, const GLfloat *b)
GgQuaternion ggNormalize(const GgQuaternion &q)
GgQuaternion ggEulerQuaternion(GLfloat heading, GLfloat pitch, GLfloat roll)
GgMatrix ggQuaternionMatrix(const GgQuaternion &q)
GgMatrix ggOrthogonal(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
GLuint ggLoadTexture(const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_RGB, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGB, GLenum wrap=GL_CLAMP_TO_EDGE, bool swizzle=false)
GLuint ggLoadImage(const std::string &name, GLsizei *pWidth=nullptr, GLsizei *pHeight=nullptr, GLenum internal=GL_RGBA, GLenum wrap=GL_CLAMP_TO_EDGE)
GLuint ggLoadComputeShader(const std::string &comp)
GgQuaternion ggMatrixQuaternion(const GLfloat *a)
GLfloat ggNorm(const GgQuaternion &q)
GgMatrix ggRotateY(GLfloat a)
GgMatrix ggRotateX(GLfloat a)
GLuint ggLoadShader(const std::string &vert, const std::string &frag="", const std::string &geom="", GLint nvarying=0, const char *const *varyings=nullptr)
void ggNormalize3(const GLfloat *a, GLfloat *b)
bool ggReadImage(const std::string &name, std::vector< GLubyte > &image, GLsizei *pWidth, GLsizei *pHeight, GLenum *pFormat)
GLuint ggCreateComputeShader(const std::string &csrc, const std::string &ctext="compute shader")
bool ggSaveTga(const std::string &name, const void *buffer, unsigned int width, unsigned int height, unsigned int depth)
@ MaterialBindingPoint
材質の uniform buffer object の結合ポイント.
@ LightBindingPoint
光源の uniform buffer object の結合ポイント.
GgMatrix ggInvert(const GgMatrix &m)
GgQuaternion ggIdentityQuaternion()
GgVector ambient
光源強度の環境光成分.
GgVector diffuse
光源強度の拡散反射光成分.
GgVector specular
光源強度の鏡面反射光成分.
GgVector ambient
環境光に対する反射係数.
GgVertex(GLfloat px, GLfloat py, GLfloat pz, GLfloat nx, GLfloat ny, GLfloat nz)
GgVertex(const GgVector &pos, const GgVector &norm)
GgVertex(const GLfloat *pos, const GLfloat *norm)