37 #if defined(__APPLE__)
38 # define GL_SILENCE_DEPRECATION
42 #define GLFW_INCLUDE_GLCOREARB
43 #include <GLFW/glfw3.h>
47 # pragma warning(disable:4996)
48 # define _USE_MATH_DEFINES
57 #if !defined(GL3_PROTOTYPES)
58 extern PFNGLACTIVEPROGRAMEXTPROC glActiveProgramEXT;
59 extern PFNGLACTIVESHADERPROGRAMPROC glActiveShaderProgram;
60 extern PFNGLACTIVETEXTUREPROC glActiveTexture;
61 extern PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC glApplyFramebufferAttachmentCMAAINTEL;
62 extern PFNGLATTACHSHADERPROC glAttachShader;
63 extern PFNGLBEGINCONDITIONALRENDERNVPROC glBeginConditionalRenderNV;
64 extern PFNGLBEGINCONDITIONALRENDERPROC glBeginConditionalRender;
65 extern PFNGLBEGINPERFMONITORAMDPROC glBeginPerfMonitorAMD;
66 extern PFNGLBEGINPERFQUERYINTELPROC glBeginPerfQueryINTEL;
67 extern PFNGLBEGINQUERYINDEXEDPROC glBeginQueryIndexed;
68 extern PFNGLBEGINQUERYPROC glBeginQuery;
69 extern PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
70 extern PFNGLBINDATTRIBLOCATIONPROC glBindAttribLocation;
71 extern PFNGLBINDBUFFERBASEPROC glBindBufferBase;
72 extern PFNGLBINDBUFFERPROC glBindBuffer;
73 extern PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
74 extern PFNGLBINDBUFFERSBASEPROC glBindBuffersBase;
75 extern PFNGLBINDBUFFERSRANGEPROC glBindBuffersRange;
76 extern PFNGLBINDFRAGDATALOCATIONINDEXEDPROC glBindFragDataLocationIndexed;
77 extern PFNGLBINDFRAGDATALOCATIONPROC glBindFragDataLocation;
78 extern PFNGLBINDFRAMEBUFFERPROC glBindFramebuffer;
79 extern PFNGLBINDIMAGETEXTUREPROC glBindImageTexture;
80 extern PFNGLBINDIMAGETEXTURESPROC glBindImageTextures;
81 extern PFNGLBINDMULTITEXTUREEXTPROC glBindMultiTextureEXT;
82 extern PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline;
83 extern PFNGLBINDRENDERBUFFERPROC glBindRenderbuffer;
84 extern PFNGLBINDSAMPLERPROC glBindSampler;
85 extern PFNGLBINDSAMPLERSPROC glBindSamplers;
86 extern PFNGLBINDTEXTUREPROC glBindTexture;
87 extern PFNGLBINDTEXTURESPROC glBindTextures;
88 extern PFNGLBINDTEXTUREUNITPROC glBindTextureUnit;
89 extern PFNGLBINDTRANSFORMFEEDBACKPROC glBindTransformFeedback;
90 extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
91 extern PFNGLBINDVERTEXBUFFERPROC glBindVertexBuffer;
92 extern PFNGLBINDVERTEXBUFFERSPROC glBindVertexBuffers;
93 extern PFNGLBLENDBARRIERKHRPROC glBlendBarrierKHR;
94 extern PFNGLBLENDBARRIERNVPROC glBlendBarrierNV;
95 extern PFNGLBLENDCOLORPROC glBlendColor;
96 extern PFNGLBLENDEQUATIONIARBPROC glBlendEquationiARB;
97 extern PFNGLBLENDEQUATIONIPROC glBlendEquationi;
98 extern PFNGLBLENDEQUATIONPROC glBlendEquation;
99 extern PFNGLBLENDEQUATIONSEPARATEIARBPROC glBlendEquationSeparateiARB;
100 extern PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
101 extern PFNGLBLENDEQUATIONSEPARATEPROC glBlendEquationSeparate;
102 extern PFNGLBLENDFUNCIARBPROC glBlendFunciARB;
103 extern PFNGLBLENDFUNCIPROC glBlendFunci;
104 extern PFNGLBLENDFUNCPROC glBlendFunc;
105 extern PFNGLBLENDFUNCSEPARATEIARBPROC glBlendFuncSeparateiARB;
106 extern PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
107 extern PFNGLBLENDFUNCSEPARATEPROC glBlendFuncSeparate;
108 extern PFNGLBLENDPARAMETERINVPROC glBlendParameteriNV;
109 extern PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
110 extern PFNGLBLITNAMEDFRAMEBUFFERPROC glBlitNamedFramebuffer;
111 extern PFNGLBUFFERADDRESSRANGENVPROC glBufferAddressRangeNV;
112 extern PFNGLBUFFERDATAPROC glBufferData;
113 extern PFNGLBUFFERPAGECOMMITMENTARBPROC glBufferPageCommitmentARB;
114 extern PFNGLBUFFERSTORAGEPROC glBufferStorage;
115 extern PFNGLBUFFERSUBDATAPROC glBufferSubData;
116 extern PFNGLCALLCOMMANDLISTNVPROC glCallCommandListNV;
117 extern PFNGLCHECKFRAMEBUFFERSTATUSPROC glCheckFramebufferStatus;
118 extern PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC glCheckNamedFramebufferStatusEXT;
119 extern PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC glCheckNamedFramebufferStatus;
120 extern PFNGLCLAMPCOLORPROC glClampColor;
121 extern PFNGLCLEARBUFFERDATAPROC glClearBufferData;
122 extern PFNGLCLEARBUFFERFIPROC glClearBufferfi;
123 extern PFNGLCLEARBUFFERFVPROC glClearBufferfv;
124 extern PFNGLCLEARBUFFERIVPROC glClearBufferiv;
125 extern PFNGLCLEARBUFFERSUBDATAPROC glClearBufferSubData;
126 extern PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
127 extern PFNGLCLEARCOLORPROC glClearColor;
128 extern PFNGLCLEARDEPTHFPROC glClearDepthf;
129 extern PFNGLCLEARDEPTHPROC glClearDepth;
130 extern PFNGLCLEARNAMEDBUFFERDATAEXTPROC glClearNamedBufferDataEXT;
131 extern PFNGLCLEARNAMEDBUFFERDATAPROC glClearNamedBufferData;
132 extern PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC glClearNamedBufferSubDataEXT;
133 extern PFNGLCLEARNAMEDBUFFERSUBDATAPROC glClearNamedBufferSubData;
134 extern PFNGLCLEARNAMEDFRAMEBUFFERFIPROC glClearNamedFramebufferfi;
135 extern PFNGLCLEARNAMEDFRAMEBUFFERFVPROC glClearNamedFramebufferfv;
136 extern PFNGLCLEARNAMEDFRAMEBUFFERIVPROC glClearNamedFramebufferiv;
137 extern PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC glClearNamedFramebufferuiv;
138 extern PFNGLCLEARPROC glClear;
139 extern PFNGLCLEARSTENCILPROC glClearStencil;
140 extern PFNGLCLEARTEXIMAGEPROC glClearTexImage;
141 extern PFNGLCLEARTEXSUBIMAGEPROC glClearTexSubImage;
142 extern PFNGLCLIENTATTRIBDEFAULTEXTPROC glClientAttribDefaultEXT;
143 extern PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
144 extern PFNGLCLIPCONTROLPROC glClipControl;
145 extern PFNGLCOLORFORMATNVPROC glColorFormatNV;
146 extern PFNGLCOLORMASKIPROC glColorMaski;
147 extern PFNGLCOLORMASKPROC glColorMask;
148 extern PFNGLCOMMANDLISTSEGMENTSNVPROC glCommandListSegmentsNV;
149 extern PFNGLCOMPILECOMMANDLISTNVPROC glCompileCommandListNV;
150 extern PFNGLCOMPILESHADERINCLUDEARBPROC glCompileShaderIncludeARB;
151 extern PFNGLCOMPILESHADERPROC glCompileShader;
152 extern PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC glCompressedMultiTexImage1DEXT;
153 extern PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC glCompressedMultiTexImage2DEXT;
154 extern PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC glCompressedMultiTexImage3DEXT;
155 extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC glCompressedMultiTexSubImage1DEXT;
156 extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC glCompressedMultiTexSubImage2DEXT;
157 extern PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC glCompressedMultiTexSubImage3DEXT;
158 extern PFNGLCOMPRESSEDTEXIMAGE1DPROC glCompressedTexImage1D;
159 extern PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2D;
160 extern PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
161 extern PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC glCompressedTexSubImage1D;
162 extern PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2D;
163 extern PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
164 extern PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC glCompressedTextureImage1DEXT;
165 extern PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC glCompressedTextureImage2DEXT;
166 extern PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC glCompressedTextureImage3DEXT;
167 extern PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC glCompressedTextureSubImage1DEXT;
168 extern PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC glCompressedTextureSubImage1D;
169 extern PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC glCompressedTextureSubImage2DEXT;
170 extern PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC glCompressedTextureSubImage2D;
171 extern PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC glCompressedTextureSubImage3DEXT;
172 extern PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC glCompressedTextureSubImage3D;
173 extern PFNGLCONSERVATIVERASTERPARAMETERFNVPROC glConservativeRasterParameterfNV;
174 extern PFNGLCONSERVATIVERASTERPARAMETERINVPROC glConservativeRasterParameteriNV;
175 extern PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData;
176 extern PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
177 extern PFNGLCOPYMULTITEXIMAGE1DEXTPROC glCopyMultiTexImage1DEXT;
178 extern PFNGLCOPYMULTITEXIMAGE2DEXTPROC glCopyMultiTexImage2DEXT;
179 extern PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC glCopyMultiTexSubImage1DEXT;
180 extern PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC glCopyMultiTexSubImage2DEXT;
181 extern PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC glCopyMultiTexSubImage3DEXT;
182 extern PFNGLCOPYNAMEDBUFFERSUBDATAPROC glCopyNamedBufferSubData;
183 extern PFNGLCOPYPATHNVPROC glCopyPathNV;
184 extern PFNGLCOPYTEXIMAGE1DPROC glCopyTexImage1D;
185 extern PFNGLCOPYTEXIMAGE2DPROC glCopyTexImage2D;
186 extern PFNGLCOPYTEXSUBIMAGE1DPROC glCopyTexSubImage1D;
187 extern PFNGLCOPYTEXSUBIMAGE2DPROC glCopyTexSubImage2D;
188 extern PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
189 extern PFNGLCOPYTEXTUREIMAGE1DEXTPROC glCopyTextureImage1DEXT;
190 extern PFNGLCOPYTEXTUREIMAGE2DEXTPROC glCopyTextureImage2DEXT;
191 extern PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC glCopyTextureSubImage1DEXT;
192 extern PFNGLCOPYTEXTURESUBIMAGE1DPROC glCopyTextureSubImage1D;
193 extern PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC glCopyTextureSubImage2DEXT;
194 extern PFNGLCOPYTEXTURESUBIMAGE2DPROC glCopyTextureSubImage2D;
195 extern PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC glCopyTextureSubImage3DEXT;
196 extern PFNGLCOPYTEXTURESUBIMAGE3DPROC glCopyTextureSubImage3D;
197 extern PFNGLCOVERAGEMODULATIONNVPROC glCoverageModulationNV;
198 extern PFNGLCOVERAGEMODULATIONTABLENVPROC glCoverageModulationTableNV;
199 extern PFNGLCOVERFILLPATHINSTANCEDNVPROC glCoverFillPathInstancedNV;
200 extern PFNGLCOVERFILLPATHNVPROC glCoverFillPathNV;
201 extern PFNGLCOVERSTROKEPATHINSTANCEDNVPROC glCoverStrokePathInstancedNV;
202 extern PFNGLCOVERSTROKEPATHNVPROC glCoverStrokePathNV;
203 extern PFNGLCREATEBUFFERSPROC glCreateBuffers;
204 extern PFNGLCREATECOMMANDLISTSNVPROC glCreateCommandListsNV;
205 extern PFNGLCREATEFRAMEBUFFERSPROC glCreateFramebuffers;
206 extern PFNGLCREATEPERFQUERYINTELPROC glCreatePerfQueryINTEL;
207 extern PFNGLCREATEPROGRAMPIPELINESPROC glCreateProgramPipelines;
208 extern PFNGLCREATEPROGRAMPROC glCreateProgram;
209 extern PFNGLCREATEQUERIESPROC glCreateQueries;
210 extern PFNGLCREATERENDERBUFFERSPROC glCreateRenderbuffers;
211 extern PFNGLCREATESAMPLERSPROC glCreateSamplers;
212 extern PFNGLCREATESHADERPROC glCreateShader;
213 extern PFNGLCREATESHADERPROGRAMEXTPROC glCreateShaderProgramEXT;
214 extern PFNGLCREATESHADERPROGRAMVPROC glCreateShaderProgramv;
215 extern PFNGLCREATESTATESNVPROC glCreateStatesNV;
216 extern PFNGLCREATESYNCFROMCLEVENTARBPROC glCreateSyncFromCLeventARB;
217 extern PFNGLCREATETEXTURESPROC glCreateTextures;
218 extern PFNGLCREATETRANSFORMFEEDBACKSPROC glCreateTransformFeedbacks;
219 extern PFNGLCREATEVERTEXARRAYSPROC glCreateVertexArrays;
220 extern PFNGLCULLFACEPROC glCullFace;
221 extern PFNGLDEBUGMESSAGECALLBACKARBPROC glDebugMessageCallbackARB;
222 extern PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
223 extern PFNGLDEBUGMESSAGECONTROLARBPROC glDebugMessageControlARB;
224 extern PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
225 extern PFNGLDEBUGMESSAGEINSERTARBPROC glDebugMessageInsertARB;
226 extern PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
227 extern PFNGLDELETEBUFFERSPROC glDeleteBuffers;
228 extern PFNGLDELETECOMMANDLISTSNVPROC glDeleteCommandListsNV;
229 extern PFNGLDELETEFRAMEBUFFERSPROC glDeleteFramebuffers;
230 extern PFNGLDELETENAMEDSTRINGARBPROC glDeleteNamedStringARB;
231 extern PFNGLDELETEPATHSNVPROC glDeletePathsNV;
232 extern PFNGLDELETEPERFMONITORSAMDPROC glDeletePerfMonitorsAMD;
233 extern PFNGLDELETEPERFQUERYINTELPROC glDeletePerfQueryINTEL;
234 extern PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines;
235 extern PFNGLDELETEPROGRAMPROC glDeleteProgram;
236 extern PFNGLDELETEQUERIESPROC glDeleteQueries;
237 extern PFNGLDELETERENDERBUFFERSPROC glDeleteRenderbuffers;
238 extern PFNGLDELETESAMPLERSPROC glDeleteSamplers;
239 extern PFNGLDELETESHADERPROC glDeleteShader;
240 extern PFNGLDELETESTATESNVPROC glDeleteStatesNV;
241 extern PFNGLDELETESYNCPROC glDeleteSync;
242 extern PFNGLDELETETEXTURESPROC glDeleteTextures;
243 extern PFNGLDELETETRANSFORMFEEDBACKSPROC glDeleteTransformFeedbacks;
244 extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
245 extern PFNGLDEPTHFUNCPROC glDepthFunc;
246 extern PFNGLDEPTHMASKPROC glDepthMask;
247 extern PFNGLDEPTHRANGEARRAYVPROC glDepthRangeArrayv;
248 extern PFNGLDEPTHRANGEFPROC glDepthRangef;
249 extern PFNGLDEPTHRANGEINDEXEDPROC glDepthRangeIndexed;
250 extern PFNGLDEPTHRANGEPROC glDepthRange;
251 extern PFNGLDETACHSHADERPROC glDetachShader;
252 extern PFNGLDISABLECLIENTSTATEIEXTPROC glDisableClientStateiEXT;
253 extern PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC glDisableClientStateIndexedEXT;
254 extern PFNGLDISABLEINDEXEDEXTPROC glDisableIndexedEXT;
255 extern PFNGLDISABLEIPROC glDisablei;
256 extern PFNGLDISABLEPROC glDisable;
257 extern PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC glDisableVertexArrayAttribEXT;
258 extern PFNGLDISABLEVERTEXARRAYATTRIBPROC glDisableVertexArrayAttrib;
259 extern PFNGLDISABLEVERTEXARRAYEXTPROC glDisableVertexArrayEXT;
260 extern PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray;
261 extern PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC glDispatchComputeGroupSizeARB;
262 extern PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect;
263 extern PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
264 extern PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect;
265 extern PFNGLDRAWARRAYSINSTANCEDARBPROC glDrawArraysInstancedARB;
266 extern PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC glDrawArraysInstancedBaseInstance;
267 extern PFNGLDRAWARRAYSINSTANCEDEXTPROC glDrawArraysInstancedEXT;
268 extern PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
269 extern PFNGLDRAWARRAYSPROC glDrawArrays;
270 extern PFNGLDRAWBUFFERPROC glDrawBuffer;
271 extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
272 extern PFNGLDRAWCOMMANDSADDRESSNVPROC glDrawCommandsAddressNV;
273 extern PFNGLDRAWCOMMANDSNVPROC glDrawCommandsNV;
274 extern PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC glDrawCommandsStatesAddressNV;
275 extern PFNGLDRAWCOMMANDSSTATESNVPROC glDrawCommandsStatesNV;
276 extern PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
277 extern PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect;
278 extern PFNGLDRAWELEMENTSINSTANCEDARBPROC glDrawElementsInstancedARB;
279 extern PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC glDrawElementsInstancedBaseInstance;
280 extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC glDrawElementsInstancedBaseVertexBaseInstance;
281 extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
282 extern PFNGLDRAWELEMENTSINSTANCEDEXTPROC glDrawElementsInstancedEXT;
283 extern PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
284 extern PFNGLDRAWELEMENTSPROC glDrawElements;
285 extern PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
286 extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
287 extern PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC glDrawTransformFeedbackInstanced;
288 extern PFNGLDRAWTRANSFORMFEEDBACKPROC glDrawTransformFeedback;
289 extern PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC glDrawTransformFeedbackStreamInstanced;
290 extern PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC glDrawTransformFeedbackStream;
291 extern PFNGLDRAWVKIMAGENVPROC glDrawVkImageNV;
292 extern PFNGLEDGEFLAGFORMATNVPROC glEdgeFlagFormatNV;
293 extern PFNGLENABLECLIENTSTATEIEXTPROC glEnableClientStateiEXT;
294 extern PFNGLENABLECLIENTSTATEINDEXEDEXTPROC glEnableClientStateIndexedEXT;
295 extern PFNGLENABLEINDEXEDEXTPROC glEnableIndexedEXT;
296 extern PFNGLENABLEIPROC glEnablei;
297 extern PFNGLENABLEPROC glEnable;
298 extern PFNGLENABLEVERTEXARRAYATTRIBEXTPROC glEnableVertexArrayAttribEXT;
299 extern PFNGLENABLEVERTEXARRAYATTRIBPROC glEnableVertexArrayAttrib;
300 extern PFNGLENABLEVERTEXARRAYEXTPROC glEnableVertexArrayEXT;
301 extern PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray;
302 extern PFNGLENDCONDITIONALRENDERNVPROC glEndConditionalRenderNV;
303 extern PFNGLENDCONDITIONALRENDERPROC glEndConditionalRender;
304 extern PFNGLENDPERFMONITORAMDPROC glEndPerfMonitorAMD;
305 extern PFNGLENDPERFQUERYINTELPROC glEndPerfQueryINTEL;
306 extern PFNGLENDQUERYINDEXEDPROC glEndQueryIndexed;
307 extern PFNGLENDQUERYPROC glEndQuery;
308 extern PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
309 extern PFNGLEVALUATEDEPTHVALUESARBPROC glEvaluateDepthValuesARB;
310 extern PFNGLFENCESYNCPROC glFenceSync;
311 extern PFNGLFINISHPROC glFinish;
312 extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
313 extern PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC glFlushMappedNamedBufferRangeEXT;
314 extern PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC glFlushMappedNamedBufferRange;
315 extern PFNGLFLUSHPROC glFlush;
316 extern PFNGLFOGCOORDFORMATNVPROC glFogCoordFormatNV;
317 extern PFNGLFRAGMENTCOVERAGECOLORNVPROC glFragmentCoverageColorNV;
318 extern PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC glFramebufferDrawBufferEXT;
319 extern PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC glFramebufferDrawBuffersEXT;
320 extern PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri;
321 extern PFNGLFRAMEBUFFERREADBUFFEREXTPROC glFramebufferReadBufferEXT;
322 extern PFNGLFRAMEBUFFERRENDERBUFFERPROC glFramebufferRenderbuffer;
323 extern PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glFramebufferSampleLocationsfvARB;
324 extern PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC glFramebufferSampleLocationsfvNV;
325 extern PFNGLFRAMEBUFFERTEXTURE1DPROC glFramebufferTexture1D;
326 extern PFNGLFRAMEBUFFERTEXTURE2DPROC glFramebufferTexture2D;
327 extern PFNGLFRAMEBUFFERTEXTURE3DPROC glFramebufferTexture3D;
328 extern PFNGLFRAMEBUFFERTEXTUREARBPROC glFramebufferTextureARB;
329 extern PFNGLFRAMEBUFFERTEXTUREFACEARBPROC glFramebufferTextureFaceARB;
330 extern PFNGLFRAMEBUFFERTEXTURELAYERARBPROC glFramebufferTextureLayerARB;
331 extern PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
332 extern PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC glFramebufferTextureMultiviewOVR;
333 extern PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
334 extern PFNGLFRONTFACEPROC glFrontFace;
335 extern PFNGLGENBUFFERSPROC glGenBuffers;
336 extern PFNGLGENERATEMIPMAPPROC glGenerateMipmap;
337 extern PFNGLGENERATEMULTITEXMIPMAPEXTPROC glGenerateMultiTexMipmapEXT;
338 extern PFNGLGENERATETEXTUREMIPMAPEXTPROC glGenerateTextureMipmapEXT;
339 extern PFNGLGENERATETEXTUREMIPMAPPROC glGenerateTextureMipmap;
340 extern PFNGLGENFRAMEBUFFERSPROC glGenFramebuffers;
341 extern PFNGLGENPATHSNVPROC glGenPathsNV;
342 extern PFNGLGENPERFMONITORSAMDPROC glGenPerfMonitorsAMD;
343 extern PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines;
344 extern PFNGLGENQUERIESPROC glGenQueries;
345 extern PFNGLGENRENDERBUFFERSPROC glGenRenderbuffers;
346 extern PFNGLGENSAMPLERSPROC glGenSamplers;
347 extern PFNGLGENTEXTURESPROC glGenTextures;
348 extern PFNGLGENTRANSFORMFEEDBACKSPROC glGenTransformFeedbacks;
349 extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
350 extern PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC glGetActiveAtomicCounterBufferiv;
351 extern PFNGLGETACTIVEATTRIBPROC glGetActiveAttrib;
352 extern PFNGLGETACTIVESUBROUTINENAMEPROC glGetActiveSubroutineName;
353 extern PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC glGetActiveSubroutineUniformiv;
354 extern PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC glGetActiveSubroutineUniformName;
355 extern PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
356 extern PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
357 extern PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformName;
358 extern PFNGLGETACTIVEUNIFORMPROC glGetActiveUniform;
359 extern PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
360 extern PFNGLGETATTACHEDSHADERSPROC glGetAttachedShaders;
361 extern PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation;
362 extern PFNGLGETBOOLEANINDEXEDVEXTPROC glGetBooleanIndexedvEXT;
363 extern PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
364 extern PFNGLGETBOOLEANVPROC glGetBooleanv;
365 extern PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
366 extern PFNGLGETBUFFERPARAMETERIVPROC glGetBufferParameteriv;
367 extern PFNGLGETBUFFERPARAMETERUI64VNVPROC glGetBufferParameterui64vNV;
368 extern PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
369 extern PFNGLGETBUFFERSUBDATAPROC glGetBufferSubData;
370 extern PFNGLGETCOMMANDHEADERNVPROC glGetCommandHeaderNV;
371 extern PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC glGetCompressedMultiTexImageEXT;
372 extern PFNGLGETCOMPRESSEDTEXIMAGEPROC glGetCompressedTexImage;
373 extern PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC glGetCompressedTextureImageEXT;
374 extern PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC glGetCompressedTextureImage;
375 extern PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC glGetCompressedTextureSubImage;
376 extern PFNGLGETCOVERAGEMODULATIONTABLENVPROC glGetCoverageModulationTableNV;
377 extern PFNGLGETDEBUGMESSAGELOGARBPROC glGetDebugMessageLogARB;
378 extern PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
379 extern PFNGLGETDOUBLEINDEXEDVEXTPROC glGetDoubleIndexedvEXT;
380 extern PFNGLGETDOUBLEI_VEXTPROC glGetDoublei_vEXT;
381 extern PFNGLGETDOUBLEI_VPROC glGetDoublei_v;
382 extern PFNGLGETDOUBLEVPROC glGetDoublev;
383 extern PFNGLGETERRORPROC glGetError;
384 extern PFNGLGETFIRSTPERFQUERYIDINTELPROC glGetFirstPerfQueryIdINTEL;
385 extern PFNGLGETFLOATINDEXEDVEXTPROC glGetFloatIndexedvEXT;
386 extern PFNGLGETFLOATI_VEXTPROC glGetFloati_vEXT;
387 extern PFNGLGETFLOATI_VPROC glGetFloati_v;
388 extern PFNGLGETFLOATVPROC glGetFloatv;
389 extern PFNGLGETFRAGDATAINDEXPROC glGetFragDataIndex;
390 extern PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
391 extern PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetFramebufferAttachmentParameteriv;
392 extern PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC glGetFramebufferParameterivEXT;
393 extern PFNGLGETFRAMEBUFFERPARAMETERIVPROC glGetFramebufferParameteriv;
394 extern PFNGLGETGRAPHICSRESETSTATUSARBPROC glGetGraphicsResetStatusARB;
395 extern PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
396 extern PFNGLGETIMAGEHANDLEARBPROC glGetImageHandleARB;
397 extern PFNGLGETIMAGEHANDLENVPROC glGetImageHandleNV;
398 extern PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
399 extern PFNGLGETINTEGER64VPROC glGetInteger64v;
400 extern PFNGLGETINTEGERINDEXEDVEXTPROC glGetIntegerIndexedvEXT;
401 extern PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
402 extern PFNGLGETINTEGERUI64I_VNVPROC glGetIntegerui64i_vNV;
403 extern PFNGLGETINTEGERUI64VNVPROC glGetIntegerui64vNV;
404 extern PFNGLGETINTEGERVPROC glGetIntegerv;
405 extern PFNGLGETINTERNALFORMATI64VPROC glGetInternalformati64v;
406 extern PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ;
407 extern PFNGLGETINTERNALFORMATSAMPLEIVNVPROC glGetInternalformatSampleivNV;
408 extern PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
409 extern PFNGLGETMULTITEXENVFVEXTPROC glGetMultiTexEnvfvEXT;
410 extern PFNGLGETMULTITEXENVIVEXTPROC glGetMultiTexEnvivEXT;
411 extern PFNGLGETMULTITEXGENDVEXTPROC glGetMultiTexGendvEXT;
412 extern PFNGLGETMULTITEXGENFVEXTPROC glGetMultiTexGenfvEXT;
413 extern PFNGLGETMULTITEXGENIVEXTPROC glGetMultiTexGenivEXT;
414 extern PFNGLGETMULTITEXIMAGEEXTPROC glGetMultiTexImageEXT;
415 extern PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC glGetMultiTexLevelParameterfvEXT;
416 extern PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC glGetMultiTexLevelParameterivEXT;
417 extern PFNGLGETMULTITEXPARAMETERFVEXTPROC glGetMultiTexParameterfvEXT;
418 extern PFNGLGETMULTITEXPARAMETERIIVEXTPROC glGetMultiTexParameterIivEXT;
419 extern PFNGLGETMULTITEXPARAMETERIUIVEXTPROC glGetMultiTexParameterIuivEXT;
420 extern PFNGLGETMULTITEXPARAMETERIVEXTPROC glGetMultiTexParameterivEXT;
421 extern PFNGLGETNAMEDBUFFERPARAMETERI64VPROC glGetNamedBufferParameteri64v;
422 extern PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC glGetNamedBufferParameterivEXT;
423 extern PFNGLGETNAMEDBUFFERPARAMETERIVPROC glGetNamedBufferParameteriv;
424 extern PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC glGetNamedBufferParameterui64vNV;
425 extern PFNGLGETNAMEDBUFFERPOINTERVEXTPROC glGetNamedBufferPointervEXT;
426 extern PFNGLGETNAMEDBUFFERPOINTERVPROC glGetNamedBufferPointerv;
427 extern PFNGLGETNAMEDBUFFERSUBDATAEXTPROC glGetNamedBufferSubDataEXT;
428 extern PFNGLGETNAMEDBUFFERSUBDATAPROC glGetNamedBufferSubData;
429 extern PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetNamedFramebufferAttachmentParameterivEXT;
430 extern PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC glGetNamedFramebufferAttachmentParameteriv;
431 extern PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC glGetNamedFramebufferParameterivEXT;
432 extern PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC glGetNamedFramebufferParameteriv;
433 extern PFNGLGETNAMEDPROGRAMIVEXTPROC glGetNamedProgramivEXT;
434 extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC glGetNamedProgramLocalParameterdvEXT;
435 extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC glGetNamedProgramLocalParameterfvEXT;
436 extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC glGetNamedProgramLocalParameterIivEXT;
437 extern PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC glGetNamedProgramLocalParameterIuivEXT;
438 extern PFNGLGETNAMEDPROGRAMSTRINGEXTPROC glGetNamedProgramStringEXT;
439 extern PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC glGetNamedRenderbufferParameterivEXT;
440 extern PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC glGetNamedRenderbufferParameteriv;
441 extern PFNGLGETNAMEDSTRINGARBPROC glGetNamedStringARB;
442 extern PFNGLGETNAMEDSTRINGIVARBPROC glGetNamedStringivARB;
443 extern PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC glGetnCompressedTexImageARB;
444 extern PFNGLGETNCOMPRESSEDTEXIMAGEPROC glGetnCompressedTexImage;
445 extern PFNGLGETNEXTPERFQUERYIDINTELPROC glGetNextPerfQueryIdINTEL;
446 extern PFNGLGETNTEXIMAGEARBPROC glGetnTexImageARB;
447 extern PFNGLGETNTEXIMAGEPROC glGetnTexImage;
448 extern PFNGLGETNUNIFORMDVARBPROC glGetnUniformdvARB;
449 extern PFNGLGETNUNIFORMDVPROC glGetnUniformdv;
450 extern PFNGLGETNUNIFORMFVARBPROC glGetnUniformfvARB;
451 extern PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
452 extern PFNGLGETNUNIFORMI64VARBPROC glGetnUniformi64vARB;
453 extern PFNGLGETNUNIFORMIVARBPROC glGetnUniformivARB;
454 extern PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
455 extern PFNGLGETNUNIFORMUI64VARBPROC glGetnUniformui64vARB;
456 extern PFNGLGETNUNIFORMUIVARBPROC glGetnUniformuivARB;
457 extern PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
458 extern PFNGLGETOBJECTLABELEXTPROC glGetObjectLabelEXT;
459 extern PFNGLGETOBJECTLABELPROC glGetObjectLabel;
460 extern PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
461 extern PFNGLGETPATHCOMMANDSNVPROC glGetPathCommandsNV;
462 extern PFNGLGETPATHCOORDSNVPROC glGetPathCoordsNV;
463 extern PFNGLGETPATHDASHARRAYNVPROC glGetPathDashArrayNV;
464 extern PFNGLGETPATHLENGTHNVPROC glGetPathLengthNV;
465 extern PFNGLGETPATHMETRICRANGENVPROC glGetPathMetricRangeNV;
466 extern PFNGLGETPATHMETRICSNVPROC glGetPathMetricsNV;
467 extern PFNGLGETPATHPARAMETERFVNVPROC glGetPathParameterfvNV;
468 extern PFNGLGETPATHPARAMETERIVNVPROC glGetPathParameterivNV;
469 extern PFNGLGETPATHSPACINGNVPROC glGetPathSpacingNV;
470 extern PFNGLGETPERFCOUNTERINFOINTELPROC glGetPerfCounterInfoINTEL;
471 extern PFNGLGETPERFMONITORCOUNTERDATAAMDPROC glGetPerfMonitorCounterDataAMD;
472 extern PFNGLGETPERFMONITORCOUNTERINFOAMDPROC glGetPerfMonitorCounterInfoAMD;
473 extern PFNGLGETPERFMONITORCOUNTERSAMDPROC glGetPerfMonitorCountersAMD;
474 extern PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC glGetPerfMonitorCounterStringAMD;
475 extern PFNGLGETPERFMONITORGROUPSAMDPROC glGetPerfMonitorGroupsAMD;
476 extern PFNGLGETPERFMONITORGROUPSTRINGAMDPROC glGetPerfMonitorGroupStringAMD;
477 extern PFNGLGETPERFQUERYDATAINTELPROC glGetPerfQueryDataINTEL;
478 extern PFNGLGETPERFQUERYIDBYNAMEINTELPROC glGetPerfQueryIdByNameINTEL;
479 extern PFNGLGETPERFQUERYINFOINTELPROC glGetPerfQueryInfoINTEL;
480 extern PFNGLGETPOINTERINDEXEDVEXTPROC glGetPointerIndexedvEXT;
481 extern PFNGLGETPOINTERI_VEXTPROC glGetPointeri_vEXT;
482 extern PFNGLGETPOINTERVPROC glGetPointerv;
483 extern PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
484 extern PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog;
485 extern PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv;
486 extern PFNGLGETPROGRAMIVPROC glGetProgramiv;
487 extern PFNGLGETPROGRAMPIPELINEINFOLOGPROC glGetProgramPipelineInfoLog;
488 extern PFNGLGETPROGRAMPIPELINEIVPROC glGetProgramPipelineiv;
489 extern PFNGLGETPROGRAMRESOURCEFVNVPROC glGetProgramResourcefvNV;
490 extern PFNGLGETPROGRAMRESOURCEINDEXPROC glGetProgramResourceIndex;
491 extern PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv;
492 extern PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC glGetProgramResourceLocationIndex;
493 extern PFNGLGETPROGRAMRESOURCELOCATIONPROC glGetProgramResourceLocation;
494 extern PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName;
495 extern PFNGLGETPROGRAMSTAGEIVPROC glGetProgramStageiv;
496 extern PFNGLGETQUERYBUFFEROBJECTI64VPROC glGetQueryBufferObjecti64v;
497 extern PFNGLGETQUERYBUFFEROBJECTIVPROC glGetQueryBufferObjectiv;
498 extern PFNGLGETQUERYBUFFEROBJECTUI64VPROC glGetQueryBufferObjectui64v;
499 extern PFNGLGETQUERYBUFFEROBJECTUIVPROC glGetQueryBufferObjectuiv;
500 extern PFNGLGETQUERYINDEXEDIVPROC glGetQueryIndexediv;
501 extern PFNGLGETQUERYIVPROC glGetQueryiv;
502 extern PFNGLGETQUERYOBJECTI64VPROC glGetQueryObjecti64v;
503 extern PFNGLGETQUERYOBJECTIVPROC glGetQueryObjectiv;
504 extern PFNGLGETQUERYOBJECTUI64VPROC glGetQueryObjectui64v;
505 extern PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
506 extern PFNGLGETRENDERBUFFERPARAMETERIVPROC glGetRenderbufferParameteriv;
507 extern PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
508 extern PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
509 extern PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
510 extern PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
511 extern PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog;
512 extern PFNGLGETSHADERIVPROC glGetShaderiv;
513 extern PFNGLGETSHADERPRECISIONFORMATPROC glGetShaderPrecisionFormat;
514 extern PFNGLGETSHADERSOURCEPROC glGetShaderSource;
515 extern PFNGLGETSTAGEINDEXNVPROC glGetStageIndexNV;
516 extern PFNGLGETSTRINGIPROC glGetStringi;
517 extern PFNGLGETSTRINGPROC glGetString;
518 extern PFNGLGETSUBROUTINEINDEXPROC glGetSubroutineIndex;
519 extern PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC glGetSubroutineUniformLocation;
520 extern PFNGLGETSYNCIVPROC glGetSynciv;
521 extern PFNGLGETTEXIMAGEPROC glGetTexImage;
522 extern PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
523 extern PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
524 extern PFNGLGETTEXPARAMETERFVPROC glGetTexParameterfv;
525 extern PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
526 extern PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
527 extern PFNGLGETTEXPARAMETERIVPROC glGetTexParameteriv;
528 extern PFNGLGETTEXTUREHANDLEARBPROC glGetTextureHandleARB;
529 extern PFNGLGETTEXTUREHANDLENVPROC glGetTextureHandleNV;
530 extern PFNGLGETTEXTUREIMAGEEXTPROC glGetTextureImageEXT;
531 extern PFNGLGETTEXTUREIMAGEPROC glGetTextureImage;
532 extern PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC glGetTextureLevelParameterfvEXT;
533 extern PFNGLGETTEXTURELEVELPARAMETERFVPROC glGetTextureLevelParameterfv;
534 extern PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC glGetTextureLevelParameterivEXT;
535 extern PFNGLGETTEXTURELEVELPARAMETERIVPROC glGetTextureLevelParameteriv;
536 extern PFNGLGETTEXTUREPARAMETERFVEXTPROC glGetTextureParameterfvEXT;
537 extern PFNGLGETTEXTUREPARAMETERFVPROC glGetTextureParameterfv;
538 extern PFNGLGETTEXTUREPARAMETERIIVEXTPROC glGetTextureParameterIivEXT;
539 extern PFNGLGETTEXTUREPARAMETERIIVPROC glGetTextureParameterIiv;
540 extern PFNGLGETTEXTUREPARAMETERIUIVEXTPROC glGetTextureParameterIuivEXT;
541 extern PFNGLGETTEXTUREPARAMETERIUIVPROC glGetTextureParameterIuiv;
542 extern PFNGLGETTEXTUREPARAMETERIVEXTPROC glGetTextureParameterivEXT;
543 extern PFNGLGETTEXTUREPARAMETERIVPROC glGetTextureParameteriv;
544 extern PFNGLGETTEXTURESAMPLERHANDLEARBPROC glGetTextureSamplerHandleARB;
545 extern PFNGLGETTEXTURESAMPLERHANDLENVPROC glGetTextureSamplerHandleNV;
546 extern PFNGLGETTEXTURESUBIMAGEPROC glGetTextureSubImage;
547 extern PFNGLGETTRANSFORMFEEDBACKI64_VPROC glGetTransformFeedbacki64_v;
548 extern PFNGLGETTRANSFORMFEEDBACKIVPROC glGetTransformFeedbackiv;
549 extern PFNGLGETTRANSFORMFEEDBACKI_VPROC glGetTransformFeedbacki_v;
550 extern PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
551 extern PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
552 extern PFNGLGETUNIFORMDVPROC glGetUniformdv;
553 extern PFNGLGETUNIFORMFVPROC glGetUniformfv;
554 extern PFNGLGETUNIFORMI64VARBPROC glGetUniformi64vARB;
555 extern PFNGLGETUNIFORMI64VNVPROC glGetUniformi64vNV;
556 extern PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
557 extern PFNGLGETUNIFORMIVPROC glGetUniformiv;
558 extern PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation;
559 extern PFNGLGETUNIFORMSUBROUTINEUIVPROC glGetUniformSubroutineuiv;
560 extern PFNGLGETUNIFORMUI64VARBPROC glGetUniformui64vARB;
561 extern PFNGLGETUNIFORMUI64VNVPROC glGetUniformui64vNV;
562 extern PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
563 extern PFNGLGETVERTEXARRAYINDEXED64IVPROC glGetVertexArrayIndexed64iv;
564 extern PFNGLGETVERTEXARRAYINDEXEDIVPROC glGetVertexArrayIndexediv;
565 extern PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC glGetVertexArrayIntegeri_vEXT;
566 extern PFNGLGETVERTEXARRAYINTEGERVEXTPROC glGetVertexArrayIntegervEXT;
567 extern PFNGLGETVERTEXARRAYIVPROC glGetVertexArrayiv;
568 extern PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC glGetVertexArrayPointeri_vEXT;
569 extern PFNGLGETVERTEXARRAYPOINTERVEXTPROC glGetVertexArrayPointervEXT;
570 extern PFNGLGETVERTEXATTRIBDVPROC glGetVertexAttribdv;
571 extern PFNGLGETVERTEXATTRIBFVPROC glGetVertexAttribfv;
572 extern PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
573 extern PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
574 extern PFNGLGETVERTEXATTRIBIVPROC glGetVertexAttribiv;
575 extern PFNGLGETVERTEXATTRIBLDVPROC glGetVertexAttribLdv;
576 extern PFNGLGETVERTEXATTRIBLI64VNVPROC glGetVertexAttribLi64vNV;
577 extern PFNGLGETVERTEXATTRIBLUI64VARBPROC glGetVertexAttribLui64vARB;
578 extern PFNGLGETVERTEXATTRIBLUI64VNVPROC glGetVertexAttribLui64vNV;
579 extern PFNGLGETVERTEXATTRIBPOINTERVPROC glGetVertexAttribPointerv;
580 extern PFNGLGETVKPROCADDRNVPROC glGetVkProcAddrNV;
581 extern PFNGLHINTPROC glHint;
582 extern PFNGLINDEXFORMATNVPROC glIndexFormatNV;
583 extern PFNGLINSERTEVENTMARKEREXTPROC glInsertEventMarkerEXT;
584 extern PFNGLINTERPOLATEPATHSNVPROC glInterpolatePathsNV;
585 extern PFNGLINVALIDATEBUFFERDATAPROC glInvalidateBufferData;
586 extern PFNGLINVALIDATEBUFFERSUBDATAPROC glInvalidateBufferSubData;
587 extern PFNGLINVALIDATEFRAMEBUFFERPROC glInvalidateFramebuffer;
588 extern PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC glInvalidateNamedFramebufferData;
589 extern PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC glInvalidateNamedFramebufferSubData;
590 extern PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer;
591 extern PFNGLINVALIDATETEXIMAGEPROC glInvalidateTexImage;
592 extern PFNGLINVALIDATETEXSUBIMAGEPROC glInvalidateTexSubImage;
593 extern PFNGLISBUFFERPROC glIsBuffer;
594 extern PFNGLISBUFFERRESIDENTNVPROC glIsBufferResidentNV;
595 extern PFNGLISCOMMANDLISTNVPROC glIsCommandListNV;
596 extern PFNGLISENABLEDINDEXEDEXTPROC glIsEnabledIndexedEXT;
597 extern PFNGLISENABLEDIPROC glIsEnabledi;
598 extern PFNGLISENABLEDPROC glIsEnabled;
599 extern PFNGLISFRAMEBUFFERPROC glIsFramebuffer;
600 extern PFNGLISIMAGEHANDLERESIDENTARBPROC glIsImageHandleResidentARB;
601 extern PFNGLISIMAGEHANDLERESIDENTNVPROC glIsImageHandleResidentNV;
602 extern PFNGLISNAMEDBUFFERRESIDENTNVPROC glIsNamedBufferResidentNV;
603 extern PFNGLISNAMEDSTRINGARBPROC glIsNamedStringARB;
604 extern PFNGLISPATHNVPROC glIsPathNV;
605 extern PFNGLISPOINTINFILLPATHNVPROC glIsPointInFillPathNV;
606 extern PFNGLISPOINTINSTROKEPATHNVPROC glIsPointInStrokePathNV;
607 extern PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline;
608 extern PFNGLISPROGRAMPROC glIsProgram;
609 extern PFNGLISQUERYPROC glIsQuery;
610 extern PFNGLISRENDERBUFFERPROC glIsRenderbuffer;
611 extern PFNGLISSAMPLERPROC glIsSampler;
612 extern PFNGLISSHADERPROC glIsShader;
613 extern PFNGLISSTATENVPROC glIsStateNV;
614 extern PFNGLISSYNCPROC glIsSync;
615 extern PFNGLISTEXTUREHANDLERESIDENTARBPROC glIsTextureHandleResidentARB;
616 extern PFNGLISTEXTUREHANDLERESIDENTNVPROC glIsTextureHandleResidentNV;
617 extern PFNGLISTEXTUREPROC glIsTexture;
618 extern PFNGLISTRANSFORMFEEDBACKPROC glIsTransformFeedback;
619 extern PFNGLISVERTEXARRAYPROC glIsVertexArray;
620 extern PFNGLLABELOBJECTEXTPROC glLabelObjectEXT;
621 extern PFNGLLINEWIDTHPROC glLineWidth;
622 extern PFNGLLINKPROGRAMPROC glLinkProgram;
623 extern PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC glListDrawCommandsStatesClientNV;
624 extern PFNGLLOGICOPPROC glLogicOp;
625 extern PFNGLMAKEBUFFERNONRESIDENTNVPROC glMakeBufferNonResidentNV;
626 extern PFNGLMAKEBUFFERRESIDENTNVPROC glMakeBufferResidentNV;
627 extern PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC glMakeImageHandleNonResidentARB;
628 extern PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC glMakeImageHandleNonResidentNV;
629 extern PFNGLMAKEIMAGEHANDLERESIDENTARBPROC glMakeImageHandleResidentARB;
630 extern PFNGLMAKEIMAGEHANDLERESIDENTNVPROC glMakeImageHandleResidentNV;
631 extern PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC glMakeNamedBufferNonResidentNV;
632 extern PFNGLMAKENAMEDBUFFERRESIDENTNVPROC glMakeNamedBufferResidentNV;
633 extern PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC glMakeTextureHandleNonResidentARB;
634 extern PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC glMakeTextureHandleNonResidentNV;
635 extern PFNGLMAKETEXTUREHANDLERESIDENTARBPROC glMakeTextureHandleResidentARB;
636 extern PFNGLMAKETEXTUREHANDLERESIDENTNVPROC glMakeTextureHandleResidentNV;
637 extern PFNGLMAPBUFFERPROC glMapBuffer;
638 extern PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
639 extern PFNGLMAPNAMEDBUFFEREXTPROC glMapNamedBufferEXT;
640 extern PFNGLMAPNAMEDBUFFERPROC glMapNamedBuffer;
641 extern PFNGLMAPNAMEDBUFFERRANGEEXTPROC glMapNamedBufferRangeEXT;
642 extern PFNGLMAPNAMEDBUFFERRANGEPROC glMapNamedBufferRange;
643 extern PFNGLMATRIXFRUSTUMEXTPROC glMatrixFrustumEXT;
644 extern PFNGLMATRIXLOAD3X2FNVPROC glMatrixLoad3x2fNV;
645 extern PFNGLMATRIXLOAD3X3FNVPROC glMatrixLoad3x3fNV;
646 extern PFNGLMATRIXLOADDEXTPROC glMatrixLoaddEXT;
647 extern PFNGLMATRIXLOADFEXTPROC glMatrixLoadfEXT;
648 extern PFNGLMATRIXLOADIDENTITYEXTPROC glMatrixLoadIdentityEXT;
649 extern PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC glMatrixLoadTranspose3x3fNV;
650 extern PFNGLMATRIXLOADTRANSPOSEDEXTPROC glMatrixLoadTransposedEXT;
651 extern PFNGLMATRIXLOADTRANSPOSEFEXTPROC glMatrixLoadTransposefEXT;
652 extern PFNGLMATRIXMULT3X2FNVPROC glMatrixMult3x2fNV;
653 extern PFNGLMATRIXMULT3X3FNVPROC glMatrixMult3x3fNV;
654 extern PFNGLMATRIXMULTDEXTPROC glMatrixMultdEXT;
655 extern PFNGLMATRIXMULTFEXTPROC glMatrixMultfEXT;
656 extern PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC glMatrixMultTranspose3x3fNV;
657 extern PFNGLMATRIXMULTTRANSPOSEDEXTPROC glMatrixMultTransposedEXT;
658 extern PFNGLMATRIXMULTTRANSPOSEFEXTPROC glMatrixMultTransposefEXT;
659 extern PFNGLMATRIXORTHOEXTPROC glMatrixOrthoEXT;
660 extern PFNGLMATRIXPOPEXTPROC glMatrixPopEXT;
661 extern PFNGLMATRIXPUSHEXTPROC glMatrixPushEXT;
662 extern PFNGLMATRIXROTATEDEXTPROC glMatrixRotatedEXT;
663 extern PFNGLMATRIXROTATEFEXTPROC glMatrixRotatefEXT;
664 extern PFNGLMATRIXSCALEDEXTPROC glMatrixScaledEXT;
665 extern PFNGLMATRIXSCALEFEXTPROC glMatrixScalefEXT;
666 extern PFNGLMATRIXTRANSLATEDEXTPROC glMatrixTranslatedEXT;
667 extern PFNGLMATRIXTRANSLATEFEXTPROC glMatrixTranslatefEXT;
668 extern PFNGLMAXSHADERCOMPILERTHREADSARBPROC glMaxShaderCompilerThreadsARB;
669 extern PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
670 extern PFNGLMEMORYBARRIERPROC glMemoryBarrier;
671 extern PFNGLMINSAMPLESHADINGARBPROC glMinSampleShadingARB;
672 extern PFNGLMINSAMPLESHADINGPROC glMinSampleShading;
673 extern PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC glMultiDrawArraysIndirectBindlessCountNV;
674 extern PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC glMultiDrawArraysIndirectBindlessNV;
675 extern PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC glMultiDrawArraysIndirectCountARB;
676 extern PFNGLMULTIDRAWARRAYSINDIRECTPROC glMultiDrawArraysIndirect;
677 extern PFNGLMULTIDRAWARRAYSPROC glMultiDrawArrays;
678 extern PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertex;
679 extern PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC glMultiDrawElementsIndirectBindlessCountNV;
680 extern PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC glMultiDrawElementsIndirectBindlessNV;
681 extern PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC glMultiDrawElementsIndirectCountARB;
682 extern PFNGLMULTIDRAWELEMENTSINDIRECTPROC glMultiDrawElementsIndirect;
683 extern PFNGLMULTIDRAWELEMENTSPROC glMultiDrawElements;
684 extern PFNGLMULTITEXBUFFEREXTPROC glMultiTexBufferEXT;
685 extern PFNGLMULTITEXCOORDPOINTEREXTPROC glMultiTexCoordPointerEXT;
686 extern PFNGLMULTITEXENVFEXTPROC glMultiTexEnvfEXT;
687 extern PFNGLMULTITEXENVFVEXTPROC glMultiTexEnvfvEXT;
688 extern PFNGLMULTITEXENVIEXTPROC glMultiTexEnviEXT;
689 extern PFNGLMULTITEXENVIVEXTPROC glMultiTexEnvivEXT;
690 extern PFNGLMULTITEXGENDEXTPROC glMultiTexGendEXT;
691 extern PFNGLMULTITEXGENDVEXTPROC glMultiTexGendvEXT;
692 extern PFNGLMULTITEXGENFEXTPROC glMultiTexGenfEXT;
693 extern PFNGLMULTITEXGENFVEXTPROC glMultiTexGenfvEXT;
694 extern PFNGLMULTITEXGENIEXTPROC glMultiTexGeniEXT;
695 extern PFNGLMULTITEXGENIVEXTPROC glMultiTexGenivEXT;
696 extern PFNGLMULTITEXIMAGE1DEXTPROC glMultiTexImage1DEXT;
697 extern PFNGLMULTITEXIMAGE2DEXTPROC glMultiTexImage2DEXT;
698 extern PFNGLMULTITEXIMAGE3DEXTPROC glMultiTexImage3DEXT;
699 extern PFNGLMULTITEXPARAMETERFEXTPROC glMultiTexParameterfEXT;
700 extern PFNGLMULTITEXPARAMETERFVEXTPROC glMultiTexParameterfvEXT;
701 extern PFNGLMULTITEXPARAMETERIEXTPROC glMultiTexParameteriEXT;
702 extern PFNGLMULTITEXPARAMETERIIVEXTPROC glMultiTexParameterIivEXT;
703 extern PFNGLMULTITEXPARAMETERIUIVEXTPROC glMultiTexParameterIuivEXT;
704 extern PFNGLMULTITEXPARAMETERIVEXTPROC glMultiTexParameterivEXT;
705 extern PFNGLMULTITEXRENDERBUFFEREXTPROC glMultiTexRenderbufferEXT;
706 extern PFNGLMULTITEXSUBIMAGE1DEXTPROC glMultiTexSubImage1DEXT;
707 extern PFNGLMULTITEXSUBIMAGE2DEXTPROC glMultiTexSubImage2DEXT;
708 extern PFNGLMULTITEXSUBIMAGE3DEXTPROC glMultiTexSubImage3DEXT;
709 extern PFNGLNAMEDBUFFERDATAEXTPROC glNamedBufferDataEXT;
710 extern PFNGLNAMEDBUFFERDATAPROC glNamedBufferData;
711 extern PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC glNamedBufferPageCommitmentARB;
712 extern PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC glNamedBufferPageCommitmentEXT;
713 extern PFNGLNAMEDBUFFERSTORAGEEXTPROC glNamedBufferStorageEXT;
714 extern PFNGLNAMEDBUFFERSTORAGEPROC glNamedBufferStorage;
715 extern PFNGLNAMEDBUFFERSUBDATAEXTPROC glNamedBufferSubDataEXT;
716 extern PFNGLNAMEDBUFFERSUBDATAPROC glNamedBufferSubData;
717 extern PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC glNamedCopyBufferSubDataEXT;
718 extern PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC glNamedFramebufferDrawBuffer;
719 extern PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC glNamedFramebufferDrawBuffers;
720 extern PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC glNamedFramebufferParameteriEXT;
721 extern PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC glNamedFramebufferParameteri;
722 extern PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC glNamedFramebufferReadBuffer;
723 extern PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC glNamedFramebufferRenderbufferEXT;
724 extern PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC glNamedFramebufferRenderbuffer;
725 extern PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC glNamedFramebufferSampleLocationsfvARB;
726 extern PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC glNamedFramebufferSampleLocationsfvNV;
727 extern PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC glNamedFramebufferTexture1DEXT;
728 extern PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC glNamedFramebufferTexture2DEXT;
729 extern PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC glNamedFramebufferTexture3DEXT;
730 extern PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC glNamedFramebufferTextureEXT;
731 extern PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC glNamedFramebufferTextureFaceEXT;
732 extern PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC glNamedFramebufferTextureLayerEXT;
733 extern PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC glNamedFramebufferTextureLayer;
734 extern PFNGLNAMEDFRAMEBUFFERTEXTUREPROC glNamedFramebufferTexture;
735 extern PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC glNamedProgramLocalParameter4dEXT;
736 extern PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC glNamedProgramLocalParameter4dvEXT;
737 extern PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC glNamedProgramLocalParameter4fEXT;
738 extern PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC glNamedProgramLocalParameter4fvEXT;
739 extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC glNamedProgramLocalParameterI4iEXT;
740 extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC glNamedProgramLocalParameterI4ivEXT;
741 extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC glNamedProgramLocalParameterI4uiEXT;
742 extern PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC glNamedProgramLocalParameterI4uivEXT;
743 extern PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC glNamedProgramLocalParameters4fvEXT;
744 extern PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC glNamedProgramLocalParametersI4ivEXT;
745 extern PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC glNamedProgramLocalParametersI4uivEXT;
746 extern PFNGLNAMEDPROGRAMSTRINGEXTPROC glNamedProgramStringEXT;
747 extern PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC glNamedRenderbufferStorageEXT;
748 extern PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC glNamedRenderbufferStorageMultisampleCoverageEXT;
749 extern PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glNamedRenderbufferStorageMultisampleEXT;
750 extern PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC glNamedRenderbufferStorageMultisample;
751 extern PFNGLNAMEDRENDERBUFFERSTORAGEPROC glNamedRenderbufferStorage;
752 extern PFNGLNAMEDSTRINGARBPROC glNamedStringARB;
753 extern PFNGLNORMALFORMATNVPROC glNormalFormatNV;
754 extern PFNGLOBJECTLABELPROC glObjectLabel;
755 extern PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
756 extern PFNGLPATCHPARAMETERFVPROC glPatchParameterfv;
757 extern PFNGLPATCHPARAMETERIPROC glPatchParameteri;
758 extern PFNGLPATHCOMMANDSNVPROC glPathCommandsNV;
759 extern PFNGLPATHCOORDSNVPROC glPathCoordsNV;
760 extern PFNGLPATHCOVERDEPTHFUNCNVPROC glPathCoverDepthFuncNV;
761 extern PFNGLPATHDASHARRAYNVPROC glPathDashArrayNV;
762 extern PFNGLPATHGLYPHINDEXARRAYNVPROC glPathGlyphIndexArrayNV;
763 extern PFNGLPATHGLYPHINDEXRANGENVPROC glPathGlyphIndexRangeNV;
764 extern PFNGLPATHGLYPHRANGENVPROC glPathGlyphRangeNV;
765 extern PFNGLPATHGLYPHSNVPROC glPathGlyphsNV;
766 extern PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC glPathMemoryGlyphIndexArrayNV;
767 extern PFNGLPATHPARAMETERFNVPROC glPathParameterfNV;
768 extern PFNGLPATHPARAMETERFVNVPROC glPathParameterfvNV;
769 extern PFNGLPATHPARAMETERINVPROC glPathParameteriNV;
770 extern PFNGLPATHPARAMETERIVNVPROC glPathParameterivNV;
771 extern PFNGLPATHSTENCILDEPTHOFFSETNVPROC glPathStencilDepthOffsetNV;
772 extern PFNGLPATHSTENCILFUNCNVPROC glPathStencilFuncNV;
773 extern PFNGLPATHSTRINGNVPROC glPathStringNV;
774 extern PFNGLPATHSUBCOMMANDSNVPROC glPathSubCommandsNV;
775 extern PFNGLPATHSUBCOORDSNVPROC glPathSubCoordsNV;
776 extern PFNGLPAUSETRANSFORMFEEDBACKPROC glPauseTransformFeedback;
777 extern PFNGLPIXELSTOREFPROC glPixelStoref;
778 extern PFNGLPIXELSTOREIPROC glPixelStorei;
779 extern PFNGLPOINTALONGPATHNVPROC glPointAlongPathNV;
780 extern PFNGLPOINTPARAMETERFPROC glPointParameterf;
781 extern PFNGLPOINTPARAMETERFVPROC glPointParameterfv;
782 extern PFNGLPOINTPARAMETERIPROC glPointParameteri;
783 extern PFNGLPOINTPARAMETERIVPROC glPointParameteriv;
784 extern PFNGLPOINTSIZEPROC glPointSize;
785 extern PFNGLPOLYGONMODEPROC glPolygonMode;
786 extern PFNGLPOLYGONOFFSETCLAMPEXTPROC glPolygonOffsetClampEXT;
787 extern PFNGLPOLYGONOFFSETPROC glPolygonOffset;
788 extern PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
789 extern PFNGLPOPGROUPMARKEREXTPROC glPopGroupMarkerEXT;
790 extern PFNGLPRIMITIVEBOUNDINGBOXARBPROC glPrimitiveBoundingBoxARB;
791 extern PFNGLPRIMITIVERESTARTINDEXPROC glPrimitiveRestartIndex;
792 extern PFNGLPROGRAMBINARYPROC glProgramBinary;
793 extern PFNGLPROGRAMPARAMETERIARBPROC glProgramParameteriARB;
794 extern PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
795 extern PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC glProgramPathFragmentInputGenNV;
796 extern PFNGLPROGRAMUNIFORM1DEXTPROC glProgramUniform1dEXT;
797 extern PFNGLPROGRAMUNIFORM1DPROC glProgramUniform1d;
798 extern PFNGLPROGRAMUNIFORM1DVEXTPROC glProgramUniform1dvEXT;
799 extern PFNGLPROGRAMUNIFORM1DVPROC glProgramUniform1dv;
800 extern PFNGLPROGRAMUNIFORM1FEXTPROC glProgramUniform1fEXT;
801 extern PFNGLPROGRAMUNIFORM1FPROC glProgramUniform1f;
802 extern PFNGLPROGRAMUNIFORM1FVEXTPROC glProgramUniform1fvEXT;
803 extern PFNGLPROGRAMUNIFORM1FVPROC glProgramUniform1fv;
804 extern PFNGLPROGRAMUNIFORM1I64ARBPROC glProgramUniform1i64ARB;
805 extern PFNGLPROGRAMUNIFORM1I64NVPROC glProgramUniform1i64NV;
806 extern PFNGLPROGRAMUNIFORM1I64VARBPROC glProgramUniform1i64vARB;
807 extern PFNGLPROGRAMUNIFORM1I64VNVPROC glProgramUniform1i64vNV;
808 extern PFNGLPROGRAMUNIFORM1IEXTPROC glProgramUniform1iEXT;
809 extern PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i;
810 extern PFNGLPROGRAMUNIFORM1IVEXTPROC glProgramUniform1ivEXT;
811 extern PFNGLPROGRAMUNIFORM1IVPROC glProgramUniform1iv;
812 extern PFNGLPROGRAMUNIFORM1UI64ARBPROC glProgramUniform1ui64ARB;
813 extern PFNGLPROGRAMUNIFORM1UI64NVPROC glProgramUniform1ui64NV;
814 extern PFNGLPROGRAMUNIFORM1UI64VARBPROC glProgramUniform1ui64vARB;
815 extern PFNGLPROGRAMUNIFORM1UI64VNVPROC glProgramUniform1ui64vNV;
816 extern PFNGLPROGRAMUNIFORM1UIEXTPROC glProgramUniform1uiEXT;
817 extern PFNGLPROGRAMUNIFORM1UIPROC glProgramUniform1ui;
818 extern PFNGLPROGRAMUNIFORM1UIVEXTPROC glProgramUniform1uivEXT;
819 extern PFNGLPROGRAMUNIFORM1UIVPROC glProgramUniform1uiv;
820 extern PFNGLPROGRAMUNIFORM2DEXTPROC glProgramUniform2dEXT;
821 extern PFNGLPROGRAMUNIFORM2DPROC glProgramUniform2d;
822 extern PFNGLPROGRAMUNIFORM2DVEXTPROC glProgramUniform2dvEXT;
823 extern PFNGLPROGRAMUNIFORM2DVPROC glProgramUniform2dv;
824 extern PFNGLPROGRAMUNIFORM2FEXTPROC glProgramUniform2fEXT;
825 extern PFNGLPROGRAMUNIFORM2FPROC glProgramUniform2f;
826 extern PFNGLPROGRAMUNIFORM2FVEXTPROC glProgramUniform2fvEXT;
827 extern PFNGLPROGRAMUNIFORM2FVPROC glProgramUniform2fv;
828 extern PFNGLPROGRAMUNIFORM2I64ARBPROC glProgramUniform2i64ARB;
829 extern PFNGLPROGRAMUNIFORM2I64NVPROC glProgramUniform2i64NV;
830 extern PFNGLPROGRAMUNIFORM2I64VARBPROC glProgramUniform2i64vARB;
831 extern PFNGLPROGRAMUNIFORM2I64VNVPROC glProgramUniform2i64vNV;
832 extern PFNGLPROGRAMUNIFORM2IEXTPROC glProgramUniform2iEXT;
833 extern PFNGLPROGRAMUNIFORM2IPROC glProgramUniform2i;
834 extern PFNGLPROGRAMUNIFORM2IVEXTPROC glProgramUniform2ivEXT;
835 extern PFNGLPROGRAMUNIFORM2IVPROC glProgramUniform2iv;
836 extern PFNGLPROGRAMUNIFORM2UI64ARBPROC glProgramUniform2ui64ARB;
837 extern PFNGLPROGRAMUNIFORM2UI64NVPROC glProgramUniform2ui64NV;
838 extern PFNGLPROGRAMUNIFORM2UI64VARBPROC glProgramUniform2ui64vARB;
839 extern PFNGLPROGRAMUNIFORM2UI64VNVPROC glProgramUniform2ui64vNV;
840 extern PFNGLPROGRAMUNIFORM2UIEXTPROC glProgramUniform2uiEXT;
841 extern PFNGLPROGRAMUNIFORM2UIPROC glProgramUniform2ui;
842 extern PFNGLPROGRAMUNIFORM2UIVEXTPROC glProgramUniform2uivEXT;
843 extern PFNGLPROGRAMUNIFORM2UIVPROC glProgramUniform2uiv;
844 extern PFNGLPROGRAMUNIFORM3DEXTPROC glProgramUniform3dEXT;
845 extern PFNGLPROGRAMUNIFORM3DPROC glProgramUniform3d;
846 extern PFNGLPROGRAMUNIFORM3DVEXTPROC glProgramUniform3dvEXT;
847 extern PFNGLPROGRAMUNIFORM3DVPROC glProgramUniform3dv;
848 extern PFNGLPROGRAMUNIFORM3FEXTPROC glProgramUniform3fEXT;
849 extern PFNGLPROGRAMUNIFORM3FPROC glProgramUniform3f;
850 extern PFNGLPROGRAMUNIFORM3FVEXTPROC glProgramUniform3fvEXT;
851 extern PFNGLPROGRAMUNIFORM3FVPROC glProgramUniform3fv;
852 extern PFNGLPROGRAMUNIFORM3I64ARBPROC glProgramUniform3i64ARB;
853 extern PFNGLPROGRAMUNIFORM3I64NVPROC glProgramUniform3i64NV;
854 extern PFNGLPROGRAMUNIFORM3I64VARBPROC glProgramUniform3i64vARB;
855 extern PFNGLPROGRAMUNIFORM3I64VNVPROC glProgramUniform3i64vNV;
856 extern PFNGLPROGRAMUNIFORM3IEXTPROC glProgramUniform3iEXT;
857 extern PFNGLPROGRAMUNIFORM3IPROC glProgramUniform3i;
858 extern PFNGLPROGRAMUNIFORM3IVEXTPROC glProgramUniform3ivEXT;
859 extern PFNGLPROGRAMUNIFORM3IVPROC glProgramUniform3iv;
860 extern PFNGLPROGRAMUNIFORM3UI64ARBPROC glProgramUniform3ui64ARB;
861 extern PFNGLPROGRAMUNIFORM3UI64NVPROC glProgramUniform3ui64NV;
862 extern PFNGLPROGRAMUNIFORM3UI64VARBPROC glProgramUniform3ui64vARB;
863 extern PFNGLPROGRAMUNIFORM3UI64VNVPROC glProgramUniform3ui64vNV;
864 extern PFNGLPROGRAMUNIFORM3UIEXTPROC glProgramUniform3uiEXT;
865 extern PFNGLPROGRAMUNIFORM3UIPROC glProgramUniform3ui;
866 extern PFNGLPROGRAMUNIFORM3UIVEXTPROC glProgramUniform3uivEXT;
867 extern PFNGLPROGRAMUNIFORM3UIVPROC glProgramUniform3uiv;
868 extern PFNGLPROGRAMUNIFORM4DEXTPROC glProgramUniform4dEXT;
869 extern PFNGLPROGRAMUNIFORM4DPROC glProgramUniform4d;
870 extern PFNGLPROGRAMUNIFORM4DVEXTPROC glProgramUniform4dvEXT;
871 extern PFNGLPROGRAMUNIFORM4DVPROC glProgramUniform4dv;
872 extern PFNGLPROGRAMUNIFORM4FEXTPROC glProgramUniform4fEXT;
873 extern PFNGLPROGRAMUNIFORM4FPROC glProgramUniform4f;
874 extern PFNGLPROGRAMUNIFORM4FVEXTPROC glProgramUniform4fvEXT;
875 extern PFNGLPROGRAMUNIFORM4FVPROC glProgramUniform4fv;
876 extern PFNGLPROGRAMUNIFORM4I64ARBPROC glProgramUniform4i64ARB;
877 extern PFNGLPROGRAMUNIFORM4I64NVPROC glProgramUniform4i64NV;
878 extern PFNGLPROGRAMUNIFORM4I64VARBPROC glProgramUniform4i64vARB;
879 extern PFNGLPROGRAMUNIFORM4I64VNVPROC glProgramUniform4i64vNV;
880 extern PFNGLPROGRAMUNIFORM4IEXTPROC glProgramUniform4iEXT;
881 extern PFNGLPROGRAMUNIFORM4IPROC glProgramUniform4i;
882 extern PFNGLPROGRAMUNIFORM4IVEXTPROC glProgramUniform4ivEXT;
883 extern PFNGLPROGRAMUNIFORM4IVPROC glProgramUniform4iv;
884 extern PFNGLPROGRAMUNIFORM4UI64ARBPROC glProgramUniform4ui64ARB;
885 extern PFNGLPROGRAMUNIFORM4UI64NVPROC glProgramUniform4ui64NV;
886 extern PFNGLPROGRAMUNIFORM4UI64VARBPROC glProgramUniform4ui64vARB;
887 extern PFNGLPROGRAMUNIFORM4UI64VNVPROC glProgramUniform4ui64vNV;
888 extern PFNGLPROGRAMUNIFORM4UIEXTPROC glProgramUniform4uiEXT;
889 extern PFNGLPROGRAMUNIFORM4UIPROC glProgramUniform4ui;
890 extern PFNGLPROGRAMUNIFORM4UIVEXTPROC glProgramUniform4uivEXT;
891 extern PFNGLPROGRAMUNIFORM4UIVPROC glProgramUniform4uiv;
892 extern PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC glProgramUniformHandleui64ARB;
893 extern PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC glProgramUniformHandleui64NV;
894 extern PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC glProgramUniformHandleui64vARB;
895 extern PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC glProgramUniformHandleui64vNV;
896 extern PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC glProgramUniformMatrix2dvEXT;
897 extern PFNGLPROGRAMUNIFORMMATRIX2DVPROC glProgramUniformMatrix2dv;
898 extern PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC glProgramUniformMatrix2fvEXT;
899 extern PFNGLPROGRAMUNIFORMMATRIX2FVPROC glProgramUniformMatrix2fv;
900 extern PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC glProgramUniformMatrix2x3dvEXT;
901 extern PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC glProgramUniformMatrix2x3dv;
902 extern PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC glProgramUniformMatrix2x3fvEXT;
903 extern PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glProgramUniformMatrix2x3fv;
904 extern PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC glProgramUniformMatrix2x4dvEXT;
905 extern PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC glProgramUniformMatrix2x4dv;
906 extern PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC glProgramUniformMatrix2x4fvEXT;
907 extern PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glProgramUniformMatrix2x4fv;
908 extern PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC glProgramUniformMatrix3dvEXT;
909 extern PFNGLPROGRAMUNIFORMMATRIX3DVPROC glProgramUniformMatrix3dv;
910 extern PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC glProgramUniformMatrix3fvEXT;
911 extern PFNGLPROGRAMUNIFORMMATRIX3FVPROC glProgramUniformMatrix3fv;
912 extern PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC glProgramUniformMatrix3x2dvEXT;
913 extern PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC glProgramUniformMatrix3x2dv;
914 extern PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC glProgramUniformMatrix3x2fvEXT;
915 extern PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glProgramUniformMatrix3x2fv;
916 extern PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC glProgramUniformMatrix3x4dvEXT;
917 extern PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC glProgramUniformMatrix3x4dv;
918 extern PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC glProgramUniformMatrix3x4fvEXT;
919 extern PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glProgramUniformMatrix3x4fv;
920 extern PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC glProgramUniformMatrix4dvEXT;
921 extern PFNGLPROGRAMUNIFORMMATRIX4DVPROC glProgramUniformMatrix4dv;
922 extern PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC glProgramUniformMatrix4fvEXT;
923 extern PFNGLPROGRAMUNIFORMMATRIX4FVPROC glProgramUniformMatrix4fv;
924 extern PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC glProgramUniformMatrix4x2dvEXT;
925 extern PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC glProgramUniformMatrix4x2dv;
926 extern PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC glProgramUniformMatrix4x2fvEXT;
927 extern PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glProgramUniformMatrix4x2fv;
928 extern PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC glProgramUniformMatrix4x3dvEXT;
929 extern PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC glProgramUniformMatrix4x3dv;
930 extern PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC glProgramUniformMatrix4x3fvEXT;
931 extern PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glProgramUniformMatrix4x3fv;
932 extern PFNGLPROGRAMUNIFORMUI64NVPROC glProgramUniformui64NV;
933 extern PFNGLPROGRAMUNIFORMUI64VNVPROC glProgramUniformui64vNV;
934 extern PFNGLPROVOKINGVERTEXPROC glProvokingVertex;
935 extern PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC glPushClientAttribDefaultEXT;
936 extern PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
937 extern PFNGLPUSHGROUPMARKEREXTPROC glPushGroupMarkerEXT;
938 extern PFNGLQUERYCOUNTERPROC glQueryCounter;
939 extern PFNGLRASTERSAMPLESEXTPROC glRasterSamplesEXT;
940 extern PFNGLREADBUFFERPROC glReadBuffer;
941 extern PFNGLREADNPIXELSARBPROC glReadnPixelsARB;
942 extern PFNGLREADNPIXELSPROC glReadnPixels;
943 extern PFNGLREADPIXELSPROC glReadPixels;
944 extern PFNGLRELEASESHADERCOMPILERPROC glReleaseShaderCompiler;
945 extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC glRenderbufferStorageMultisampleCoverageNV;
946 extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
947 extern PFNGLRENDERBUFFERSTORAGEPROC glRenderbufferStorage;
948 extern PFNGLRESOLVEDEPTHVALUESNVPROC glResolveDepthValuesNV;
949 extern PFNGLRESUMETRANSFORMFEEDBACKPROC glResumeTransformFeedback;
950 extern PFNGLSAMPLECOVERAGEPROC glSampleCoverage;
951 extern PFNGLSAMPLEMASKIPROC glSampleMaski;
952 extern PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
953 extern PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
954 extern PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
955 extern PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
956 extern PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
957 extern PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
958 extern PFNGLSCISSORARRAYVPROC glScissorArrayv;
959 extern PFNGLSCISSORINDEXEDPROC glScissorIndexed;
960 extern PFNGLSCISSORINDEXEDVPROC glScissorIndexedv;
961 extern PFNGLSCISSORPROC glScissor;
962 extern PFNGLSECONDARYCOLORFORMATNVPROC glSecondaryColorFormatNV;
963 extern PFNGLSELECTPERFMONITORCOUNTERSAMDPROC glSelectPerfMonitorCountersAMD;
964 extern PFNGLSHADERBINARYPROC glShaderBinary;
965 extern PFNGLSHADERSOURCEPROC glShaderSource;
966 extern PFNGLSHADERSTORAGEBLOCKBINDINGPROC glShaderStorageBlockBinding;
967 extern PFNGLSIGNALVKFENCENVPROC glSignalVkFenceNV;
968 extern PFNGLSIGNALVKSEMAPHORENVPROC glSignalVkSemaphoreNV;
969 extern PFNGLSPECIALIZESHADERARBPROC glSpecializeShaderARB;
970 extern PFNGLSTATECAPTURENVPROC glStateCaptureNV;
971 extern PFNGLSTENCILFILLPATHINSTANCEDNVPROC glStencilFillPathInstancedNV;
972 extern PFNGLSTENCILFILLPATHNVPROC glStencilFillPathNV;
973 extern PFNGLSTENCILFUNCPROC glStencilFunc;
974 extern PFNGLSTENCILFUNCSEPARATEPROC glStencilFuncSeparate;
975 extern PFNGLSTENCILMASKPROC glStencilMask;
976 extern PFNGLSTENCILMASKSEPARATEPROC glStencilMaskSeparate;
977 extern PFNGLSTENCILOPPROC glStencilOp;
978 extern PFNGLSTENCILOPSEPARATEPROC glStencilOpSeparate;
979 extern PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC glStencilStrokePathInstancedNV;
980 extern PFNGLSTENCILSTROKEPATHNVPROC glStencilStrokePathNV;
981 extern PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC glStencilThenCoverFillPathInstancedNV;
982 extern PFNGLSTENCILTHENCOVERFILLPATHNVPROC glStencilThenCoverFillPathNV;
983 extern PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC glStencilThenCoverStrokePathInstancedNV;
984 extern PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC glStencilThenCoverStrokePathNV;
985 extern PFNGLSUBPIXELPRECISIONBIASNVPROC glSubpixelPrecisionBiasNV;
986 extern PFNGLTEXBUFFERARBPROC glTexBufferARB;
987 extern PFNGLTEXBUFFERPROC glTexBuffer;
988 extern PFNGLTEXBUFFERRANGEPROC glTexBufferRange;
989 extern PFNGLTEXCOORDFORMATNVPROC glTexCoordFormatNV;
990 extern PFNGLTEXIMAGE1DPROC glTexImage1D;
991 extern PFNGLTEXIMAGE2DMULTISAMPLEPROC glTexImage2DMultisample;
992 extern PFNGLTEXIMAGE2DPROC glTexImage2D;
993 extern PFNGLTEXIMAGE3DMULTISAMPLEPROC glTexImage3DMultisample;
994 extern PFNGLTEXIMAGE3DPROC glTexImage3D;
995 extern PFNGLTEXPAGECOMMITMENTARBPROC glTexPageCommitmentARB;
996 extern PFNGLTEXPARAMETERFPROC glTexParameterf;
997 extern PFNGLTEXPARAMETERFVPROC glTexParameterfv;
998 extern PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
999 extern PFNGLTEXPARAMETERIPROC glTexParameteri;
1000 extern PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
1001 extern PFNGLTEXPARAMETERIVPROC glTexParameteriv;
1002 extern PFNGLTEXSTORAGE1DPROC glTexStorage1D;
1003 extern PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
1004 extern PFNGLTEXSTORAGE2DPROC glTexStorage2D;
1005 extern PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
1006 extern PFNGLTEXSTORAGE3DPROC glTexStorage3D;
1007 extern PFNGLTEXSUBIMAGE1DPROC glTexSubImage1D;
1008 extern PFNGLTEXSUBIMAGE2DPROC glTexSubImage2D;
1009 extern PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
1010 extern PFNGLTEXTUREBARRIERNVPROC glTextureBarrierNV;
1011 extern PFNGLTEXTUREBARRIERPROC glTextureBarrier;
1012 extern PFNGLTEXTUREBUFFEREXTPROC glTextureBufferEXT;
1013 extern PFNGLTEXTUREBUFFERPROC glTextureBuffer;
1014 extern PFNGLTEXTUREBUFFERRANGEEXTPROC glTextureBufferRangeEXT;
1015 extern PFNGLTEXTUREBUFFERRANGEPROC glTextureBufferRange;
1016 extern PFNGLTEXTUREIMAGE1DEXTPROC glTextureImage1DEXT;
1017 extern PFNGLTEXTUREIMAGE2DEXTPROC glTextureImage2DEXT;
1018 extern PFNGLTEXTUREIMAGE3DEXTPROC glTextureImage3DEXT;
1019 extern PFNGLTEXTUREPAGECOMMITMENTEXTPROC glTexturePageCommitmentEXT;
1020 extern PFNGLTEXTUREPARAMETERFEXTPROC glTextureParameterfEXT;
1021 extern PFNGLTEXTUREPARAMETERFPROC glTextureParameterf;
1022 extern PFNGLTEXTUREPARAMETERFVEXTPROC glTextureParameterfvEXT;
1023 extern PFNGLTEXTUREPARAMETERFVPROC glTextureParameterfv;
1024 extern PFNGLTEXTUREPARAMETERIEXTPROC glTextureParameteriEXT;
1025 extern PFNGLTEXTUREPARAMETERIIVEXTPROC glTextureParameterIivEXT;
1026 extern PFNGLTEXTUREPARAMETERIIVPROC glTextureParameterIiv;
1027 extern PFNGLTEXTUREPARAMETERIPROC glTextureParameteri;
1028 extern PFNGLTEXTUREPARAMETERIUIVEXTPROC glTextureParameterIuivEXT;
1029 extern PFNGLTEXTUREPARAMETERIUIVPROC glTextureParameterIuiv;
1030 extern PFNGLTEXTUREPARAMETERIVEXTPROC glTextureParameterivEXT;
1031 extern PFNGLTEXTUREPARAMETERIVPROC glTextureParameteriv;
1032 extern PFNGLTEXTURERENDERBUFFEREXTPROC glTextureRenderbufferEXT;
1033 extern PFNGLTEXTURESTORAGE1DEXTPROC glTextureStorage1DEXT;
1034 extern PFNGLTEXTURESTORAGE1DPROC glTextureStorage1D;
1035 extern PFNGLTEXTURESTORAGE2DEXTPROC glTextureStorage2DEXT;
1036 extern PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC glTextureStorage2DMultisampleEXT;
1037 extern PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC glTextureStorage2DMultisample;
1038 extern PFNGLTEXTURESTORAGE2DPROC glTextureStorage2D;
1039 extern PFNGLTEXTURESTORAGE3DEXTPROC glTextureStorage3DEXT;
1040 extern PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC glTextureStorage3DMultisampleEXT;
1041 extern PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC glTextureStorage3DMultisample;
1042 extern PFNGLTEXTURESTORAGE3DPROC glTextureStorage3D;
1043 extern PFNGLTEXTURESUBIMAGE1DEXTPROC glTextureSubImage1DEXT;
1044 extern PFNGLTEXTURESUBIMAGE1DPROC glTextureSubImage1D;
1045 extern PFNGLTEXTURESUBIMAGE2DEXTPROC glTextureSubImage2DEXT;
1046 extern PFNGLTEXTURESUBIMAGE2DPROC glTextureSubImage2D;
1047 extern PFNGLTEXTURESUBIMAGE3DEXTPROC glTextureSubImage3DEXT;
1048 extern PFNGLTEXTURESUBIMAGE3DPROC glTextureSubImage3D;
1049 extern PFNGLTEXTUREVIEWPROC glTextureView;
1050 extern PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC glTransformFeedbackBufferBase;
1051 extern PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC glTransformFeedbackBufferRange;
1052 extern PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
1053 extern PFNGLTRANSFORMPATHNVPROC glTransformPathNV;
1054 extern PFNGLUNIFORM1DPROC glUniform1d;
1055 extern PFNGLUNIFORM1DVPROC glUniform1dv;
1056 extern PFNGLUNIFORM1FPROC glUniform1f;
1057 extern PFNGLUNIFORM1FVPROC glUniform1fv;
1058 extern PFNGLUNIFORM1I64ARBPROC glUniform1i64ARB;
1059 extern PFNGLUNIFORM1I64NVPROC glUniform1i64NV;
1060 extern PFNGLUNIFORM1I64VARBPROC glUniform1i64vARB;
1061 extern PFNGLUNIFORM1I64VNVPROC glUniform1i64vNV;
1062 extern PFNGLUNIFORM1IPROC glUniform1i;
1063 extern PFNGLUNIFORM1IVPROC glUniform1iv;
1064 extern PFNGLUNIFORM1UI64ARBPROC glUniform1ui64ARB;
1065 extern PFNGLUNIFORM1UI64NVPROC glUniform1ui64NV;
1066 extern PFNGLUNIFORM1UI64VARBPROC glUniform1ui64vARB;
1067 extern PFNGLUNIFORM1UI64VNVPROC glUniform1ui64vNV;
1068 extern PFNGLUNIFORM1UIPROC glUniform1ui;
1069 extern PFNGLUNIFORM1UIVPROC glUniform1uiv;
1070 extern PFNGLUNIFORM2DPROC glUniform2d;
1071 extern PFNGLUNIFORM2DVPROC glUniform2dv;
1072 extern PFNGLUNIFORM2FPROC glUniform2f;
1073 extern PFNGLUNIFORM2FVPROC glUniform2fv;
1074 extern PFNGLUNIFORM2I64ARBPROC glUniform2i64ARB;
1075 extern PFNGLUNIFORM2I64NVPROC glUniform2i64NV;
1076 extern PFNGLUNIFORM2I64VARBPROC glUniform2i64vARB;
1077 extern PFNGLUNIFORM2I64VNVPROC glUniform2i64vNV;
1078 extern PFNGLUNIFORM2IPROC glUniform2i;
1079 extern PFNGLUNIFORM2IVPROC glUniform2iv;
1080 extern PFNGLUNIFORM2UI64ARBPROC glUniform2ui64ARB;
1081 extern PFNGLUNIFORM2UI64NVPROC glUniform2ui64NV;
1082 extern PFNGLUNIFORM2UI64VARBPROC glUniform2ui64vARB;
1083 extern PFNGLUNIFORM2UI64VNVPROC glUniform2ui64vNV;
1084 extern PFNGLUNIFORM2UIPROC glUniform2ui;
1085 extern PFNGLUNIFORM2UIVPROC glUniform2uiv;
1086 extern PFNGLUNIFORM3DPROC glUniform3d;
1087 extern PFNGLUNIFORM3DVPROC glUniform3dv;
1088 extern PFNGLUNIFORM3FPROC glUniform3f;
1089 extern PFNGLUNIFORM3FVPROC glUniform3fv;
1090 extern PFNGLUNIFORM3I64ARBPROC glUniform3i64ARB;
1091 extern PFNGLUNIFORM3I64NVPROC glUniform3i64NV;
1092 extern PFNGLUNIFORM3I64VARBPROC glUniform3i64vARB;
1093 extern PFNGLUNIFORM3I64VNVPROC glUniform3i64vNV;
1094 extern PFNGLUNIFORM3IPROC glUniform3i;
1095 extern PFNGLUNIFORM3IVPROC glUniform3iv;
1096 extern PFNGLUNIFORM3UI64ARBPROC glUniform3ui64ARB;
1097 extern PFNGLUNIFORM3UI64NVPROC glUniform3ui64NV;
1098 extern PFNGLUNIFORM3UI64VARBPROC glUniform3ui64vARB;
1099 extern PFNGLUNIFORM3UI64VNVPROC glUniform3ui64vNV;
1100 extern PFNGLUNIFORM3UIPROC glUniform3ui;
1101 extern PFNGLUNIFORM3UIVPROC glUniform3uiv;
1102 extern PFNGLUNIFORM4DPROC glUniform4d;
1103 extern PFNGLUNIFORM4DVPROC glUniform4dv;
1104 extern PFNGLUNIFORM4FPROC glUniform4f;
1105 extern PFNGLUNIFORM4FVPROC glUniform4fv;
1106 extern PFNGLUNIFORM4I64ARBPROC glUniform4i64ARB;
1107 extern PFNGLUNIFORM4I64NVPROC glUniform4i64NV;
1108 extern PFNGLUNIFORM4I64VARBPROC glUniform4i64vARB;
1109 extern PFNGLUNIFORM4I64VNVPROC glUniform4i64vNV;
1110 extern PFNGLUNIFORM4IPROC glUniform4i;
1111 extern PFNGLUNIFORM4IVPROC glUniform4iv;
1112 extern PFNGLUNIFORM4UI64ARBPROC glUniform4ui64ARB;
1113 extern PFNGLUNIFORM4UI64NVPROC glUniform4ui64NV;
1114 extern PFNGLUNIFORM4UI64VARBPROC glUniform4ui64vARB;
1115 extern PFNGLUNIFORM4UI64VNVPROC glUniform4ui64vNV;
1116 extern PFNGLUNIFORM4UIPROC glUniform4ui;
1117 extern PFNGLUNIFORM4UIVPROC glUniform4uiv;
1118 extern PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
1119 extern PFNGLUNIFORMHANDLEUI64ARBPROC glUniformHandleui64ARB;
1120 extern PFNGLUNIFORMHANDLEUI64NVPROC glUniformHandleui64NV;
1121 extern PFNGLUNIFORMHANDLEUI64VARBPROC glUniformHandleui64vARB;
1122 extern PFNGLUNIFORMHANDLEUI64VNVPROC glUniformHandleui64vNV;
1123 extern PFNGLUNIFORMMATRIX2DVPROC glUniformMatrix2dv;
1124 extern PFNGLUNIFORMMATRIX2FVPROC glUniformMatrix2fv;
1125 extern PFNGLUNIFORMMATRIX2X3DVPROC glUniformMatrix2x3dv;
1126 extern PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv;
1127 extern PFNGLUNIFORMMATRIX2X4DVPROC glUniformMatrix2x4dv;
1128 extern PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv;
1129 extern PFNGLUNIFORMMATRIX3DVPROC glUniformMatrix3dv;
1130 extern PFNGLUNIFORMMATRIX3FVPROC glUniformMatrix3fv;
1131 extern PFNGLUNIFORMMATRIX3X2DVPROC glUniformMatrix3x2dv;
1132 extern PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv;
1133 extern PFNGLUNIFORMMATRIX3X4DVPROC glUniformMatrix3x4dv;
1134 extern PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
1135 extern PFNGLUNIFORMMATRIX4DVPROC glUniformMatrix4dv;
1136 extern PFNGLUNIFORMMATRIX4FVPROC glUniformMatrix4fv;
1137 extern PFNGLUNIFORMMATRIX4X2DVPROC glUniformMatrix4x2dv;
1138 extern PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv;
1139 extern PFNGLUNIFORMMATRIX4X3DVPROC glUniformMatrix4x3dv;
1140 extern PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv;
1141 extern PFNGLUNIFORMSUBROUTINESUIVPROC glUniformSubroutinesuiv;
1142 extern PFNGLUNIFORMUI64NVPROC glUniformui64NV;
1143 extern PFNGLUNIFORMUI64VNVPROC glUniformui64vNV;
1144 extern PFNGLUNMAPBUFFERPROC glUnmapBuffer;
1145 extern PFNGLUNMAPNAMEDBUFFEREXTPROC glUnmapNamedBufferEXT;
1146 extern PFNGLUNMAPNAMEDBUFFERPROC glUnmapNamedBuffer;
1147 extern PFNGLUSEPROGRAMPROC glUseProgram;
1148 extern PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages;
1149 extern PFNGLUSESHADERPROGRAMEXTPROC glUseShaderProgramEXT;
1150 extern PFNGLVALIDATEPROGRAMPIPELINEPROC glValidateProgramPipeline;
1151 extern PFNGLVALIDATEPROGRAMPROC glValidateProgram;
1152 extern PFNGLVERTEXARRAYATTRIBBINDINGPROC glVertexArrayAttribBinding;
1153 extern PFNGLVERTEXARRAYATTRIBFORMATPROC glVertexArrayAttribFormat;
1154 extern PFNGLVERTEXARRAYATTRIBIFORMATPROC glVertexArrayAttribIFormat;
1155 extern PFNGLVERTEXARRAYATTRIBLFORMATPROC glVertexArrayAttribLFormat;
1156 extern PFNGLVERTEXARRAYBINDINGDIVISORPROC glVertexArrayBindingDivisor;
1157 extern PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC glVertexArrayBindVertexBufferEXT;
1158 extern PFNGLVERTEXARRAYCOLOROFFSETEXTPROC glVertexArrayColorOffsetEXT;
1159 extern PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC glVertexArrayEdgeFlagOffsetEXT;
1160 extern PFNGLVERTEXARRAYELEMENTBUFFERPROC glVertexArrayElementBuffer;
1161 extern PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC glVertexArrayFogCoordOffsetEXT;
1162 extern PFNGLVERTEXARRAYINDEXOFFSETEXTPROC glVertexArrayIndexOffsetEXT;
1163 extern PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC glVertexArrayMultiTexCoordOffsetEXT;
1164 extern PFNGLVERTEXARRAYNORMALOFFSETEXTPROC glVertexArrayNormalOffsetEXT;
1165 extern PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC glVertexArraySecondaryColorOffsetEXT;
1166 extern PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC glVertexArrayTexCoordOffsetEXT;
1167 extern PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC glVertexArrayVertexAttribBindingEXT;
1168 extern PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC glVertexArrayVertexAttribDivisorEXT;
1169 extern PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC glVertexArrayVertexAttribFormatEXT;
1170 extern PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC glVertexArrayVertexAttribIFormatEXT;
1171 extern PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC glVertexArrayVertexAttribIOffsetEXT;
1172 extern PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC glVertexArrayVertexAttribLFormatEXT;
1173 extern PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC glVertexArrayVertexAttribLOffsetEXT;
1174 extern PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC glVertexArrayVertexAttribOffsetEXT;
1175 extern PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC glVertexArrayVertexBindingDivisorEXT;
1176 extern PFNGLVERTEXARRAYVERTEXBUFFERPROC glVertexArrayVertexBuffer;
1177 extern PFNGLVERTEXARRAYVERTEXBUFFERSPROC glVertexArrayVertexBuffers;
1178 extern PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC glVertexArrayVertexOffsetEXT;
1179 extern PFNGLVERTEXATTRIB1DPROC glVertexAttrib1d;
1180 extern PFNGLVERTEXATTRIB1DVPROC glVertexAttrib1dv;
1181 extern PFNGLVERTEXATTRIB1FPROC glVertexAttrib1f;
1182 extern PFNGLVERTEXATTRIB1FVPROC glVertexAttrib1fv;
1183 extern PFNGLVERTEXATTRIB1SPROC glVertexAttrib1s;
1184 extern PFNGLVERTEXATTRIB1SVPROC glVertexAttrib1sv;
1185 extern PFNGLVERTEXATTRIB2DPROC glVertexAttrib2d;
1186 extern PFNGLVERTEXATTRIB2DVPROC glVertexAttrib2dv;
1187 extern PFNGLVERTEXATTRIB2FPROC glVertexAttrib2f;
1188 extern PFNGLVERTEXATTRIB2FVPROC glVertexAttrib2fv;
1189 extern PFNGLVERTEXATTRIB2SPROC glVertexAttrib2s;
1190 extern PFNGLVERTEXATTRIB2SVPROC glVertexAttrib2sv;
1191 extern PFNGLVERTEXATTRIB3DPROC glVertexAttrib3d;
1192 extern PFNGLVERTEXATTRIB3DVPROC glVertexAttrib3dv;
1193 extern PFNGLVERTEXATTRIB3FPROC glVertexAttrib3f;
1194 extern PFNGLVERTEXATTRIB3FVPROC glVertexAttrib3fv;
1195 extern PFNGLVERTEXATTRIB3SPROC glVertexAttrib3s;
1196 extern PFNGLVERTEXATTRIB3SVPROC glVertexAttrib3sv;
1197 extern PFNGLVERTEXATTRIB4BVPROC glVertexAttrib4bv;
1198 extern PFNGLVERTEXATTRIB4DPROC glVertexAttrib4d;
1199 extern PFNGLVERTEXATTRIB4DVPROC glVertexAttrib4dv;
1200 extern PFNGLVERTEXATTRIB4FPROC glVertexAttrib4f;
1201 extern PFNGLVERTEXATTRIB4FVPROC glVertexAttrib4fv;
1202 extern PFNGLVERTEXATTRIB4IVPROC glVertexAttrib4iv;
1203 extern PFNGLVERTEXATTRIB4NBVPROC glVertexAttrib4Nbv;
1204 extern PFNGLVERTEXATTRIB4NIVPROC glVertexAttrib4Niv;
1205 extern PFNGLVERTEXATTRIB4NSVPROC glVertexAttrib4Nsv;
1206 extern PFNGLVERTEXATTRIB4NUBPROC glVertexAttrib4Nub;
1207 extern PFNGLVERTEXATTRIB4NUBVPROC glVertexAttrib4Nubv;
1208 extern PFNGLVERTEXATTRIB4NUIVPROC glVertexAttrib4Nuiv;
1209 extern PFNGLVERTEXATTRIB4NUSVPROC glVertexAttrib4Nusv;
1210 extern PFNGLVERTEXATTRIB4SPROC glVertexAttrib4s;
1211 extern PFNGLVERTEXATTRIB4SVPROC glVertexAttrib4sv;
1212 extern PFNGLVERTEXATTRIB4UBVPROC glVertexAttrib4ubv;
1213 extern PFNGLVERTEXATTRIB4UIVPROC glVertexAttrib4uiv;
1214 extern PFNGLVERTEXATTRIB4USVPROC glVertexAttrib4usv;
1215 extern PFNGLVERTEXATTRIBBINDINGPROC glVertexAttribBinding;
1216 extern PFNGLVERTEXATTRIBDIVISORARBPROC glVertexAttribDivisorARB;
1217 extern PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
1218 extern PFNGLVERTEXATTRIBFORMATNVPROC glVertexAttribFormatNV;
1219 extern PFNGLVERTEXATTRIBFORMATPROC glVertexAttribFormat;
1220 extern PFNGLVERTEXATTRIBI1IPROC glVertexAttribI1i;
1221 extern PFNGLVERTEXATTRIBI1IVPROC glVertexAttribI1iv;
1222 extern PFNGLVERTEXATTRIBI1UIPROC glVertexAttribI1ui;
1223 extern PFNGLVERTEXATTRIBI1UIVPROC glVertexAttribI1uiv;
1224 extern PFNGLVERTEXATTRIBI2IPROC glVertexAttribI2i;
1225 extern PFNGLVERTEXATTRIBI2IVPROC glVertexAttribI2iv;
1226 extern PFNGLVERTEXATTRIBI2UIPROC glVertexAttribI2ui;
1227 extern PFNGLVERTEXATTRIBI2UIVPROC glVertexAttribI2uiv;
1228 extern PFNGLVERTEXATTRIBI3IPROC glVertexAttribI3i;
1229 extern PFNGLVERTEXATTRIBI3IVPROC glVertexAttribI3iv;
1230 extern PFNGLVERTEXATTRIBI3UIPROC glVertexAttribI3ui;
1231 extern PFNGLVERTEXATTRIBI3UIVPROC glVertexAttribI3uiv;
1232 extern PFNGLVERTEXATTRIBI4BVPROC glVertexAttribI4bv;
1233 extern PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
1234 extern PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
1235 extern PFNGLVERTEXATTRIBI4SVPROC glVertexAttribI4sv;
1236 extern PFNGLVERTEXATTRIBI4UBVPROC glVertexAttribI4ubv;
1237 extern PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
1238 extern PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
1239 extern PFNGLVERTEXATTRIBI4USVPROC glVertexAttribI4usv;
1240 extern PFNGLVERTEXATTRIBIFORMATNVPROC glVertexAttribIFormatNV;
1241 extern PFNGLVERTEXATTRIBIFORMATPROC glVertexAttribIFormat;
1242 extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
1243 extern PFNGLVERTEXATTRIBL1DPROC glVertexAttribL1d;
1244 extern PFNGLVERTEXATTRIBL1DVPROC glVertexAttribL1dv;
1245 extern PFNGLVERTEXATTRIBL1I64NVPROC glVertexAttribL1i64NV;
1246 extern PFNGLVERTEXATTRIBL1I64VNVPROC glVertexAttribL1i64vNV;
1247 extern PFNGLVERTEXATTRIBL1UI64ARBPROC glVertexAttribL1ui64ARB;
1248 extern PFNGLVERTEXATTRIBL1UI64NVPROC glVertexAttribL1ui64NV;
1249 extern PFNGLVERTEXATTRIBL1UI64VARBPROC glVertexAttribL1ui64vARB;
1250 extern PFNGLVERTEXATTRIBL1UI64VNVPROC glVertexAttribL1ui64vNV;
1251 extern PFNGLVERTEXATTRIBL2DPROC glVertexAttribL2d;
1252 extern PFNGLVERTEXATTRIBL2DVPROC glVertexAttribL2dv;
1253 extern PFNGLVERTEXATTRIBL2I64NVPROC glVertexAttribL2i64NV;
1254 extern PFNGLVERTEXATTRIBL2I64VNVPROC glVertexAttribL2i64vNV;
1255 extern PFNGLVERTEXATTRIBL2UI64NVPROC glVertexAttribL2ui64NV;
1256 extern PFNGLVERTEXATTRIBL2UI64VNVPROC glVertexAttribL2ui64vNV;
1257 extern PFNGLVERTEXATTRIBL3DPROC glVertexAttribL3d;
1258 extern PFNGLVERTEXATTRIBL3DVPROC glVertexAttribL3dv;
1259 extern PFNGLVERTEXATTRIBL3I64NVPROC glVertexAttribL3i64NV;
1260 extern PFNGLVERTEXATTRIBL3I64VNVPROC glVertexAttribL3i64vNV;
1261 extern PFNGLVERTEXATTRIBL3UI64NVPROC glVertexAttribL3ui64NV;
1262 extern PFNGLVERTEXATTRIBL3UI64VNVPROC glVertexAttribL3ui64vNV;
1263 extern PFNGLVERTEXATTRIBL4DPROC glVertexAttribL4d;
1264 extern PFNGLVERTEXATTRIBL4DVPROC glVertexAttribL4dv;
1265 extern PFNGLVERTEXATTRIBL4I64NVPROC glVertexAttribL4i64NV;
1266 extern PFNGLVERTEXATTRIBL4I64VNVPROC glVertexAttribL4i64vNV;
1267 extern PFNGLVERTEXATTRIBL4UI64NVPROC glVertexAttribL4ui64NV;
1268 extern PFNGLVERTEXATTRIBL4UI64VNVPROC glVertexAttribL4ui64vNV;
1269 extern PFNGLVERTEXATTRIBLFORMATNVPROC glVertexAttribLFormatNV;
1270 extern PFNGLVERTEXATTRIBLFORMATPROC glVertexAttribLFormat;
1271 extern PFNGLVERTEXATTRIBLPOINTERPROC glVertexAttribLPointer;
1272 extern PFNGLVERTEXATTRIBP1UIPROC glVertexAttribP1ui;
1273 extern PFNGLVERTEXATTRIBP1UIVPROC glVertexAttribP1uiv;
1274 extern PFNGLVERTEXATTRIBP2UIPROC glVertexAttribP2ui;
1275 extern PFNGLVERTEXATTRIBP2UIVPROC glVertexAttribP2uiv;
1276 extern PFNGLVERTEXATTRIBP3UIPROC glVertexAttribP3ui;
1277 extern PFNGLVERTEXATTRIBP3UIVPROC glVertexAttribP3uiv;
1278 extern PFNGLVERTEXATTRIBP4UIPROC glVertexAttribP4ui;
1279 extern PFNGLVERTEXATTRIBP4UIVPROC glVertexAttribP4uiv;
1280 extern PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer;
1281 extern PFNGLVERTEXBINDINGDIVISORPROC glVertexBindingDivisor;
1282 extern PFNGLVERTEXFORMATNVPROC glVertexFormatNV;
1283 extern PFNGLVIEWPORTARRAYVPROC glViewportArrayv;
1284 extern PFNGLVIEWPORTINDEXEDFPROC glViewportIndexedf;
1285 extern PFNGLVIEWPORTINDEXEDFVPROC glViewportIndexedfv;
1286 extern PFNGLVIEWPORTPOSITIONWSCALENVPROC glViewportPositionWScaleNV;
1287 extern PFNGLVIEWPORTPROC glViewport;
1288 extern PFNGLVIEWPORTSWIZZLENVPROC glViewportSwizzleNV;
1289 extern PFNGLWAITSYNCPROC glWaitSync;
1290 extern PFNGLWAITVKSEMAPHORENVPROC glWaitVkSemaphoreNV;
1291 extern PFNGLWEIGHTPATHSNVPROC glWeightPathsNV;
1292 extern PFNGLWINDOWRECTANGLESEXTPROC glWindowRectanglesEXT;
1342 extern void _ggError(
const char *name =
nullptr,
unsigned int line = 0);
1353 # define ggError() gg::_ggError(__FILE__, __LINE__)
1366 extern void _ggFBOError(
const char *name =
nullptr,
unsigned int line = 0);
1377 # define ggFBOError() gg::_ggFBOError(__FILE__, __LINE__)
1379 # define ggFBOError()
1392 extern bool ggSaveTga(
const char *name,
const void *buffer,
1393 unsigned int width,
unsigned int height,
unsigned int depth);
1421 extern bool ggReadImage(
const char *name, std::vector<GLubyte> &image, GLsizei *pWidth, GLsizei *pHeight, GLenum *pFormat);
1435 extern GLuint
ggLoadTexture(
const GLvoid *image, GLsizei width, GLsizei height,
1436 GLenum format = GL_BGR, GLenum type = GL_UNSIGNED_BYTE,
1437 GLenum
internal = GL_RGB, GLenum wrap = GL_CLAMP_TO_EDGE);
1449 extern GLuint
ggLoadImage(
const char *name, GLsizei *pWidth =
nullptr, GLsizei *pHeight =
nullptr,
1450 GLenum
internal = 0, GLenum wrap = GL_CLAMP_TO_EDGE);
1463 extern void ggCreateNormalMap(
const GLubyte *hmap, GLsizei width, GLsizei height, GLenum format, GLfloat nz,
1464 GLenum
internal, std::vector<GgVector> &nmap);
1476 extern GLuint
ggLoadHeight(
const char *name,
float nz, GLsizei *pWidth =
nullptr, GLsizei *pHeight =
nullptr,
1477 GLenum
internal = GL_RGBA);
1492 extern GLuint
ggCreateShader(
const char *vsrc,
const char *fsrc =
nullptr,
const char *gsrc =
nullptr,
1493 GLint nvarying = 0,
const char *
const varyings[] =
nullptr,
1494 const char *vtext =
"vertex shader",
1495 const char *ftext =
"fragment shader",
1496 const char *gtext =
"geometry shader");
1508 extern GLuint
ggLoadShader(
const char *vert,
const char *frag =
nullptr,
const char *geom =
nullptr,
1509 GLint nvarying = 0,
const char *
const varyings[] =
nullptr);
1511 #if !defined(__APPLE__)
1535 extern GLfloat
ggLength3(
const GLfloat *a);
1559 inline GLfloat
ggDot3(
const GLfloat *a,
const GLfloat *b)
1561 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
1571 inline void ggCross(GLfloat *c,
const GLfloat *a,
const GLfloat *b)
1573 c[0] = a[1] * b[2] - a[2] * b[1];
1574 c[1] = a[2] * b[0] - a[0] * b[2];
1575 c[2] = a[0] * b[1] - a[1] * b[0];
1583 extern GLfloat
ggLength4(
const GLfloat *a);
1635 inline GLfloat
ggDot4(
const GLfloat *a,
const GLfloat *b)
1637 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
1648 return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
1657 std::array<GLfloat, 16> array;
1660 void projection(GLfloat *c,
const GLfloat *a,
const GLfloat *b)
const;
1663 void multiply(GLfloat *c,
const GLfloat *a,
const GLfloat *b)
const;
1695 for (
int i = 0; i < 16; ++i) array[i] = a[i];
1704 return load(m.array.data());
1712 for (
int i = 0; i < 16; ++i) array[i] += a[i];
1721 return loadAdd(m.array.data());
1729 for (
int i = 0; i < 16; ++i) array[i] -= a[i];
1746 return load(multiply(a));
1787 return add(m.array.data());
1813 multiply(t.array.data(), array.data(), a);
1822 return multiply(m.array.data());
1832 multiply(t.array.data(), array.data(), ia.array.data());
1841 return divide(m.array.data());
1966 return loadScale(s[0], s[1], s[2], s[3]);
2038 GLfloat tx, GLfloat ty, GLfloat tz,
2039 GLfloat ux, GLfloat uy, GLfloat uz);
2048 return loadLookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2058 return loadLookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2070 GLfloat bottom, GLfloat top,
2071 GLfloat zNear, GLfloat zFar);
2082 GLfloat bottom, GLfloat top,
2083 GLfloat zNear, GLfloat zFar);
2092 GLfloat zNear, GLfloat zFar);
2158 return translate(t[0], t[1], t[2], t[3]);
2170 return multiply(m.
loadScale(x, y, z, w));
2178 return scale(s[0], s[1], s[2]);
2186 return scale(s[0], s[1], s[2], s[3]);
2234 return rotate(r[0], r[1], r[2], a);
2243 return rotate(r[0], r[1], r[2], a);
2251 return rotate(r[0], r[1], r[2], r[3]);
2259 return rotate(r[0], r[1], r[2], r[3]);
2274 GLfloat tx, GLfloat ty, GLfloat tz,
2275 GLfloat ux, GLfloat uy, GLfloat uz)
const
2278 return multiply(m.
loadLookat(ex, ey, ez, tx, ty, tz, ux, uy, uz));
2288 return lookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2298 return lookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2310 GLfloat bottom, GLfloat top,
2311 GLfloat zNear, GLfloat zFar)
const
2314 return multiply(m.
loadOrthogonal(left, right, bottom, top, zNear, zFar));
2326 GLfloat bottom, GLfloat top,
2327 GLfloat zNear, GLfloat zFar)
const
2330 return multiply(m.
loadFrustum(left, right, bottom, top, zNear, zFar));
2340 GLfloat zNear, GLfloat zFar)
const
2375 projection(c, array.data(), v);
2383 projection(c, v.data());
2391 projection(c.data(), v);
2399 projection(c.data(), v.data());
2416 return array.data();
2423 for (
int i = 0; i < 16; ++i) a[i] = array[i];
2513 return m.
loadScale(s[0], s[1], s[2], s[3]);
2605 GLfloat ex, GLfloat ey, GLfloat ez,
2606 GLfloat tx, GLfloat ty, GLfloat tz,
2607 GLfloat ux, GLfloat uy, GLfloat uz
2611 return m.
loadLookat(ex, ey, ez, tx, ty, tz, ux, uy, uz);
2626 return m.
loadLookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2641 return m.
loadLookat(e[0], e[1], e[2], t[0], t[1], t[2], u[0], u[1], u[2]);
2653 GLfloat bottom, GLfloat top,
2654 GLfloat zNear, GLfloat zFar)
2669 GLfloat bottom, GLfloat top,
2670 GLfloat zNear, GLfloat zFar)
2673 return m.
loadFrustum(left, right, bottom, top, zNear, zFar);
2683 GLfloat zNear, GLfloat zFar)
2722 void multiply(GLfloat *r,
const GLfloat *p,
const GLfloat *q)
const;
2725 void toMatrix(GLfloat *m,
const GLfloat *q)
const;
2728 void toQuaternion(GLfloat *q,
const GLfloat *m)
const;
2731 void slerp(GLfloat *p,
const GLfloat *q,
const GLfloat *r, GLfloat t)
const;
2808 return load(a[0], a[1], a[2], a[3]);
2816 return load(q.quaternion);
2839 return loadAdd(v[0], v[1], v[2], v[3]);
2847 return loadAdd(a[0], a[1], a[2], a[3]);
2905 const GLfloat a[]{ x, y, z, w };
2922 return load(multiply(a));
2941 const GLfloat a[] { x, y, z, w };
2978 s.quaternion[0] = quaternion[0] + x;
2979 s.quaternion[1] = quaternion[1] + y;
2980 s.quaternion[2] = quaternion[2] + z;
2981 s.quaternion[3] = quaternion[3] + w;
2990 return add(v[0], v[1], v[2], v[3]);
2998 return add(a[0], a[1], a[2], a[3]);
3006 return add(q.quaternion);
3018 s.quaternion[0] = quaternion[0] - x;
3019 s.quaternion[1] = quaternion[1] - y;
3020 s.quaternion[2] = quaternion[2] - z;
3021 s.quaternion[3] = quaternion[3] - w;
3030 return subtract(v[0], v[1], v[2], v[3]);
3038 return subtract(a[0], a[1], a[2], a[3]);
3057 const GLfloat a[]{ x, y, z, w };
3066 return multiply(v.data());
3075 multiply(s.quaternion.data(), quaternion.data(), a);
3084 return multiply(q.quaternion);
3095 const GLfloat a[]{ x, y, z, w };
3114 multiply(s.quaternion.data(), quaternion.data(), ia.quaternion.data());
3123 return divide(q.quaternion);
3205 toQuaternion(quaternion.data(), a);
3221 return load(0.0f, 0.0f, 0.0f, 1.0f);
3282 return rotate(v[0], v[1], v[2], a);
3290 return rotate(v[0], v[1], v[2], v[3]);
3298 return rotate(1.0f, 0.0f, 0.0f, a);
3306 return rotate(0.0f, 1.0f, 0.0f, a);
3314 return rotate(0.0f, 0.0f, 1.0f, a);
3340 return multiply(r.
loadEuler(heading, pitch, roll));
3348 return euler(e[0], e[1], e[2]);
3358 slerp(quaternion.data(), a, b, t);
3369 return loadSlerp(q.quaternion.data(), r.quaternion.data(), t);
3379 return loadSlerp(q.quaternion.data(), a, t);
3389 return loadSlerp(a, q.quaternion.data(), t);
3438 slerp(p.quaternion.data(), quaternion.data(), a, t);
3449 slerp(p.quaternion.data(), quaternion.data(), q.quaternion.data(), t);
3484 return quaternion.data();
3491 a[0] = quaternion[0];
3492 a[1] = quaternion[1];
3493 a[2] = quaternion[2];
3494 a[3] = quaternion[3];
3501 toMatrix(a, quaternion.data());
3526 toMatrix(a, c.quaternion.data());
3555 return q.
load(x, y, z, w);
3650 return q.
loadEuler(heading, pitch, roll);
3761 void region(
float w,
float h);
3769 region(
static_cast<float>(w),
static_cast<float>(h));
3776 void begin(
float x,
float y);
3782 void motion(
float x,
float y);
3792 void end(
float x,
float y);
3801 return static_cast<const GLfloat *
>(start);
3808 return static_cast<GLfloat
>(start[direction]);
3815 position[0] = start[0];
3816 position[1] = start[1];
3823 return static_cast<const GLfloat *
>(scale);
3830 return static_cast<GLfloat
>(scale[direction]);
3837 factor[0] = scale[0];
3838 factor[1] = scale[1];
3886 GgTexture(
const GLvoid *image, GLsizei width, GLsizei height,
3887 GLenum format = GL_BGR, GLenum type = GL_UNSIGNED_BYTE,
3888 GLenum
internal = GL_RGBA, GLenum wrap = GL_CLAMP_TO_EDGE)
3889 : texture(
ggLoadTexture(image, width, height, format, type, internal, wrap))
3890 , size{ width, height }
3896 glBindTexture(GL_TEXTURE_2D, 0);
3897 glDeleteTextures(1, &texture);
3909 glBindTexture(GL_TEXTURE_2D, texture);
3915 glBindTexture(GL_TEXTURE_2D, 0);
3963 std::shared_ptr<GgTexture> texture;
3979 GLenum format = GL_BGR, GLenum type = GL_UNSIGNED_BYTE,
3980 GLenum
internal = GL_RGB, GLenum wrap = GL_CLAMP_TO_EDGE)
3982 load(image, width, height, format, type,
internal, wrap);
3989 GgColorTexture(
const char *name, GLenum
internal = 0, GLenum wrap = GL_CLAMP_TO_EDGE)
3991 load(name,
internal, wrap);
4005 void load(
const GLvoid *image, GLsizei width, GLsizei height,
4006 GLenum format = GL_BGR, GLenum type = GL_UNSIGNED_BYTE,
4007 GLenum
internal = GL_RGB, GLenum wrap = GL_CLAMP_TO_EDGE)
4010 texture.reset(
new GgTexture(image, width, height, format, type,
internal, wrap));
4017 void load(
const char *name, GLenum
internal = 0, GLenum wrap = GL_CLAMP_TO_EDGE);
4028 std::shared_ptr<GgTexture> texture;
4042 GgNormalTexture(
const GLubyte *image, GLsizei width, GLsizei height, GLenum format = GL_RED,
float nz = 1.0f,
4043 GLenum
internal = GL_RGBA)
4046 load(image, width, height, format, nz,
internal);
4056 load(name, nz,
internal);
4069 void load(
const GLubyte *hmap, GLsizei width, GLsizei height, GLenum format = GL_RED,
float nz = 1.0f,
4070 GLenum
internal = GL_RGBA)
4073 std::vector<GgVector> nmap;
4079 texture.reset(
new GgTexture(nmap.data(), width, height, GL_RGBA, GL_FLOAT,
internal, GL_REPEAT));
4086 void load(
const char *name,
float nz = 1.0f, GLenum
internal = GL_RGBA);
4094 template <
typename T>
4098 const GLenum target;
4101 const GLsizei stride;
4104 const GLsizei count;
4107 const GLuint buffer;
4117 GgBuffer<T>(GLenum target,
const T *data, GLsizei stride, GLsizei count, GLenum usage)
4121 , buffer([] { GLuint buffer; glGenBuffers(1, &buffer);
return buffer; } ())
4124 glBindBuffer(target, buffer);
4125 glBufferData(target,
getStride() * count, data, usage);
4129 virtual ~GgBuffer<T>()
4132 glBindBuffer(target, 0);
4133 glDeleteBuffers(1, &buffer);
4137 GgBuffer<T>(
const GgBuffer<T> &o) =
delete;
4153 return static_cast<GLsizeiptr
>(stride);
4173 glBindBuffer(target, buffer);
4179 glBindBuffer(target, 0);
4186 glBindBuffer(target, buffer);
4187 return glMapBuffer(target, GL_WRITE_ONLY);
4194 void *
map(GLint first, GLsizei count)
const
4197 if (count == 0) count =
getCount();
4200 glBindBuffer(target, buffer);
4201 return glMapBufferRange(target,
getStride() * first,
getStride() * count, GL_MAP_WRITE_BIT);
4207 glUnmapBuffer(target);
4214 void send(
const T *data, GLint first, GLsizei count)
const
4217 if (count == 0) count =
getCount();
4221 glBindBuffer(target, buffer);
4229 void read(T *data, GLint first, GLsizei count)
const
4232 if (count == 0) count =
getCount();
4236 glBindBuffer(target, buffer);
4245 void copy(GLuint src_buffer, GLint src_first = 0, GLint dst_first = 0, GLsizei count = 0)
const
4248 if (count == 0) count =
getCount();
4255 glBindBuffer(GL_COPY_READ_BUFFER, src_buffer);
4256 glBindBuffer(GL_COPY_WRITE_BUFFER, buffer);
4257 glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER,
4258 stride * src_first, stride * dst_first, stride * count);
4259 glBindBuffer(GL_COPY_WRITE_BUFFER, 0);
4260 glBindBuffer(GL_COPY_READ_BUFFER, 0);
4269 template <
typename T>
4273 std::shared_ptr<GgBuffer<T>> uniform;
4286 load(data, count, usage);
4293 GgUniformBuffer<T>(
const T &data, GLsizei count, GLenum usage = GL_STATIC_DRAW)
4295 load(data, count, usage);
4299 virtual ~GgUniformBuffer<T>() {}
4305 return uniform->getTarget();
4312 return uniform->getStride();
4319 return uniform->getCount();
4326 return uniform->getBuffer();
4345 return uniform->map();
4352 void *
map(GLint first, GLsizei count)
const
4354 return uniform->map(first, count);
4367 void load(
const T *data, GLsizei count, GLenum usage = GL_STATIC_DRAW)
4373 uniform.reset(
new GgBuffer<T>(GL_UNIFORM_BUFFER,
nullptr, stride, count, usage));
4376 if (data)
send(data, 0,
sizeof (T), 0, count);
4383 void load(
const T &data, GLsizei count, GLenum usage = GL_STATIC_DRAW)
4389 uniform.reset(
new GgBuffer<T>(GL_UNIFORM_BUFFER,
nullptr, stride, count, usage));
4392 fill(&data, 0,
sizeof (T), 0, count);
4401 void send(
const GLvoid *data, GLint offset = 0, GLsizei size =
sizeof (T), GLint first = 0, GLsizei count = 0)
const
4404 if (count == 0) count =
getCount();
4408 const char *source(
reinterpret_cast<const char *
>(data));
4418 for (GLsizei i = 0; i < count; ++i)
4420 glBufferSubData(target, stride * (first + i) + offset, size, source + size * i);
4430 void fill(
const GLvoid *data, GLint offset = 0, GLsizei size =
sizeof (T), GLint first = 0, GLsizei count = 0)
const
4433 if (count == 0) count =
getCount();
4444 for (GLsizei i = 0; i < count; ++i)
4446 glBufferSubData(target, stride * (first + i) + offset, size, data);
4456 void read(GLvoid *data, GLint offset = 0, GLsizei size =
sizeof (T), GLint first = 0, GLsizei count = 0)
const
4459 if (count == 0) count =
getCount();
4463 char *
const destination(
reinterpret_cast<char *
>(data));
4473 for (GLsizei i = 0; i < count; ++i)
4475 glGetBufferSubData(target, stride * (first + i) + offset,
sizeof (T), destination + size * i);
4484 void copy(GLuint src_buffer, GLint src_first = 0, GLint dst_first = 0, GLsizei count = 0)
const
4487 if (count == 0) count =
getCount();
4495 glBindBuffer(GL_COPY_READ_BUFFER, src_buffer);
4496 glBindBuffer(GL_COPY_WRITE_BUFFER,
getBuffer());
4497 for (GLsizei i = 0; i < count; ++i)
4499 glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_COPY_WRITE_BUFFER,
4500 stride * (src_first + i), stride * (dst_first + i),
sizeof (T));
4502 glBindBuffer(GL_COPY_WRITE_BUFFER, 0);
4503 glBindBuffer(GL_COPY_READ_BUFFER, 0);
4526 : vao([] { GLuint vao; glGenVertexArrays(1, &vao);
return vao; } ())
4529 glBindVertexArray(vao);
4535 glBindVertexArray(0);
4536 glDeleteVertexArrays(1, &vao);
4569 virtual void draw(GLint first = 0, GLsizei count = 0)
const
4571 glBindVertexArray(vao);
4582 std::shared_ptr<GgBuffer<GgVector>> position;
4596 GgPoints(
const GgVector *pos, GLsizei countv, GLenum mode = GL_POINTS, GLenum usage = GL_STATIC_DRAW)
4599 load(pos, countv, usage);
4609 return position->getCount();
4616 return position->getBuffer();
4625 position->send(pos, first, count);
4632 void load(
const GgVector *pos, GLsizei count, GLenum usage = GL_STATIC_DRAW)
4638 glVertexAttribPointer(0,
static_cast<GLint
>(pos->size()), GL_FLOAT, GL_FALSE, 0, 0);
4639 glEnableVertexAttribArray(0);
4645 virtual void draw(GLint first = 0, GLsizei count = 0)
const;
4673 GgVertex(GLfloat px, GLfloat py, GLfloat pz, GLfloat nx, GLfloat ny, GLfloat nz)
4675 ,
normal{ nx, ny, nz, 0.0f }
4682 :
GgVertex(pos[0], pos[1], pos[2], norm[0], norm[1], norm[2])
4693 std::unique_ptr<GgBuffer<GgVertex>> vertex;
4709 GLenum mode = GL_TRIANGLES, GLenum usage = GL_STATIC_DRAW)
4712 load(vert, count, usage);
4722 return vertex->getCount();
4729 return vertex->getBuffer();
4738 vertex->send(vert, first, count);
4745 void load(
const GgVertex *vert, GLsizei count, GLenum usage = GL_STATIC_DRAW)
4751 glVertexAttribPointer(0,
static_cast<GLint
>(vert->
position.size()), GL_FLOAT, GL_FALSE,
4752 sizeof (
GgVertex),
static_cast<const char *
>(0) + offsetof(
GgVertex, position));
4753 glEnableVertexAttribArray(0);
4756 glVertexAttribPointer(1,
static_cast<GLint
>(vert->
normal.size()), GL_FLOAT, GL_FALSE,
4757 sizeof (
GgVertex),
static_cast<const char *
>(0) + offsetof(
GgVertex, normal));
4758 glEnableVertexAttribArray(1);
4764 virtual void draw(GLint first = 0, GLsizei count = 0)
const;
4774 std::unique_ptr<GgBuffer<GLuint>> index;
4792 GLenum mode = GL_TRIANGLES, GLenum usage = GL_STATIC_DRAW)
4795 load(vert, countv, face, countf, usage);
4805 return index->getCount();
4812 return index->getBuffer();
4823 const GLuint *face =
nullptr, GLuint firstf = 0, GLsizei countf = 0)
const
4826 if (face !=
nullptr && countf > 0) index->send(face, firstf, countf);
4835 void load(
const GgVertex *vert, GLsizei countv,
const GLuint *face, GLsizei countf,
4836 GLenum usage = GL_STATIC_DRAW)
4842 index.reset(
new GgBuffer<GLuint>(GL_ELEMENT_ARRAY_BUFFER, face,
sizeof (GLuint), countf, usage));
4848 virtual void draw(GLint first = 0, GLsizei count = 0)
const;
4860 extern GgPoints *
ggPointsCube(GLsizei countv, GLfloat length = 1.0f,
4861 GLfloat cx = 0.0f, GLfloat cy = 0.0f, GLfloat cz = 0.0f);
4872 extern GgPoints *
ggPointsSphere(GLsizei countv, GLfloat radius = 0.5f,
4873 GLfloat cx = 0.0f, GLfloat cy = 0.0f, GLfloat cz = 0.0f);
4881 extern GgTriangles *
ggRectangle(GLfloat width = 1.0f, GLfloat height = 1.0f);
4890 extern GgTriangles *
ggEllipse(GLfloat width = 1.0f, GLfloat height = 1.0f,
4891 GLuint slices = 16);
4902 extern GgTriangles *
ggArraysObj(
const char *name,
bool normalize =
false);
4913 extern GgElements *
ggElementsObj(
const char *name,
bool normalize =
false);
4926 const GLfloat (*pos)[3],
const GLfloat (*norm)[3] =
nullptr);
4937 extern GgElements *
ggElementsSphere(GLfloat radius = 1.0f,
int slices = 16,
int stacks = 8);
4947 const GLuint program;
4957 GgShader(
const char *vert,
const char *frag = 0,
const char *geom = 0,
4958 int nvarying = 0,
const char **varyings = 0)
4959 : program(
ggLoadShader(vert, frag, geom, nvarying, varyings))
4967 glDeleteProgram(program);
4979 glUseProgram(program);
5002 std::shared_ptr<GgShader> shader;
5025 const char *geom = 0, GLint nvarying = 0,
const char **varyings = 0)
5028 load(vert, frag, geom, nvarying, varyings);
5040 void load(
const char* vert,
const char* frag = 0,
5041 const char* geom = 0, GLint nvarying = 0,
const char** varyings = 0)
5044 shader.reset(
new GgShader(vert, frag, geom, nvarying, varyings));
5047 const GLuint program(shader->get());
5050 mpLoc = glGetUniformLocation(program,
"mp");
5051 mvLoc = glGetUniformLocation(program,
"mv");
5058 glUniformMatrix4fv(mpLoc, 1, GL_FALSE, mp);
5072 glUniformMatrix4fv(mvLoc, 1, GL_FALSE, mv);
5085 virtual void loadMatrix(
const GLfloat *mp,
const GLfloat *mv)
const
5107 void use(
const GLfloat *mp)
const
5123 void use(
const GLfloat *mp,
const GLfloat *mv)
const
5147 return shader->get();
5158 GLint materialIndex;
5183 const char* geom = 0, GLint nvarying = 0,
const char** varyings = 0)
5185 load(vert, frag, geom, nvarying, varyings);
5191 , materialIndex(o.materialIndex)
5192 , lightIndex(o.lightIndex)
5203 GgPointShader::operator=(o);
5204 materialIndex = o.materialIndex;
5205 lightIndex = o.lightIndex;
5213 void load(
const char* vert,
const char* frag = 0,
5214 const char* geom = 0, GLint nvarying = 0,
const char** varyings = 0);
5222 glUniformMatrix4fv(mnLoc, 1, GL_FALSE, mn);
5251 virtual void loadMatrix(
const GLfloat *mp,
const GLfloat *mv,
const GLfloat *mn)
const
5254 glUniformMatrix4fv(mnLoc, 1, GL_FALSE, mn);
5269 virtual void loadMatrix(
const GLfloat *mp,
const GLfloat *mv)
const
5325 void loadAmbient(GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f, GLint first = 0, GLsizei count = 1)
const;
5331 void loadAmbient(
const GLfloat *ambient, GLint first = 0, GLsizei count = 1)
const
5344 void loadDiffuse(GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f, GLint first = 0, GLsizei count = 1)
const;
5350 void loadDiffuse(
const GLfloat *diffuse, GLint first = 0, GLsizei count = 1)
const
5363 void loadSpecular(GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f, GLint first = 0, GLsizei count = 1)
const;
5369 void loadSpecular(
const GLfloat *specular, GLint first = 0, GLsizei count = 1)
const
5379 void loadColor(
const Light &color, GLint first = 0, GLsizei count = 1)
const;
5388 void loadPosition(GLfloat x, GLfloat y, GLfloat z, GLfloat w = 1.0f, GLint first = 0, GLsizei count = 1)
const;
5400 void loadPosition(
const GLfloat *position, GLint first = 0, GLsizei count = 1)
const
5438 const GLintptr offset(
static_cast<GLintptr
>(
getStride()) * i);
5486 void loadAmbient(GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f, GLint first = 0, GLsizei count = 1)
const;
5492 void loadAmbient(
const GLfloat *ambient, GLint first = 0, GLsizei count = 1)
const
5505 void loadDiffuse(GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f, GLint first = 0, GLsizei count = 1)
const;
5511 void loadDiffuse(
const GLfloat *diffuse, GLint first = 0, GLsizei count = 1)
const
5524 void loadAmbientAndDiffuse(GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f, GLint first = 0, GLsizei count = 1)
const;
5539 void loadSpecular(GLfloat r, GLfloat g, GLfloat b, GLfloat a = 1.0f, GLint first = 0, GLsizei count = 1)
const;
5545 void loadSpecular(
const GLfloat *specular, GLint first = 0, GLsizei count = 1)
const
5555 void loadShininess(GLfloat shininess, GLint first = 0, GLsizei count = 1)
const;
5561 void loadShininess(
const GLfloat *shininess, GLint first = 0, GLsizei count = 1)
const;
5567 void load(
const Material *material, GLint first = 0, GLsizei count = 1)
const
5576 void load(
const Material &material, GLint first = 0, GLsizei count = 1)
const
5578 load(&material, first, count);
5586 const GLintptr offset(
static_cast<GLintptr
>(
getStride()) * i);
5602 void use(
const GLfloat *mp,
const GLfloat *mv,
const GLfloat *mn)
const
5623 void use(
const GLfloat *mp,
const GLfloat *mv)
const
5662 void use(
const GLfloat *mp,
const GLfloat *mv,
const GLfloat *mn,
const LightBuffer *
light, GLint i = 0)
const
5737 std::vector<std::array<GLuint, 3>> &group,
5738 std::vector<GgSimpleShader::Material> &material,
5739 std::vector<GgVertex> &vert,
5740 bool normalize =
false);
5754 std::vector<std::array<GLuint, 3>> &group,
5755 std::vector<GgSimpleShader::Material> &material,
5756 std::vector<GgVertex> &vert,
5757 std::vector<GLuint> &face,
5758 bool normalize =
false);
5766 std::vector<std::array<GLuint, 3>> group;
5769 std::shared_ptr<GgSimpleShader::MaterialBuffer> material;
5772 std::shared_ptr<GgElements> data;
5779 GgSimpleObj(
const char *name,
bool normalize =
false);
5794 virtual void draw(GLint first = 0, GLsizei count = 0)
const;
void unmap() const
バッファオブジェクトをアンマップする.
GgBuffer< T > & operator=(const GgBuffer< T > &o)=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
すでに確保したバッファオブジェクトにデータを転送する.
void bind() const
バッファオブジェクトを結合する.
GLsizei getCount() const
バッファオブジェクトが保持するデータの数を取り出す.
void * map() const
バッファオブジェクトをマップする.
void unbind() const
バッファオブジェクトを解放する.
GLuint getBuffer() const
バッファオブジェクト名を取り出す.
void * map(GLint first, GLsizei count) const
バッファオブジェクトの指定した範囲をマップする.
GLuint getTarget() const
バッファオブジェクトのターゲットを取り出す.
GLsizeiptr getStride() const
バッファオブジェクトのアライメントを考慮したデータの間隔を取り出す.
void load(const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_BGR, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGB, GLenum wrap=GL_CLAMP_TO_EDGE)
テクスチャを作成してメモリ上のデータを読み込む.
virtual ~GgColorTexture()
デストラクタ.
GgColorTexture(const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_BGR, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGB, GLenum wrap=GL_CLAMP_TO_EDGE)
メモリ上のデータからテクスチャを作成するコンストラクタ.
GgColorTexture(const char *name, GLenum internal=0, GLenum wrap=GL_CLAMP_TO_EDGE)
ファイルからデータを読み込んでテクスチャを作成するコンストラクタ.
三角形で表した形状データ (Elements 形式).
GgElements(const GgVertex *vert, GLsizei countv, const GLuint *face, GLsizei countf, GLenum mode=GL_TRIANGLES, GLenum usage=GL_STATIC_DRAW)
コンストラクタ.
virtual void draw(GLint first=0, GLsizei count=0) 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)
コンストラクタ.
virtual ~GgElements()
デストラクタ.
void load(const GgVertex *vert, GLsizei countv, const GLuint *face, GLsizei countf, GLenum usage=GL_STATIC_DRAW)
バッファオブジェクトを確保して頂点属性と三角形の頂点インデックスデータを格納する.
GLsizei getIndexCount() const
データの数を取り出す.
GgMatrix translate(const GLfloat *t) const
平行移動変換を乗じた結果を返す.
GLfloat & operator[](std::size_t i)
変換行列の要素にアクセスする.
GgMatrix & loadTranslate(const GLfloat *t)
平行移動の変換行列を格納する.
GgMatrix scale(const GLfloat *s) const
拡大縮小変換を乗じた結果を返す.
GgMatrix & operator=(const GLfloat *a)
GgMatrix add(const GLfloat *a) const
変換行列に配列に格納した変換行列を加算した値を返す.
GgMatrix subtract(const GLfloat *a) const
変換行列から配列に格納した変換行列を減算した値を返す.
GgVector operator*(const GgVector &v) const
ベクトルに対して投影変換を行う.
GgMatrix & loadIdentity()
単位行列を格納する.
GgMatrix & loadNormal(const GgMatrix &m)
法線変換行列を格納する.
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 & loadSubtract(const GLfloat *a)
変換行列から配列に格納した変換行列を減算した結果を格納する.
GgMatrix rotate(const GLfloat *r, GLfloat a) const
r 方向のベクトルを軸とする回転変換を乗じた結果を返す.
void projection(GLfloat *c, const GLfloat *v) const
ベクトルに対して投影変換を行う.
GgMatrix & loadPerspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar)
画角を指定して透視投影変換行列を格納する.
GgMatrix & operator*=(const GLfloat *a)
GgMatrix operator/(const GLfloat *a) const
GgMatrix & loadScale(const GLfloat *s)
拡大縮小の変換行列を格納する.
GgMatrix multiply(const GgMatrix &m) const
変換行列に別の変換行列を乗算した値を返す.
GgMatrix & operator+=(const GLfloat *a)
GgMatrix rotate(const GgVector &r, GLfloat a) const
r 方向のベクトルを軸とする回転変換を乗じた結果を返す.
GgMatrix & loadSubtract(const GgMatrix &m)
変換行列から別の変換行列を減算した結果を格納する.
GgMatrix operator-(const GLfloat *a) const
void projection(GgVector &c, const GLfloat *v) const
ベクトルに対して投影変換を行う.
GgMatrix & loadRotate(const GgVector &r, GLfloat a)
r 方向のベクトルを軸とする回転の変換行列を格納する.
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 & operator-=(const GLfloat *a)
GgMatrix & loadRotate(const GLfloat *r, GLfloat a)
r 方向のベクトルを軸とする回転の変換行列を格納する.
GgMatrix & operator/=(const GLfloat *a)
GgMatrix & loadInvert(const GLfloat *a)
逆行列を格納する.
GgMatrix & loadMultiply(const GLfloat *a)
変換行列に配列に格納した変換行列を乗算した結果を格納する.
GgMatrix & loadLookat(const GLfloat *e, const GLfloat *t, const GLfloat *u)
ビュー変換行列を格納する.
GgMatrix rotateZ(GLfloat a) const
z 軸中心の回転変換を乗じた結果を返す.
GgMatrix scale(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f) const
拡大縮小変換を乗じた結果を返す.
GgMatrix rotateX(GLfloat a) const
x 軸中心の回転変換を乗じた結果を返す.
GgMatrix translate(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f) const
平行移動変換を乗じた結果を返す.
GgMatrix normal() const
法線変換行列を返す.
GgMatrix & operator-=(const GgMatrix &m)
GgMatrix rotate(const GLfloat *r) const
r 方向のベクトルを軸とする回転の変換行列を乗じた結果を返す.
GgMatrix & loadLookat(GLfloat ex, GLfloat ey, GLfloat ez, GLfloat tx, GLfloat ty, GLfloat tz, GLfloat ux, GLfloat uy, GLfloat uz)
ビュー変換行列を格納する.
const GLfloat & operator[](std::size_t i) const
変換行列の要素にアクセスする.
GgMatrix(const GgMatrix &m)
コピーコンストラクタ.
GgMatrix & loadDivide(const GgMatrix &m)
変換行列を別の変換行列で除算した結果を格納する.
GgMatrix rotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a) const
(x, y, z) 方向のベクトルを軸とする回転変換を乗じた結果を返す.
GgMatrix & operator/=(const GgMatrix &m)
GgMatrix & loadRotate(const GLfloat *r)
r 方向のベクトルを軸とする回転の変換行列を格納する.
GgMatrix invert() const
逆行列を返す.
GgMatrix subtract(const GgMatrix &m) const
変換行列から別の変換行列を減算した値を返す.
GgMatrix & load(const GgMatrix &m)
別の変換行列の値を格納する.
GgMatrix operator+(const GgMatrix &m) const
GgMatrix(const GLfloat *a)
コンストラクタ.
GgMatrix & loadLookat(const GgVector &e, const GgVector &t, const GgVector &u)
ビュー変換行列を格納する.
GgMatrix frustum(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) const
透視投影変換を乗じた結果を返す.
GgMatrix rotate(const GgVector &r) const
r 方向のベクトルを軸とする回転の変換行列を乗じた結果を返す.
GgMatrix rotateY(GLfloat a) const
y 軸中心の回転変換を乗じた結果を返す.
GgMatrix divide(const GLfloat *a) const
変換行列を配列に格納した変換行列で除算した値を返す.
GgMatrix operator/(const GgMatrix &m) const
const GLfloat * get() const
変換行列を取り出す.
GgMatrix & loadDivide(const GLfloat *a)
変換行列を配列に格納した変換行列で除算した結果を格納する.
GgMatrix & loadTranslate(const GgVector &t)
平行移動の変換行列を格納する.
GgMatrix operator*(const GgMatrix &m) const
GgMatrix lookat(const GLfloat *e, const GLfloat *t, const GLfloat *u) const
ビュー変換を乗じた結果を返す.
GgMatrix & loadTranspose(const GgMatrix &m)
転置行列を格納する.
GgMatrix operator-(const GgMatrix &m) const
GgMatrix & load(const GLfloat *a)
配列変数の値を格納する.
GLfloat get(int i) const
変換行列の要素を取り出す.
GgMatrix divide(const GgMatrix &m) const
変換行列を配列に格納した変換行列で除算した値を返す.
GgMatrix operator*(const GLfloat *a) const
void projection(GLfloat *c, const GgVector &v) const
ベクトルに対して投影変換を行う.
GgMatrix orthogonal(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) const
直交投影変換を乗じた結果を返す.
GgMatrix & loadScale(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
拡大縮小の変換行列を格納する.
GgMatrix & operator*=(const GgMatrix &m)
GgMatrix multiply(const GLfloat *a) const
変換行列に配列に格納した変換行列を乗算した値を返す.
GgMatrix & loadRotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a)
(x, y, z) 方向のベクトルを軸とする回転の変換行列を格納する.
GgMatrix & operator=(const GgMatrix &m)
GgMatrix & loadRotateX(GLfloat a)
x 軸中心の回転の変換行列を格納する.
GgMatrix & loadMultiply(const GgMatrix &m)
変換行列に別の変換行列を乗算した結果を格納する.
GgMatrix & loadAdd(const GLfloat *a)
変換行列に配列に格納した変換行列を加算した結果を格納する.
GgMatrix & loadInvert(const GgMatrix &m)
逆行列を格納する.
GgMatrix & loadRotate(const GgVector &r)
r 方向のベクトルを軸とする回転の変換行列を格納する.
GgMatrix & loadRotateY(GLfloat a)
y 軸中心の回転の変換行列を格納する.
GgMatrix & operator+=(const GgMatrix &m)
GgMatrix transpose() const
転置行列を返す.
GgMatrix & loadOrthogonal(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
直交投影変換行列を格納する.
GgMatrix & loadRotateZ(GLfloat a)
z 軸中心の回転の変換行列を格納する.
GgMatrix scale(const GgVector &s) const
拡大縮小変換を乗じた結果を返す.
GgMatrix & loadScale(const GgVector &s)
拡大縮小の変換行列を格納する.
void get(GLfloat *a) const
変換行列を取り出す.
GgMatrix & loadTranspose(const GLfloat *a)
転置行列を格納する.
GgMatrix translate(const GgVector &t) const
平行移動変換を乗じた結果を返す.
void projection(GgVector &c, const GgVector &v) const
ベクトルに対して投影変換を行う.
GgMatrix add(const GgMatrix &m) const
変換行列に別の変換行列を加算した値を返す.
GgMatrix & loadAdd(const GgMatrix &m)
変換行列に別の変換行列を加算した結果を格納する.
GgMatrix perspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar) const
画角を指定して透視投影変換を乗じた結果を返す.
GgMatrix & loadNormal(const GLfloat *a)
法線変換行列を格納する.
GgNormalTexture(const char *name, float nz=1.0f, GLenum internal=GL_RGBA)
ファイルからデータを読み込んで法線マップのテクスチャを作成するコンストラクタ.
GgNormalTexture()
コンストラクタ.
void load(const GLubyte *hmap, GLsizei width, GLsizei height, GLenum format=GL_RED, float nz=1.0f, GLenum internal=GL_RGBA)
メモリ上のデータから法線マップのテクスチャを作成する.
virtual ~GgNormalTexture()
デストラクタ.
GgNormalTexture(const GLubyte *image, GLsizei width, GLsizei height, GLenum format=GL_RED, float nz=1.0f, GLenum internal=GL_RGBA)
メモリ上のデータから法線マップのテクスチャを作成するコンストラクタ.
void use(const GLfloat *mp) const
投影変換行列を設定してシェーダプログラムの使用を開始する.
void load(const char *vert, const char *frag=0, const char *geom=0, GLint nvarying=0, const char **varyings=0)
シェーダのソースファイルを読み込む.
virtual void loadProjectionMatrix(const GLfloat *mp) const
投影変換行列を設定する.
GLuint get() const
シェーダのプログラム名を得る.
virtual void loadMatrix(const GgMatrix &mp, const GgMatrix &mv) const
投影変換行列とモデルビュー変換行列を設定する.
virtual void loadProjectionMatrix(const GgMatrix &mp) const
投影変換行列を設定する.
virtual void use() const
シェーダプログラムの使用を開始する.
void use(const GgMatrix &mp, const GgMatrix &mv) const
投影変換行列とモデルビューを設定してシェーダプログラムの使用を開始する.
void unuse() const
シェーダプログラムの使用を終了する.
virtual ~GgPointShader()
デストラクタ.
void use(const GgMatrix &mp) const
投影変換行列を設定してシェーダプログラムの使用を開始する.
virtual void loadMatrix(const GLfloat *mp, const GLfloat *mv) const
投影変換行列とモデルビュー変換行列を設定する.
void use(const GLfloat *mp, const GLfloat *mv) const
投影変換行列とモデルビューを設定してシェーダプログラムの使用を開始する.
virtual void loadModelviewMatrix(const GLfloat *mv) const
モデルビュー変換行列を設定する.
virtual void loadModelviewMatrix(const GgMatrix &mv) const
モデルビュー変換行列を設定する.
GgPointShader(const char *vert, const char *frag=0, const char *geom=0, GLint nvarying=0, const char **varyings=0)
コンストラクタ
void send(const GgVector *pos, GLint first=0, GLsizei count=0) const
既存のバッファオブジェクトに頂点の位置データを転送する.
GLuint getBuffer() const
頂点の位置データを格納した頂点バッファオブジェクト名を取り出す.
virtual void draw(GLint first=0, GLsizei count=0) 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)
コンストラクタ.
virtual ~GgPoints()
デストラクタ.
GgQuaternion multiply(GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
四元数に別の四元数を乗算した結果を返す.
GgQuaternion & loadAdd(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
四元数に別の四元数を加算した結果を格納する.
GgQuaternion rotateY(GLfloat a) const
四元数を y 軸中心に角度 a 回転した四元数を返す.
GgQuaternion & operator+=(const GLfloat *a)
GgQuaternion & operator-=(const GgQuaternion &q)
GgQuaternion multiply(const GgVector &v) const
四元数に別の四元数を乗算した結果を返す.
GgQuaternion & load(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
四元数を格納する.
GgQuaternion divide(const GLfloat *a) const
四元数を別の四元数で除算した結果を返す.
GgQuaternion divide(GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
四元数を別の四元数で除算した結果を返す.
GgQuaternion & loadMatrix(const GgMatrix &m)
回転の変換行列 m を表す四元数を格納する.
void getConjugateMatrix(GLfloat *a) const
四元数の共役が表す回転の変換行列を a に求める.
GgQuaternion & loadSubtract(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
四元数から別の四元数を減算した結果を格納する.
GgQuaternion & operator=(const GgQuaternion &q)
GgQuaternion multiply(const GgQuaternion &q) const
四元数に別の四元数を乗算した結果を返す.
GgQuaternion operator*(const GgQuaternion &q) const
GgQuaternion & operator/=(const GgQuaternion &q)
GgQuaternion add(const GLfloat *a) const
四元数に別の四元数を加算した結果を返す.
GgQuaternion & loadNormalize(const GgQuaternion &q)
引数に指定した四元数を正規化して格納する.
GgQuaternion & loadRotateY(GLfloat a)
y 軸中心に角度 a 回転する四元数を格納する.
GgQuaternion & loadRotateZ(GLfloat a)
z 軸中心に角度 a 回転する四元数を格納する.
GgQuaternion & load(const GgVector &v)
四元数を格納する.
GgQuaternion & loadRotate(const GLfloat *v, GLfloat a)
(v[0], v[1], v[2]) を軸として角度 a 回転する四元数を格納する.
GgQuaternion & operator*=(const GLfloat *a)
GgQuaternion & loadEuler(GLfloat heading, GLfloat pitch, GLfloat roll)
オイラー角 (heading, pitch, roll) で与えられた回転を表す四元数を格納する.
GgQuaternion divide(const GgQuaternion &q) const
四元数を別の四元数で除算した結果を返す.
GgQuaternion subtract(GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
四元数から別の四元数を減算した結果を返す.
GgQuaternion & loadSubtract(const GgQuaternion &q)
四元数から別の四元数を減算した結果を格納する.
const GLfloat * get() const
四元数を取り出す.
GgQuaternion & loadDivide(const GLfloat *a)
四元を別の四元数で除算した結果を格納する.
GgQuaternion & loadSubtract(const GgVector &v)
四元数から別の四元数を減算した結果を格納する.
GgQuaternion & loadInvert(const GLfloat *a)
引数に指定した四元数の逆元を格納する.
GgQuaternion(const GgVector &v)
コンストラクタ.
GgQuaternion divide(const GgVector &v) const
四元数を別の四元数で除算した結果を返す.
GgQuaternion operator+(const GLfloat *a) const
GgQuaternion subtract(const GLfloat *a) const
四元数から別の四元数を減算した結果を返す.
GgQuaternion rotateZ(GLfloat a) const
四元数を z 軸中心に角度 a 回転した四元数を返す.
GgQuaternion & loadSlerp(const GLfloat *a, const GLfloat *b, GLfloat t)
球面線形補間の結果を格納する.
GgQuaternion subtract(const GgQuaternion &q) const
四元数から別の四元数を減算した結果を返す.
GgQuaternion add(GLfloat x, GLfloat y, GLfloat z, GLfloat w) const
四元数に別の四元数を加算した結果を返す.
GgQuaternion & loadMatrix(const GLfloat *a)
回転の変換行列を表す四元数を格納する.
GgQuaternion & operator*=(const GgQuaternion &q)
GgQuaternion & loadMultiply(const GgVector &v)
四元数に別の四元数を乗算した結果を格納する.
void getMatrix(GLfloat *a) const
四元数が表す回転の変換行列を a に求める.
GgQuaternion & loadMultiply(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
四元数に別の四元数を乗算した結果を格納する.
GgQuaternion & load(const GgQuaternion &q)
四元数を格納する.
GgQuaternion & operator+=(const GgQuaternion &q)
GgQuaternion euler(const GLfloat *e) const
四元数をオイラー角 (e[0], e[1], e[2]) で回転した四元数を返す.
GgQuaternion(const GgQuaternion &q)
コピーコンストラクタ.
void get(GLfloat *a) const
四元数を取り出す.
GgMatrix getMatrix() const
四元数が表す回転の変換行列を取り出す.
GgQuaternion operator-(const GgQuaternion &q) const
GgQuaternion & loadRotateX(GLfloat a)
x 軸中心に角度 a 回転する四元数を格納する.
GgQuaternion & loadDivide(const GgVector &v)
四元を別の四元数で除算した結果を格納する.
GgQuaternion rotate(const GLfloat *v, GLfloat a) const
四元数を (v[0], v[1], v[2]) を軸として角度 a 回転した四元数を返す.
GLfloat norm() const
四元数のノルムを求める.
void getMatrix(GgMatrix &m) const
四元数が表す回転の変換行列を m に求める.
GgQuaternion & loadEuler(const GLfloat *e)
オイラー角 (e[0], e[1], e[2]) で与えられた回転を表す四元数を格納する.
GgQuaternion operator/(const GgQuaternion &q) const
GgQuaternion & loadRotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a)
(x, y, z) を軸として角度 a 回転する四元数を格納する.
GgQuaternion normalize() const
正規化する.
GgQuaternion & load(const GLfloat *a)
四元数を格納する.
GgQuaternion & loadDivide(const GgQuaternion &q)
四元を別の四元数で除算した結果を格納する.
GgQuaternion & loadDivide(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
四元を別の四元数で除算した結果を格納する.
GgQuaternion & loadMultiply(const GLfloat *a)
四元数に別の四元数を乗算した結果を格納する.
GgQuaternion & loadInvert(const GgQuaternion &q)
引数に指定した四元数の逆元を格納する.
GgQuaternion rotate(const GLfloat *v) const
四元数を (v[0], v[1], v[2]) を軸として角度 v[3] 回転した四元数を返す.
GgQuaternion & loadSlerp(const GgQuaternion &q, const GgQuaternion &r, GLfloat t)
球面線形補間の結果を格納する.
GgQuaternion operator/(const GLfloat *a) const
void getConjugateMatrix(GgMatrix &m) const
四元数の共役が表す回転の変換行列を m に求める.
GgQuaternion & loadSlerp(const GgQuaternion &q, const GLfloat *a, GLfloat t)
球面線形補間の結果を格納する.
GgQuaternion & loadRotate(const GLfloat *v)
(v[0], v[1], v[2]) を軸として角度 v[3] 回転する四元数を格納する.
GgQuaternion add(const GgQuaternion &q) const
四元数に別の四元数を加算した結果を返す.
GgQuaternion & loadSubtract(const GLfloat *a)
四元数から別の四元数を減算した結果を格納する.
GgQuaternion & loadAdd(const GLfloat *a)
四元数に別の四元数を加算した結果を格納する.
GgQuaternion conjugate() const
共役四元数に変換する.
GgQuaternion & loadConjugate(const GgQuaternion &q)
引数に指定した四元数の共役四元数を格納する.
GgQuaternion rotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a) const
四元数を (x, y, z) を軸として角度 a 回転した四元数を返す.
GgQuaternion operator-(const GLfloat *a) const
GgQuaternion & operator-=(const GLfloat *a)
GgQuaternion rotateX(GLfloat a) const
四元数を x 軸中心に角度 a 回転した四元数を返す.
GgQuaternion euler(GLfloat heading, GLfloat pitch, GLfloat roll) const
四元数をオイラー角 (heading, pitch, roll) で回転した四元数を返す.
GgQuaternion & operator=(const GLfloat *a)
GgQuaternion & operator/=(const GLfloat *a)
GgQuaternion & loadMultiply(const GgQuaternion &q)
四元数に別の四元数を乗算した結果を格納する.
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 & loadIdentity()
単位元を格納する.
GgQuaternion & loadSlerp(const GLfloat *a, const GgQuaternion &q, GLfloat t)
球面線形補間の結果を格納する.
GgQuaternion & loadAdd(const GgQuaternion &q)
四元数に別の四元数を加算した結果を格納する.
GgQuaternion invert() const
逆元に変換する.
GgQuaternion slerp(GLfloat *a, GLfloat t) const
球面線形補間の結果を返す.
GgQuaternion & loadNormalize(const GLfloat *a)
引数に指定した四元数を正規化して格納する.
GgQuaternion slerp(const GgQuaternion &q, GLfloat t) const
球面線形補間の結果を返す.
GgQuaternion(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
コンストラクタ.
GgQuaternion & loadConjugate(const GLfloat *a)
引数に指定した四元数の共役四元数を格納する.
GgQuaternion operator*(const GLfloat *a) const
GgQuaternion multiply(const GLfloat *a) const
四元数に別の四元数を乗算した結果を返す.
GgQuaternion & loadAdd(const GgVector &v)
四元数に別の四元数を加算した結果を格納する.
void unuse() const
シェーダプログラムの使用を終了する.
void use() const
シェーダプログラムの使用を開始する.
GgShader & operator=(const GgShader &o)=delete
代入演算子は使用禁止.
GgShader(const char *vert, const char *frag=0, const char *geom=0, int nvarying=0, const char **varyings=0)
コンストラクタ.
GgShader(const GgShader &o)=delete
コピーコンストラクタは使用禁止.
virtual ~GgShader()
デストラクタ.
GLuint get() const
シェーダのプログラム名を得る.
void setMode(GLenum mode)
基本図形の設定.
GLuint get() const
頂点配列オブジェクト名を取り出す.
GgShape(GLenum mode=0)
コンストラクタ.
virtual ~GgShape()
デストラクタ.
GLenum getMode() const
基本図形の検査.
virtual void draw(GLint first=0, GLsizei count=0) const
図形の描画, 派生クラスでこの手続きをオーバーライドする.
GgShape(const GgShape &o)=delete
コピーコンストラクタは使用禁止.
GgShape & operator=(const GgShape &o)=delete
代入演算子は使用禁止.
Wavefront OBJ 形式のファイル (Arrays 形式).
virtual void draw(GLint first=0, GLsizei count=0) const
Wavefront OBJ 形式のデータを描画する手続き.
virtual ~GgSimpleObj()
デストラクタ.
const GgTriangles * get() const
形状データの取り出し.
GgSimpleObj(const char *name, bool normalize=false)
コンストラクタ.
三角形に単純な陰影付けを行うシェーダが参照する光源データのユニフォームバッファオブジェクト.
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
光源を選択する.
void loadSpecular(GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, GLint first=0, GLsizei count=1) const
光源の強度の鏡面反射光成分を設定する.
void loadDiffuse(GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, GLint first=0, GLsizei count=1) 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(const Light *light=nullptr, GLsizei count=1, GLenum usage=GL_STATIC_DRAW)
デフォルトコンストラクタ.
void loadAmbient(GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, GLint first=0, GLsizei count=1) const
光源の強度の環境光成分を設定する.
void loadColor(const Light &color, GLint first=0, GLsizei count=1) const
光源の色を設定するが位置は変更しない.
void load(const Light *light, GLint first=0, GLsizei count=1) const
光源の色と位置を設定する.
virtual ~LightBuffer()
デストラクタ.
三角形に単純な陰影付けを行うシェーダが参照する材質データのユニフォームバッファオブジェクト.
void loadShininess(GLfloat shininess, GLint first=0, GLsizei count=1) const
輝き係数を設定する.
void loadAmbient(GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, 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 loadSpecular(GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, 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
材質を設定する.
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
材質を設定する.
void loadAmbientAndDiffuse(GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, GLint first=0, GLsizei count=1) const
環境光に対する反射係数と拡散反射係数を設定する.
void loadDiffuse(GLfloat r, GLfloat g, GLfloat b, GLfloat a=1.0f, GLint first=0, GLsizei count=1) const
拡散反射係数を設定する.
GgSimpleShader(const char *vert, const char *frag=0, const char *geom=0, GLint nvarying=0, const char **varyings=0)
コンストラクタ.
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
モデルビュー変換行列とそれから求めた法線変換行列を設定する.
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
モデルビュー変換行列と法線変換行列を設定する.
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
投影変換行列とモデルビュー変換行列を設定しモデルビュー変換行列から求めた法線変換行列を設定する.
void use() const
シェーダプログラムの使用を開始する.
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
投影変換行列とモデルビュー変換行列を設定しモデルビュー変換行列から求めた法線変換行列を設定する.
void load(const char *vert, const char *frag=0, const char *geom=0, GLint nvarying=0, const char **varyings=0)
シェーダのソースファイルの読み込み
GgSimpleShader & operator=(const GgSimpleShader &o)
代入演算子
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
光源を指定し投影変換行列を設定してシェーダプログラムの使用を開始する.
void unbind() const
テクスチャの使用終了 (このテクスチャを使用しなくなったら呼び出す).
GgTexture(const GgTexture &o)=delete
コピーコンストラクタは使用禁止.
GgTexture & operator=(const GgTexture &o)=delete
代入演算子は使用禁止.
GgTexture(const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_BGR, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGBA, GLenum wrap=GL_CLAMP_TO_EDGE)
メモリ上のデータからテクスチャを作成するコンストラクタ.
GLsizei getHeight() const
使用しているテクスチャの縦の画素数を取り出す.
const GLsizei * getSize() const
使用しているテクスチャのサイズを取り出す.
GLsizei getWidth() const
使用しているテクスチャの横の画素数を取り出す.
virtual ~GgTexture()
デストラクタ.
GLuint getTexture() const
使用しているテクスチャのテクスチャ名を得る.
void getSize(GLsizei *size) const
使用しているテクスチャのサイズを取り出す.
void bind() const
テクスチャの使用開始 (このテクスチャを使用する際に呼び出す).
void begin(float x, float y)
トラックボール処理を開始する.
void end(float x, float y)
トラックボール処理を停止する.
void motion(float x, float y)
回転の変換行列を計算する.
const GgMatrix & getMatrix() const
現在の回転の変換行列を取り出す.
void region(float w, float h)
トラックボール処理するマウスの移動範囲を指定する.
virtual ~GgTrackball()
デストラクタ.
const GLfloat * getScale() const
トラックボール処理の換算係数を取り出す.
const GLfloat * get() const
現在の回転の変換行列を取り出す.
const GLfloat * getStart() const
トラックボール処理の開始位置を取り出す.
void getScale(GLfloat *factor) const
トラックボール処理の換算係数を取り出す.
void reset()
トラックボールをリセットする
GLfloat getStart(int direction) const
トラックボール処理の開始位置を取り出す.
const GgQuaternion & getQuaternion() const
現在の回転の四元数を取り出す.
void rotate(const GgQuaternion &q)
トラックボールの回転角を修正する.
void getStart(GLfloat *position) const
トラックボール処理の開始位置を取り出す.
GLfloat getScale(int direction) const
トラックボール処理の換算係数を取り出す.
void region(int w, int h)
トラックボール処理するマウスの移動範囲を指定する.
三角形で表した形状データ (Arrays 形式).
void load(const GgVertex *vert, GLsizei count, GLenum usage=GL_STATIC_DRAW)
バッファオブジェクトを確保して頂点属性を格納する.
virtual ~GgTriangles()
デストラクタ.
GgTriangles(GLenum mode=GL_TRIANGLES)
コンストラクタ.
GLuint getBuffer() const
頂点属性を格納した頂点バッファオブジェクト名を取り出す.
virtual void draw(GLint first=0, GLsizei count=0) const
三角形の描画.
GLsizei getCount() const
データの数を取り出す.
void send(const GgVertex *vert, GLint first=0, GLsizei count=0) const
既存のバッファオブジェクトに頂点属性を転送する.
GgTriangles(const GgVertex *vert, GLsizei count, GLenum mode=GL_TRIANGLES, GLenum usage=GL_STATIC_DRAW)
コンストラクタ.
GgSimpleShader::Light light
ゲームグラフィックス特論の宿題用補助プログラムの名前空間
GgMatrix ggQuaternionTransposeMatrix(const GgQuaternion &q)
四元数 q の回転の転置した変換行列を返す.
GgMatrix ggScale(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
拡大縮小の変換行列を返す.
GgTriangles * ggArraysObj(const char *name, bool normalize=false)
Wavefront OBJ ファイルを読み込む (Arrays 形式)
GgElements * ggElementsMesh(GLuint slices, GLuint stacks, const GLfloat(*pos)[3], const GLfloat(*norm)[3]=nullptr)
メッシュ形状を作成する (Elements 形式).
GgTriangles * ggRectangle(GLfloat width=1.0f, GLfloat height=1.0f)
矩形状に 2 枚の三角形を生成する.
GgMatrix ggRotateZ(GLfloat a)
z 軸中心の回転の変換行列を返す.
GgQuaternion ggSlerp(const GLfloat *a, const GLfloat *b, GLfloat t)
二つの四元数の球面線形補間の結果を返す.
GgMatrix ggTranslate(GLfloat x, GLfloat y, GLfloat z, GLfloat w=1.0f)
平行移動の変換行列を返す.
void _ggFBOError(const char *name=nullptr, unsigned int line=0)
FBO のエラーをチェックする.
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)
グレースケール画像 (8bit) から法線マップのデータを作成する.
GLfloat ggLength4(const GLfloat *a)
4 要素の長さ.
GLfloat ggDot4(const GLfloat *a, const GLfloat *b)
4 要素の内積
GgMatrix ggNormal(const GgMatrix &m)
法線変換行列を返す.
GgMatrix ggRotate(GLfloat x, GLfloat y, GLfloat z, GLfloat a)
(x, y, z) 方向のベクトルを軸とする回転の変換行列を乗じた結果を返す.
GLint ggBufferAlignment
使用している GPU のバッファオブジェクトのアライメント, 初期化に取得される.
void ggCross(GLfloat *c, const GLfloat *a, const GLfloat *b)
3 要素の外積.
GgElements * ggElementsObj(const char *name, bool normalize=false)
Wavefront OBJ ファイル を読み込む (Elements 形式).
GLuint ggLoadShader(const char *vert, const char *frag=nullptr, const char *geom=nullptr, GLint nvarying=0, const char *const varyings[]=nullptr)
シェーダのソースファイルを読み込んでプログラムオブジェクトを作成する.
GLfloat ggDot3(const GLfloat *a, const GLfloat *b)
3 要素の内積.
GgMatrix ggFrustum(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
透視透視投影変換行列を返す.
GgQuaternion ggRotateQuaternion(GLfloat x, GLfloat y, GLfloat z, GLfloat a)
(x, y, z) を軸として角度 a 回転する四元数を返す.
std::array< GLfloat, 4 > GgVector
4 要素の単精度実数の配列.
GgQuaternion ggQuaternion(GLfloat x, GLfloat y, GLfloat z, GLfloat w)
四元数を返す
GgQuaternion ggConjugate(const GgQuaternion &q)
共役四元数を返す.
void _ggError(const char *name=nullptr, unsigned int line=0)
OpenGL のエラーをチェックする.
GgMatrix ggPerspective(GLfloat fovy, GLfloat aspect, GLfloat zNear, GLfloat zFar)
画角を指定して透視投影変換行列を返す.
GLfloat ggLength3(const GLfloat *a)
3 要素の長さ.
GgMatrix ggTranspose(const GgMatrix &m)
転置行列を返す.
GLuint ggCreateShader(const char *vsrc, const char *fsrc=nullptr, const char *gsrc=nullptr, GLint nvarying=0, const char *const varyings[]=nullptr, const char *vtext="vertex shader", const char *ftext="fragment shader", const char *gtext="geometry shader")
シェーダのソースプログラムの文字列を読み込んでプログラムオブジェクトを作成する.
GgTriangles * ggEllipse(GLfloat width=1.0f, GLfloat height=1.0f, GLuint slices=16)
楕円状に三角形を生成する.
GLuint ggLoadTexture(const GLvoid *image, GLsizei width, GLsizei height, GLenum format=GL_BGR, GLenum type=GL_UNSIGNED_BYTE, GLenum internal=GL_RGB, GLenum wrap=GL_CLAMP_TO_EDGE)
テクスチャメモリを確保して画像データをテクスチャとして読み込む.
GgPoints * ggPointsCube(GLsizei countv, GLfloat length=1.0f, GLfloat cx=0.0f, GLfloat cy=0.0f, GLfloat cz=0.0f)
点群を立方体状に生成する.
GLuint ggLoadImage(const char *name, GLsizei *pWidth=nullptr, GLsizei *pHeight=nullptr, GLenum internal=0, GLenum wrap=GL_CLAMP_TO_EDGE)
テクスチャメモリを確保して TGA 画像ファイルを読み込む.
GLuint ggLoadHeight(const char *name, float nz, GLsizei *pWidth=nullptr, GLsizei *pHeight=nullptr, GLenum internal=GL_RGBA)
テクスチャメモリを確保して TGA 画像ファイルを読み込み法線マップを作成する.
GgQuaternion ggNormalize(const GgQuaternion &q)
正規化した四元数を返す.
GgQuaternion ggEulerQuaternion(GLfloat heading, GLfloat pitch, GLfloat roll)
オイラー角 (heading, pitch, roll) で与えられた回転を表す四元数を返す.
GgMatrix ggQuaternionMatrix(const GgQuaternion &q)
四元数 q の回転の変換行列を返す.
GgMatrix ggOrthogonal(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
直交投影変換行列を返す.
GgPoints * ggPointsSphere(GLsizei countv, GLfloat radius=0.5f, GLfloat cx=0.0f, GLfloat cy=0.0f, GLfloat cz=0.0f)
点群を球状に生成する.
void ggNormalize4(GLfloat *a)
4 要素の正規化.
bool ggSaveTga(const char *name, const void *buffer, unsigned int width, unsigned int height, unsigned int depth)
配列の内容を TGA ファイルに保存する.
GgQuaternion ggMatrixQuaternion(const GLfloat *a)
回転の変換行列 m を表す四元数を返す.
GLfloat ggNorm(const GgQuaternion &q)
四元数のノルムを返す.
GgMatrix ggRotateY(GLfloat a)
y 軸中心の回転の変換行列を返す.
GgMatrix ggRotateX(GLfloat a)
x 軸中心の回転の変換行列を返す.
bool ggLoadSimpleObj(const char *name, std::vector< std::array< GLuint, 3 >> &group, std::vector< GgSimpleShader::Material > &material, std::vector< GgVertex > &vert, bool normalize=false)
三角形分割された OBJ ファイルと MTL ファイルを読み込む (Arrays 形式)
GgElements * ggElementsSphere(GLfloat radius=1.0f, int slices=16, int stacks=8)
GLuint ggLoadComputeShader(const char *comp)
コンピュートシェーダのソースファイルを読み込んでプログラムオブジェクトを作成する.
BindingPoints
光源と材質の uniform buffer object の結合ポイント.
@ MaterialBindingPoint
材質の uniform buffer object の結合ポイント
@ LightBindingPoint
光源の uniform buffer object の結合ポイント
bool ggSaveColor(const char *name)
カラーバッファの内容を TGA ファイルに保存する.
GgMatrix ggInvert(const GgMatrix &m)
逆行列を返す.
void ggNormalize3(GLfloat *a)
3 要素の正規化.
void ggInit()
ゲームグラフィックス特論の都合にもとづく初期化を行う.
GgQuaternion ggIdentityQuaternion()
単位四元数を返す
bool ggSaveDepth(const char *name)
デプスバッファの内容を TGA ファイルに保存する.
GgMatrix ggIdentity()
単位行列を返す.
bool ggReadImage(const char *name, std::vector< GLubyte > &image, GLsizei *pWidth, GLsizei *pHeight, GLenum *pFormat)
TGA ファイル (8/16/24/32bit) をメモリに読み込む.
GLuint ggCreateComputeShader(const char *csrc, const char *ctext="compute shader")
コンピュートシェーダのソースプログラムの文字列を読み込んでプログラムオブジェクトを作成する.
三角形に単純な陰影付けを行うシェーダが参照する光源データ.
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)
コンストラクタ.