GteOpenGL.cpp
Go to the documentation of this file.
1 // Geometric Tools LLC, Redmond WA 98052
2 // Copyright (c) 1998-2016
3 // Distributed under the Boost Software License, Version 1.0.
4 // http://www.boost.org/LICENSE_1_0.txt
5 // http://www.geometrictools.com/License/Boost/LICENSE_1_0.txt
6 // File Version: This file is automatically generated.
7 
9 #include <cassert>
10 #include <cstring>
11 #include <fstream>
12 #include <string>
13 #include <vector>
14 
15 // Support for versioning.
16 #define OPENGL_VERSION_NONE 0
17 #define OPENGL_VERSION_1_0 10
18 #define OPENGL_VERSION_1_1 11
19 #define OPENGL_VERSION_1_2 12
20 #define OPENGL_VERSION_1_3 13
21 #define OPENGL_VERSION_1_4 14
22 #define OPENGL_VERSION_1_5 15
23 #define OPENGL_VERSION_2_0 20
24 #define OPENGL_VERSION_2_1 21
25 #define OPENGL_VERSION_3_0 30
26 #define OPENGL_VERSION_3_1 31
27 #define OPENGL_VERSION_3_2 32
28 #define OPENGL_VERSION_3_3 33
29 #define OPENGL_VERSION_4_0 40
30 #define OPENGL_VERSION_4_1 41
31 #define OPENGL_VERSION_4_2 42
32 #define OPENGL_VERSION_4_3 43
33 #define OPENGL_VERSION_4_4 44
34 #define OPENGL_VERSION_4_5 45
35 
36 // Support for querying the OpenGL function pointers. Each platform must
37 // provide its own GetOpenGLFunctionPointer.
38 template <typename PGLFunction>
39 static void GetOpenGLFunction(char const* name, PGLFunction& function)
40 {
41  extern void* GetOpenGLFunctionPointer(char const*);
42  function = (PGLFunction)GetOpenGLFunctionPointer(name);
43 }
44 
45 // Provide a listener for assertions in the GteOpenGL.cpp file. The
46 // function reports the function passed to ReportGLError or when the
47 // queried function pointer is null.
48 extern void OpenGLReportListener(char const* function, GLenum code);
49 
50 static int GetOpenGLVersion()
51 {
52  GLint major = 0, minor = 0;
55  return 10 * major + minor;
56 }
57 
58 static void ReportGLError(const char* glFunction)
59 {
60  // code:
61  // 0x0500 GL_INVALID_ENUM
62  // 0x0501 GL_INVALID_VALUE
63  // 0x0502 GL_INVALID_OPERATION
64  // 0x0503 GL_STACK_OVERFLOW
65  // 0x0504 GL_STACK_UNDERFLOW
66  // 0x0505 GL_OUT_OF_MEMORY
67  // 0x0506 GL_INVALID_FRAMEBUFFER_OPERATION
68  // 0x0507 GL_CONTEXT_LOST
69 
70  GLenum code = glGetError();
71  while (code != GL_NO_ERROR)
72  {
73  OpenGLReportListener(glFunction, code);
74  code = glGetError();
75  }
76 }
77 
78 static void ReportGLNullFunction(const char* glFunction)
79 {
80  OpenGLReportListener(glFunction, GL_ZERO);
81 }
82 
83 #if !defined(__MSWINDOWS__)
84 
85 // GL_VERSION_1_0
86 
87 static PFNGLCULLFACEPROC sglCullFace = nullptr;
88 static PFNGLFRONTFACEPROC sglFrontFace = nullptr;
89 static PFNGLHINTPROC sglHint = nullptr;
90 static PFNGLLINEWIDTHPROC sglLineWidth = nullptr;
91 static PFNGLPOINTSIZEPROC sglPointSize = nullptr;
92 static PFNGLPOLYGONMODEPROC sglPolygonMode = nullptr;
93 static PFNGLSCISSORPROC sglScissor = nullptr;
94 static PFNGLTEXPARAMETERFPROC sglTexParameterf = nullptr;
95 static PFNGLTEXPARAMETERFVPROC sglTexParameterfv = nullptr;
96 static PFNGLTEXPARAMETERIPROC sglTexParameteri = nullptr;
97 static PFNGLTEXPARAMETERIVPROC sglTexParameteriv = nullptr;
98 static PFNGLTEXIMAGE1DPROC sglTexImage1D = nullptr;
99 static PFNGLTEXIMAGE2DPROC sglTexImage2D = nullptr;
100 static PFNGLDRAWBUFFERPROC sglDrawBuffer = nullptr;
101 static PFNGLCLEARPROC sglClear = nullptr;
102 static PFNGLCLEARCOLORPROC sglClearColor = nullptr;
103 static PFNGLCLEARSTENCILPROC sglClearStencil = nullptr;
104 static PFNGLCLEARDEPTHPROC sglClearDepth = nullptr;
105 static PFNGLSTENCILMASKPROC sglStencilMask = nullptr;
106 static PFNGLCOLORMASKPROC sglColorMask = nullptr;
107 static PFNGLDEPTHMASKPROC sglDepthMask = nullptr;
108 static PFNGLDISABLEPROC sglDisable = nullptr;
109 static PFNGLENABLEPROC sglEnable = nullptr;
110 static PFNGLFINISHPROC sglFinish = nullptr;
111 static PFNGLFLUSHPROC sglFlush = nullptr;
112 static PFNGLBLENDFUNCPROC sglBlendFunc = nullptr;
113 static PFNGLLOGICOPPROC sglLogicOp = nullptr;
114 static PFNGLSTENCILFUNCPROC sglStencilFunc = nullptr;
115 static PFNGLSTENCILOPPROC sglStencilOp = nullptr;
116 static PFNGLDEPTHFUNCPROC sglDepthFunc = nullptr;
117 static PFNGLPIXELSTOREFPROC sglPixelStoref = nullptr;
118 static PFNGLPIXELSTOREIPROC sglPixelStorei = nullptr;
119 static PFNGLREADBUFFERPROC sglReadBuffer = nullptr;
120 static PFNGLREADPIXELSPROC sglReadPixels = nullptr;
121 static PFNGLGETBOOLEANVPROC sglGetBooleanv = nullptr;
122 static PFNGLGETDOUBLEVPROC sglGetDoublev = nullptr;
123 static PFNGLGETERRORPROC sglGetError = nullptr;
124 static PFNGLGETFLOATVPROC sglGetFloatv = nullptr;
125 static PFNGLGETINTEGERVPROC sglGetIntegerv = nullptr;
127 static PFNGLGETTEXIMAGEPROC sglGetTexImage = nullptr;
128 static PFNGLGETTEXPARAMETERFVPROC sglGetTexParameterfv = nullptr;
129 static PFNGLGETTEXPARAMETERIVPROC sglGetTexParameteriv = nullptr;
130 static PFNGLGETTEXLEVELPARAMETERFVPROC sglGetTexLevelParameterfv = nullptr;
131 static PFNGLGETTEXLEVELPARAMETERIVPROC sglGetTexLevelParameteriv = nullptr;
132 static PFNGLISENABLEDPROC sglIsEnabled = nullptr;
133 static PFNGLDEPTHRANGEPROC sglDepthRange = nullptr;
134 static PFNGLVIEWPORTPROC sglViewport = nullptr;
135 
137 {
138  if (sglCullFace)
139  {
140  sglCullFace(mode);
141  ReportGLError("glCullFace");
142  }
143  else
144  {
145  ReportGLNullFunction("glCullFace");
146  }
147 }
148 
150 {
151  if (sglFrontFace)
152  {
153  sglFrontFace(mode);
154  ReportGLError("glFrontFace");
155  }
156  else
157  {
158  ReportGLNullFunction("glFrontFace");
159  }
160 }
161 
163 {
164  if (sglHint)
165  {
166  sglHint(target, mode);
167  ReportGLError("glHint");
168  }
169  else
170  {
171  ReportGLNullFunction("glHint");
172  }
173 }
174 
176 {
177  if (sglLineWidth)
178  {
179  sglLineWidth(width);
180  ReportGLError("glLineWidth");
181  }
182  else
183  {
184  ReportGLNullFunction("glLineWidth");
185  }
186 }
187 
189 {
190  if (sglPointSize)
191  {
192  sglPointSize(size);
193  ReportGLError("glPointSize");
194  }
195  else
196  {
197  ReportGLNullFunction("glPointSize");
198  }
199 }
200 
202 {
203  if (sglPolygonMode)
204  {
205  sglPolygonMode(face, mode);
206  ReportGLError("glPolygonMode");
207  }
208  else
209  {
210  ReportGLNullFunction("glPolygonMode");
211  }
212 }
213 
215 {
216  if (sglScissor)
217  {
218  sglScissor(x, y, width, height);
219  ReportGLError("glScissor");
220  }
221  else
222  {
223  ReportGLNullFunction("glScissor");
224  }
225 }
226 
228 {
229  if (sglTexParameterf)
230  {
231  sglTexParameterf(target, pname, param);
232  ReportGLError("glTexParameterf");
233  }
234  else
235  {
236  ReportGLNullFunction("glTexParameterf");
237  }
238 }
239 
241 {
242  if (sglTexParameterfv)
243  {
244  sglTexParameterfv(target, pname, params);
245  ReportGLError("glTexParameterfv");
246  }
247  else
248  {
249  ReportGLNullFunction("glTexParameterfv");
250  }
251 }
252 
254 {
255  if (sglTexParameteri)
256  {
257  sglTexParameteri(target, pname, param);
258  ReportGLError("glTexParameteri");
259  }
260  else
261  {
262  ReportGLNullFunction("glTexParameteri");
263  }
264 }
265 
267 {
268  if (sglTexParameteriv)
269  {
270  sglTexParameteriv(target, pname, params);
271  ReportGLError("glTexParameteriv");
272  }
273  else
274  {
275  ReportGLNullFunction("glTexParameteriv");
276  }
277 }
278 
280 {
281  if (sglTexImage1D)
282  {
283  sglTexImage1D(target, level, internalformat, width, border, format, type, pixels);
284  ReportGLError("glTexImage1D");
285  }
286  else
287  {
288  ReportGLNullFunction("glTexImage1D");
289  }
290 }
291 
293 {
294  if (sglTexImage2D)
295  {
296  sglTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
297  ReportGLError("glTexImage2D");
298  }
299  else
300  {
301  ReportGLNullFunction("glTexImage2D");
302  }
303 }
304 
306 {
307  if (sglDrawBuffer)
308  {
309  sglDrawBuffer(buf);
310  ReportGLError("glDrawBuffer");
311  }
312  else
313  {
314  ReportGLNullFunction("glDrawBuffer");
315  }
316 }
317 
319 {
320  if (sglClear)
321  {
322  sglClear(mask);
323  ReportGLError("glClear");
324  }
325  else
326  {
327  ReportGLNullFunction("glClear");
328  }
329 }
330 
332 {
333  if (sglClearColor)
334  {
335  sglClearColor(red, green, blue, alpha);
336  ReportGLError("glClearColor");
337  }
338  else
339  {
340  ReportGLNullFunction("glClearColor");
341  }
342 }
343 
345 {
346  if (sglClearStencil)
347  {
348  sglClearStencil(s);
349  ReportGLError("glClearStencil");
350  }
351  else
352  {
353  ReportGLNullFunction("glClearStencil");
354  }
355 }
356 
358 {
359  if (sglClearDepth)
360  {
361  sglClearDepth(depth);
362  ReportGLError("glClearDepth");
363  }
364  else
365  {
366  ReportGLNullFunction("glClearDepth");
367  }
368 }
369 
371 {
372  if (sglStencilMask)
373  {
374  sglStencilMask(mask);
375  ReportGLError("glStencilMask");
376  }
377  else
378  {
379  ReportGLNullFunction("glStencilMask");
380  }
381 }
382 
384 {
385  if (sglColorMask)
386  {
387  sglColorMask(red, green, blue, alpha);
388  ReportGLError("glColorMask");
389  }
390  else
391  {
392  ReportGLNullFunction("glColorMask");
393  }
394 }
395 
397 {
398  if (sglDepthMask)
399  {
400  sglDepthMask(flag);
401  ReportGLError("glDepthMask");
402  }
403  else
404  {
405  ReportGLNullFunction("glDepthMask");
406  }
407 }
408 
410 {
411  if (sglDisable)
412  {
413  sglDisable(cap);
414  ReportGLError("glDisable");
415  }
416  else
417  {
418  ReportGLNullFunction("glDisable");
419  }
420 }
421 
423 {
424  if (sglEnable)
425  {
426  sglEnable(cap);
427  ReportGLError("glEnable");
428  }
429  else
430  {
431  ReportGLNullFunction("glEnable");
432  }
433 }
434 
436 {
437  if (sglFinish)
438  {
439  sglFinish();
440  ReportGLError("glFinish");
441  }
442  else
443  {
444  ReportGLNullFunction("glFinish");
445  }
446 }
447 
449 {
450  if (sglFlush)
451  {
452  sglFlush();
453  ReportGLError("glFlush");
454  }
455  else
456  {
457  ReportGLNullFunction("glFlush");
458  }
459 }
460 
462 {
463  if (sglBlendFunc)
464  {
465  sglBlendFunc(sfactor, dfactor);
466  ReportGLError("glBlendFunc");
467  }
468  else
469  {
470  ReportGLNullFunction("glBlendFunc");
471  }
472 }
473 
475 {
476  if (sglLogicOp)
477  {
478  sglLogicOp(opcode);
479  ReportGLError("glLogicOp");
480  }
481  else
482  {
483  ReportGLNullFunction("glLogicOp");
484  }
485 }
486 
488 {
489  if (sglStencilFunc)
490  {
491  sglStencilFunc(func, ref, mask);
492  ReportGLError("glStencilFunc");
493  }
494  else
495  {
496  ReportGLNullFunction("glStencilFunc");
497  }
498 }
499 
501 {
502  if (sglStencilOp)
503  {
504  sglStencilOp(fail, zfail, zpass);
505  ReportGLError("glStencilOp");
506  }
507  else
508  {
509  ReportGLNullFunction("glStencilOp");
510  }
511 }
512 
514 {
515  if (sglDepthFunc)
516  {
517  sglDepthFunc(func);
518  ReportGLError("glDepthFunc");
519  }
520  else
521  {
522  ReportGLNullFunction("glDepthFunc");
523  }
524 }
525 
527 {
528  if (sglPixelStoref)
529  {
530  sglPixelStoref(pname, param);
531  ReportGLError("glPixelStoref");
532  }
533  else
534  {
535  ReportGLNullFunction("glPixelStoref");
536  }
537 }
538 
540 {
541  if (sglPixelStorei)
542  {
543  sglPixelStorei(pname, param);
544  ReportGLError("glPixelStorei");
545  }
546  else
547  {
548  ReportGLNullFunction("glPixelStorei");
549  }
550 }
551 
553 {
554  if (sglReadBuffer)
555  {
556  sglReadBuffer(src);
557  ReportGLError("glReadBuffer");
558  }
559  else
560  {
561  ReportGLNullFunction("glReadBuffer");
562  }
563 }
564 
566 {
567  if (sglReadPixels)
568  {
569  sglReadPixels(x, y, width, height, format, type, pixels);
570  ReportGLError("glReadPixels");
571  }
572  else
573  {
574  ReportGLNullFunction("glReadPixels");
575  }
576 }
577 
579 {
580  if (sglGetBooleanv)
581  {
582  sglGetBooleanv(pname, data);
583  ReportGLError("glGetBooleanv");
584  }
585  else
586  {
587  ReportGLNullFunction("glGetBooleanv");
588  }
589 }
590 
592 {
593  if (sglGetDoublev)
594  {
595  sglGetDoublev(pname, data);
596  ReportGLError("glGetDoublev");
597  }
598  else
599  {
600  ReportGLNullFunction("glGetDoublev");
601  }
602 }
603 
605 {
606  GLenum result;
607  if (sglGetError)
608  {
609  result = sglGetError();
610  }
611  else
612  {
613  ReportGLNullFunction("glGetError");
614  result = 0;
615  }
616  return result;
617 }
618 
620 {
621  if (sglGetFloatv)
622  {
623  sglGetFloatv(pname, data);
624  ReportGLError("glGetFloatv");
625  }
626  else
627  {
628  ReportGLNullFunction("glGetFloatv");
629  }
630 }
631 
633 {
634  if (sglGetIntegerv)
635  {
636  sglGetIntegerv(pname, data);
637  ReportGLError("glGetIntegerv");
638  }
639  else
640  {
641  ReportGLNullFunction("glGetIntegerv");
642  }
643 }
644 
646 {
647  const GLubyte * result;
648  if (sglGetString)
649  {
650  result = sglGetString(name);
651  ReportGLError("glGetString");
652  }
653  else
654  {
655  ReportGLNullFunction("glGetString");
656  result = 0;
657  }
658  return result;
659 }
660 
662 {
663  if (sglGetTexImage)
664  {
665  sglGetTexImage(target, level, format, type, pixels);
666  ReportGLError("glGetTexImage");
667  }
668  else
669  {
670  ReportGLNullFunction("glGetTexImage");
671  }
672 }
673 
675 {
677  {
678  sglGetTexParameterfv(target, pname, params);
679  ReportGLError("glGetTexParameterfv");
680  }
681  else
682  {
683  ReportGLNullFunction("glGetTexParameterfv");
684  }
685 }
686 
688 {
690  {
691  sglGetTexParameteriv(target, pname, params);
692  ReportGLError("glGetTexParameteriv");
693  }
694  else
695  {
696  ReportGLNullFunction("glGetTexParameteriv");
697  }
698 }
699 
701 {
703  {
704  sglGetTexLevelParameterfv(target, level, pname, params);
705  ReportGLError("glGetTexLevelParameterfv");
706  }
707  else
708  {
709  ReportGLNullFunction("glGetTexLevelParameterfv");
710  }
711 }
712 
714 {
716  {
717  sglGetTexLevelParameteriv(target, level, pname, params);
718  ReportGLError("glGetTexLevelParameteriv");
719  }
720  else
721  {
722  ReportGLNullFunction("glGetTexLevelParameteriv");
723  }
724 }
725 
727 {
729  if (sglIsEnabled)
730  {
731  result = sglIsEnabled(cap);
732  ReportGLError("glIsEnabled");
733  }
734  else
735  {
736  ReportGLNullFunction("glIsEnabled");
737  result = 0;
738  }
739  return result;
740 }
741 
743 {
744  if (sglDepthRange)
745  {
746  sglDepthRange(near, far);
747  ReportGLError("glDepthRange");
748  }
749  else
750  {
751  ReportGLNullFunction("glDepthRange");
752  }
753 }
754 
756 {
757  if (sglViewport)
758  {
759  sglViewport(x, y, width, height);
760  ReportGLError("glViewport");
761  }
762  else
763  {
764  ReportGLNullFunction("glViewport");
765  }
766 }
767 
769 {
770  GetOpenGLFunction("glCullFace", sglCullFace);
771  GetOpenGLFunction("glFrontFace", sglFrontFace);
772  GetOpenGLFunction("glHint", sglHint);
773  GetOpenGLFunction("glLineWidth", sglLineWidth);
774  GetOpenGLFunction("glPointSize", sglPointSize);
775  GetOpenGLFunction("glPolygonMode", sglPolygonMode);
776  GetOpenGLFunction("glScissor", sglScissor);
777  GetOpenGLFunction("glTexParameterf", sglTexParameterf);
778  GetOpenGLFunction("glTexParameterfv", sglTexParameterfv);
779  GetOpenGLFunction("glTexParameteri", sglTexParameteri);
780  GetOpenGLFunction("glTexParameteriv", sglTexParameteriv);
781  GetOpenGLFunction("glTexImage1D", sglTexImage1D);
782  GetOpenGLFunction("glTexImage2D", sglTexImage2D);
783  GetOpenGLFunction("glDrawBuffer", sglDrawBuffer);
784  GetOpenGLFunction("glClear", sglClear);
785  GetOpenGLFunction("glClearColor", sglClearColor);
786  GetOpenGLFunction("glClearStencil", sglClearStencil);
787  GetOpenGLFunction("glClearDepth", sglClearDepth);
788  GetOpenGLFunction("glStencilMask", sglStencilMask);
789  GetOpenGLFunction("glColorMask", sglColorMask);
790  GetOpenGLFunction("glDepthMask", sglDepthMask);
791  GetOpenGLFunction("glDisable", sglDisable);
792  GetOpenGLFunction("glEnable", sglEnable);
793  GetOpenGLFunction("glFinish", sglFinish);
794  GetOpenGLFunction("glFlush", sglFlush);
795  GetOpenGLFunction("glBlendFunc", sglBlendFunc);
796  GetOpenGLFunction("glLogicOp", sglLogicOp);
797  GetOpenGLFunction("glStencilFunc", sglStencilFunc);
798  GetOpenGLFunction("glStencilOp", sglStencilOp);
799  GetOpenGLFunction("glDepthFunc", sglDepthFunc);
800  GetOpenGLFunction("glPixelStoref", sglPixelStoref);
801  GetOpenGLFunction("glPixelStorei", sglPixelStorei);
802  GetOpenGLFunction("glReadBuffer", sglReadBuffer);
803  GetOpenGLFunction("glReadPixels", sglReadPixels);
804  GetOpenGLFunction("glGetBooleanv", sglGetBooleanv);
805  GetOpenGLFunction("glGetDoublev", sglGetDoublev);
806  GetOpenGLFunction("glGetError", sglGetError);
807  GetOpenGLFunction("glGetFloatv", sglGetFloatv);
808  GetOpenGLFunction("glGetIntegerv", sglGetIntegerv);
809  GetOpenGLFunction("glGetString", sglGetString);
810  GetOpenGLFunction("glGetTexImage", sglGetTexImage);
811  GetOpenGLFunction("glGetTexParameterfv", sglGetTexParameterfv);
812  GetOpenGLFunction("glGetTexParameteriv", sglGetTexParameteriv);
813  GetOpenGLFunction("glGetTexLevelParameterfv", sglGetTexLevelParameterfv);
814  GetOpenGLFunction("glGetTexLevelParameteriv", sglGetTexLevelParameteriv);
815  GetOpenGLFunction("glIsEnabled", sglIsEnabled);
816  GetOpenGLFunction("glDepthRange", sglDepthRange);
817  GetOpenGLFunction("glViewport", sglViewport);
818 }
819 
820 // GL_VERSION_1_1
821 
822 static PFNGLDRAWARRAYSPROC sglDrawArrays = nullptr;
823 static PFNGLDRAWELEMENTSPROC sglDrawElements = nullptr;
824 static PFNGLGETPOINTERVPROC sglGetPointerv = nullptr;
825 static PFNGLPOLYGONOFFSETPROC sglPolygonOffset = nullptr;
826 static PFNGLCOPYTEXIMAGE1DPROC sglCopyTexImage1D = nullptr;
827 static PFNGLCOPYTEXIMAGE2DPROC sglCopyTexImage2D = nullptr;
828 static PFNGLCOPYTEXSUBIMAGE1DPROC sglCopyTexSubImage1D = nullptr;
829 static PFNGLCOPYTEXSUBIMAGE2DPROC sglCopyTexSubImage2D = nullptr;
830 static PFNGLTEXSUBIMAGE1DPROC sglTexSubImage1D = nullptr;
831 static PFNGLTEXSUBIMAGE2DPROC sglTexSubImage2D = nullptr;
832 static PFNGLBINDTEXTUREPROC sglBindTexture = nullptr;
833 static PFNGLDELETETEXTURESPROC sglDeleteTextures = nullptr;
834 static PFNGLGENTEXTURESPROC sglGenTextures = nullptr;
835 static PFNGLISTEXTUREPROC sglIsTexture = nullptr;
836 
838 {
839  if (sglDrawArrays)
840  {
841  sglDrawArrays(mode, first, count);
842  ReportGLError("glDrawArrays");
843  }
844  else
845  {
846  ReportGLNullFunction("glDrawArrays");
847  }
848 }
849 
851 {
852  if (sglDrawElements)
853  {
854  sglDrawElements(mode, count, type, indices);
855  ReportGLError("glDrawElements");
856  }
857  else
858  {
859  ReportGLNullFunction("glDrawElements");
860  }
861 }
862 
864 {
865  if (sglGetPointerv)
866  {
867  sglGetPointerv(pname, params);
868  ReportGLError("glGetPointerv");
869  }
870  else
871  {
872  ReportGLNullFunction("glGetPointerv");
873  }
874 }
875 
877 {
878  if (sglPolygonOffset)
879  {
880  sglPolygonOffset(factor, units);
881  ReportGLError("glPolygonOffset");
882  }
883  else
884  {
885  ReportGLNullFunction("glPolygonOffset");
886  }
887 }
888 
890 {
891  if (sglCopyTexImage1D)
892  {
893  sglCopyTexImage1D(target, level, internalformat, x, y, width, border);
894  ReportGLError("glCopyTexImage1D");
895  }
896  else
897  {
898  ReportGLNullFunction("glCopyTexImage1D");
899  }
900 }
901 
903 {
904  if (sglCopyTexImage2D)
905  {
906  sglCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
907  ReportGLError("glCopyTexImage2D");
908  }
909  else
910  {
911  ReportGLNullFunction("glCopyTexImage2D");
912  }
913 }
914 
916 {
918  {
919  sglCopyTexSubImage1D(target, level, xoffset, x, y, width);
920  ReportGLError("glCopyTexSubImage1D");
921  }
922  else
923  {
924  ReportGLNullFunction("glCopyTexSubImage1D");
925  }
926 }
927 
929 {
931  {
932  sglCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
933  ReportGLError("glCopyTexSubImage2D");
934  }
935  else
936  {
937  ReportGLNullFunction("glCopyTexSubImage2D");
938  }
939 }
940 
942 {
943  if (sglTexSubImage1D)
944  {
945  sglTexSubImage1D(target, level, xoffset, width, format, type, pixels);
946  ReportGLError("glTexSubImage1D");
947  }
948  else
949  {
950  ReportGLNullFunction("glTexSubImage1D");
951  }
952 }
953 
955 {
956  if (sglTexSubImage2D)
957  {
958  sglTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
959  ReportGLError("glTexSubImage2D");
960  }
961  else
962  {
963  ReportGLNullFunction("glTexSubImage2D");
964  }
965 }
966 
968 {
969  if (sglBindTexture)
970  {
971  sglBindTexture(target, texture);
972  ReportGLError("glBindTexture");
973  }
974  else
975  {
976  ReportGLNullFunction("glBindTexture");
977  }
978 }
979 
981 {
982  if (sglDeleteTextures)
983  {
984  sglDeleteTextures(n, textures);
985  ReportGLError("glDeleteTextures");
986  }
987  else
988  {
989  ReportGLNullFunction("glDeleteTextures");
990  }
991 }
992 
994 {
995  if (sglGenTextures)
996  {
997  sglGenTextures(n, textures);
998  ReportGLError("glGenTextures");
999  }
1000  else
1001  {
1002  ReportGLNullFunction("glGenTextures");
1003  }
1004 }
1005 
1007 {
1008  GLboolean result;
1009  if (sglIsTexture)
1010  {
1011  result = sglIsTexture(texture);
1012  ReportGLError("glIsTexture");
1013  }
1014  else
1015  {
1016  ReportGLNullFunction("glIsTexture");
1017  result = 0;
1018  }
1019  return result;
1020 }
1021 
1023 {
1025  {
1026  GetOpenGLFunction("glDrawArrays", sglDrawArrays);
1027  GetOpenGLFunction("glDrawElements", sglDrawElements);
1028  GetOpenGLFunction("glGetPointerv", sglGetPointerv);
1029  GetOpenGLFunction("glPolygonOffset", sglPolygonOffset);
1030  GetOpenGLFunction("glCopyTexImage1D", sglCopyTexImage1D);
1031  GetOpenGLFunction("glCopyTexImage2D", sglCopyTexImage2D);
1032  GetOpenGLFunction("glCopyTexSubImage1D", sglCopyTexSubImage1D);
1033  GetOpenGLFunction("glCopyTexSubImage2D", sglCopyTexSubImage2D);
1034  GetOpenGLFunction("glTexSubImage1D", sglTexSubImage1D);
1035  GetOpenGLFunction("glTexSubImage2D", sglTexSubImage2D);
1036  GetOpenGLFunction("glBindTexture", sglBindTexture);
1037  GetOpenGLFunction("glDeleteTextures", sglDeleteTextures);
1038  GetOpenGLFunction("glGenTextures", sglGenTextures);
1039  GetOpenGLFunction("glIsTexture", sglIsTexture);
1040  }
1041 }
1042 
1043 #endif
1044 
1045 // GL_VERSION_1_2
1046 
1047 static PFNGLDRAWRANGEELEMENTSPROC sglDrawRangeElements = nullptr;
1048 static PFNGLTEXIMAGE3DPROC sglTexImage3D = nullptr;
1049 static PFNGLTEXSUBIMAGE3DPROC sglTexSubImage3D = nullptr;
1050 static PFNGLCOPYTEXSUBIMAGE3DPROC sglCopyTexSubImage3D = nullptr;
1051 
1053 {
1055  {
1056  sglDrawRangeElements(mode, start, end, count, type, indices);
1057  ReportGLError("glDrawRangeElements");
1058  }
1059  else
1060  {
1061  ReportGLNullFunction("glDrawRangeElements");
1062  }
1063 }
1064 
1066 {
1067  if (sglTexImage3D)
1068  {
1069  sglTexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
1070  ReportGLError("glTexImage3D");
1071  }
1072  else
1073  {
1074  ReportGLNullFunction("glTexImage3D");
1075  }
1076 }
1077 
1079 {
1080  if (sglTexSubImage3D)
1081  {
1082  sglTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
1083  ReportGLError("glTexSubImage3D");
1084  }
1085  else
1086  {
1087  ReportGLNullFunction("glTexSubImage3D");
1088  }
1089 }
1090 
1092 {
1094  {
1095  sglCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
1096  ReportGLError("glCopyTexSubImage3D");
1097  }
1098  else
1099  {
1100  ReportGLNullFunction("glCopyTexSubImage3D");
1101  }
1102 }
1103 
1105 {
1107  {
1108  GetOpenGLFunction("glDrawRangeElements", sglDrawRangeElements);
1109  GetOpenGLFunction("glTexImage3D", sglTexImage3D);
1110  GetOpenGLFunction("glTexSubImage3D", sglTexSubImage3D);
1111  GetOpenGLFunction("glCopyTexSubImage3D", sglCopyTexSubImage3D);
1112  }
1113 }
1114 
1115 // GL_VERSION_1_3
1116 
1117 static PFNGLACTIVETEXTUREPROC sglActiveTexture = nullptr;
1118 static PFNGLSAMPLECOVERAGEPROC sglSampleCoverage = nullptr;
1119 static PFNGLCOMPRESSEDTEXIMAGE3DPROC sglCompressedTexImage3D = nullptr;
1120 static PFNGLCOMPRESSEDTEXIMAGE2DPROC sglCompressedTexImage2D = nullptr;
1121 static PFNGLCOMPRESSEDTEXIMAGE1DPROC sglCompressedTexImage1D = nullptr;
1122 static PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC sglCompressedTexSubImage3D = nullptr;
1123 static PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC sglCompressedTexSubImage2D = nullptr;
1124 static PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC sglCompressedTexSubImage1D = nullptr;
1125 static PFNGLGETCOMPRESSEDTEXIMAGEPROC sglGetCompressedTexImage = nullptr;
1126 
1128 {
1129  if (sglActiveTexture)
1130  {
1131  sglActiveTexture(texture);
1132  ReportGLError("glActiveTexture");
1133  }
1134  else
1135  {
1136  ReportGLNullFunction("glActiveTexture");
1137  }
1138 }
1139 
1141 {
1142  if (sglSampleCoverage)
1143  {
1144  sglSampleCoverage(value, invert);
1145  ReportGLError("glSampleCoverage");
1146  }
1147  else
1148  {
1149  ReportGLNullFunction("glSampleCoverage");
1150  }
1151 }
1152 
1154 {
1156  {
1157  sglCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
1158  ReportGLError("glCompressedTexImage3D");
1159  }
1160  else
1161  {
1162  ReportGLNullFunction("glCompressedTexImage3D");
1163  }
1164 }
1165 
1167 {
1169  {
1170  sglCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
1171  ReportGLError("glCompressedTexImage2D");
1172  }
1173  else
1174  {
1175  ReportGLNullFunction("glCompressedTexImage2D");
1176  }
1177 }
1178 
1180 {
1182  {
1183  sglCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data);
1184  ReportGLError("glCompressedTexImage1D");
1185  }
1186  else
1187  {
1188  ReportGLNullFunction("glCompressedTexImage1D");
1189  }
1190 }
1191 
1193 {
1195  {
1196  sglCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
1197  ReportGLError("glCompressedTexSubImage3D");
1198  }
1199  else
1200  {
1201  ReportGLNullFunction("glCompressedTexSubImage3D");
1202  }
1203 }
1204 
1206 {
1208  {
1209  sglCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
1210  ReportGLError("glCompressedTexSubImage2D");
1211  }
1212  else
1213  {
1214  ReportGLNullFunction("glCompressedTexSubImage2D");
1215  }
1216 }
1217 
1219 {
1221  {
1222  sglCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data);
1223  ReportGLError("glCompressedTexSubImage1D");
1224  }
1225  else
1226  {
1227  ReportGLNullFunction("glCompressedTexSubImage1D");
1228  }
1229 }
1230 
1232 {
1234  {
1235  sglGetCompressedTexImage(target, level, img);
1236  ReportGLError("glGetCompressedTexImage");
1237  }
1238  else
1239  {
1240  ReportGLNullFunction("glGetCompressedTexImage");
1241  }
1242 }
1243 
1245 {
1247  {
1248  GetOpenGLFunction("glActiveTexture", sglActiveTexture);
1249  GetOpenGLFunction("glSampleCoverage", sglSampleCoverage);
1250  GetOpenGLFunction("glCompressedTexImage3D", sglCompressedTexImage3D);
1251  GetOpenGLFunction("glCompressedTexImage2D", sglCompressedTexImage2D);
1252  GetOpenGLFunction("glCompressedTexImage1D", sglCompressedTexImage1D);
1253  GetOpenGLFunction("glCompressedTexSubImage3D", sglCompressedTexSubImage3D);
1254  GetOpenGLFunction("glCompressedTexSubImage2D", sglCompressedTexSubImage2D);
1255  GetOpenGLFunction("glCompressedTexSubImage1D", sglCompressedTexSubImage1D);
1256  GetOpenGLFunction("glGetCompressedTexImage", sglGetCompressedTexImage);
1257  }
1258 }
1259 
1260 // GL_VERSION_1_4
1261 
1262 static PFNGLBLENDFUNCSEPARATEPROC sglBlendFuncSeparate = nullptr;
1263 static PFNGLMULTIDRAWARRAYSPROC sglMultiDrawArrays = nullptr;
1264 static PFNGLMULTIDRAWELEMENTSPROC sglMultiDrawElements = nullptr;
1265 static PFNGLPOINTPARAMETERFPROC sglPointParameterf = nullptr;
1266 static PFNGLPOINTPARAMETERFVPROC sglPointParameterfv = nullptr;
1267 static PFNGLPOINTPARAMETERIPROC sglPointParameteri = nullptr;
1268 static PFNGLPOINTPARAMETERIVPROC sglPointParameteriv = nullptr;
1269 static PFNGLBLENDCOLORPROC sglBlendColor = nullptr;
1270 static PFNGLBLENDEQUATIONPROC sglBlendEquation = nullptr;
1271 
1273 {
1275  {
1276  sglBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha);
1277  ReportGLError("glBlendFuncSeparate");
1278  }
1279  else
1280  {
1281  ReportGLNullFunction("glBlendFuncSeparate");
1282  }
1283 }
1284 
1286 {
1287  if (sglMultiDrawArrays)
1288  {
1289  sglMultiDrawArrays(mode, first, count, drawcount);
1290  ReportGLError("glMultiDrawArrays");
1291  }
1292  else
1293  {
1294  ReportGLNullFunction("glMultiDrawArrays");
1295  }
1296 }
1297 
1299 {
1301  {
1302  sglMultiDrawElements(mode, count, type, indices, drawcount);
1303  ReportGLError("glMultiDrawElements");
1304  }
1305  else
1306  {
1307  ReportGLNullFunction("glMultiDrawElements");
1308  }
1309 }
1310 
1312 {
1313  if (sglPointParameterf)
1314  {
1315  sglPointParameterf(pname, param);
1316  ReportGLError("glPointParameterf");
1317  }
1318  else
1319  {
1320  ReportGLNullFunction("glPointParameterf");
1321  }
1322 }
1323 
1325 {
1326  if (sglPointParameterfv)
1327  {
1328  sglPointParameterfv(pname, params);
1329  ReportGLError("glPointParameterfv");
1330  }
1331  else
1332  {
1333  ReportGLNullFunction("glPointParameterfv");
1334  }
1335 }
1336 
1338 {
1339  if (sglPointParameteri)
1340  {
1341  sglPointParameteri(pname, param);
1342  ReportGLError("glPointParameteri");
1343  }
1344  else
1345  {
1346  ReportGLNullFunction("glPointParameteri");
1347  }
1348 }
1349 
1351 {
1352  if (sglPointParameteriv)
1353  {
1354  sglPointParameteriv(pname, params);
1355  ReportGLError("glPointParameteriv");
1356  }
1357  else
1358  {
1359  ReportGLNullFunction("glPointParameteriv");
1360  }
1361 }
1362 
1364 {
1365  if (sglBlendColor)
1366  {
1367  sglBlendColor(red, green, blue, alpha);
1368  ReportGLError("glBlendColor");
1369  }
1370  else
1371  {
1372  ReportGLNullFunction("glBlendColor");
1373  }
1374 }
1375 
1377 {
1378  if (sglBlendEquation)
1379  {
1380  sglBlendEquation(mode);
1381  ReportGLError("glBlendEquation");
1382  }
1383  else
1384  {
1385  ReportGLNullFunction("glBlendEquation");
1386  }
1387 }
1388 
1390 {
1392  {
1393  GetOpenGLFunction("glBlendFuncSeparate", sglBlendFuncSeparate);
1394  GetOpenGLFunction("glMultiDrawArrays", sglMultiDrawArrays);
1395  GetOpenGLFunction("glMultiDrawElements", sglMultiDrawElements);
1396  GetOpenGLFunction("glPointParameterf", sglPointParameterf);
1397  GetOpenGLFunction("glPointParameterfv", sglPointParameterfv);
1398  GetOpenGLFunction("glPointParameteri", sglPointParameteri);
1399  GetOpenGLFunction("glPointParameteriv", sglPointParameteriv);
1400  GetOpenGLFunction("glBlendColor", sglBlendColor);
1401  GetOpenGLFunction("glBlendEquation", sglBlendEquation);
1402  }
1403 }
1404 
1405 // GL_VERSION_1_5
1406 
1407 static PFNGLGENQUERIESPROC sglGenQueries = nullptr;
1408 static PFNGLDELETEQUERIESPROC sglDeleteQueries = nullptr;
1409 static PFNGLISQUERYPROC sglIsQuery = nullptr;
1410 static PFNGLBEGINQUERYPROC sglBeginQuery = nullptr;
1411 static PFNGLENDQUERYPROC sglEndQuery = nullptr;
1412 static PFNGLGETQUERYIVPROC sglGetQueryiv = nullptr;
1413 static PFNGLGETQUERYOBJECTIVPROC sglGetQueryObjectiv = nullptr;
1414 static PFNGLGETQUERYOBJECTUIVPROC sglGetQueryObjectuiv = nullptr;
1415 static PFNGLBINDBUFFERPROC sglBindBuffer = nullptr;
1416 static PFNGLDELETEBUFFERSPROC sglDeleteBuffers = nullptr;
1417 static PFNGLGENBUFFERSPROC sglGenBuffers = nullptr;
1418 static PFNGLISBUFFERPROC sglIsBuffer = nullptr;
1419 static PFNGLBUFFERDATAPROC sglBufferData = nullptr;
1420 static PFNGLBUFFERSUBDATAPROC sglBufferSubData = nullptr;
1421 static PFNGLGETBUFFERSUBDATAPROC sglGetBufferSubData = nullptr;
1423 static PFNGLUNMAPBUFFERPROC sglUnmapBuffer = nullptr;
1424 static PFNGLGETBUFFERPARAMETERIVPROC sglGetBufferParameteriv = nullptr;
1425 static PFNGLGETBUFFERPOINTERVPROC sglGetBufferPointerv = nullptr;
1426 
1428 {
1429  if (sglGenQueries)
1430  {
1431  sglGenQueries(n, ids);
1432  ReportGLError("glGenQueries");
1433  }
1434  else
1435  {
1436  ReportGLNullFunction("glGenQueries");
1437  }
1438 }
1439 
1441 {
1442  if (sglDeleteQueries)
1443  {
1444  sglDeleteQueries(n, ids);
1445  ReportGLError("glDeleteQueries");
1446  }
1447  else
1448  {
1449  ReportGLNullFunction("glDeleteQueries");
1450  }
1451 }
1452 
1454 {
1455  GLboolean result;
1456  if (sglIsQuery)
1457  {
1458  result = sglIsQuery(id);
1459  ReportGLError("glIsQuery");
1460  }
1461  else
1462  {
1463  ReportGLNullFunction("glIsQuery");
1464  result = 0;
1465  }
1466  return result;
1467 }
1468 
1470 {
1471  if (sglBeginQuery)
1472  {
1473  sglBeginQuery(target, id);
1474  ReportGLError("glBeginQuery");
1475  }
1476  else
1477  {
1478  ReportGLNullFunction("glBeginQuery");
1479  }
1480 }
1481 
1483 {
1484  if (sglEndQuery)
1485  {
1486  sglEndQuery(target);
1487  ReportGLError("glEndQuery");
1488  }
1489  else
1490  {
1491  ReportGLNullFunction("glEndQuery");
1492  }
1493 }
1494 
1496 {
1497  if (sglGetQueryiv)
1498  {
1499  sglGetQueryiv(target, pname, params);
1500  ReportGLError("glGetQueryiv");
1501  }
1502  else
1503  {
1504  ReportGLNullFunction("glGetQueryiv");
1505  }
1506 }
1507 
1509 {
1510  if (sglGetQueryObjectiv)
1511  {
1512  sglGetQueryObjectiv(id, pname, params);
1513  ReportGLError("glGetQueryObjectiv");
1514  }
1515  else
1516  {
1517  ReportGLNullFunction("glGetQueryObjectiv");
1518  }
1519 }
1520 
1522 {
1524  {
1525  sglGetQueryObjectuiv(id, pname, params);
1526  ReportGLError("glGetQueryObjectuiv");
1527  }
1528  else
1529  {
1530  ReportGLNullFunction("glGetQueryObjectuiv");
1531  }
1532 }
1533 
1535 {
1536  if (sglBindBuffer)
1537  {
1538  sglBindBuffer(target, buffer);
1539  ReportGLError("glBindBuffer");
1540  }
1541  else
1542  {
1543  ReportGLNullFunction("glBindBuffer");
1544  }
1545 }
1546 
1548 {
1549  if (sglDeleteBuffers)
1550  {
1551  sglDeleteBuffers(n, buffers);
1552  ReportGLError("glDeleteBuffers");
1553  }
1554  else
1555  {
1556  ReportGLNullFunction("glDeleteBuffers");
1557  }
1558 }
1559 
1561 {
1562  if (sglGenBuffers)
1563  {
1564  sglGenBuffers(n, buffers);
1565  ReportGLError("glGenBuffers");
1566  }
1567  else
1568  {
1569  ReportGLNullFunction("glGenBuffers");
1570  }
1571 }
1572 
1574 {
1575  GLboolean result;
1576  if (sglIsBuffer)
1577  {
1578  result = sglIsBuffer(buffer);
1579  ReportGLError("glIsBuffer");
1580  }
1581  else
1582  {
1583  ReportGLNullFunction("glIsBuffer");
1584  result = 0;
1585  }
1586  return result;
1587 }
1588 
1590 {
1591  if (sglBufferData)
1592  {
1593  sglBufferData(target, size, data, usage);
1594  ReportGLError("glBufferData");
1595  }
1596  else
1597  {
1598  ReportGLNullFunction("glBufferData");
1599  }
1600 }
1601 
1603 {
1604  if (sglBufferSubData)
1605  {
1606  sglBufferSubData(target, offset, size, data);
1607  ReportGLError("glBufferSubData");
1608  }
1609  else
1610  {
1611  ReportGLNullFunction("glBufferSubData");
1612  }
1613 }
1614 
1616 {
1617  if (sglGetBufferSubData)
1618  {
1619  sglGetBufferSubData(target, offset, size, data);
1620  ReportGLError("glGetBufferSubData");
1621  }
1622  else
1623  {
1624  ReportGLNullFunction("glGetBufferSubData");
1625  }
1626 }
1627 
1629 {
1630  void * result;
1631  if (sglMapBuffer)
1632  {
1633  result = sglMapBuffer(target, access);
1634  ReportGLError("glMapBuffer");
1635  }
1636  else
1637  {
1638  ReportGLNullFunction("glMapBuffer");
1639  result = 0;
1640  }
1641  return result;
1642 }
1643 
1645 {
1646  GLboolean result;
1647  if (sglUnmapBuffer)
1648  {
1649  result = sglUnmapBuffer(target);
1650  ReportGLError("glUnmapBuffer");
1651  }
1652  else
1653  {
1654  ReportGLNullFunction("glUnmapBuffer");
1655  result = 0;
1656  }
1657  return result;
1658 }
1659 
1661 {
1663  {
1664  sglGetBufferParameteriv(target, pname, params);
1665  ReportGLError("glGetBufferParameteriv");
1666  }
1667  else
1668  {
1669  ReportGLNullFunction("glGetBufferParameteriv");
1670  }
1671 }
1672 
1674 {
1676  {
1677  sglGetBufferPointerv(target, pname, params);
1678  ReportGLError("glGetBufferPointerv");
1679  }
1680  else
1681  {
1682  ReportGLNullFunction("glGetBufferPointerv");
1683  }
1684 }
1685 
1687 {
1689  {
1690  GetOpenGLFunction("glGenQueries", sglGenQueries);
1691  GetOpenGLFunction("glDeleteQueries", sglDeleteQueries);
1692  GetOpenGLFunction("glIsQuery", sglIsQuery);
1693  GetOpenGLFunction("glBeginQuery", sglBeginQuery);
1694  GetOpenGLFunction("glEndQuery", sglEndQuery);
1695  GetOpenGLFunction("glGetQueryiv", sglGetQueryiv);
1696  GetOpenGLFunction("glGetQueryObjectiv", sglGetQueryObjectiv);
1697  GetOpenGLFunction("glGetQueryObjectuiv", sglGetQueryObjectuiv);
1698  GetOpenGLFunction("glBindBuffer", sglBindBuffer);
1699  GetOpenGLFunction("glDeleteBuffers", sglDeleteBuffers);
1700  GetOpenGLFunction("glGenBuffers", sglGenBuffers);
1701  GetOpenGLFunction("glIsBuffer", sglIsBuffer);
1702  GetOpenGLFunction("glBufferData", sglBufferData);
1703  GetOpenGLFunction("glBufferSubData", sglBufferSubData);
1704  GetOpenGLFunction("glGetBufferSubData", sglGetBufferSubData);
1705  GetOpenGLFunction("glMapBuffer", sglMapBuffer);
1706  GetOpenGLFunction("glUnmapBuffer", sglUnmapBuffer);
1707  GetOpenGLFunction("glGetBufferParameteriv", sglGetBufferParameteriv);
1708  GetOpenGLFunction("glGetBufferPointerv", sglGetBufferPointerv);
1709  }
1710 }
1711 
1712 // GL_VERSION_2_0
1713 
1714 static PFNGLBLENDEQUATIONSEPARATEPROC sglBlendEquationSeparate = nullptr;
1715 static PFNGLDRAWBUFFERSPROC sglDrawBuffers = nullptr;
1716 static PFNGLSTENCILOPSEPARATEPROC sglStencilOpSeparate = nullptr;
1717 static PFNGLSTENCILFUNCSEPARATEPROC sglStencilFuncSeparate = nullptr;
1718 static PFNGLSTENCILMASKSEPARATEPROC sglStencilMaskSeparate = nullptr;
1719 static PFNGLATTACHSHADERPROC sglAttachShader = nullptr;
1720 static PFNGLBINDATTRIBLOCATIONPROC sglBindAttribLocation = nullptr;
1721 static PFNGLCOMPILESHADERPROC sglCompileShader = nullptr;
1722 static PFNGLCREATEPROGRAMPROC sglCreateProgram = nullptr;
1723 static PFNGLCREATESHADERPROC sglCreateShader = nullptr;
1724 static PFNGLDELETEPROGRAMPROC sglDeleteProgram = nullptr;
1725 static PFNGLDELETESHADERPROC sglDeleteShader = nullptr;
1726 static PFNGLDETACHSHADERPROC sglDetachShader = nullptr;
1727 static PFNGLDISABLEVERTEXATTRIBARRAYPROC sglDisableVertexAttribArray = nullptr;
1728 static PFNGLENABLEVERTEXATTRIBARRAYPROC sglEnableVertexAttribArray = nullptr;
1729 static PFNGLGETACTIVEATTRIBPROC sglGetActiveAttrib = nullptr;
1730 static PFNGLGETACTIVEUNIFORMPROC sglGetActiveUniform = nullptr;
1731 static PFNGLGETATTACHEDSHADERSPROC sglGetAttachedShaders = nullptr;
1732 static PFNGLGETATTRIBLOCATIONPROC sglGetAttribLocation = nullptr;
1733 static PFNGLGETPROGRAMIVPROC sglGetProgramiv = nullptr;
1734 static PFNGLGETPROGRAMINFOLOGPROC sglGetProgramInfoLog = nullptr;
1735 static PFNGLGETSHADERIVPROC sglGetShaderiv = nullptr;
1736 static PFNGLGETSHADERINFOLOGPROC sglGetShaderInfoLog = nullptr;
1737 static PFNGLGETSHADERSOURCEPROC sglGetShaderSource = nullptr;
1738 static PFNGLGETUNIFORMLOCATIONPROC sglGetUniformLocation = nullptr;
1739 static PFNGLGETUNIFORMFVPROC sglGetUniformfv = nullptr;
1740 static PFNGLGETUNIFORMIVPROC sglGetUniformiv = nullptr;
1741 static PFNGLGETVERTEXATTRIBDVPROC sglGetVertexAttribdv = nullptr;
1742 static PFNGLGETVERTEXATTRIBFVPROC sglGetVertexAttribfv = nullptr;
1743 static PFNGLGETVERTEXATTRIBIVPROC sglGetVertexAttribiv = nullptr;
1744 static PFNGLGETVERTEXATTRIBPOINTERVPROC sglGetVertexAttribPointerv = nullptr;
1745 static PFNGLISPROGRAMPROC sglIsProgram = nullptr;
1746 static PFNGLISSHADERPROC sglIsShader = nullptr;
1747 static PFNGLLINKPROGRAMPROC sglLinkProgram = nullptr;
1748 static PFNGLSHADERSOURCEPROC sglShaderSource = nullptr;
1749 static PFNGLUSEPROGRAMPROC sglUseProgram = nullptr;
1750 static PFNGLUNIFORM1FPROC sglUniform1f = nullptr;
1751 static PFNGLUNIFORM2FPROC sglUniform2f = nullptr;
1752 static PFNGLUNIFORM3FPROC sglUniform3f = nullptr;
1753 static PFNGLUNIFORM4FPROC sglUniform4f = nullptr;
1754 static PFNGLUNIFORM1IPROC sglUniform1i = nullptr;
1755 static PFNGLUNIFORM2IPROC sglUniform2i = nullptr;
1756 static PFNGLUNIFORM3IPROC sglUniform3i = nullptr;
1757 static PFNGLUNIFORM4IPROC sglUniform4i = nullptr;
1758 static PFNGLUNIFORM1FVPROC sglUniform1fv = nullptr;
1759 static PFNGLUNIFORM2FVPROC sglUniform2fv = nullptr;
1760 static PFNGLUNIFORM3FVPROC sglUniform3fv = nullptr;
1761 static PFNGLUNIFORM4FVPROC sglUniform4fv = nullptr;
1762 static PFNGLUNIFORM1IVPROC sglUniform1iv = nullptr;
1763 static PFNGLUNIFORM2IVPROC sglUniform2iv = nullptr;
1764 static PFNGLUNIFORM3IVPROC sglUniform3iv = nullptr;
1765 static PFNGLUNIFORM4IVPROC sglUniform4iv = nullptr;
1766 static PFNGLUNIFORMMATRIX2FVPROC sglUniformMatrix2fv = nullptr;
1767 static PFNGLUNIFORMMATRIX3FVPROC sglUniformMatrix3fv = nullptr;
1768 static PFNGLUNIFORMMATRIX4FVPROC sglUniformMatrix4fv = nullptr;
1769 static PFNGLVALIDATEPROGRAMPROC sglValidateProgram = nullptr;
1770 static PFNGLVERTEXATTRIB1DPROC sglVertexAttrib1d = nullptr;
1771 static PFNGLVERTEXATTRIB1DVPROC sglVertexAttrib1dv = nullptr;
1772 static PFNGLVERTEXATTRIB1FPROC sglVertexAttrib1f = nullptr;
1773 static PFNGLVERTEXATTRIB1FVPROC sglVertexAttrib1fv = nullptr;
1774 static PFNGLVERTEXATTRIB1SPROC sglVertexAttrib1s = nullptr;
1775 static PFNGLVERTEXATTRIB1SVPROC sglVertexAttrib1sv = nullptr;
1776 static PFNGLVERTEXATTRIB2DPROC sglVertexAttrib2d = nullptr;
1777 static PFNGLVERTEXATTRIB2DVPROC sglVertexAttrib2dv = nullptr;
1778 static PFNGLVERTEXATTRIB2FPROC sglVertexAttrib2f = nullptr;
1779 static PFNGLVERTEXATTRIB2FVPROC sglVertexAttrib2fv = nullptr;
1780 static PFNGLVERTEXATTRIB2SPROC sglVertexAttrib2s = nullptr;
1781 static PFNGLVERTEXATTRIB2SVPROC sglVertexAttrib2sv = nullptr;
1782 static PFNGLVERTEXATTRIB3DPROC sglVertexAttrib3d = nullptr;
1783 static PFNGLVERTEXATTRIB3DVPROC sglVertexAttrib3dv = nullptr;
1784 static PFNGLVERTEXATTRIB3FPROC sglVertexAttrib3f = nullptr;
1785 static PFNGLVERTEXATTRIB3FVPROC sglVertexAttrib3fv = nullptr;
1786 static PFNGLVERTEXATTRIB3SPROC sglVertexAttrib3s = nullptr;
1787 static PFNGLVERTEXATTRIB3SVPROC sglVertexAttrib3sv = nullptr;
1788 static PFNGLVERTEXATTRIB4NBVPROC sglVertexAttrib4Nbv = nullptr;
1789 static PFNGLVERTEXATTRIB4NIVPROC sglVertexAttrib4Niv = nullptr;
1790 static PFNGLVERTEXATTRIB4NSVPROC sglVertexAttrib4Nsv = nullptr;
1791 static PFNGLVERTEXATTRIB4NUBPROC sglVertexAttrib4Nub = nullptr;
1792 static PFNGLVERTEXATTRIB4NUBVPROC sglVertexAttrib4Nubv = nullptr;
1793 static PFNGLVERTEXATTRIB4NUIVPROC sglVertexAttrib4Nuiv = nullptr;
1794 static PFNGLVERTEXATTRIB4NUSVPROC sglVertexAttrib4Nusv = nullptr;
1795 static PFNGLVERTEXATTRIB4BVPROC sglVertexAttrib4bv = nullptr;
1796 static PFNGLVERTEXATTRIB4DPROC sglVertexAttrib4d = nullptr;
1797 static PFNGLVERTEXATTRIB4DVPROC sglVertexAttrib4dv = nullptr;
1798 static PFNGLVERTEXATTRIB4FPROC sglVertexAttrib4f = nullptr;
1799 static PFNGLVERTEXATTRIB4FVPROC sglVertexAttrib4fv = nullptr;
1800 static PFNGLVERTEXATTRIB4IVPROC sglVertexAttrib4iv = nullptr;
1801 static PFNGLVERTEXATTRIB4SPROC sglVertexAttrib4s = nullptr;
1802 static PFNGLVERTEXATTRIB4SVPROC sglVertexAttrib4sv = nullptr;
1803 static PFNGLVERTEXATTRIB4UBVPROC sglVertexAttrib4ubv = nullptr;
1804 static PFNGLVERTEXATTRIB4UIVPROC sglVertexAttrib4uiv = nullptr;
1805 static PFNGLVERTEXATTRIB4USVPROC sglVertexAttrib4usv = nullptr;
1806 static PFNGLVERTEXATTRIBPOINTERPROC sglVertexAttribPointer = nullptr;
1807 
1809 {
1811  {
1812  sglBlendEquationSeparate(modeRGB, modeAlpha);
1813  ReportGLError("glBlendEquationSeparate");
1814  }
1815  else
1816  {
1817  ReportGLNullFunction("glBlendEquationSeparate");
1818  }
1819 }
1820 
1822 {
1823  if (sglDrawBuffers)
1824  {
1825  sglDrawBuffers(n, bufs);
1826  ReportGLError("glDrawBuffers");
1827  }
1828  else
1829  {
1830  ReportGLNullFunction("glDrawBuffers");
1831  }
1832 }
1833 
1835 {
1837  {
1838  sglStencilOpSeparate(face, sfail, dpfail, dppass);
1839  ReportGLError("glStencilOpSeparate");
1840  }
1841  else
1842  {
1843  ReportGLNullFunction("glStencilOpSeparate");
1844  }
1845 }
1846 
1848 {
1850  {
1851  sglStencilFuncSeparate(face, func, ref, mask);
1852  ReportGLError("glStencilFuncSeparate");
1853  }
1854  else
1855  {
1856  ReportGLNullFunction("glStencilFuncSeparate");
1857  }
1858 }
1859 
1861 {
1863  {
1864  sglStencilMaskSeparate(face, mask);
1865  ReportGLError("glStencilMaskSeparate");
1866  }
1867  else
1868  {
1869  ReportGLNullFunction("glStencilMaskSeparate");
1870  }
1871 }
1872 
1874 {
1875  if (sglAttachShader)
1876  {
1877  sglAttachShader(program, shader);
1878  ReportGLError("glAttachShader");
1879  }
1880  else
1881  {
1882  ReportGLNullFunction("glAttachShader");
1883  }
1884 }
1885 
1887 {
1889  {
1890  sglBindAttribLocation(program, index, name);
1891  ReportGLError("glBindAttribLocation");
1892  }
1893  else
1894  {
1895  ReportGLNullFunction("glBindAttribLocation");
1896  }
1897 }
1898 
1900 {
1901  if (sglCompileShader)
1902  {
1903  sglCompileShader(shader);
1904  ReportGLError("glCompileShader");
1905  }
1906  else
1907  {
1908  ReportGLNullFunction("glCompileShader");
1909  }
1910 }
1911 
1913 {
1914  GLuint result;
1915  if (sglCreateProgram)
1916  {
1917  result = sglCreateProgram();
1918  ReportGLError("glCreateProgram");
1919  }
1920  else
1921  {
1922  ReportGLNullFunction("glCreateProgram");
1923  result = 0;
1924  }
1925  return result;
1926 }
1927 
1929 {
1930  GLuint result;
1931  if (sglCreateShader)
1932  {
1933  result = sglCreateShader(type);
1934  ReportGLError("glCreateShader");
1935  }
1936  else
1937  {
1938  ReportGLNullFunction("glCreateShader");
1939  result = 0;
1940  }
1941  return result;
1942 }
1943 
1945 {
1946  if (sglDeleteProgram)
1947  {
1948  sglDeleteProgram(program);
1949  ReportGLError("glDeleteProgram");
1950  }
1951  else
1952  {
1953  ReportGLNullFunction("glDeleteProgram");
1954  }
1955 }
1956 
1958 {
1959  if (sglDeleteShader)
1960  {
1961  sglDeleteShader(shader);
1962  ReportGLError("glDeleteShader");
1963  }
1964  else
1965  {
1966  ReportGLNullFunction("glDeleteShader");
1967  }
1968 }
1969 
1971 {
1972  if (sglDetachShader)
1973  {
1974  sglDetachShader(program, shader);
1975  ReportGLError("glDetachShader");
1976  }
1977  else
1978  {
1979  ReportGLNullFunction("glDetachShader");
1980  }
1981 }
1982 
1984 {
1986  {
1988  ReportGLError("glDisableVertexAttribArray");
1989  }
1990  else
1991  {
1992  ReportGLNullFunction("glDisableVertexAttribArray");
1993  }
1994 }
1995 
1997 {
1999  {
2001  ReportGLError("glEnableVertexAttribArray");
2002  }
2003  else
2004  {
2005  ReportGLNullFunction("glEnableVertexAttribArray");
2006  }
2007 }
2008 
2010 {
2011  if (sglGetActiveAttrib)
2012  {
2013  sglGetActiveAttrib(program, index, bufSize, length, size, type, name);
2014  ReportGLError("glGetActiveAttrib");
2015  }
2016  else
2017  {
2018  ReportGLNullFunction("glGetActiveAttrib");
2019  }
2020 }
2021 
2023 {
2024  if (sglGetActiveUniform)
2025  {
2026  sglGetActiveUniform(program, index, bufSize, length, size, type, name);
2027  ReportGLError("glGetActiveUniform");
2028  }
2029  else
2030  {
2031  ReportGLNullFunction("glGetActiveUniform");
2032  }
2033 }
2034 
2036 {
2038  {
2039  sglGetAttachedShaders(program, maxCount, count, shaders);
2040  ReportGLError("glGetAttachedShaders");
2041  }
2042  else
2043  {
2044  ReportGLNullFunction("glGetAttachedShaders");
2045  }
2046 }
2047 
2049 {
2050  GLint result;
2052  {
2053  result = sglGetAttribLocation(program, name);
2054  ReportGLError("glGetAttribLocation");
2055  }
2056  else
2057  {
2058  ReportGLNullFunction("glGetAttribLocation");
2059  result = 0;
2060  }
2061  return result;
2062 }
2063 
2065 {
2066  if (sglGetProgramiv)
2067  {
2068  sglGetProgramiv(program, pname, params);
2069  ReportGLError("glGetProgramiv");
2070  }
2071  else
2072  {
2073  ReportGLNullFunction("glGetProgramiv");
2074  }
2075 }
2076 
2078 {
2080  {
2081  sglGetProgramInfoLog(program, bufSize, length, infoLog);
2082  ReportGLError("glGetProgramInfoLog");
2083  }
2084  else
2085  {
2086  ReportGLNullFunction("glGetProgramInfoLog");
2087  }
2088 }
2089 
2091 {
2092  if (sglGetShaderiv)
2093  {
2094  sglGetShaderiv(shader, pname, params);
2095  ReportGLError("glGetShaderiv");
2096  }
2097  else
2098  {
2099  ReportGLNullFunction("glGetShaderiv");
2100  }
2101 }
2102 
2104 {
2105  if (sglGetShaderInfoLog)
2106  {
2107  sglGetShaderInfoLog(shader, bufSize, length, infoLog);
2108  ReportGLError("glGetShaderInfoLog");
2109  }
2110  else
2111  {
2112  ReportGLNullFunction("glGetShaderInfoLog");
2113  }
2114 }
2115 
2117 {
2118  if (sglGetShaderSource)
2119  {
2120  sglGetShaderSource(shader, bufSize, length, source);
2121  ReportGLError("glGetShaderSource");
2122  }
2123  else
2124  {
2125  ReportGLNullFunction("glGetShaderSource");
2126  }
2127 }
2128 
2130 {
2131  GLint result;
2133  {
2134  result = sglGetUniformLocation(program, name);
2135  ReportGLError("glGetUniformLocation");
2136  }
2137  else
2138  {
2139  ReportGLNullFunction("glGetUniformLocation");
2140  result = 0;
2141  }
2142  return result;
2143 }
2144 
2146 {
2147  if (sglGetUniformfv)
2148  {
2149  sglGetUniformfv(program, location, params);
2150  ReportGLError("glGetUniformfv");
2151  }
2152  else
2153  {
2154  ReportGLNullFunction("glGetUniformfv");
2155  }
2156 }
2157 
2159 {
2160  if (sglGetUniformiv)
2161  {
2162  sglGetUniformiv(program, location, params);
2163  ReportGLError("glGetUniformiv");
2164  }
2165  else
2166  {
2167  ReportGLNullFunction("glGetUniformiv");
2168  }
2169 }
2170 
2172 {
2174  {
2175  sglGetVertexAttribdv(index, pname, params);
2176  ReportGLError("glGetVertexAttribdv");
2177  }
2178  else
2179  {
2180  ReportGLNullFunction("glGetVertexAttribdv");
2181  }
2182 }
2183 
2185 {
2187  {
2188  sglGetVertexAttribfv(index, pname, params);
2189  ReportGLError("glGetVertexAttribfv");
2190  }
2191  else
2192  {
2193  ReportGLNullFunction("glGetVertexAttribfv");
2194  }
2195 }
2196 
2198 {
2200  {
2201  sglGetVertexAttribiv(index, pname, params);
2202  ReportGLError("glGetVertexAttribiv");
2203  }
2204  else
2205  {
2206  ReportGLNullFunction("glGetVertexAttribiv");
2207  }
2208 }
2209 
2211 {
2213  {
2214  sglGetVertexAttribPointerv(index, pname, pointer);
2215  ReportGLError("glGetVertexAttribPointerv");
2216  }
2217  else
2218  {
2219  ReportGLNullFunction("glGetVertexAttribPointerv");
2220  }
2221 }
2222 
2224 {
2225  GLboolean result;
2226  if (sglIsProgram)
2227  {
2228  result = sglIsProgram(program);
2229  ReportGLError("glIsProgram");
2230  }
2231  else
2232  {
2233  ReportGLNullFunction("glIsProgram");
2234  result = 0;
2235  }
2236  return result;
2237 }
2238 
2240 {
2241  GLboolean result;
2242  if (sglIsShader)
2243  {
2244  result = sglIsShader(shader);
2245  ReportGLError("glIsShader");
2246  }
2247  else
2248  {
2249  ReportGLNullFunction("glIsShader");
2250  result = 0;
2251  }
2252  return result;
2253 }
2254 
2256 {
2257  if (sglLinkProgram)
2258  {
2259  sglLinkProgram(program);
2260  ReportGLError("glLinkProgram");
2261  }
2262  else
2263  {
2264  ReportGLNullFunction("glLinkProgram");
2265  }
2266 }
2267 
2268 void APIENTRY glShaderSource(GLuint shader, GLsizei count, const GLchar *const*string, const GLint *length)
2269 {
2270  if (sglShaderSource)
2271  {
2272  sglShaderSource(shader, count, string, length);
2273  ReportGLError("glShaderSource");
2274  }
2275  else
2276  {
2277  ReportGLNullFunction("glShaderSource");
2278  }
2279 }
2280 
2282 {
2283  if (sglUseProgram)
2284  {
2285  sglUseProgram(program);
2286  ReportGLError("glUseProgram");
2287  }
2288  else
2289  {
2290  ReportGLNullFunction("glUseProgram");
2291  }
2292 }
2293 
2295 {
2296  if (sglUniform1f)
2297  {
2298  sglUniform1f(location, v0);
2299  ReportGLError("glUniform1f");
2300  }
2301  else
2302  {
2303  ReportGLNullFunction("glUniform1f");
2304  }
2305 }
2306 
2308 {
2309  if (sglUniform2f)
2310  {
2311  sglUniform2f(location, v0, v1);
2312  ReportGLError("glUniform2f");
2313  }
2314  else
2315  {
2316  ReportGLNullFunction("glUniform2f");
2317  }
2318 }
2319 
2321 {
2322  if (sglUniform3f)
2323  {
2324  sglUniform3f(location, v0, v1, v2);
2325  ReportGLError("glUniform3f");
2326  }
2327  else
2328  {
2329  ReportGLNullFunction("glUniform3f");
2330  }
2331 }
2332 
2334 {
2335  if (sglUniform4f)
2336  {
2337  sglUniform4f(location, v0, v1, v2, v3);
2338  ReportGLError("glUniform4f");
2339  }
2340  else
2341  {
2342  ReportGLNullFunction("glUniform4f");
2343  }
2344 }
2345 
2347 {
2348  if (sglUniform1i)
2349  {
2350  sglUniform1i(location, v0);
2351  ReportGLError("glUniform1i");
2352  }
2353  else
2354  {
2355  ReportGLNullFunction("glUniform1i");
2356  }
2357 }
2358 
2360 {
2361  if (sglUniform2i)
2362  {
2363  sglUniform2i(location, v0, v1);
2364  ReportGLError("glUniform2i");
2365  }
2366  else
2367  {
2368  ReportGLNullFunction("glUniform2i");
2369  }
2370 }
2371 
2373 {
2374  if (sglUniform3i)
2375  {
2376  sglUniform3i(location, v0, v1, v2);
2377  ReportGLError("glUniform3i");
2378  }
2379  else
2380  {
2381  ReportGLNullFunction("glUniform3i");
2382  }
2383 }
2384 
2386 {
2387  if (sglUniform4i)
2388  {
2389  sglUniform4i(location, v0, v1, v2, v3);
2390  ReportGLError("glUniform4i");
2391  }
2392  else
2393  {
2394  ReportGLNullFunction("glUniform4i");
2395  }
2396 }
2397 
2399 {
2400  if (sglUniform1fv)
2401  {
2402  sglUniform1fv(location, count, value);
2403  ReportGLError("glUniform1fv");
2404  }
2405  else
2406  {
2407  ReportGLNullFunction("glUniform1fv");
2408  }
2409 }
2410 
2412 {
2413  if (sglUniform2fv)
2414  {
2415  sglUniform2fv(location, count, value);
2416  ReportGLError("glUniform2fv");
2417  }
2418  else
2419  {
2420  ReportGLNullFunction("glUniform2fv");
2421  }
2422 }
2423 
2425 {
2426  if (sglUniform3fv)
2427  {
2428  sglUniform3fv(location, count, value);
2429  ReportGLError("glUniform3fv");
2430  }
2431  else
2432  {
2433  ReportGLNullFunction("glUniform3fv");
2434  }
2435 }
2436 
2438 {
2439  if (sglUniform4fv)
2440  {
2441  sglUniform4fv(location, count, value);
2442  ReportGLError("glUniform4fv");
2443  }
2444  else
2445  {
2446  ReportGLNullFunction("glUniform4fv");
2447  }
2448 }
2449 
2451 {
2452  if (sglUniform1iv)
2453  {
2454  sglUniform1iv(location, count, value);
2455  ReportGLError("glUniform1iv");
2456  }
2457  else
2458  {
2459  ReportGLNullFunction("glUniform1iv");
2460  }
2461 }
2462 
2464 {
2465  if (sglUniform2iv)
2466  {
2467  sglUniform2iv(location, count, value);
2468  ReportGLError("glUniform2iv");
2469  }
2470  else
2471  {
2472  ReportGLNullFunction("glUniform2iv");
2473  }
2474 }
2475 
2477 {
2478  if (sglUniform3iv)
2479  {
2480  sglUniform3iv(location, count, value);
2481  ReportGLError("glUniform3iv");
2482  }
2483  else
2484  {
2485  ReportGLNullFunction("glUniform3iv");
2486  }
2487 }
2488 
2490 {
2491  if (sglUniform4iv)
2492  {
2493  sglUniform4iv(location, count, value);
2494  ReportGLError("glUniform4iv");
2495  }
2496  else
2497  {
2498  ReportGLNullFunction("glUniform4iv");
2499  }
2500 }
2501 
2503 {
2504  if (sglUniformMatrix2fv)
2505  {
2506  sglUniformMatrix2fv(location, count, transpose, value);
2507  ReportGLError("glUniformMatrix2fv");
2508  }
2509  else
2510  {
2511  ReportGLNullFunction("glUniformMatrix2fv");
2512  }
2513 }
2514 
2516 {
2517  if (sglUniformMatrix3fv)
2518  {
2519  sglUniformMatrix3fv(location, count, transpose, value);
2520  ReportGLError("glUniformMatrix3fv");
2521  }
2522  else
2523  {
2524  ReportGLNullFunction("glUniformMatrix3fv");
2525  }
2526 }
2527 
2529 {
2530  if (sglUniformMatrix4fv)
2531  {
2532  sglUniformMatrix4fv(location, count, transpose, value);
2533  ReportGLError("glUniformMatrix4fv");
2534  }
2535  else
2536  {
2537  ReportGLNullFunction("glUniformMatrix4fv");
2538  }
2539 }
2540 
2542 {
2543  if (sglValidateProgram)
2544  {
2545  sglValidateProgram(program);
2546  ReportGLError("glValidateProgram");
2547  }
2548  else
2549  {
2550  ReportGLNullFunction("glValidateProgram");
2551  }
2552 }
2553 
2555 {
2556  if (sglVertexAttrib1d)
2557  {
2558  sglVertexAttrib1d(index, x);
2559  ReportGLError("glVertexAttrib1d");
2560  }
2561  else
2562  {
2563  ReportGLNullFunction("glVertexAttrib1d");
2564  }
2565 }
2566 
2568 {
2569  if (sglVertexAttrib1dv)
2570  {
2571  sglVertexAttrib1dv(index, v);
2572  ReportGLError("glVertexAttrib1dv");
2573  }
2574  else
2575  {
2576  ReportGLNullFunction("glVertexAttrib1dv");
2577  }
2578 }
2579 
2581 {
2582  if (sglVertexAttrib1f)
2583  {
2584  sglVertexAttrib1f(index, x);
2585  ReportGLError("glVertexAttrib1f");
2586  }
2587  else
2588  {
2589  ReportGLNullFunction("glVertexAttrib1f");
2590  }
2591 }
2592 
2594 {
2595  if (sglVertexAttrib1fv)
2596  {
2597  sglVertexAttrib1fv(index, v);
2598  ReportGLError("glVertexAttrib1fv");
2599  }
2600  else
2601  {
2602  ReportGLNullFunction("glVertexAttrib1fv");
2603  }
2604 }
2605 
2607 {
2608  if (sglVertexAttrib1s)
2609  {
2610  sglVertexAttrib1s(index, x);
2611  ReportGLError("glVertexAttrib1s");
2612  }
2613  else
2614  {
2615  ReportGLNullFunction("glVertexAttrib1s");
2616  }
2617 }
2618 
2620 {
2621  if (sglVertexAttrib1sv)
2622  {
2623  sglVertexAttrib1sv(index, v);
2624  ReportGLError("glVertexAttrib1sv");
2625  }
2626  else
2627  {
2628  ReportGLNullFunction("glVertexAttrib1sv");
2629  }
2630 }
2631 
2633 {
2634  if (sglVertexAttrib2d)
2635  {
2636  sglVertexAttrib2d(index, x, y);
2637  ReportGLError("glVertexAttrib2d");
2638  }
2639  else
2640  {
2641  ReportGLNullFunction("glVertexAttrib2d");
2642  }
2643 }
2644 
2646 {
2647  if (sglVertexAttrib2dv)
2648  {
2649  sglVertexAttrib2dv(index, v);
2650  ReportGLError("glVertexAttrib2dv");
2651  }
2652  else
2653  {
2654  ReportGLNullFunction("glVertexAttrib2dv");
2655  }
2656 }
2657 
2659 {
2660  if (sglVertexAttrib2f)
2661  {
2662  sglVertexAttrib2f(index, x, y);
2663  ReportGLError("glVertexAttrib2f");
2664  }
2665  else
2666  {
2667  ReportGLNullFunction("glVertexAttrib2f");
2668  }
2669 }
2670 
2672 {
2673  if (sglVertexAttrib2fv)
2674  {
2675  sglVertexAttrib2fv(index, v);
2676  ReportGLError("glVertexAttrib2fv");
2677  }
2678  else
2679  {
2680  ReportGLNullFunction("glVertexAttrib2fv");
2681  }
2682 }
2683 
2685 {
2686  if (sglVertexAttrib2s)
2687  {
2688  sglVertexAttrib2s(index, x, y);
2689  ReportGLError("glVertexAttrib2s");
2690  }
2691  else
2692  {
2693  ReportGLNullFunction("glVertexAttrib2s");
2694  }
2695 }
2696 
2698 {
2699  if (sglVertexAttrib2sv)
2700  {
2701  sglVertexAttrib2sv(index, v);
2702  ReportGLError("glVertexAttrib2sv");
2703  }
2704  else
2705  {
2706  ReportGLNullFunction("glVertexAttrib2sv");
2707  }
2708 }
2709 
2711 {
2712  if (sglVertexAttrib3d)
2713  {
2714  sglVertexAttrib3d(index, x, y, z);
2715  ReportGLError("glVertexAttrib3d");
2716  }
2717  else
2718  {
2719  ReportGLNullFunction("glVertexAttrib3d");
2720  }
2721 }
2722 
2724 {
2725  if (sglVertexAttrib3dv)
2726  {
2727  sglVertexAttrib3dv(index, v);
2728  ReportGLError("glVertexAttrib3dv");
2729  }
2730  else
2731  {
2732  ReportGLNullFunction("glVertexAttrib3dv");
2733  }
2734 }
2735 
2737 {
2738  if (sglVertexAttrib3f)
2739  {
2740  sglVertexAttrib3f(index, x, y, z);
2741  ReportGLError("glVertexAttrib3f");
2742  }
2743  else
2744  {
2745  ReportGLNullFunction("glVertexAttrib3f");
2746  }
2747 }
2748 
2750 {
2751  if (sglVertexAttrib3fv)
2752  {
2753  sglVertexAttrib3fv(index, v);
2754  ReportGLError("glVertexAttrib3fv");
2755  }
2756  else
2757  {
2758  ReportGLNullFunction("glVertexAttrib3fv");
2759  }
2760 }
2761 
2763 {
2764  if (sglVertexAttrib3s)
2765  {
2766  sglVertexAttrib3s(index, x, y, z);
2767  ReportGLError("glVertexAttrib3s");
2768  }
2769  else
2770  {
2771  ReportGLNullFunction("glVertexAttrib3s");
2772  }
2773 }
2774 
2776 {
2777  if (sglVertexAttrib3sv)
2778  {
2779  sglVertexAttrib3sv(index, v);
2780  ReportGLError("glVertexAttrib3sv");
2781  }
2782  else
2783  {
2784  ReportGLNullFunction("glVertexAttrib3sv");
2785  }
2786 }
2787 
2789 {
2790  if (sglVertexAttrib4Nbv)
2791  {
2792  sglVertexAttrib4Nbv(index, v);
2793  ReportGLError("glVertexAttrib4Nbv");
2794  }
2795  else
2796  {
2797  ReportGLNullFunction("glVertexAttrib4Nbv");
2798  }
2799 }
2800 
2802 {
2803  if (sglVertexAttrib4Niv)
2804  {
2805  sglVertexAttrib4Niv(index, v);
2806  ReportGLError("glVertexAttrib4Niv");
2807  }
2808  else
2809  {
2810  ReportGLNullFunction("glVertexAttrib4Niv");
2811  }
2812 }
2813 
2815 {
2816  if (sglVertexAttrib4Nsv)
2817  {
2818  sglVertexAttrib4Nsv(index, v);
2819  ReportGLError("glVertexAttrib4Nsv");
2820  }
2821  else
2822  {
2823  ReportGLNullFunction("glVertexAttrib4Nsv");
2824  }
2825 }
2826 
2828 {
2829  if (sglVertexAttrib4Nub)
2830  {
2831  sglVertexAttrib4Nub(index, x, y, z, w);
2832  ReportGLError("glVertexAttrib4Nub");
2833  }
2834  else
2835  {
2836  ReportGLNullFunction("glVertexAttrib4Nub");
2837  }
2838 }
2839 
2841 {
2843  {
2844  sglVertexAttrib4Nubv(index, v);
2845  ReportGLError("glVertexAttrib4Nubv");
2846  }
2847  else
2848  {
2849  ReportGLNullFunction("glVertexAttrib4Nubv");
2850  }
2851 }
2852 
2854 {
2856  {
2857  sglVertexAttrib4Nuiv(index, v);
2858  ReportGLError("glVertexAttrib4Nuiv");
2859  }
2860  else
2861  {
2862  ReportGLNullFunction("glVertexAttrib4Nuiv");
2863  }
2864 }
2865 
2867 {
2869  {
2870  sglVertexAttrib4Nusv(index, v);
2871  ReportGLError("glVertexAttrib4Nusv");
2872  }
2873  else
2874  {
2875  ReportGLNullFunction("glVertexAttrib4Nusv");
2876  }
2877 }
2878 
2880 {
2881  if (sglVertexAttrib4bv)
2882  {
2883  sglVertexAttrib4bv(index, v);
2884  ReportGLError("glVertexAttrib4bv");
2885  }
2886  else
2887  {
2888  ReportGLNullFunction("glVertexAttrib4bv");
2889  }
2890 }
2891 
2893 {
2894  if (sglVertexAttrib4d)
2895  {
2896  sglVertexAttrib4d(index, x, y, z, w);
2897  ReportGLError("glVertexAttrib4d");
2898  }
2899  else
2900  {
2901  ReportGLNullFunction("glVertexAttrib4d");
2902  }
2903 }
2904 
2906 {
2907  if (sglVertexAttrib4dv)
2908  {
2909  sglVertexAttrib4dv(index, v);
2910  ReportGLError("glVertexAttrib4dv");
2911  }
2912  else
2913  {
2914  ReportGLNullFunction("glVertexAttrib4dv");
2915  }
2916 }
2917 
2919 {
2920  if (sglVertexAttrib4f)
2921  {
2922  sglVertexAttrib4f(index, x, y, z, w);
2923  ReportGLError("glVertexAttrib4f");
2924  }
2925  else
2926  {
2927  ReportGLNullFunction("glVertexAttrib4f");
2928  }
2929 }
2930 
2932 {
2933  if (sglVertexAttrib4fv)
2934  {
2935  sglVertexAttrib4fv(index, v);
2936  ReportGLError("glVertexAttrib4fv");
2937  }
2938  else
2939  {
2940  ReportGLNullFunction("glVertexAttrib4fv");
2941  }
2942 }
2943 
2945 {
2946  if (sglVertexAttrib4iv)
2947  {
2948  sglVertexAttrib4iv(index, v);
2949  ReportGLError("glVertexAttrib4iv");
2950  }
2951  else
2952  {
2953  ReportGLNullFunction("glVertexAttrib4iv");
2954  }
2955 }
2956 
2958 {
2959  if (sglVertexAttrib4s)
2960  {
2961  sglVertexAttrib4s(index, x, y, z, w);
2962  ReportGLError("glVertexAttrib4s");
2963  }
2964  else
2965  {
2966  ReportGLNullFunction("glVertexAttrib4s");
2967  }
2968 }
2969 
2971 {
2972  if (sglVertexAttrib4sv)
2973  {
2974  sglVertexAttrib4sv(index, v);
2975  ReportGLError("glVertexAttrib4sv");
2976  }
2977  else
2978  {
2979  ReportGLNullFunction("glVertexAttrib4sv");
2980  }
2981 }
2982 
2984 {
2985  if (sglVertexAttrib4ubv)
2986  {
2987  sglVertexAttrib4ubv(index, v);
2988  ReportGLError("glVertexAttrib4ubv");
2989  }
2990  else
2991  {
2992  ReportGLNullFunction("glVertexAttrib4ubv");
2993  }
2994 }
2995 
2997 {
2998  if (sglVertexAttrib4uiv)
2999  {
3000  sglVertexAttrib4uiv(index, v);
3001  ReportGLError("glVertexAttrib4uiv");
3002  }
3003  else
3004  {
3005  ReportGLNullFunction("glVertexAttrib4uiv");
3006  }
3007 }
3008 
3010 {
3011  if (sglVertexAttrib4usv)
3012  {
3013  sglVertexAttrib4usv(index, v);
3014  ReportGLError("glVertexAttrib4usv");
3015  }
3016  else
3017  {
3018  ReportGLNullFunction("glVertexAttrib4usv");
3019  }
3020 }
3021 
3023 {
3025  {
3026  sglVertexAttribPointer(index, size, type, normalized, stride, pointer);
3027  ReportGLError("glVertexAttribPointer");
3028  }
3029  else
3030  {
3031  ReportGLNullFunction("glVertexAttribPointer");
3032  }
3033 }
3034 
3036 {
3038  {
3039  GetOpenGLFunction("glBlendEquationSeparate", sglBlendEquationSeparate);
3040  GetOpenGLFunction("glDrawBuffers", sglDrawBuffers);
3041  GetOpenGLFunction("glStencilOpSeparate", sglStencilOpSeparate);
3042  GetOpenGLFunction("glStencilFuncSeparate", sglStencilFuncSeparate);
3043  GetOpenGLFunction("glStencilMaskSeparate", sglStencilMaskSeparate);
3044  GetOpenGLFunction("glAttachShader", sglAttachShader);
3045  GetOpenGLFunction("glBindAttribLocation", sglBindAttribLocation);
3046  GetOpenGLFunction("glCompileShader", sglCompileShader);
3047  GetOpenGLFunction("glCreateProgram", sglCreateProgram);
3048  GetOpenGLFunction("glCreateShader", sglCreateShader);
3049  GetOpenGLFunction("glDeleteProgram", sglDeleteProgram);
3050  GetOpenGLFunction("glDeleteShader", sglDeleteShader);
3051  GetOpenGLFunction("glDetachShader", sglDetachShader);
3052  GetOpenGLFunction("glDisableVertexAttribArray", sglDisableVertexAttribArray);
3053  GetOpenGLFunction("glEnableVertexAttribArray", sglEnableVertexAttribArray);
3054  GetOpenGLFunction("glGetActiveAttrib", sglGetActiveAttrib);
3055  GetOpenGLFunction("glGetActiveUniform", sglGetActiveUniform);
3056  GetOpenGLFunction("glGetAttachedShaders", sglGetAttachedShaders);
3057  GetOpenGLFunction("glGetAttribLocation", sglGetAttribLocation);
3058  GetOpenGLFunction("glGetProgramiv", sglGetProgramiv);
3059  GetOpenGLFunction("glGetProgramInfoLog", sglGetProgramInfoLog);
3060  GetOpenGLFunction("glGetShaderiv", sglGetShaderiv);
3061  GetOpenGLFunction("glGetShaderInfoLog", sglGetShaderInfoLog);
3062  GetOpenGLFunction("glGetShaderSource", sglGetShaderSource);
3063  GetOpenGLFunction("glGetUniformLocation", sglGetUniformLocation);
3064  GetOpenGLFunction("glGetUniformfv", sglGetUniformfv);
3065  GetOpenGLFunction("glGetUniformiv", sglGetUniformiv);
3066  GetOpenGLFunction("glGetVertexAttribdv", sglGetVertexAttribdv);
3067  GetOpenGLFunction("glGetVertexAttribfv", sglGetVertexAttribfv);
3068  GetOpenGLFunction("glGetVertexAttribiv", sglGetVertexAttribiv);
3069  GetOpenGLFunction("glGetVertexAttribPointerv", sglGetVertexAttribPointerv);
3070  GetOpenGLFunction("glIsProgram", sglIsProgram);
3071  GetOpenGLFunction("glIsShader", sglIsShader);
3072  GetOpenGLFunction("glLinkProgram", sglLinkProgram);
3073  GetOpenGLFunction("glShaderSource", sglShaderSource);
3074  GetOpenGLFunction("glUseProgram", sglUseProgram);
3075  GetOpenGLFunction("glUniform1f", sglUniform1f);
3076  GetOpenGLFunction("glUniform2f", sglUniform2f);
3077  GetOpenGLFunction("glUniform3f", sglUniform3f);
3078  GetOpenGLFunction("glUniform4f", sglUniform4f);
3079  GetOpenGLFunction("glUniform1i", sglUniform1i);
3080  GetOpenGLFunction("glUniform2i", sglUniform2i);
3081  GetOpenGLFunction("glUniform3i", sglUniform3i);
3082  GetOpenGLFunction("glUniform4i", sglUniform4i);
3083  GetOpenGLFunction("glUniform1fv", sglUniform1fv);
3084  GetOpenGLFunction("glUniform2fv", sglUniform2fv);
3085  GetOpenGLFunction("glUniform3fv", sglUniform3fv);
3086  GetOpenGLFunction("glUniform4fv", sglUniform4fv);
3087  GetOpenGLFunction("glUniform1iv", sglUniform1iv);
3088  GetOpenGLFunction("glUniform2iv", sglUniform2iv);
3089  GetOpenGLFunction("glUniform3iv", sglUniform3iv);
3090  GetOpenGLFunction("glUniform4iv", sglUniform4iv);
3091  GetOpenGLFunction("glUniformMatrix2fv", sglUniformMatrix2fv);
3092  GetOpenGLFunction("glUniformMatrix3fv", sglUniformMatrix3fv);
3093  GetOpenGLFunction("glUniformMatrix4fv", sglUniformMatrix4fv);
3094  GetOpenGLFunction("glValidateProgram", sglValidateProgram);
3095  GetOpenGLFunction("glVertexAttrib1d", sglVertexAttrib1d);
3096  GetOpenGLFunction("glVertexAttrib1dv", sglVertexAttrib1dv);
3097  GetOpenGLFunction("glVertexAttrib1f", sglVertexAttrib1f);
3098  GetOpenGLFunction("glVertexAttrib1fv", sglVertexAttrib1fv);
3099  GetOpenGLFunction("glVertexAttrib1s", sglVertexAttrib1s);
3100  GetOpenGLFunction("glVertexAttrib1sv", sglVertexAttrib1sv);
3101  GetOpenGLFunction("glVertexAttrib2d", sglVertexAttrib2d);
3102  GetOpenGLFunction("glVertexAttrib2dv", sglVertexAttrib2dv);
3103  GetOpenGLFunction("glVertexAttrib2f", sglVertexAttrib2f);
3104  GetOpenGLFunction("glVertexAttrib2fv", sglVertexAttrib2fv);
3105  GetOpenGLFunction("glVertexAttrib2s", sglVertexAttrib2s);
3106  GetOpenGLFunction("glVertexAttrib2sv", sglVertexAttrib2sv);
3107  GetOpenGLFunction("glVertexAttrib3d", sglVertexAttrib3d);
3108  GetOpenGLFunction("glVertexAttrib3dv", sglVertexAttrib3dv);
3109  GetOpenGLFunction("glVertexAttrib3f", sglVertexAttrib3f);
3110  GetOpenGLFunction("glVertexAttrib3fv", sglVertexAttrib3fv);
3111  GetOpenGLFunction("glVertexAttrib3s", sglVertexAttrib3s);
3112  GetOpenGLFunction("glVertexAttrib3sv", sglVertexAttrib3sv);
3113  GetOpenGLFunction("glVertexAttrib4Nbv", sglVertexAttrib4Nbv);
3114  GetOpenGLFunction("glVertexAttrib4Niv", sglVertexAttrib4Niv);
3115  GetOpenGLFunction("glVertexAttrib4Nsv", sglVertexAttrib4Nsv);
3116  GetOpenGLFunction("glVertexAttrib4Nub", sglVertexAttrib4Nub);
3117  GetOpenGLFunction("glVertexAttrib4Nubv", sglVertexAttrib4Nubv);
3118  GetOpenGLFunction("glVertexAttrib4Nuiv", sglVertexAttrib4Nuiv);
3119  GetOpenGLFunction("glVertexAttrib4Nusv", sglVertexAttrib4Nusv);
3120  GetOpenGLFunction("glVertexAttrib4bv", sglVertexAttrib4bv);
3121  GetOpenGLFunction("glVertexAttrib4d", sglVertexAttrib4d);
3122  GetOpenGLFunction("glVertexAttrib4dv", sglVertexAttrib4dv);
3123  GetOpenGLFunction("glVertexAttrib4f", sglVertexAttrib4f);
3124  GetOpenGLFunction("glVertexAttrib4fv", sglVertexAttrib4fv);
3125  GetOpenGLFunction("glVertexAttrib4iv", sglVertexAttrib4iv);
3126  GetOpenGLFunction("glVertexAttrib4s", sglVertexAttrib4s);
3127  GetOpenGLFunction("glVertexAttrib4sv", sglVertexAttrib4sv);
3128  GetOpenGLFunction("glVertexAttrib4ubv", sglVertexAttrib4ubv);
3129  GetOpenGLFunction("glVertexAttrib4uiv", sglVertexAttrib4uiv);
3130  GetOpenGLFunction("glVertexAttrib4usv", sglVertexAttrib4usv);
3131  GetOpenGLFunction("glVertexAttribPointer", sglVertexAttribPointer);
3132  }
3133 }
3134 
3135 // GL_VERSION_2_1
3136 
3137 static PFNGLUNIFORMMATRIX2X3FVPROC sglUniformMatrix2x3fv = nullptr;
3138 static PFNGLUNIFORMMATRIX3X2FVPROC sglUniformMatrix3x2fv = nullptr;
3139 static PFNGLUNIFORMMATRIX2X4FVPROC sglUniformMatrix2x4fv = nullptr;
3140 static PFNGLUNIFORMMATRIX4X2FVPROC sglUniformMatrix4x2fv = nullptr;
3141 static PFNGLUNIFORMMATRIX3X4FVPROC sglUniformMatrix3x4fv = nullptr;
3142 static PFNGLUNIFORMMATRIX4X3FVPROC sglUniformMatrix4x3fv = nullptr;
3143 
3145 {
3147  {
3148  sglUniformMatrix2x3fv(location, count, transpose, value);
3149  ReportGLError("glUniformMatrix2x3fv");
3150  }
3151  else
3152  {
3153  ReportGLNullFunction("glUniformMatrix2x3fv");
3154  }
3155 }
3156 
3158 {
3160  {
3161  sglUniformMatrix3x2fv(location, count, transpose, value);
3162  ReportGLError("glUniformMatrix3x2fv");
3163  }
3164  else
3165  {
3166  ReportGLNullFunction("glUniformMatrix3x2fv");
3167  }
3168 }
3169 
3171 {
3173  {
3174  sglUniformMatrix2x4fv(location, count, transpose, value);
3175  ReportGLError("glUniformMatrix2x4fv");
3176  }
3177  else
3178  {
3179  ReportGLNullFunction("glUniformMatrix2x4fv");
3180  }
3181 }
3182 
3184 {
3186  {
3187  sglUniformMatrix4x2fv(location, count, transpose, value);
3188  ReportGLError("glUniformMatrix4x2fv");
3189  }
3190  else
3191  {
3192  ReportGLNullFunction("glUniformMatrix4x2fv");
3193  }
3194 }
3195 
3197 {
3199  {
3200  sglUniformMatrix3x4fv(location, count, transpose, value);
3201  ReportGLError("glUniformMatrix3x4fv");
3202  }
3203  else
3204  {
3205  ReportGLNullFunction("glUniformMatrix3x4fv");
3206  }
3207 }
3208 
3210 {
3212  {
3213  sglUniformMatrix4x3fv(location, count, transpose, value);
3214  ReportGLError("glUniformMatrix4x3fv");
3215  }
3216  else
3217  {
3218  ReportGLNullFunction("glUniformMatrix4x3fv");
3219  }
3220 }
3221 
3223 {
3225  {
3226  GetOpenGLFunction("glUniformMatrix2x3fv", sglUniformMatrix2x3fv);
3227  GetOpenGLFunction("glUniformMatrix3x2fv", sglUniformMatrix3x2fv);
3228  GetOpenGLFunction("glUniformMatrix2x4fv", sglUniformMatrix2x4fv);
3229  GetOpenGLFunction("glUniformMatrix4x2fv", sglUniformMatrix4x2fv);
3230  GetOpenGLFunction("glUniformMatrix3x4fv", sglUniformMatrix3x4fv);
3231  GetOpenGLFunction("glUniformMatrix4x3fv", sglUniformMatrix4x3fv);
3232  }
3233 }
3234 
3235 // GL_VERSION_3_0
3236 
3237 static PFNGLCOLORMASKIPROC sglColorMaski = nullptr;
3238 static PFNGLGETBOOLEANI_VPROC sglGetBooleani_v = nullptr;
3239 static PFNGLGETINTEGERI_VPROC sglGetIntegeri_v = nullptr;
3240 static PFNGLENABLEIPROC sglEnablei = nullptr;
3241 static PFNGLDISABLEIPROC sglDisablei = nullptr;
3242 static PFNGLISENABLEDIPROC sglIsEnabledi = nullptr;
3243 static PFNGLBEGINTRANSFORMFEEDBACKPROC sglBeginTransformFeedback = nullptr;
3244 static PFNGLENDTRANSFORMFEEDBACKPROC sglEndTransformFeedback = nullptr;
3245 static PFNGLBINDBUFFERRANGEPROC sglBindBufferRange = nullptr;
3246 static PFNGLBINDBUFFERBASEPROC sglBindBufferBase = nullptr;
3247 static PFNGLTRANSFORMFEEDBACKVARYINGSPROC sglTransformFeedbackVaryings = nullptr;
3248 static PFNGLGETTRANSFORMFEEDBACKVARYINGPROC sglGetTransformFeedbackVarying = nullptr;
3249 static PFNGLCLAMPCOLORPROC sglClampColor = nullptr;
3250 static PFNGLBEGINCONDITIONALRENDERPROC sglBeginConditionalRender = nullptr;
3251 static PFNGLENDCONDITIONALRENDERPROC sglEndConditionalRender = nullptr;
3252 static PFNGLVERTEXATTRIBIPOINTERPROC sglVertexAttribIPointer = nullptr;
3253 static PFNGLGETVERTEXATTRIBIIVPROC sglGetVertexAttribIiv = nullptr;
3254 static PFNGLGETVERTEXATTRIBIUIVPROC sglGetVertexAttribIuiv = nullptr;
3255 static PFNGLVERTEXATTRIBI1IPROC sglVertexAttribI1i = nullptr;
3256 static PFNGLVERTEXATTRIBI2IPROC sglVertexAttribI2i = nullptr;
3257 static PFNGLVERTEXATTRIBI3IPROC sglVertexAttribI3i = nullptr;
3258 static PFNGLVERTEXATTRIBI4IPROC sglVertexAttribI4i = nullptr;
3259 static PFNGLVERTEXATTRIBI1UIPROC sglVertexAttribI1ui = nullptr;
3260 static PFNGLVERTEXATTRIBI2UIPROC sglVertexAttribI2ui = nullptr;
3261 static PFNGLVERTEXATTRIBI3UIPROC sglVertexAttribI3ui = nullptr;
3262 static PFNGLVERTEXATTRIBI4UIPROC sglVertexAttribI4ui = nullptr;
3263 static PFNGLVERTEXATTRIBI1IVPROC sglVertexAttribI1iv = nullptr;
3264 static PFNGLVERTEXATTRIBI2IVPROC sglVertexAttribI2iv = nullptr;
3265 static PFNGLVERTEXATTRIBI3IVPROC sglVertexAttribI3iv = nullptr;
3266 static PFNGLVERTEXATTRIBI4IVPROC sglVertexAttribI4iv = nullptr;
3267 static PFNGLVERTEXATTRIBI1UIVPROC sglVertexAttribI1uiv = nullptr;
3268 static PFNGLVERTEXATTRIBI2UIVPROC sglVertexAttribI2uiv = nullptr;
3269 static PFNGLVERTEXATTRIBI3UIVPROC sglVertexAttribI3uiv = nullptr;
3270 static PFNGLVERTEXATTRIBI4UIVPROC sglVertexAttribI4uiv = nullptr;
3271 static PFNGLVERTEXATTRIBI4BVPROC sglVertexAttribI4bv = nullptr;
3272 static PFNGLVERTEXATTRIBI4SVPROC sglVertexAttribI4sv = nullptr;
3273 static PFNGLVERTEXATTRIBI4UBVPROC sglVertexAttribI4ubv = nullptr;
3274 static PFNGLVERTEXATTRIBI4USVPROC sglVertexAttribI4usv = nullptr;
3275 static PFNGLGETUNIFORMUIVPROC sglGetUniformuiv = nullptr;
3276 static PFNGLBINDFRAGDATALOCATIONPROC sglBindFragDataLocation = nullptr;
3277 static PFNGLGETFRAGDATALOCATIONPROC sglGetFragDataLocation = nullptr;
3278 static PFNGLUNIFORM1UIPROC sglUniform1ui = nullptr;
3279 static PFNGLUNIFORM2UIPROC sglUniform2ui = nullptr;
3280 static PFNGLUNIFORM3UIPROC sglUniform3ui = nullptr;
3281 static PFNGLUNIFORM4UIPROC sglUniform4ui = nullptr;
3282 static PFNGLUNIFORM1UIVPROC sglUniform1uiv = nullptr;
3283 static PFNGLUNIFORM2UIVPROC sglUniform2uiv = nullptr;
3284 static PFNGLUNIFORM3UIVPROC sglUniform3uiv = nullptr;
3285 static PFNGLUNIFORM4UIVPROC sglUniform4uiv = nullptr;
3286 static PFNGLTEXPARAMETERIIVPROC sglTexParameterIiv = nullptr;
3287 static PFNGLTEXPARAMETERIUIVPROC sglTexParameterIuiv = nullptr;
3288 static PFNGLGETTEXPARAMETERIIVPROC sglGetTexParameterIiv = nullptr;
3289 static PFNGLGETTEXPARAMETERIUIVPROC sglGetTexParameterIuiv = nullptr;
3290 static PFNGLCLEARBUFFERIVPROC sglClearBufferiv = nullptr;
3291 static PFNGLCLEARBUFFERUIVPROC sglClearBufferuiv = nullptr;
3292 static PFNGLCLEARBUFFERFVPROC sglClearBufferfv = nullptr;
3293 static PFNGLCLEARBUFFERFIPROC sglClearBufferfi = nullptr;
3295 static PFNGLISRENDERBUFFERPROC sglIsRenderbuffer = nullptr;
3296 static PFNGLBINDRENDERBUFFERPROC sglBindRenderbuffer = nullptr;
3297 static PFNGLDELETERENDERBUFFERSPROC sglDeleteRenderbuffers = nullptr;
3298 static PFNGLGENRENDERBUFFERSPROC sglGenRenderbuffers = nullptr;
3299 static PFNGLRENDERBUFFERSTORAGEPROC sglRenderbufferStorage = nullptr;
3300 static PFNGLGETRENDERBUFFERPARAMETERIVPROC sglGetRenderbufferParameteriv = nullptr;
3301 static PFNGLISFRAMEBUFFERPROC sglIsFramebuffer = nullptr;
3302 static PFNGLBINDFRAMEBUFFERPROC sglBindFramebuffer = nullptr;
3303 static PFNGLDELETEFRAMEBUFFERSPROC sglDeleteFramebuffers = nullptr;
3304 static PFNGLGENFRAMEBUFFERSPROC sglGenFramebuffers = nullptr;
3305 static PFNGLCHECKFRAMEBUFFERSTATUSPROC sglCheckFramebufferStatus = nullptr;
3306 static PFNGLFRAMEBUFFERTEXTURE1DPROC sglFramebufferTexture1D = nullptr;
3307 static PFNGLFRAMEBUFFERTEXTURE2DPROC sglFramebufferTexture2D = nullptr;
3308 static PFNGLFRAMEBUFFERTEXTURE3DPROC sglFramebufferTexture3D = nullptr;
3309 static PFNGLFRAMEBUFFERRENDERBUFFERPROC sglFramebufferRenderbuffer = nullptr;
3310 static PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC sglGetFramebufferAttachmentParameteriv = nullptr;
3311 static PFNGLGENERATEMIPMAPPROC sglGenerateMipmap = nullptr;
3312 static PFNGLBLITFRAMEBUFFERPROC sglBlitFramebuffer = nullptr;
3313 static PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC sglRenderbufferStorageMultisample = nullptr;
3314 static PFNGLFRAMEBUFFERTEXTURELAYERPROC sglFramebufferTextureLayer = nullptr;
3316 static PFNGLFLUSHMAPPEDBUFFERRANGEPROC sglFlushMappedBufferRange = nullptr;
3317 static PFNGLBINDVERTEXARRAYPROC sglBindVertexArray = nullptr;
3318 static PFNGLDELETEVERTEXARRAYSPROC sglDeleteVertexArrays = nullptr;
3319 static PFNGLGENVERTEXARRAYSPROC sglGenVertexArrays = nullptr;
3320 static PFNGLISVERTEXARRAYPROC sglIsVertexArray = nullptr;
3321 
3323 {
3324  if (sglColorMaski)
3325  {
3326  sglColorMaski(index, r, g, b, a);
3327  ReportGLError("glColorMaski");
3328  }
3329  else
3330  {
3331  ReportGLNullFunction("glColorMaski");
3332  }
3333 }
3334 
3336 {
3337  if (sglGetBooleani_v)
3338  {
3339  sglGetBooleani_v(target, index, data);
3340  ReportGLError("glGetBooleani_v");
3341  }
3342  else
3343  {
3344  ReportGLNullFunction("glGetBooleani_v");
3345  }
3346 }
3347 
3349 {
3350  if (sglGetIntegeri_v)
3351  {
3352  sglGetIntegeri_v(target, index, data);
3353  ReportGLError("glGetIntegeri_v");
3354  }
3355  else
3356  {
3357  ReportGLNullFunction("glGetIntegeri_v");
3358  }
3359 }
3360 
3362 {
3363  if (sglEnablei)
3364  {
3365  sglEnablei(target, index);
3366  ReportGLError("glEnablei");
3367  }
3368  else
3369  {
3370  ReportGLNullFunction("glEnablei");
3371  }
3372 }
3373 
3375 {
3376  if (sglDisablei)
3377  {
3378  sglDisablei(target, index);
3379  ReportGLError("glDisablei");
3380  }
3381  else
3382  {
3383  ReportGLNullFunction("glDisablei");
3384  }
3385 }
3386 
3388 {
3389  GLboolean result;
3390  if (sglIsEnabledi)
3391  {
3392  result = sglIsEnabledi(target, index);
3393  ReportGLError("glIsEnabledi");
3394  }
3395  else
3396  {
3397  ReportGLNullFunction("glIsEnabledi");
3398  result = 0;
3399  }
3400  return result;
3401 }
3402 
3404 {
3406  {
3407  sglBeginTransformFeedback(primitiveMode);
3408  ReportGLError("glBeginTransformFeedback");
3409  }
3410  else
3411  {
3412  ReportGLNullFunction("glBeginTransformFeedback");
3413  }
3414 }
3415 
3417 {
3419  {
3421  ReportGLError("glEndTransformFeedback");
3422  }
3423  else
3424  {
3425  ReportGLNullFunction("glEndTransformFeedback");
3426  }
3427 }
3428 
3430 {
3431  if (sglBindBufferRange)
3432  {
3433  sglBindBufferRange(target, index, buffer, offset, size);
3434  ReportGLError("glBindBufferRange");
3435  }
3436  else
3437  {
3438  ReportGLNullFunction("glBindBufferRange");
3439  }
3440 }
3441 
3443 {
3444  if (sglBindBufferBase)
3445  {
3446  sglBindBufferBase(target, index, buffer);
3447  ReportGLError("glBindBufferBase");
3448  }
3449  else
3450  {
3451  ReportGLNullFunction("glBindBufferBase");
3452  }
3453 }
3454 
3456 {
3458  {
3459  sglTransformFeedbackVaryings(program, count, varyings, bufferMode);
3460  ReportGLError("glTransformFeedbackVaryings");
3461  }
3462  else
3463  {
3464  ReportGLNullFunction("glTransformFeedbackVaryings");
3465  }
3466 }
3467 
3469 {
3471  {
3472  sglGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
3473  ReportGLError("glGetTransformFeedbackVarying");
3474  }
3475  else
3476  {
3477  ReportGLNullFunction("glGetTransformFeedbackVarying");
3478  }
3479 }
3480 
3482 {
3483  if (sglClampColor)
3484  {
3485  sglClampColor(target, clamp);
3486  ReportGLError("glClampColor");
3487  }
3488  else
3489  {
3490  ReportGLNullFunction("glClampColor");
3491  }
3492 }
3493 
3495 {
3497  {
3498  sglBeginConditionalRender(id, mode);
3499  ReportGLError("glBeginConditionalRender");
3500  }
3501  else
3502  {
3503  ReportGLNullFunction("glBeginConditionalRender");
3504  }
3505 }
3506 
3508 {
3510  {
3512  ReportGLError("glEndConditionalRender");
3513  }
3514  else
3515  {
3516  ReportGLNullFunction("glEndConditionalRender");
3517  }
3518 }
3519 
3521 {
3523  {
3524  sglVertexAttribIPointer(index, size, type, stride, pointer);
3525  ReportGLError("glVertexAttribIPointer");
3526  }
3527  else
3528  {
3529  ReportGLNullFunction("glVertexAttribIPointer");
3530  }
3531 }
3532 
3534 {
3536  {
3537  sglGetVertexAttribIiv(index, pname, params);
3538  ReportGLError("glGetVertexAttribIiv");
3539  }
3540  else
3541  {
3542  ReportGLNullFunction("glGetVertexAttribIiv");
3543  }
3544 }
3545 
3547 {
3549  {
3550  sglGetVertexAttribIuiv(index, pname, params);
3551  ReportGLError("glGetVertexAttribIuiv");
3552  }
3553  else
3554  {
3555  ReportGLNullFunction("glGetVertexAttribIuiv");
3556  }
3557 }
3558 
3560 {
3561  if (sglVertexAttribI1i)
3562  {
3563  sglVertexAttribI1i(index, x);
3564  ReportGLError("glVertexAttribI1i");
3565  }
3566  else
3567  {
3568  ReportGLNullFunction("glVertexAttribI1i");
3569  }
3570 }
3571 
3573 {
3574  if (sglVertexAttribI2i)
3575  {
3576  sglVertexAttribI2i(index, x, y);
3577  ReportGLError("glVertexAttribI2i");
3578  }
3579  else
3580  {
3581  ReportGLNullFunction("glVertexAttribI2i");
3582  }
3583 }
3584 
3586 {
3587  if (sglVertexAttribI3i)
3588  {
3589  sglVertexAttribI3i(index, x, y, z);
3590  ReportGLError("glVertexAttribI3i");
3591  }
3592  else
3593  {
3594  ReportGLNullFunction("glVertexAttribI3i");
3595  }
3596 }
3597 
3599 {
3600  if (sglVertexAttribI4i)
3601  {
3602  sglVertexAttribI4i(index, x, y, z, w);
3603  ReportGLError("glVertexAttribI4i");
3604  }
3605  else
3606  {
3607  ReportGLNullFunction("glVertexAttribI4i");
3608  }
3609 }
3610 
3612 {
3613  if (sglVertexAttribI1ui)
3614  {
3615  sglVertexAttribI1ui(index, x);
3616  ReportGLError("glVertexAttribI1ui");
3617  }
3618  else
3619  {
3620  ReportGLNullFunction("glVertexAttribI1ui");
3621  }
3622 }
3623 
3625 {
3626  if (sglVertexAttribI2ui)
3627  {
3628  sglVertexAttribI2ui(index, x, y);
3629  ReportGLError("glVertexAttribI2ui");
3630  }
3631  else
3632  {
3633  ReportGLNullFunction("glVertexAttribI2ui");
3634  }
3635 }
3636 
3638 {
3639  if (sglVertexAttribI3ui)
3640  {
3641  sglVertexAttribI3ui(index, x, y, z);
3642  ReportGLError("glVertexAttribI3ui");
3643  }
3644  else
3645  {
3646  ReportGLNullFunction("glVertexAttribI3ui");
3647  }
3648 }
3649 
3651 {
3652  if (sglVertexAttribI4ui)
3653  {
3654  sglVertexAttribI4ui(index, x, y, z, w);
3655  ReportGLError("glVertexAttribI4ui");
3656  }
3657  else
3658  {
3659  ReportGLNullFunction("glVertexAttribI4ui");
3660  }
3661 }
3662 
3664 {
3665  if (sglVertexAttribI1iv)
3666  {
3667  sglVertexAttribI1iv(index, v);
3668  ReportGLError("glVertexAttribI1iv");
3669  }
3670  else
3671  {
3672  ReportGLNullFunction("glVertexAttribI1iv");
3673  }
3674 }
3675 
3677 {
3678  if (sglVertexAttribI2iv)
3679  {
3680  sglVertexAttribI2iv(index, v);
3681  ReportGLError("glVertexAttribI2iv");
3682  }
3683  else
3684  {
3685  ReportGLNullFunction("glVertexAttribI2iv");
3686  }
3687 }
3688 
3690 {
3691  if (sglVertexAttribI3iv)
3692  {
3693  sglVertexAttribI3iv(index, v);
3694  ReportGLError("glVertexAttribI3iv");
3695  }
3696  else
3697  {
3698  ReportGLNullFunction("glVertexAttribI3iv");
3699  }
3700 }
3701 
3703 {
3704  if (sglVertexAttribI4iv)
3705  {
3706  sglVertexAttribI4iv(index, v);
3707  ReportGLError("glVertexAttribI4iv");
3708  }
3709  else
3710  {
3711  ReportGLNullFunction("glVertexAttribI4iv");
3712  }
3713 }
3714 
3716 {
3718  {
3719  sglVertexAttribI1uiv(index, v);
3720  ReportGLError("glVertexAttribI1uiv");
3721  }
3722  else
3723  {
3724  ReportGLNullFunction("glVertexAttribI1uiv");
3725  }
3726 }
3727 
3729 {
3731  {
3732  sglVertexAttribI2uiv(index, v);
3733  ReportGLError("glVertexAttribI2uiv");
3734  }
3735  else
3736  {
3737  ReportGLNullFunction("glVertexAttribI2uiv");
3738  }
3739 }
3740 
3742 {
3744  {
3745  sglVertexAttribI3uiv(index, v);
3746  ReportGLError("glVertexAttribI3uiv");
3747  }
3748  else
3749  {
3750  ReportGLNullFunction("glVertexAttribI3uiv");
3751  }
3752 }
3753 
3755 {
3757  {
3758  sglVertexAttribI4uiv(index, v);
3759  ReportGLError("glVertexAttribI4uiv");
3760  }
3761  else
3762  {
3763  ReportGLNullFunction("glVertexAttribI4uiv");
3764  }
3765 }
3766 
3768 {
3769  if (sglVertexAttribI4bv)
3770  {
3771  sglVertexAttribI4bv(index, v);
3772  ReportGLError("glVertexAttribI4bv");
3773  }
3774  else
3775  {
3776  ReportGLNullFunction("glVertexAttribI4bv");
3777  }
3778 }
3779 
3781 {
3782  if (sglVertexAttribI4sv)
3783  {
3784  sglVertexAttribI4sv(index, v);
3785  ReportGLError("glVertexAttribI4sv");
3786  }
3787  else
3788  {
3789  ReportGLNullFunction("glVertexAttribI4sv");
3790  }
3791 }
3792 
3794 {
3796  {
3797  sglVertexAttribI4ubv(index, v);
3798  ReportGLError("glVertexAttribI4ubv");
3799  }
3800  else
3801  {
3802  ReportGLNullFunction("glVertexAttribI4ubv");
3803  }
3804 }
3805 
3807 {
3809  {
3810  sglVertexAttribI4usv(index, v);
3811  ReportGLError("glVertexAttribI4usv");
3812  }
3813  else
3814  {
3815  ReportGLNullFunction("glVertexAttribI4usv");
3816  }
3817 }
3818 
3820 {
3821  if (sglGetUniformuiv)
3822  {
3823  sglGetUniformuiv(program, location, params);
3824  ReportGLError("glGetUniformuiv");
3825  }
3826  else
3827  {
3828  ReportGLNullFunction("glGetUniformuiv");
3829  }
3830 }
3831 
3833 {
3835  {
3836  sglBindFragDataLocation(program, color, name);
3837  ReportGLError("glBindFragDataLocation");
3838  }
3839  else
3840  {
3841  ReportGLNullFunction("glBindFragDataLocation");
3842  }
3843 }
3844 
3846 {
3847  GLint result;
3849  {
3850  result = sglGetFragDataLocation(program, name);
3851  ReportGLError("glGetFragDataLocation");
3852  }
3853  else
3854  {
3855  ReportGLNullFunction("glGetFragDataLocation");
3856  result = 0;
3857  }
3858  return result;
3859 }
3860 
3862 {
3863  if (sglUniform1ui)
3864  {
3865  sglUniform1ui(location, v0);
3866  ReportGLError("glUniform1ui");
3867  }
3868  else
3869  {
3870  ReportGLNullFunction("glUniform1ui");
3871  }
3872 }
3873 
3875 {
3876  if (sglUniform2ui)
3877  {
3878  sglUniform2ui(location, v0, v1);
3879  ReportGLError("glUniform2ui");
3880  }
3881  else
3882  {
3883  ReportGLNullFunction("glUniform2ui");
3884  }
3885 }
3886 
3888 {
3889  if (sglUniform3ui)
3890  {
3891  sglUniform3ui(location, v0, v1, v2);
3892  ReportGLError("glUniform3ui");
3893  }
3894  else
3895  {
3896  ReportGLNullFunction("glUniform3ui");
3897  }
3898 }
3899 
3901 {
3902  if (sglUniform4ui)
3903  {
3904  sglUniform4ui(location, v0, v1, v2, v3);
3905  ReportGLError("glUniform4ui");
3906  }
3907  else
3908  {
3909  ReportGLNullFunction("glUniform4ui");
3910  }
3911 }
3912 
3914 {
3915  if (sglUniform1uiv)
3916  {
3917  sglUniform1uiv(location, count, value);
3918  ReportGLError("glUniform1uiv");
3919  }
3920  else
3921  {
3922  ReportGLNullFunction("glUniform1uiv");
3923  }
3924 }
3925 
3927 {
3928  if (sglUniform2uiv)
3929  {
3930  sglUniform2uiv(location, count, value);
3931  ReportGLError("glUniform2uiv");
3932  }
3933  else
3934  {
3935  ReportGLNullFunction("glUniform2uiv");
3936  }
3937 }
3938 
3940 {
3941  if (sglUniform3uiv)
3942  {
3943  sglUniform3uiv(location, count, value);
3944  ReportGLError("glUniform3uiv");
3945  }
3946  else
3947  {
3948  ReportGLNullFunction("glUniform3uiv");
3949  }
3950 }
3951 
3953 {
3954  if (sglUniform4uiv)
3955  {
3956  sglUniform4uiv(location, count, value);
3957  ReportGLError("glUniform4uiv");
3958  }
3959  else
3960  {
3961  ReportGLNullFunction("glUniform4uiv");
3962  }
3963 }
3964 
3966 {
3967  if (sglTexParameterIiv)
3968  {
3969  sglTexParameterIiv(target, pname, params);
3970  ReportGLError("glTexParameterIiv");
3971  }
3972  else
3973  {
3974  ReportGLNullFunction("glTexParameterIiv");
3975  }
3976 }
3977 
3979 {
3980  if (sglTexParameterIuiv)
3981  {
3982  sglTexParameterIuiv(target, pname, params);
3983  ReportGLError("glTexParameterIuiv");
3984  }
3985  else
3986  {
3987  ReportGLNullFunction("glTexParameterIuiv");
3988  }
3989 }
3990 
3992 {
3994  {
3995  sglGetTexParameterIiv(target, pname, params);
3996  ReportGLError("glGetTexParameterIiv");
3997  }
3998  else
3999  {
4000  ReportGLNullFunction("glGetTexParameterIiv");
4001  }
4002 }
4003 
4005 {
4007  {
4008  sglGetTexParameterIuiv(target, pname, params);
4009  ReportGLError("glGetTexParameterIuiv");
4010  }
4011  else
4012  {
4013  ReportGLNullFunction("glGetTexParameterIuiv");
4014  }
4015 }
4016 
4018 {
4019  if (sglClearBufferiv)
4020  {
4021  sglClearBufferiv(buffer, drawbuffer, value);
4022  ReportGLError("glClearBufferiv");
4023  }
4024  else
4025  {
4026  ReportGLNullFunction("glClearBufferiv");
4027  }
4028 }
4029 
4031 {
4032  if (sglClearBufferuiv)
4033  {
4034  sglClearBufferuiv(buffer, drawbuffer, value);
4035  ReportGLError("glClearBufferuiv");
4036  }
4037  else
4038  {
4039  ReportGLNullFunction("glClearBufferuiv");
4040  }
4041 }
4042 
4044 {
4045  if (sglClearBufferfv)
4046  {
4047  sglClearBufferfv(buffer, drawbuffer, value);
4048  ReportGLError("glClearBufferfv");
4049  }
4050  else
4051  {
4052  ReportGLNullFunction("glClearBufferfv");
4053  }
4054 }
4055 
4057 {
4058  if (sglClearBufferfi)
4059  {
4060  sglClearBufferfi(buffer, drawbuffer, depth, stencil);
4061  ReportGLError("glClearBufferfi");
4062  }
4063  else
4064  {
4065  ReportGLNullFunction("glClearBufferfi");
4066  }
4067 }
4068 
4070 {
4071  const GLubyte * result;
4072  if (sglGetStringi)
4073  {
4074  result = sglGetStringi(name, index);
4075  ReportGLError("glGetStringi");
4076  }
4077  else
4078  {
4079  ReportGLNullFunction("glGetStringi");
4080  result = 0;
4081  }
4082  return result;
4083 }
4084 
4086 {
4087  GLboolean result;
4088  if (sglIsRenderbuffer)
4089  {
4090  result = sglIsRenderbuffer(renderbuffer);
4091  ReportGLError("glIsRenderbuffer");
4092  }
4093  else
4094  {
4095  ReportGLNullFunction("glIsRenderbuffer");
4096  result = 0;
4097  }
4098  return result;
4099 }
4100 
4102 {
4103  if (sglBindRenderbuffer)
4104  {
4105  sglBindRenderbuffer(target, renderbuffer);
4106  ReportGLError("glBindRenderbuffer");
4107  }
4108  else
4109  {
4110  ReportGLNullFunction("glBindRenderbuffer");
4111  }
4112 }
4113 
4115 {
4117  {
4118  sglDeleteRenderbuffers(n, renderbuffers);
4119  ReportGLError("glDeleteRenderbuffers");
4120  }
4121  else
4122  {
4123  ReportGLNullFunction("glDeleteRenderbuffers");
4124  }
4125 }
4126 
4128 {
4129  if (sglGenRenderbuffers)
4130  {
4131  sglGenRenderbuffers(n, renderbuffers);
4132  ReportGLError("glGenRenderbuffers");
4133  }
4134  else
4135  {
4136  ReportGLNullFunction("glGenRenderbuffers");
4137  }
4138 }
4139 
4141 {
4143  {
4144  sglRenderbufferStorage(target, internalformat, width, height);
4145  ReportGLError("glRenderbufferStorage");
4146  }
4147  else
4148  {
4149  ReportGLNullFunction("glRenderbufferStorage");
4150  }
4151 }
4152 
4154 {
4156  {
4157  sglGetRenderbufferParameteriv(target, pname, params);
4158  ReportGLError("glGetRenderbufferParameteriv");
4159  }
4160  else
4161  {
4162  ReportGLNullFunction("glGetRenderbufferParameteriv");
4163  }
4164 }
4165 
4167 {
4168  GLboolean result;
4169  if (sglIsFramebuffer)
4170  {
4171  result = sglIsFramebuffer(framebuffer);
4172  ReportGLError("glIsFramebuffer");
4173  }
4174  else
4175  {
4176  ReportGLNullFunction("glIsFramebuffer");
4177  result = 0;
4178  }
4179  return result;
4180 }
4181 
4183 {
4184  if (sglBindFramebuffer)
4185  {
4186  sglBindFramebuffer(target, framebuffer);
4187  ReportGLError("glBindFramebuffer");
4188  }
4189  else
4190  {
4191  ReportGLNullFunction("glBindFramebuffer");
4192  }
4193 }
4194 
4196 {
4198  {
4199  sglDeleteFramebuffers(n, framebuffers);
4200  ReportGLError("glDeleteFramebuffers");
4201  }
4202  else
4203  {
4204  ReportGLNullFunction("glDeleteFramebuffers");
4205  }
4206 }
4207 
4209 {
4210  if (sglGenFramebuffers)
4211  {
4212  sglGenFramebuffers(n, framebuffers);
4213  ReportGLError("glGenFramebuffers");
4214  }
4215  else
4216  {
4217  ReportGLNullFunction("glGenFramebuffers");
4218  }
4219 }
4220 
4222 {
4223  GLenum result;
4225  {
4226  result = sglCheckFramebufferStatus(target);
4227  ReportGLError("glCheckFramebufferStatus");
4228  }
4229  else
4230  {
4231  ReportGLNullFunction("glCheckFramebufferStatus");
4232  result = 0;
4233  }
4234  return result;
4235 }
4236 
4238 {
4240  {
4241  sglFramebufferTexture1D(target, attachment, textarget, texture, level);
4242  ReportGLError("glFramebufferTexture1D");
4243  }
4244  else
4245  {
4246  ReportGLNullFunction("glFramebufferTexture1D");
4247  }
4248 }
4249 
4251 {
4253  {
4254  sglFramebufferTexture2D(target, attachment, textarget, texture, level);
4255  ReportGLError("glFramebufferTexture2D");
4256  }
4257  else
4258  {
4259  ReportGLNullFunction("glFramebufferTexture2D");
4260  }
4261 }
4262 
4264 {
4266  {
4267  sglFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset);
4268  ReportGLError("glFramebufferTexture3D");
4269  }
4270  else
4271  {
4272  ReportGLNullFunction("glFramebufferTexture3D");
4273  }
4274 }
4275 
4277 {
4279  {
4280  sglFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer);
4281  ReportGLError("glFramebufferRenderbuffer");
4282  }
4283  else
4284  {
4285  ReportGLNullFunction("glFramebufferRenderbuffer");
4286  }
4287 }
4288 
4290 {
4292  {
4293  sglGetFramebufferAttachmentParameteriv(target, attachment, pname, params);
4294  ReportGLError("glGetFramebufferAttachmentParameteriv");
4295  }
4296  else
4297  {
4298  ReportGLNullFunction("glGetFramebufferAttachmentParameteriv");
4299  }
4300 }
4301 
4303 {
4304  if (sglGenerateMipmap)
4305  {
4306  sglGenerateMipmap(target);
4307  ReportGLError("glGenerateMipmap");
4308  }
4309  else
4310  {
4311  ReportGLNullFunction("glGenerateMipmap");
4312  }
4313 }
4314 
4316 {
4317  if (sglBlitFramebuffer)
4318  {
4319  sglBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
4320  ReportGLError("glBlitFramebuffer");
4321  }
4322  else
4323  {
4324  ReportGLNullFunction("glBlitFramebuffer");
4325  }
4326 }
4327 
4329 {
4331  {
4332  sglRenderbufferStorageMultisample(target, samples, internalformat, width, height);
4333  ReportGLError("glRenderbufferStorageMultisample");
4334  }
4335  else
4336  {
4337  ReportGLNullFunction("glRenderbufferStorageMultisample");
4338  }
4339 }
4340 
4342 {
4344  {
4345  sglFramebufferTextureLayer(target, attachment, texture, level, layer);
4346  ReportGLError("glFramebufferTextureLayer");
4347  }
4348  else
4349  {
4350  ReportGLNullFunction("glFramebufferTextureLayer");
4351  }
4352 }
4353 
4355 {
4356  void * result;
4357  if (sglMapBufferRange)
4358  {
4359  result = sglMapBufferRange(target, offset, length, access);
4360  ReportGLError("glMapBufferRange");
4361  }
4362  else
4363  {
4364  ReportGLNullFunction("glMapBufferRange");
4365  result = 0;
4366  }
4367  return result;
4368 }
4369 
4371 {
4373  {
4374  sglFlushMappedBufferRange(target, offset, length);
4375  ReportGLError("glFlushMappedBufferRange");
4376  }
4377  else
4378  {
4379  ReportGLNullFunction("glFlushMappedBufferRange");
4380  }
4381 }
4382 
4384 {
4385  if (sglBindVertexArray)
4386  {
4387  sglBindVertexArray(array);
4388  ReportGLError("glBindVertexArray");
4389  }
4390  else
4391  {
4392  ReportGLNullFunction("glBindVertexArray");
4393  }
4394 }
4395 
4397 {
4399  {
4400  sglDeleteVertexArrays(n, arrays);
4401  ReportGLError("glDeleteVertexArrays");
4402  }
4403  else
4404  {
4405  ReportGLNullFunction("glDeleteVertexArrays");
4406  }
4407 }
4408 
4410 {
4411  if (sglGenVertexArrays)
4412  {
4413  sglGenVertexArrays(n, arrays);
4414  ReportGLError("glGenVertexArrays");
4415  }
4416  else
4417  {
4418  ReportGLNullFunction("glGenVertexArrays");
4419  }
4420 }
4421 
4423 {
4424  GLboolean result;
4425  if (sglIsVertexArray)
4426  {
4427  result = sglIsVertexArray(array);
4428  ReportGLError("glIsVertexArray");
4429  }
4430  else
4431  {
4432  ReportGLNullFunction("glIsVertexArray");
4433  result = 0;
4434  }
4435  return result;
4436 }
4437 
4439 {
4441  {
4442  GetOpenGLFunction("glColorMaski", sglColorMaski);
4443  GetOpenGLFunction("glGetBooleani_v", sglGetBooleani_v);
4444  GetOpenGLFunction("glGetIntegeri_v", sglGetIntegeri_v);
4445  GetOpenGLFunction("glEnablei", sglEnablei);
4446  GetOpenGLFunction("glDisablei", sglDisablei);
4447  GetOpenGLFunction("glIsEnabledi", sglIsEnabledi);
4448  GetOpenGLFunction("glBeginTransformFeedback", sglBeginTransformFeedback);
4449  GetOpenGLFunction("glEndTransformFeedback", sglEndTransformFeedback);
4450  GetOpenGLFunction("glBindBufferRange", sglBindBufferRange);
4451  GetOpenGLFunction("glBindBufferBase", sglBindBufferBase);
4452  GetOpenGLFunction("glTransformFeedbackVaryings", sglTransformFeedbackVaryings);
4453  GetOpenGLFunction("glGetTransformFeedbackVarying", sglGetTransformFeedbackVarying);
4454  GetOpenGLFunction("glClampColor", sglClampColor);
4455  GetOpenGLFunction("glBeginConditionalRender", sglBeginConditionalRender);
4456  GetOpenGLFunction("glEndConditionalRender", sglEndConditionalRender);
4457  GetOpenGLFunction("glVertexAttribIPointer", sglVertexAttribIPointer);
4458  GetOpenGLFunction("glGetVertexAttribIiv", sglGetVertexAttribIiv);
4459  GetOpenGLFunction("glGetVertexAttribIuiv", sglGetVertexAttribIuiv);
4460  GetOpenGLFunction("glVertexAttribI1i", sglVertexAttribI1i);
4461  GetOpenGLFunction("glVertexAttribI2i", sglVertexAttribI2i);
4462  GetOpenGLFunction("glVertexAttribI3i", sglVertexAttribI3i);
4463  GetOpenGLFunction("glVertexAttribI4i", sglVertexAttribI4i);
4464  GetOpenGLFunction("glVertexAttribI1ui", sglVertexAttribI1ui);
4465  GetOpenGLFunction("glVertexAttribI2ui", sglVertexAttribI2ui);
4466  GetOpenGLFunction("glVertexAttribI3ui", sglVertexAttribI3ui);
4467  GetOpenGLFunction("glVertexAttribI4ui", sglVertexAttribI4ui);
4468  GetOpenGLFunction("glVertexAttribI1iv", sglVertexAttribI1iv);
4469  GetOpenGLFunction("glVertexAttribI2iv", sglVertexAttribI2iv);
4470  GetOpenGLFunction("glVertexAttribI3iv", sglVertexAttribI3iv);
4471  GetOpenGLFunction("glVertexAttribI4iv", sglVertexAttribI4iv);
4472  GetOpenGLFunction("glVertexAttribI1uiv", sglVertexAttribI1uiv);
4473  GetOpenGLFunction("glVertexAttribI2uiv", sglVertexAttribI2uiv);
4474  GetOpenGLFunction("glVertexAttribI3uiv", sglVertexAttribI3uiv);
4475  GetOpenGLFunction("glVertexAttribI4uiv", sglVertexAttribI4uiv);
4476  GetOpenGLFunction("glVertexAttribI4bv", sglVertexAttribI4bv);
4477  GetOpenGLFunction("glVertexAttribI4sv", sglVertexAttribI4sv);
4478  GetOpenGLFunction("glVertexAttribI4ubv", sglVertexAttribI4ubv);
4479  GetOpenGLFunction("glVertexAttribI4usv", sglVertexAttribI4usv);
4480  GetOpenGLFunction("glGetUniformuiv", sglGetUniformuiv);
4481  GetOpenGLFunction("glBindFragDataLocation", sglBindFragDataLocation);
4482  GetOpenGLFunction("glGetFragDataLocation", sglGetFragDataLocation);
4483  GetOpenGLFunction("glUniform1ui", sglUniform1ui);
4484  GetOpenGLFunction("glUniform2ui", sglUniform2ui);
4485  GetOpenGLFunction("glUniform3ui", sglUniform3ui);
4486  GetOpenGLFunction("glUniform4ui", sglUniform4ui);
4487  GetOpenGLFunction("glUniform1uiv", sglUniform1uiv);
4488  GetOpenGLFunction("glUniform2uiv", sglUniform2uiv);
4489  GetOpenGLFunction("glUniform3uiv", sglUniform3uiv);
4490  GetOpenGLFunction("glUniform4uiv", sglUniform4uiv);
4491  GetOpenGLFunction("glTexParameterIiv", sglTexParameterIiv);
4492  GetOpenGLFunction("glTexParameterIuiv", sglTexParameterIuiv);
4493  GetOpenGLFunction("glGetTexParameterIiv", sglGetTexParameterIiv);
4494  GetOpenGLFunction("glGetTexParameterIuiv", sglGetTexParameterIuiv);
4495  GetOpenGLFunction("glClearBufferiv", sglClearBufferiv);
4496  GetOpenGLFunction("glClearBufferuiv", sglClearBufferuiv);
4497  GetOpenGLFunction("glClearBufferfv", sglClearBufferfv);
4498  GetOpenGLFunction("glClearBufferfi", sglClearBufferfi);
4499  GetOpenGLFunction("glGetStringi", sglGetStringi);
4500  GetOpenGLFunction("glIsRenderbuffer", sglIsRenderbuffer);
4501  GetOpenGLFunction("glBindRenderbuffer", sglBindRenderbuffer);
4502  GetOpenGLFunction("glDeleteRenderbuffers", sglDeleteRenderbuffers);
4503  GetOpenGLFunction("glGenRenderbuffers", sglGenRenderbuffers);
4504  GetOpenGLFunction("glRenderbufferStorage", sglRenderbufferStorage);
4505  GetOpenGLFunction("glGetRenderbufferParameteriv", sglGetRenderbufferParameteriv);
4506  GetOpenGLFunction("glIsFramebuffer", sglIsFramebuffer);
4507  GetOpenGLFunction("glBindFramebuffer", sglBindFramebuffer);
4508  GetOpenGLFunction("glDeleteFramebuffers", sglDeleteFramebuffers);
4509  GetOpenGLFunction("glGenFramebuffers", sglGenFramebuffers);
4510  GetOpenGLFunction("glCheckFramebufferStatus", sglCheckFramebufferStatus);
4511  GetOpenGLFunction("glFramebufferTexture1D", sglFramebufferTexture1D);
4512  GetOpenGLFunction("glFramebufferTexture2D", sglFramebufferTexture2D);
4513  GetOpenGLFunction("glFramebufferTexture3D", sglFramebufferTexture3D);
4514  GetOpenGLFunction("glFramebufferRenderbuffer", sglFramebufferRenderbuffer);
4515  GetOpenGLFunction("glGetFramebufferAttachmentParameteriv", sglGetFramebufferAttachmentParameteriv);
4516  GetOpenGLFunction("glGenerateMipmap", sglGenerateMipmap);
4517  GetOpenGLFunction("glBlitFramebuffer", sglBlitFramebuffer);
4518  GetOpenGLFunction("glRenderbufferStorageMultisample", sglRenderbufferStorageMultisample);
4519  GetOpenGLFunction("glFramebufferTextureLayer", sglFramebufferTextureLayer);
4520  GetOpenGLFunction("glMapBufferRange", sglMapBufferRange);
4521  GetOpenGLFunction("glFlushMappedBufferRange", sglFlushMappedBufferRange);
4522  GetOpenGLFunction("glBindVertexArray", sglBindVertexArray);
4523  GetOpenGLFunction("glDeleteVertexArrays", sglDeleteVertexArrays);
4524  GetOpenGLFunction("glGenVertexArrays", sglGenVertexArrays);
4525  GetOpenGLFunction("glIsVertexArray", sglIsVertexArray);
4526  }
4527 }
4528 
4529 // GL_VERSION_3_1
4530 
4531 static PFNGLDRAWARRAYSINSTANCEDPROC sglDrawArraysInstanced = nullptr;
4532 static PFNGLDRAWELEMENTSINSTANCEDPROC sglDrawElementsInstanced = nullptr;
4533 static PFNGLTEXBUFFERPROC sglTexBuffer = nullptr;
4534 static PFNGLPRIMITIVERESTARTINDEXPROC sglPrimitiveRestartIndex = nullptr;
4535 static PFNGLCOPYBUFFERSUBDATAPROC sglCopyBufferSubData = nullptr;
4536 static PFNGLGETUNIFORMINDICESPROC sglGetUniformIndices = nullptr;
4537 static PFNGLGETACTIVEUNIFORMSIVPROC sglGetActiveUniformsiv = nullptr;
4538 static PFNGLGETACTIVEUNIFORMNAMEPROC sglGetActiveUniformName = nullptr;
4539 static PFNGLGETUNIFORMBLOCKINDEXPROC sglGetUniformBlockIndex = nullptr;
4540 static PFNGLGETACTIVEUNIFORMBLOCKIVPROC sglGetActiveUniformBlockiv = nullptr;
4541 static PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC sglGetActiveUniformBlockName = nullptr;
4542 static PFNGLUNIFORMBLOCKBINDINGPROC sglUniformBlockBinding = nullptr;
4543 
4545 {
4547  {
4548  sglDrawArraysInstanced(mode, first, count, instancecount);
4549  ReportGLError("glDrawArraysInstanced");
4550  }
4551  else
4552  {
4553  ReportGLNullFunction("glDrawArraysInstanced");
4554  }
4555 }
4556 
4558 {
4560  {
4561  sglDrawElementsInstanced(mode, count, type, indices, instancecount);
4562  ReportGLError("glDrawElementsInstanced");
4563  }
4564  else
4565  {
4566  ReportGLNullFunction("glDrawElementsInstanced");
4567  }
4568 }
4569 
4571 {
4572  if (sglTexBuffer)
4573  {
4574  sglTexBuffer(target, internalformat, buffer);
4575  ReportGLError("glTexBuffer");
4576  }
4577  else
4578  {
4579  ReportGLNullFunction("glTexBuffer");
4580  }
4581 }
4582 
4584 {
4586  {
4587  sglPrimitiveRestartIndex(index);
4588  ReportGLError("glPrimitiveRestartIndex");
4589  }
4590  else
4591  {
4592  ReportGLNullFunction("glPrimitiveRestartIndex");
4593  }
4594 }
4595 
4597 {
4599  {
4600  sglCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
4601  ReportGLError("glCopyBufferSubData");
4602  }
4603  else
4604  {
4605  ReportGLNullFunction("glCopyBufferSubData");
4606  }
4607 }
4608 
4610 {
4612  {
4613  sglGetUniformIndices(program, uniformCount, uniformNames, uniformIndices);
4614  ReportGLError("glGetUniformIndices");
4615  }
4616  else
4617  {
4618  ReportGLNullFunction("glGetUniformIndices");
4619  }
4620 }
4621 
4623 {
4625  {
4626  sglGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
4627  ReportGLError("glGetActiveUniformsiv");
4628  }
4629  else
4630  {
4631  ReportGLNullFunction("glGetActiveUniformsiv");
4632  }
4633 }
4634 
4636 {
4638  {
4639  sglGetActiveUniformName(program, uniformIndex, bufSize, length, uniformName);
4640  ReportGLError("glGetActiveUniformName");
4641  }
4642  else
4643  {
4644  ReportGLNullFunction("glGetActiveUniformName");
4645  }
4646 }
4647 
4649 {
4650  GLuint result;
4652  {
4653  result = sglGetUniformBlockIndex(program, uniformBlockName);
4654  ReportGLError("glGetUniformBlockIndex");
4655  }
4656  else
4657  {
4658  ReportGLNullFunction("glGetUniformBlockIndex");
4659  result = 0;
4660  }
4661  return result;
4662 }
4663 
4665 {
4667  {
4668  sglGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
4669  ReportGLError("glGetActiveUniformBlockiv");
4670  }
4671  else
4672  {
4673  ReportGLNullFunction("glGetActiveUniformBlockiv");
4674  }
4675 }
4676 
4678 {
4680  {
4681  sglGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
4682  ReportGLError("glGetActiveUniformBlockName");
4683  }
4684  else
4685  {
4686  ReportGLNullFunction("glGetActiveUniformBlockName");
4687  }
4688 }
4689 
4691 {
4693  {
4694  sglUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
4695  ReportGLError("glUniformBlockBinding");
4696  }
4697  else
4698  {
4699  ReportGLNullFunction("glUniformBlockBinding");
4700  }
4701 }
4702 
4704 {
4706  {
4707  GetOpenGLFunction("glDrawArraysInstanced", sglDrawArraysInstanced);
4708  GetOpenGLFunction("glDrawElementsInstanced", sglDrawElementsInstanced);
4709  GetOpenGLFunction("glTexBuffer", sglTexBuffer);
4710  GetOpenGLFunction("glPrimitiveRestartIndex", sglPrimitiveRestartIndex);
4711  GetOpenGLFunction("glCopyBufferSubData", sglCopyBufferSubData);
4712  GetOpenGLFunction("glGetUniformIndices", sglGetUniformIndices);
4713  GetOpenGLFunction("glGetActiveUniformsiv", sglGetActiveUniformsiv);
4714  GetOpenGLFunction("glGetActiveUniformName", sglGetActiveUniformName);
4715  GetOpenGLFunction("glGetUniformBlockIndex", sglGetUniformBlockIndex);
4716  GetOpenGLFunction("glGetActiveUniformBlockiv", sglGetActiveUniformBlockiv);
4717  GetOpenGLFunction("glGetActiveUniformBlockName", sglGetActiveUniformBlockName);
4718  GetOpenGLFunction("glUniformBlockBinding", sglUniformBlockBinding);
4719  }
4720 }
4721 
4722 // GL_VERSION_3_2
4723 
4724 static PFNGLDRAWELEMENTSBASEVERTEXPROC sglDrawElementsBaseVertex = nullptr;
4725 static PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC sglDrawRangeElementsBaseVertex = nullptr;
4726 static PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC sglDrawElementsInstancedBaseVertex = nullptr;
4727 static PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC sglMultiDrawElementsBaseVertex = nullptr;
4728 static PFNGLPROVOKINGVERTEXPROC sglProvokingVertex = nullptr;
4729 static PFNGLFENCESYNCPROC sglFenceSync = nullptr;
4730 static PFNGLISSYNCPROC sglIsSync = nullptr;
4731 static PFNGLDELETESYNCPROC sglDeleteSync = nullptr;
4732 static PFNGLCLIENTWAITSYNCPROC sglClientWaitSync = nullptr;
4733 static PFNGLWAITSYNCPROC sglWaitSync = nullptr;
4734 static PFNGLGETINTEGER64VPROC sglGetInteger64v = nullptr;
4735 static PFNGLGETSYNCIVPROC sglGetSynciv = nullptr;
4736 static PFNGLGETINTEGER64I_VPROC sglGetInteger64i_v = nullptr;
4737 static PFNGLGETBUFFERPARAMETERI64VPROC sglGetBufferParameteri64v = nullptr;
4738 static PFNGLFRAMEBUFFERTEXTUREPROC sglFramebufferTexture = nullptr;
4739 static PFNGLTEXIMAGE2DMULTISAMPLEPROC sglTexImage2DMultisample = nullptr;
4740 static PFNGLTEXIMAGE3DMULTISAMPLEPROC sglTexImage3DMultisample = nullptr;
4741 static PFNGLGETMULTISAMPLEFVPROC sglGetMultisamplefv = nullptr;
4742 static PFNGLSAMPLEMASKIPROC sglSampleMaski = nullptr;
4743 
4745 {
4747  {
4748  sglDrawElementsBaseVertex(mode, count, type, indices, basevertex);
4749  ReportGLError("glDrawElementsBaseVertex");
4750  }
4751  else
4752  {
4753  ReportGLNullFunction("glDrawElementsBaseVertex");
4754  }
4755 }
4756 
4758 {
4760  {
4761  sglDrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basevertex);
4762  ReportGLError("glDrawRangeElementsBaseVertex");
4763  }
4764  else
4765  {
4766  ReportGLNullFunction("glDrawRangeElementsBaseVertex");
4767  }
4768 }
4769 
4771 {
4773  {
4774  sglDrawElementsInstancedBaseVertex(mode, count, type, indices, instancecount, basevertex);
4775  ReportGLError("glDrawElementsInstancedBaseVertex");
4776  }
4777  else
4778  {
4779  ReportGLNullFunction("glDrawElementsInstancedBaseVertex");
4780  }
4781 }
4782 
4784 {
4786  {
4787  sglMultiDrawElementsBaseVertex(mode, count, type, indices, drawcount, basevertex);
4788  ReportGLError("glMultiDrawElementsBaseVertex");
4789  }
4790  else
4791  {
4792  ReportGLNullFunction("glMultiDrawElementsBaseVertex");
4793  }
4794 }
4795 
4797 {
4798  if (sglProvokingVertex)
4799  {
4800  sglProvokingVertex(mode);
4801  ReportGLError("glProvokingVertex");
4802  }
4803  else
4804  {
4805  ReportGLNullFunction("glProvokingVertex");
4806  }
4807 }
4808 
4810 {
4811  GLsync result;
4812  if (sglFenceSync)
4813  {
4814  result = sglFenceSync(condition, flags);
4815  ReportGLError("glFenceSync");
4816  }
4817  else
4818  {
4819  ReportGLNullFunction("glFenceSync");
4820  result = 0;
4821  }
4822  return result;
4823 }
4824 
4826 {
4827  GLboolean result;
4828  if (sglIsSync)
4829  {
4830  result = sglIsSync(sync);
4831  ReportGLError("glIsSync");
4832  }
4833  else
4834  {
4835  ReportGLNullFunction("glIsSync");
4836  result = 0;
4837  }
4838  return result;
4839 }
4840 
4842 {
4843  if (sglDeleteSync)
4844  {
4845  sglDeleteSync(sync);
4846  ReportGLError("glDeleteSync");
4847  }
4848  else
4849  {
4850  ReportGLNullFunction("glDeleteSync");
4851  }
4852 }
4853 
4855 {
4856  GLenum result;
4857  if (sglClientWaitSync)
4858  {
4859  result = sglClientWaitSync(sync, flags, timeout);
4860  ReportGLError("glClientWaitSync");
4861  }
4862  else
4863  {
4864  ReportGLNullFunction("glClientWaitSync");
4865  result = 0;
4866  }
4867  return result;
4868 }
4869 
4871 {
4872  if (sglWaitSync)
4873  {
4874  sglWaitSync(sync, flags, timeout);
4875  ReportGLError("glWaitSync");
4876  }
4877  else
4878  {
4879  ReportGLNullFunction("glWaitSync");
4880  }
4881 }
4882 
4884 {
4885  if (sglGetInteger64v)
4886  {
4887  sglGetInteger64v(pname, data);
4888  ReportGLError("glGetInteger64v");
4889  }
4890  else
4891  {
4892  ReportGLNullFunction("glGetInteger64v");
4893  }
4894 }
4895 
4897 {
4898  if (sglGetSynciv)
4899  {
4900  sglGetSynciv(sync, pname, bufSize, length, values);
4901  ReportGLError("glGetSynciv");
4902  }
4903  else
4904  {
4905  ReportGLNullFunction("glGetSynciv");
4906  }
4907 }
4908 
4910 {
4911  if (sglGetInteger64i_v)
4912  {
4913  sglGetInteger64i_v(target, index, data);
4914  ReportGLError("glGetInteger64i_v");
4915  }
4916  else
4917  {
4918  ReportGLNullFunction("glGetInteger64i_v");
4919  }
4920 }
4921 
4923 {
4925  {
4926  sglGetBufferParameteri64v(target, pname, params);
4927  ReportGLError("glGetBufferParameteri64v");
4928  }
4929  else
4930  {
4931  ReportGLNullFunction("glGetBufferParameteri64v");
4932  }
4933 }
4934 
4936 {
4938  {
4939  sglFramebufferTexture(target, attachment, texture, level);
4940  ReportGLError("glFramebufferTexture");
4941  }
4942  else
4943  {
4944  ReportGLNullFunction("glFramebufferTexture");
4945  }
4946 }
4947 
4949 {
4951  {
4952  sglTexImage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
4953  ReportGLError("glTexImage2DMultisample");
4954  }
4955  else
4956  {
4957  ReportGLNullFunction("glTexImage2DMultisample");
4958  }
4959 }
4960 
4962 {
4964  {
4965  sglTexImage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
4966  ReportGLError("glTexImage3DMultisample");
4967  }
4968  else
4969  {
4970  ReportGLNullFunction("glTexImage3DMultisample");
4971  }
4972 }
4973 
4975 {
4976  if (sglGetMultisamplefv)
4977  {
4978  sglGetMultisamplefv(pname, index, val);
4979  ReportGLError("glGetMultisamplefv");
4980  }
4981  else
4982  {
4983  ReportGLNullFunction("glGetMultisamplefv");
4984  }
4985 }
4986 
4988 {
4989  if (sglSampleMaski)
4990  {
4991  sglSampleMaski(maskNumber, mask);
4992  ReportGLError("glSampleMaski");
4993  }
4994  else
4995  {
4996  ReportGLNullFunction("glSampleMaski");
4997  }
4998 }
4999 
5001 {
5003  {
5004  GetOpenGLFunction("glDrawElementsBaseVertex", sglDrawElementsBaseVertex);
5005  GetOpenGLFunction("glDrawRangeElementsBaseVertex", sglDrawRangeElementsBaseVertex);
5006  GetOpenGLFunction("glDrawElementsInstancedBaseVertex", sglDrawElementsInstancedBaseVertex);
5007  GetOpenGLFunction("glMultiDrawElementsBaseVertex", sglMultiDrawElementsBaseVertex);
5008  GetOpenGLFunction("glProvokingVertex", sglProvokingVertex);
5009  GetOpenGLFunction("glFenceSync", sglFenceSync);
5010  GetOpenGLFunction("glIsSync", sglIsSync);
5011  GetOpenGLFunction("glDeleteSync", sglDeleteSync);
5012  GetOpenGLFunction("glClientWaitSync", sglClientWaitSync);
5013  GetOpenGLFunction("glWaitSync", sglWaitSync);
5014  GetOpenGLFunction("glGetInteger64v", sglGetInteger64v);
5015  GetOpenGLFunction("glGetSynciv", sglGetSynciv);
5016  GetOpenGLFunction("glGetInteger64i_v", sglGetInteger64i_v);
5017  GetOpenGLFunction("glGetBufferParameteri64v", sglGetBufferParameteri64v);
5018  GetOpenGLFunction("glFramebufferTexture", sglFramebufferTexture);
5019  GetOpenGLFunction("glTexImage2DMultisample", sglTexImage2DMultisample);
5020  GetOpenGLFunction("glTexImage3DMultisample", sglTexImage3DMultisample);
5021  GetOpenGLFunction("glGetMultisamplefv", sglGetMultisamplefv);
5022  GetOpenGLFunction("glSampleMaski", sglSampleMaski);
5023  }
5024 }
5025 
5026 // GL_VERSION_3_3
5027 
5028 static PFNGLBINDFRAGDATALOCATIONINDEXEDPROC sglBindFragDataLocationIndexed = nullptr;
5029 static PFNGLGETFRAGDATAINDEXPROC sglGetFragDataIndex = nullptr;
5030 static PFNGLGENSAMPLERSPROC sglGenSamplers = nullptr;
5031 static PFNGLDELETESAMPLERSPROC sglDeleteSamplers = nullptr;
5032 static PFNGLISSAMPLERPROC sglIsSampler = nullptr;
5033 static PFNGLBINDSAMPLERPROC sglBindSampler = nullptr;
5034 static PFNGLSAMPLERPARAMETERIPROC sglSamplerParameteri = nullptr;
5035 static PFNGLSAMPLERPARAMETERIVPROC sglSamplerParameteriv = nullptr;
5036 static PFNGLSAMPLERPARAMETERFPROC sglSamplerParameterf = nullptr;
5037 static PFNGLSAMPLERPARAMETERFVPROC sglSamplerParameterfv = nullptr;
5038 static PFNGLSAMPLERPARAMETERIIVPROC sglSamplerParameterIiv = nullptr;
5039 static PFNGLSAMPLERPARAMETERIUIVPROC sglSamplerParameterIuiv = nullptr;
5040 static PFNGLGETSAMPLERPARAMETERIVPROC sglGetSamplerParameteriv = nullptr;
5041 static PFNGLGETSAMPLERPARAMETERIIVPROC sglGetSamplerParameterIiv = nullptr;
5042 static PFNGLGETSAMPLERPARAMETERFVPROC sglGetSamplerParameterfv = nullptr;
5043 static PFNGLGETSAMPLERPARAMETERIUIVPROC sglGetSamplerParameterIuiv = nullptr;
5044 static PFNGLQUERYCOUNTERPROC sglQueryCounter = nullptr;
5045 static PFNGLGETQUERYOBJECTI64VPROC sglGetQueryObjecti64v = nullptr;
5046 static PFNGLGETQUERYOBJECTUI64VPROC sglGetQueryObjectui64v = nullptr;
5047 static PFNGLVERTEXATTRIBDIVISORPROC sglVertexAttribDivisor = nullptr;
5048 static PFNGLVERTEXATTRIBP1UIPROC sglVertexAttribP1ui = nullptr;
5049 static PFNGLVERTEXATTRIBP1UIVPROC sglVertexAttribP1uiv = nullptr;
5050 static PFNGLVERTEXATTRIBP2UIPROC sglVertexAttribP2ui = nullptr;
5051 static PFNGLVERTEXATTRIBP2UIVPROC sglVertexAttribP2uiv = nullptr;
5052 static PFNGLVERTEXATTRIBP3UIPROC sglVertexAttribP3ui = nullptr;
5053 static PFNGLVERTEXATTRIBP3UIVPROC sglVertexAttribP3uiv = nullptr;
5054 static PFNGLVERTEXATTRIBP4UIPROC sglVertexAttribP4ui = nullptr;
5055 static PFNGLVERTEXATTRIBP4UIVPROC sglVertexAttribP4uiv = nullptr;
5056 
5058 {
5060  {
5061  sglBindFragDataLocationIndexed(program, colorNumber, index, name);
5062  ReportGLError("glBindFragDataLocationIndexed");
5063  }
5064  else
5065  {
5066  ReportGLNullFunction("glBindFragDataLocationIndexed");
5067  }
5068 }
5069 
5071 {
5072  GLint result;
5073  if (sglGetFragDataIndex)
5074  {
5075  result = sglGetFragDataIndex(program, name);
5076  ReportGLError("glGetFragDataIndex");
5077  }
5078  else
5079  {
5080  ReportGLNullFunction("glGetFragDataIndex");
5081  result = 0;
5082  }
5083  return result;
5084 }
5085 
5087 {
5088  if (sglGenSamplers)
5089  {
5090  sglGenSamplers(count, samplers);
5091  ReportGLError("glGenSamplers");
5092  }
5093  else
5094  {
5095  ReportGLNullFunction("glGenSamplers");
5096  }
5097 }
5098 
5100 {
5101  if (sglDeleteSamplers)
5102  {
5103  sglDeleteSamplers(count, samplers);
5104  ReportGLError("glDeleteSamplers");
5105  }
5106  else
5107  {
5108  ReportGLNullFunction("glDeleteSamplers");
5109  }
5110 }
5111 
5113 {
5114  GLboolean result;
5115  if (sglIsSampler)
5116  {
5117  result = sglIsSampler(sampler);
5118  ReportGLError("glIsSampler");
5119  }
5120  else
5121  {
5122  ReportGLNullFunction("glIsSampler");
5123  result = 0;
5124  }
5125  return result;
5126 }
5127 
5129 {
5130  if (sglBindSampler)
5131  {
5132  sglBindSampler(unit, sampler);
5133  ReportGLError("glBindSampler");
5134  }
5135  else
5136  {
5137  ReportGLNullFunction("glBindSampler");
5138  }
5139 }
5140 
5142 {
5144  {
5145  sglSamplerParameteri(sampler, pname, param);
5146  ReportGLError("glSamplerParameteri");
5147  }
5148  else
5149  {
5150  ReportGLNullFunction("glSamplerParameteri");
5151  }
5152 }
5153 
5155 {
5157  {
5158  sglSamplerParameteriv(sampler, pname, param);
5159  ReportGLError("glSamplerParameteriv");
5160  }
5161  else
5162  {
5163  ReportGLNullFunction("glSamplerParameteriv");
5164  }
5165 }
5166 
5168 {
5170  {
5171  sglSamplerParameterf(sampler, pname, param);
5172  ReportGLError("glSamplerParameterf");
5173  }
5174  else
5175  {
5176  ReportGLNullFunction("glSamplerParameterf");
5177  }
5178 }
5179 
5181 {
5183  {
5184  sglSamplerParameterfv(sampler, pname, param);
5185  ReportGLError("glSamplerParameterfv");
5186  }
5187  else
5188  {
5189  ReportGLNullFunction("glSamplerParameterfv");
5190  }
5191 }
5192 
5194 {
5196  {
5197  sglSamplerParameterIiv(sampler, pname, param);
5198  ReportGLError("glSamplerParameterIiv");
5199  }
5200  else
5201  {
5202  ReportGLNullFunction("glSamplerParameterIiv");
5203  }
5204 }
5205 
5207 {
5209  {
5210  sglSamplerParameterIuiv(sampler, pname, param);
5211  ReportGLError("glSamplerParameterIuiv");
5212  }
5213  else
5214  {
5215  ReportGLNullFunction("glSamplerParameterIuiv");
5216  }
5217 }
5218 
5220 {
5222  {
5223  sglGetSamplerParameteriv(sampler, pname, params);
5224  ReportGLError("glGetSamplerParameteriv");
5225  }
5226  else
5227  {
5228  ReportGLNullFunction("glGetSamplerParameteriv");
5229  }
5230 }
5231 
5233 {
5235  {
5236  sglGetSamplerParameterIiv(sampler, pname, params);
5237  ReportGLError("glGetSamplerParameterIiv");
5238  }
5239  else
5240  {
5241  ReportGLNullFunction("glGetSamplerParameterIiv");
5242  }
5243 }
5244 
5246 {
5248  {
5249  sglGetSamplerParameterfv(sampler, pname, params);
5250  ReportGLError("glGetSamplerParameterfv");
5251  }
5252  else
5253  {
5254  ReportGLNullFunction("glGetSamplerParameterfv");
5255  }
5256 }
5257 
5259 {
5261  {
5262  sglGetSamplerParameterIuiv(sampler, pname, params);
5263  ReportGLError("glGetSamplerParameterIuiv");
5264  }
5265  else
5266  {
5267  ReportGLNullFunction("glGetSamplerParameterIuiv");
5268  }
5269 }
5270 
5272 {
5273  if (sglQueryCounter)
5274  {
5275  sglQueryCounter(id, target);
5276  ReportGLError("glQueryCounter");
5277  }
5278  else
5279  {
5280  ReportGLNullFunction("glQueryCounter");
5281  }
5282 }
5283 
5285 {
5287  {
5288  sglGetQueryObjecti64v(id, pname, params);
5289  ReportGLError("glGetQueryObjecti64v");
5290  }
5291  else
5292  {
5293  ReportGLNullFunction("glGetQueryObjecti64v");
5294  }
5295 }
5296 
5298 {
5300  {
5301  sglGetQueryObjectui64v(id, pname, params);
5302  ReportGLError("glGetQueryObjectui64v");
5303  }
5304  else
5305  {
5306  ReportGLNullFunction("glGetQueryObjectui64v");
5307  }
5308 }
5309 
5311 {
5313  {
5314  sglVertexAttribDivisor(index, divisor);
5315  ReportGLError("glVertexAttribDivisor");
5316  }
5317  else
5318  {
5319  ReportGLNullFunction("glVertexAttribDivisor");
5320  }
5321 }
5322 
5324 {
5325  if (sglVertexAttribP1ui)
5326  {
5327  sglVertexAttribP1ui(index, type, normalized, value);
5328  ReportGLError("glVertexAttribP1ui");
5329  }
5330  else
5331  {
5332  ReportGLNullFunction("glVertexAttribP1ui");
5333  }
5334 }
5335 
5337 {
5339  {
5340  sglVertexAttribP1uiv(index, type, normalized, value);
5341  ReportGLError("glVertexAttribP1uiv");
5342  }
5343  else
5344  {
5345  ReportGLNullFunction("glVertexAttribP1uiv");
5346  }
5347 }
5348 
5350 {
5351  if (sglVertexAttribP2ui)
5352  {
5353  sglVertexAttribP2ui(index, type, normalized, value);
5354  ReportGLError("glVertexAttribP2ui");
5355  }
5356  else
5357  {
5358  ReportGLNullFunction("glVertexAttribP2ui");
5359  }
5360 }
5361 
5363 {
5365  {
5366  sglVertexAttribP2uiv(index, type, normalized, value);
5367  ReportGLError("glVertexAttribP2uiv");
5368  }
5369  else
5370  {
5371  ReportGLNullFunction("glVertexAttribP2uiv");
5372  }
5373 }
5374 
5376 {
5377  if (sglVertexAttribP3ui)
5378  {
5379  sglVertexAttribP3ui(index, type, normalized, value);
5380  ReportGLError("glVertexAttribP3ui");
5381  }
5382  else
5383  {
5384  ReportGLNullFunction("glVertexAttribP3ui");
5385  }
5386 }
5387 
5389 {
5391  {
5392  sglVertexAttribP3uiv(index, type, normalized, value);
5393  ReportGLError("glVertexAttribP3uiv");
5394  }
5395  else
5396  {
5397  ReportGLNullFunction("glVertexAttribP3uiv");
5398  }
5399 }
5400 
5402 {
5403  if (sglVertexAttribP4ui)
5404  {
5405  sglVertexAttribP4ui(index, type, normalized, value);
5406  ReportGLError("glVertexAttribP4ui");
5407  }
5408  else
5409  {
5410  ReportGLNullFunction("glVertexAttribP4ui");
5411  }
5412 }
5413 
5415 {
5417  {
5418  sglVertexAttribP4uiv(index, type, normalized, value);
5419  ReportGLError("glVertexAttribP4uiv");
5420  }
5421  else
5422  {
5423  ReportGLNullFunction("glVertexAttribP4uiv");
5424  }
5425 }
5426 
5428 {
5430  {
5431  GetOpenGLFunction("glBindFragDataLocationIndexed", sglBindFragDataLocationIndexed);
5432  GetOpenGLFunction("glGetFragDataIndex", sglGetFragDataIndex);
5433  GetOpenGLFunction("glGenSamplers", sglGenSamplers);
5434  GetOpenGLFunction("glDeleteSamplers", sglDeleteSamplers);
5435  GetOpenGLFunction("glIsSampler", sglIsSampler);
5436  GetOpenGLFunction("glBindSampler", sglBindSampler);
5437  GetOpenGLFunction("glSamplerParameteri", sglSamplerParameteri);
5438  GetOpenGLFunction("glSamplerParameteriv", sglSamplerParameteriv);
5439  GetOpenGLFunction("glSamplerParameterf", sglSamplerParameterf);
5440  GetOpenGLFunction("glSamplerParameterfv", sglSamplerParameterfv);
5441  GetOpenGLFunction("glSamplerParameterIiv", sglSamplerParameterIiv);
5442  GetOpenGLFunction("glSamplerParameterIuiv", sglSamplerParameterIuiv);
5443  GetOpenGLFunction("glGetSamplerParameteriv", sglGetSamplerParameteriv);
5444  GetOpenGLFunction("glGetSamplerParameterIiv", sglGetSamplerParameterIiv);
5445  GetOpenGLFunction("glGetSamplerParameterfv", sglGetSamplerParameterfv);
5446  GetOpenGLFunction("glGetSamplerParameterIuiv", sglGetSamplerParameterIuiv);
5447  GetOpenGLFunction("glQueryCounter", sglQueryCounter);
5448  GetOpenGLFunction("glGetQueryObjecti64v", sglGetQueryObjecti64v);
5449  GetOpenGLFunction("glGetQueryObjectui64v", sglGetQueryObjectui64v);
5450  GetOpenGLFunction("glVertexAttribDivisor", sglVertexAttribDivisor);
5451  GetOpenGLFunction("glVertexAttribP1ui", sglVertexAttribP1ui);
5452  GetOpenGLFunction("glVertexAttribP1uiv", sglVertexAttribP1uiv);
5453  GetOpenGLFunction("glVertexAttribP2ui", sglVertexAttribP2ui);
5454  GetOpenGLFunction("glVertexAttribP2uiv", sglVertexAttribP2uiv);
5455  GetOpenGLFunction("glVertexAttribP3ui", sglVertexAttribP3ui);
5456  GetOpenGLFunction("glVertexAttribP3uiv", sglVertexAttribP3uiv);
5457  GetOpenGLFunction("glVertexAttribP4ui", sglVertexAttribP4ui);
5458  GetOpenGLFunction("glVertexAttribP4uiv", sglVertexAttribP4uiv);
5459  }
5460 }
5461 
5462 // GL_VERSION_4_0
5463 
5464 static PFNGLMINSAMPLESHADINGPROC sglMinSampleShading = nullptr;
5465 static PFNGLBLENDEQUATIONIPROC sglBlendEquationi = nullptr;
5466 static PFNGLBLENDEQUATIONSEPARATEIPROC sglBlendEquationSeparatei = nullptr;
5467 static PFNGLBLENDFUNCIPROC sglBlendFunci = nullptr;
5468 static PFNGLBLENDFUNCSEPARATEIPROC sglBlendFuncSeparatei = nullptr;
5469 static PFNGLDRAWARRAYSINDIRECTPROC sglDrawArraysIndirect = nullptr;
5470 static PFNGLDRAWELEMENTSINDIRECTPROC sglDrawElementsIndirect = nullptr;
5471 static PFNGLUNIFORM1DPROC sglUniform1d = nullptr;
5472 static PFNGLUNIFORM2DPROC sglUniform2d = nullptr;
5473 static PFNGLUNIFORM3DPROC sglUniform3d = nullptr;
5474 static PFNGLUNIFORM4DPROC sglUniform4d = nullptr;
5475 static PFNGLUNIFORM1DVPROC sglUniform1dv = nullptr;
5476 static PFNGLUNIFORM2DVPROC sglUniform2dv = nullptr;
5477 static PFNGLUNIFORM3DVPROC sglUniform3dv = nullptr;
5478 static PFNGLUNIFORM4DVPROC sglUniform4dv = nullptr;
5479 static PFNGLUNIFORMMATRIX2DVPROC sglUniformMatrix2dv = nullptr;
5480 static PFNGLUNIFORMMATRIX3DVPROC sglUniformMatrix3dv = nullptr;
5481 static PFNGLUNIFORMMATRIX4DVPROC sglUniformMatrix4dv = nullptr;
5482 static PFNGLUNIFORMMATRIX2X3DVPROC sglUniformMatrix2x3dv = nullptr;
5483 static PFNGLUNIFORMMATRIX2X4DVPROC sglUniformMatrix2x4dv = nullptr;
5484 static PFNGLUNIFORMMATRIX3X2DVPROC sglUniformMatrix3x2dv = nullptr;
5485 static PFNGLUNIFORMMATRIX3X4DVPROC sglUniformMatrix3x4dv = nullptr;
5486 static PFNGLUNIFORMMATRIX4X2DVPROC sglUniformMatrix4x2dv = nullptr;
5487 static PFNGLUNIFORMMATRIX4X3DVPROC sglUniformMatrix4x3dv = nullptr;
5488 static PFNGLGETUNIFORMDVPROC sglGetUniformdv = nullptr;
5489 static PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC sglGetSubroutineUniformLocation = nullptr;
5490 static PFNGLGETSUBROUTINEINDEXPROC sglGetSubroutineIndex = nullptr;
5491 static PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC sglGetActiveSubroutineUniformiv = nullptr;
5492 static PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC sglGetActiveSubroutineUniformName = nullptr;
5493 static PFNGLGETACTIVESUBROUTINENAMEPROC sglGetActiveSubroutineName = nullptr;
5494 static PFNGLUNIFORMSUBROUTINESUIVPROC sglUniformSubroutinesuiv = nullptr;
5495 static PFNGLGETUNIFORMSUBROUTINEUIVPROC sglGetUniformSubroutineuiv = nullptr;
5496 static PFNGLGETPROGRAMSTAGEIVPROC sglGetProgramStageiv = nullptr;
5497 static PFNGLPATCHPARAMETERIPROC sglPatchParameteri = nullptr;
5498 static PFNGLPATCHPARAMETERFVPROC sglPatchParameterfv = nullptr;
5499 static PFNGLBINDTRANSFORMFEEDBACKPROC sglBindTransformFeedback = nullptr;
5500 static PFNGLDELETETRANSFORMFEEDBACKSPROC sglDeleteTransformFeedbacks = nullptr;
5501 static PFNGLGENTRANSFORMFEEDBACKSPROC sglGenTransformFeedbacks = nullptr;
5502 static PFNGLISTRANSFORMFEEDBACKPROC sglIsTransformFeedback = nullptr;
5503 static PFNGLPAUSETRANSFORMFEEDBACKPROC sglPauseTransformFeedback = nullptr;
5504 static PFNGLRESUMETRANSFORMFEEDBACKPROC sglResumeTransformFeedback = nullptr;
5505 static PFNGLDRAWTRANSFORMFEEDBACKPROC sglDrawTransformFeedback = nullptr;
5506 static PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC sglDrawTransformFeedbackStream = nullptr;
5507 static PFNGLBEGINQUERYINDEXEDPROC sglBeginQueryIndexed = nullptr;
5508 static PFNGLENDQUERYINDEXEDPROC sglEndQueryIndexed = nullptr;
5509 static PFNGLGETQUERYINDEXEDIVPROC sglGetQueryIndexediv = nullptr;
5510 
5512 {
5513  if (sglMinSampleShading)
5514  {
5515  sglMinSampleShading(value);
5516  ReportGLError("glMinSampleShading");
5517  }
5518  else
5519  {
5520  ReportGLNullFunction("glMinSampleShading");
5521  }
5522 }
5523 
5525 {
5526  if (sglBlendEquationi)
5527  {
5528  sglBlendEquationi(buf, mode);
5529  ReportGLError("glBlendEquationi");
5530  }
5531  else
5532  {
5533  ReportGLNullFunction("glBlendEquationi");
5534  }
5535 }
5536 
5538 {
5540  {
5541  sglBlendEquationSeparatei(buf, modeRGB, modeAlpha);
5542  ReportGLError("glBlendEquationSeparatei");
5543  }
5544  else
5545  {
5546  ReportGLNullFunction("glBlendEquationSeparatei");
5547  }
5548 }
5549 
5551 {
5552  if (sglBlendFunci)
5553  {
5554  sglBlendFunci(buf, src, dst);
5555  ReportGLError("glBlendFunci");
5556  }
5557  else
5558  {
5559  ReportGLNullFunction("glBlendFunci");
5560  }
5561 }
5562 
5564 {
5566  {
5567  sglBlendFuncSeparatei(buf, srcRGB, dstRGB, srcAlpha, dstAlpha);
5568  ReportGLError("glBlendFuncSeparatei");
5569  }
5570  else
5571  {
5572  ReportGLNullFunction("glBlendFuncSeparatei");
5573  }
5574 }
5575 
5577 {
5579  {
5580  sglDrawArraysIndirect(mode, indirect);
5581  ReportGLError("glDrawArraysIndirect");
5582  }
5583  else
5584  {
5585  ReportGLNullFunction("glDrawArraysIndirect");
5586  }
5587 }
5588 
5590 {
5592  {
5593  sglDrawElementsIndirect(mode, type, indirect);
5594  ReportGLError("glDrawElementsIndirect");
5595  }
5596  else
5597  {
5598  ReportGLNullFunction("glDrawElementsIndirect");
5599  }
5600 }
5601 
5603 {
5604  if (sglUniform1d)
5605  {
5606  sglUniform1d(location, x);
5607  ReportGLError("glUniform1d");
5608  }
5609  else
5610  {
5611  ReportGLNullFunction("glUniform1d");
5612  }
5613 }
5614 
5616 {
5617  if (sglUniform2d)
5618  {
5619  sglUniform2d(location, x, y);
5620  ReportGLError("glUniform2d");
5621  }
5622  else
5623  {
5624  ReportGLNullFunction("glUniform2d");
5625  }
5626 }
5627 
5629 {
5630  if (sglUniform3d)
5631  {
5632  sglUniform3d(location, x, y, z);
5633  ReportGLError("glUniform3d");
5634  }
5635  else
5636  {
5637  ReportGLNullFunction("glUniform3d");
5638  }
5639 }
5640 
5642 {
5643  if (sglUniform4d)
5644  {
5645  sglUniform4d(location, x, y, z, w);
5646  ReportGLError("glUniform4d");
5647  }
5648  else
5649  {
5650  ReportGLNullFunction("glUniform4d");
5651  }
5652 }
5653 
5655 {
5656  if (sglUniform1dv)
5657  {
5658  sglUniform1dv(location, count, value);
5659  ReportGLError("glUniform1dv");
5660  }
5661  else
5662  {
5663  ReportGLNullFunction("glUniform1dv");
5664  }
5665 }
5666 
5668 {
5669  if (sglUniform2dv)
5670  {
5671  sglUniform2dv(location, count, value);
5672  ReportGLError("glUniform2dv");
5673  }
5674  else
5675  {
5676  ReportGLNullFunction("glUniform2dv");
5677  }
5678 }
5679 
5681 {
5682  if (sglUniform3dv)
5683  {
5684  sglUniform3dv(location, count, value);
5685  ReportGLError("glUniform3dv");
5686  }
5687  else
5688  {
5689  ReportGLNullFunction("glUniform3dv");
5690  }
5691 }
5692 
5694 {
5695  if (sglUniform4dv)
5696  {
5697  sglUniform4dv(location, count, value);
5698  ReportGLError("glUniform4dv");
5699  }
5700  else
5701  {
5702  ReportGLNullFunction("glUniform4dv");
5703  }
5704 }
5705 
5707 {
5708  if (sglUniformMatrix2dv)
5709  {
5710  sglUniformMatrix2dv(location, count, transpose, value);
5711  ReportGLError("glUniformMatrix2dv");
5712  }
5713  else
5714  {
5715  ReportGLNullFunction("glUniformMatrix2dv");
5716  }
5717 }
5718 
5720 {
5721  if (sglUniformMatrix3dv)
5722  {
5723  sglUniformMatrix3dv(location, count, transpose, value);
5724  ReportGLError("glUniformMatrix3dv");
5725  }
5726  else
5727  {
5728  ReportGLNullFunction("glUniformMatrix3dv");
5729  }
5730 }
5731 
5733 {
5734  if (sglUniformMatrix4dv)
5735  {
5736  sglUniformMatrix4dv(location, count, transpose, value);
5737  ReportGLError("glUniformMatrix4dv");
5738  }
5739  else
5740  {
5741  ReportGLNullFunction("glUniformMatrix4dv");
5742  }
5743 }
5744 
5746 {
5748  {
5749  sglUniformMatrix2x3dv(location, count, transpose, value);
5750  ReportGLError("glUniformMatrix2x3dv");
5751  }
5752  else
5753  {
5754  ReportGLNullFunction("glUniformMatrix2x3dv");
5755  }
5756 }
5757 
5759 {
5761  {
5762  sglUniformMatrix2x4dv(location, count, transpose, value);
5763  ReportGLError("glUniformMatrix2x4dv");
5764  }
5765  else
5766  {
5767  ReportGLNullFunction("glUniformMatrix2x4dv");
5768  }
5769 }
5770 
5772 {
5774  {
5775  sglUniformMatrix3x2dv(location, count, transpose, value);
5776  ReportGLError("glUniformMatrix3x2dv");
5777  }
5778  else
5779  {
5780  ReportGLNullFunction("glUniformMatrix3x2dv");
5781  }
5782 }
5783 
5785 {
5787  {
5788  sglUniformMatrix3x4dv(location, count, transpose, value);
5789  ReportGLError("glUniformMatrix3x4dv");
5790  }
5791  else
5792  {
5793  ReportGLNullFunction("glUniformMatrix3x4dv");
5794  }
5795 }
5796 
5798 {
5800  {
5801  sglUniformMatrix4x2dv(location, count, transpose, value);
5802  ReportGLError("glUniformMatrix4x2dv");
5803  }
5804  else
5805  {
5806  ReportGLNullFunction("glUniformMatrix4x2dv");
5807  }
5808 }
5809 
5811 {
5813  {
5814  sglUniformMatrix4x3dv(location, count, transpose, value);
5815  ReportGLError("glUniformMatrix4x3dv");
5816  }
5817  else
5818  {
5819  ReportGLNullFunction("glUniformMatrix4x3dv");
5820  }
5821 }
5822 
5824 {
5825  if (sglGetUniformdv)
5826  {
5827  sglGetUniformdv(program, location, params);
5828  ReportGLError("glGetUniformdv");
5829  }
5830  else
5831  {
5832  ReportGLNullFunction("glGetUniformdv");
5833  }
5834 }
5835 
5837 {
5838  GLint result;
5840  {
5841  result = sglGetSubroutineUniformLocation(program, shadertype, name);
5842  ReportGLError("glGetSubroutineUniformLocation");
5843  }
5844  else
5845  {
5846  ReportGLNullFunction("glGetSubroutineUniformLocation");
5847  result = 0;
5848  }
5849  return result;
5850 }
5851 
5853 {
5854  GLuint result;
5856  {
5857  result = sglGetSubroutineIndex(program, shadertype, name);
5858  ReportGLError("glGetSubroutineIndex");
5859  }
5860  else
5861  {
5862  ReportGLNullFunction("glGetSubroutineIndex");
5863  result = 0;
5864  }
5865  return result;
5866 }
5867 
5869 {
5871  {
5872  sglGetActiveSubroutineUniformiv(program, shadertype, index, pname, values);
5873  ReportGLError("glGetActiveSubroutineUniformiv");
5874  }
5875  else
5876  {
5877  ReportGLNullFunction("glGetActiveSubroutineUniformiv");
5878  }
5879 }
5880 
5882 {
5884  {
5885  sglGetActiveSubroutineUniformName(program, shadertype, index, bufsize, length, name);
5886  ReportGLError("glGetActiveSubroutineUniformName");
5887  }
5888  else
5889  {
5890  ReportGLNullFunction("glGetActiveSubroutineUniformName");
5891  }
5892 }
5893 
5895 {
5897  {
5898  sglGetActiveSubroutineName(program, shadertype, index, bufsize, length, name);
5899  ReportGLError("glGetActiveSubroutineName");
5900  }
5901  else
5902  {
5903  ReportGLNullFunction("glGetActiveSubroutineName");
5904  }
5905 }
5906 
5908 {
5910  {
5911  sglUniformSubroutinesuiv(shadertype, count, indices);
5912  ReportGLError("glUniformSubroutinesuiv");
5913  }
5914  else
5915  {
5916  ReportGLNullFunction("glUniformSubroutinesuiv");
5917  }
5918 }
5919 
5921 {
5923  {
5924  sglGetUniformSubroutineuiv(shadertype, location, params);
5925  ReportGLError("glGetUniformSubroutineuiv");
5926  }
5927  else
5928  {
5929  ReportGLNullFunction("glGetUniformSubroutineuiv");
5930  }
5931 }
5932 
5934 {
5936  {
5937  sglGetProgramStageiv(program, shadertype, pname, values);
5938  ReportGLError("glGetProgramStageiv");
5939  }
5940  else
5941  {
5942  ReportGLNullFunction("glGetProgramStageiv");
5943  }
5944 }
5945 
5947 {
5948  if (sglPatchParameteri)
5949  {
5950  sglPatchParameteri(pname, value);
5951  ReportGLError("glPatchParameteri");
5952  }
5953  else
5954  {
5955  ReportGLNullFunction("glPatchParameteri");
5956  }
5957 }
5958 
5960 {
5961  if (sglPatchParameterfv)
5962  {
5963  sglPatchParameterfv(pname, values);
5964  ReportGLError("glPatchParameterfv");
5965  }
5966  else
5967  {
5968  ReportGLNullFunction("glPatchParameterfv");
5969  }
5970 }
5971 
5973 {
5975  {
5976  sglBindTransformFeedback(target, id);
5977  ReportGLError("glBindTransformFeedback");
5978  }
5979  else
5980  {
5981  ReportGLNullFunction("glBindTransformFeedback");
5982  }
5983 }
5984 
5986 {
5988  {
5990  ReportGLError("glDeleteTransformFeedbacks");
5991  }
5992  else
5993  {
5994  ReportGLNullFunction("glDeleteTransformFeedbacks");
5995  }
5996 }
5997 
5999 {
6001  {
6002  sglGenTransformFeedbacks(n, ids);
6003  ReportGLError("glGenTransformFeedbacks");
6004  }
6005  else
6006  {
6007  ReportGLNullFunction("glGenTransformFeedbacks");
6008  }
6009 }
6010 
6012 {
6013  GLboolean result;
6015  {
6016  result = sglIsTransformFeedback(id);
6017  ReportGLError("glIsTransformFeedback");
6018  }
6019  else
6020  {
6021  ReportGLNullFunction("glIsTransformFeedback");
6022  result = 0;
6023  }
6024  return result;
6025 }
6026 
6028 {
6030  {
6032  ReportGLError("glPauseTransformFeedback");
6033  }
6034  else
6035  {
6036  ReportGLNullFunction("glPauseTransformFeedback");
6037  }
6038 }
6039 
6041 {
6043  {
6045  ReportGLError("glResumeTransformFeedback");
6046  }
6047  else
6048  {
6049  ReportGLNullFunction("glResumeTransformFeedback");
6050  }
6051 }
6052 
6054 {
6056  {
6057  sglDrawTransformFeedback(mode, id);
6058  ReportGLError("glDrawTransformFeedback");
6059  }
6060  else
6061  {
6062  ReportGLNullFunction("glDrawTransformFeedback");
6063  }
6064 }
6065 
6067 {
6069  {
6070  sglDrawTransformFeedbackStream(mode, id, stream);
6071  ReportGLError("glDrawTransformFeedbackStream");
6072  }
6073  else
6074  {
6075  ReportGLNullFunction("glDrawTransformFeedbackStream");
6076  }
6077 }
6078 
6080 {
6082  {
6083  sglBeginQueryIndexed(target, index, id);
6084  ReportGLError("glBeginQueryIndexed");
6085  }
6086  else
6087  {
6088  ReportGLNullFunction("glBeginQueryIndexed");
6089  }
6090 }
6091 
6093 {
6094  if (sglEndQueryIndexed)
6095  {
6096  sglEndQueryIndexed(target, index);
6097  ReportGLError("glEndQueryIndexed");
6098  }
6099  else
6100  {
6101  ReportGLNullFunction("glEndQueryIndexed");
6102  }
6103 }
6104 
6106 {
6108  {
6109  sglGetQueryIndexediv(target, index, pname, params);
6110  ReportGLError("glGetQueryIndexediv");
6111  }
6112  else
6113  {
6114  ReportGLNullFunction("glGetQueryIndexediv");
6115  }
6116 }
6117 
6119 {
6121  {
6122  GetOpenGLFunction("glMinSampleShading", sglMinSampleShading);
6123  GetOpenGLFunction("glBlendEquationi", sglBlendEquationi);
6124  GetOpenGLFunction("glBlendEquationSeparatei", sglBlendEquationSeparatei);
6125  GetOpenGLFunction("glBlendFunci", sglBlendFunci);
6126  GetOpenGLFunction("glBlendFuncSeparatei", sglBlendFuncSeparatei);
6127  GetOpenGLFunction("glDrawArraysIndirect", sglDrawArraysIndirect);
6128  GetOpenGLFunction("glDrawElementsIndirect", sglDrawElementsIndirect);
6129  GetOpenGLFunction("glUniform1d", sglUniform1d);
6130  GetOpenGLFunction("glUniform2d", sglUniform2d);
6131  GetOpenGLFunction("glUniform3d", sglUniform3d);
6132  GetOpenGLFunction("glUniform4d", sglUniform4d);
6133  GetOpenGLFunction("glUniform1dv", sglUniform1dv);
6134  GetOpenGLFunction("glUniform2dv", sglUniform2dv);
6135  GetOpenGLFunction("glUniform3dv", sglUniform3dv);
6136  GetOpenGLFunction("glUniform4dv", sglUniform4dv);
6137  GetOpenGLFunction("glUniformMatrix2dv", sglUniformMatrix2dv);
6138  GetOpenGLFunction("glUniformMatrix3dv", sglUniformMatrix3dv);
6139  GetOpenGLFunction("glUniformMatrix4dv", sglUniformMatrix4dv);
6140  GetOpenGLFunction("glUniformMatrix2x3dv", sglUniformMatrix2x3dv);
6141  GetOpenGLFunction("glUniformMatrix2x4dv", sglUniformMatrix2x4dv);
6142  GetOpenGLFunction("glUniformMatrix3x2dv", sglUniformMatrix3x2dv);
6143  GetOpenGLFunction("glUniformMatrix3x4dv", sglUniformMatrix3x4dv);
6144  GetOpenGLFunction("glUniformMatrix4x2dv", sglUniformMatrix4x2dv);
6145  GetOpenGLFunction("glUniformMatrix4x3dv", sglUniformMatrix4x3dv);
6146  GetOpenGLFunction("glGetUniformdv", sglGetUniformdv);
6147  GetOpenGLFunction("glGetSubroutineUniformLocation", sglGetSubroutineUniformLocation);
6148  GetOpenGLFunction("glGetSubroutineIndex", sglGetSubroutineIndex);
6149  GetOpenGLFunction("glGetActiveSubroutineUniformiv", sglGetActiveSubroutineUniformiv);
6150  GetOpenGLFunction("glGetActiveSubroutineUniformName", sglGetActiveSubroutineUniformName);
6151  GetOpenGLFunction("glGetActiveSubroutineName", sglGetActiveSubroutineName);
6152  GetOpenGLFunction("glUniformSubroutinesuiv", sglUniformSubroutinesuiv);
6153  GetOpenGLFunction("glGetUniformSubroutineuiv", sglGetUniformSubroutineuiv);
6154  GetOpenGLFunction("glGetProgramStageiv", sglGetProgramStageiv);
6155  GetOpenGLFunction("glPatchParameteri", sglPatchParameteri);
6156  GetOpenGLFunction("glPatchParameterfv", sglPatchParameterfv);
6157  GetOpenGLFunction("glBindTransformFeedback", sglBindTransformFeedback);
6158  GetOpenGLFunction("glDeleteTransformFeedbacks", sglDeleteTransformFeedbacks);
6159  GetOpenGLFunction("glGenTransformFeedbacks", sglGenTransformFeedbacks);
6160  GetOpenGLFunction("glIsTransformFeedback", sglIsTransformFeedback);
6161  GetOpenGLFunction("glPauseTransformFeedback", sglPauseTransformFeedback);
6162  GetOpenGLFunction("glResumeTransformFeedback", sglResumeTransformFeedback);
6163  GetOpenGLFunction("glDrawTransformFeedback", sglDrawTransformFeedback);
6164  GetOpenGLFunction("glDrawTransformFeedbackStream", sglDrawTransformFeedbackStream);
6165  GetOpenGLFunction("glBeginQueryIndexed", sglBeginQueryIndexed);
6166  GetOpenGLFunction("glEndQueryIndexed", sglEndQueryIndexed);
6167  GetOpenGLFunction("glGetQueryIndexediv", sglGetQueryIndexediv);
6168  }
6169 }
6170 
6171 // GL_VERSION_4_1
6172 
6173 static PFNGLRELEASESHADERCOMPILERPROC sglReleaseShaderCompiler = nullptr;
6174 static PFNGLSHADERBINARYPROC sglShaderBinary = nullptr;
6175 static PFNGLGETSHADERPRECISIONFORMATPROC sglGetShaderPrecisionFormat = nullptr;
6176 static PFNGLDEPTHRANGEFPROC sglDepthRangef = nullptr;
6177 static PFNGLCLEARDEPTHFPROC sglClearDepthf = nullptr;
6178 static PFNGLGETPROGRAMBINARYPROC sglGetProgramBinary = nullptr;
6179 static PFNGLPROGRAMBINARYPROC sglProgramBinary = nullptr;
6180 static PFNGLPROGRAMPARAMETERIPROC sglProgramParameteri = nullptr;
6181 static PFNGLUSEPROGRAMSTAGESPROC sglUseProgramStages = nullptr;
6182 static PFNGLACTIVESHADERPROGRAMPROC sglActiveShaderProgram = nullptr;
6183 static PFNGLCREATESHADERPROGRAMVPROC sglCreateShaderProgramv = nullptr;
6184 static PFNGLBINDPROGRAMPIPELINEPROC sglBindProgramPipeline = nullptr;
6185 static PFNGLDELETEPROGRAMPIPELINESPROC sglDeleteProgramPipelines = nullptr;
6186 static PFNGLGENPROGRAMPIPELINESPROC sglGenProgramPipelines = nullptr;
6187 static PFNGLISPROGRAMPIPELINEPROC sglIsProgramPipeline = nullptr;
6188 static PFNGLGETPROGRAMPIPELINEIVPROC sglGetProgramPipelineiv = nullptr;
6189 static PFNGLPROGRAMUNIFORM1IPROC sglProgramUniform1i = nullptr;
6190 static PFNGLPROGRAMUNIFORM1IVPROC sglProgramUniform1iv = nullptr;
6191 static PFNGLPROGRAMUNIFORM1FPROC sglProgramUniform1f = nullptr;
6192 static PFNGLPROGRAMUNIFORM1FVPROC sglProgramUniform1fv = nullptr;
6193 static PFNGLPROGRAMUNIFORM1DPROC sglProgramUniform1d = nullptr;
6194 static PFNGLPROGRAMUNIFORM1DVPROC sglProgramUniform1dv = nullptr;
6195 static PFNGLPROGRAMUNIFORM1UIPROC sglProgramUniform1ui = nullptr;
6196 static PFNGLPROGRAMUNIFORM1UIVPROC sglProgramUniform1uiv = nullptr;
6197 static PFNGLPROGRAMUNIFORM2IPROC sglProgramUniform2i = nullptr;
6198 static PFNGLPROGRAMUNIFORM2IVPROC sglProgramUniform2iv = nullptr;
6199 static PFNGLPROGRAMUNIFORM2FPROC sglProgramUniform2f = nullptr;
6200 static PFNGLPROGRAMUNIFORM2FVPROC sglProgramUniform2fv = nullptr;
6201 static PFNGLPROGRAMUNIFORM2DPROC sglProgramUniform2d = nullptr;
6202 static PFNGLPROGRAMUNIFORM2DVPROC sglProgramUniform2dv = nullptr;
6203 static PFNGLPROGRAMUNIFORM2UIPROC sglProgramUniform2ui = nullptr;
6204 static PFNGLPROGRAMUNIFORM2UIVPROC sglProgramUniform2uiv = nullptr;
6205 static PFNGLPROGRAMUNIFORM3IPROC sglProgramUniform3i = nullptr;
6206 static PFNGLPROGRAMUNIFORM3IVPROC sglProgramUniform3iv = nullptr;
6207 static PFNGLPROGRAMUNIFORM3FPROC sglProgramUniform3f = nullptr;
6208 static PFNGLPROGRAMUNIFORM3FVPROC sglProgramUniform3fv = nullptr;
6209 static PFNGLPROGRAMUNIFORM3DPROC sglProgramUniform3d = nullptr;
6210 static PFNGLPROGRAMUNIFORM3DVPROC sglProgramUniform3dv = nullptr;
6211 static PFNGLPROGRAMUNIFORM3UIPROC sglProgramUniform3ui = nullptr;
6212 static PFNGLPROGRAMUNIFORM3UIVPROC sglProgramUniform3uiv = nullptr;
6213 static PFNGLPROGRAMUNIFORM4IPROC sglProgramUniform4i = nullptr;
6214 static PFNGLPROGRAMUNIFORM4IVPROC sglProgramUniform4iv = nullptr;
6215 static PFNGLPROGRAMUNIFORM4FPROC sglProgramUniform4f = nullptr;
6216 static PFNGLPROGRAMUNIFORM4FVPROC sglProgramUniform4fv = nullptr;
6217 static PFNGLPROGRAMUNIFORM4DPROC sglProgramUniform4d = nullptr;
6218 static PFNGLPROGRAMUNIFORM4DVPROC sglProgramUniform4dv = nullptr;
6219 static PFNGLPROGRAMUNIFORM4UIPROC sglProgramUniform4ui = nullptr;
6220 static PFNGLPROGRAMUNIFORM4UIVPROC sglProgramUniform4uiv = nullptr;
6221 static PFNGLPROGRAMUNIFORMMATRIX2FVPROC sglProgramUniformMatrix2fv = nullptr;
6222 static PFNGLPROGRAMUNIFORMMATRIX3FVPROC sglProgramUniformMatrix3fv = nullptr;
6223 static PFNGLPROGRAMUNIFORMMATRIX4FVPROC sglProgramUniformMatrix4fv = nullptr;
6224 static PFNGLPROGRAMUNIFORMMATRIX2DVPROC sglProgramUniformMatrix2dv = nullptr;
6225 static PFNGLPROGRAMUNIFORMMATRIX3DVPROC sglProgramUniformMatrix3dv = nullptr;
6226 static PFNGLPROGRAMUNIFORMMATRIX4DVPROC sglProgramUniformMatrix4dv = nullptr;
6227 static PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC sglProgramUniformMatrix2x3fv = nullptr;
6228 static PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC sglProgramUniformMatrix3x2fv = nullptr;
6229 static PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC sglProgramUniformMatrix2x4fv = nullptr;
6230 static PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC sglProgramUniformMatrix4x2fv = nullptr;
6231 static PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC sglProgramUniformMatrix3x4fv = nullptr;
6232 static PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC sglProgramUniformMatrix4x3fv = nullptr;
6233 static PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC sglProgramUniformMatrix2x3dv = nullptr;
6234 static PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC sglProgramUniformMatrix3x2dv = nullptr;
6235 static PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC sglProgramUniformMatrix2x4dv = nullptr;
6236 static PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC sglProgramUniformMatrix4x2dv = nullptr;
6237 static PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC sglProgramUniformMatrix3x4dv = nullptr;
6238 static PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC sglProgramUniformMatrix4x3dv = nullptr;
6239 static PFNGLVALIDATEPROGRAMPIPELINEPROC sglValidateProgramPipeline = nullptr;
6240 static PFNGLGETPROGRAMPIPELINEINFOLOGPROC sglGetProgramPipelineInfoLog = nullptr;
6241 static PFNGLVERTEXATTRIBL1DPROC sglVertexAttribL1d = nullptr;
6242 static PFNGLVERTEXATTRIBL2DPROC sglVertexAttribL2d = nullptr;
6243 static PFNGLVERTEXATTRIBL3DPROC sglVertexAttribL3d = nullptr;
6244 static PFNGLVERTEXATTRIBL4DPROC sglVertexAttribL4d = nullptr;
6245 static PFNGLVERTEXATTRIBL1DVPROC sglVertexAttribL1dv = nullptr;
6246 static PFNGLVERTEXATTRIBL2DVPROC sglVertexAttribL2dv = nullptr;
6247 static PFNGLVERTEXATTRIBL3DVPROC sglVertexAttribL3dv = nullptr;
6248 static PFNGLVERTEXATTRIBL4DVPROC sglVertexAttribL4dv = nullptr;
6249 static PFNGLVERTEXATTRIBLPOINTERPROC sglVertexAttribLPointer = nullptr;
6250 static PFNGLGETVERTEXATTRIBLDVPROC sglGetVertexAttribLdv = nullptr;
6251 static PFNGLVIEWPORTARRAYVPROC sglViewportArrayv = nullptr;
6252 static PFNGLVIEWPORTINDEXEDFPROC sglViewportIndexedf = nullptr;
6253 static PFNGLVIEWPORTINDEXEDFVPROC sglViewportIndexedfv = nullptr;
6254 static PFNGLSCISSORARRAYVPROC sglScissorArrayv = nullptr;
6255 static PFNGLSCISSORINDEXEDPROC sglScissorIndexed = nullptr;
6256 static PFNGLSCISSORINDEXEDVPROC sglScissorIndexedv = nullptr;
6257 static PFNGLDEPTHRANGEARRAYVPROC sglDepthRangeArrayv = nullptr;
6258 static PFNGLDEPTHRANGEINDEXEDPROC sglDepthRangeIndexed = nullptr;
6259 static PFNGLGETFLOATI_VPROC sglGetFloati_v = nullptr;
6260 static PFNGLGETDOUBLEI_VPROC sglGetDoublei_v = nullptr;
6261 
6263 {
6265  {
6267  ReportGLError("glReleaseShaderCompiler");
6268  }
6269  else
6270  {
6271  ReportGLNullFunction("glReleaseShaderCompiler");
6272  }
6273 }
6274 
6276 {
6277  if (sglShaderBinary)
6278  {
6279  sglShaderBinary(count, shaders, binaryformat, binary, length);
6280  ReportGLError("glShaderBinary");
6281  }
6282  else
6283  {
6284  ReportGLNullFunction("glShaderBinary");
6285  }
6286 }
6287 
6289 {
6291  {
6292  sglGetShaderPrecisionFormat(shadertype, precisiontype, range, precision);
6293  ReportGLError("glGetShaderPrecisionFormat");
6294  }
6295  else
6296  {
6297  ReportGLNullFunction("glGetShaderPrecisionFormat");
6298  }
6299 }
6300 
6302 {
6303  if (sglDepthRangef)
6304  {
6305  sglDepthRangef(n, f);
6306  ReportGLError("glDepthRangef");
6307  }
6308  else
6309  {
6310  ReportGLNullFunction("glDepthRangef");
6311  }
6312 }
6313 
6315 {
6316  if (sglClearDepthf)
6317  {
6318  sglClearDepthf(d);
6319  ReportGLError("glClearDepthf");
6320  }
6321  else
6322  {
6323  ReportGLNullFunction("glClearDepthf");
6324  }
6325 }
6326 
6328 {
6329  if (sglGetProgramBinary)
6330  {
6331  sglGetProgramBinary(program, bufSize, length, binaryFormat, binary);
6332  ReportGLError("glGetProgramBinary");
6333  }
6334  else
6335  {
6336  ReportGLNullFunction("glGetProgramBinary");
6337  }
6338 }
6339 
6341 {
6342  if (sglProgramBinary)
6343  {
6344  sglProgramBinary(program, binaryFormat, binary, length);
6345  ReportGLError("glProgramBinary");
6346  }
6347  else
6348  {
6349  ReportGLNullFunction("glProgramBinary");
6350  }
6351 }
6352 
6354 {
6356  {
6357  sglProgramParameteri(program, pname, value);
6358  ReportGLError("glProgramParameteri");
6359  }
6360  else
6361  {
6362  ReportGLNullFunction("glProgramParameteri");
6363  }
6364 }
6365 
6367 {
6368  if (sglUseProgramStages)
6369  {
6370  sglUseProgramStages(pipeline, stages, program);
6371  ReportGLError("glUseProgramStages");
6372  }
6373  else
6374  {
6375  ReportGLNullFunction("glUseProgramStages");
6376  }
6377 }
6378 
6380 {
6382  {
6383  sglActiveShaderProgram(pipeline, program);
6384  ReportGLError("glActiveShaderProgram");
6385  }
6386  else
6387  {
6388  ReportGLNullFunction("glActiveShaderProgram");
6389  }
6390 }
6391 
6393 {
6394  GLuint result;
6396  {
6397  result = sglCreateShaderProgramv(type, count, strings);
6398  ReportGLError("glCreateShaderProgramv");
6399  }
6400  else
6401  {
6402  ReportGLNullFunction("glCreateShaderProgramv");
6403  result = 0;
6404  }
6405  return result;
6406 }
6407 
6409 {
6411  {
6412  sglBindProgramPipeline(pipeline);
6413  ReportGLError("glBindProgramPipeline");
6414  }
6415  else
6416  {
6417  ReportGLNullFunction("glBindProgramPipeline");
6418  }
6419 }
6420 
6422 {
6424  {
6425  sglDeleteProgramPipelines(n, pipelines);
6426  ReportGLError("glDeleteProgramPipelines");
6427  }
6428  else
6429  {
6430  ReportGLNullFunction("glDeleteProgramPipelines");
6431  }
6432 }
6433 
6435 {
6437  {
6438  sglGenProgramPipelines(n, pipelines);
6439  ReportGLError("glGenProgramPipelines");
6440  }
6441  else
6442  {
6443  ReportGLNullFunction("glGenProgramPipelines");
6444  }
6445 }
6446 
6448 {
6449  GLboolean result;
6451  {
6452  result = sglIsProgramPipeline(pipeline);
6453  ReportGLError("glIsProgramPipeline");
6454  }
6455  else
6456  {
6457  ReportGLNullFunction("glIsProgramPipeline");
6458  result = 0;
6459  }
6460  return result;
6461 }
6462 
6464 {
6466  {
6467  sglGetProgramPipelineiv(pipeline, pname, params);
6468  ReportGLError("glGetProgramPipelineiv");
6469  }
6470  else
6471  {
6472  ReportGLNullFunction("glGetProgramPipelineiv");
6473  }
6474 }
6475 
6477 {
6478  if (sglProgramUniform1i)
6479  {
6480  sglProgramUniform1i(program, location, v0);
6481  ReportGLError("glProgramUniform1i");
6482  }
6483  else
6484  {
6485  ReportGLNullFunction("glProgramUniform1i");
6486  }
6487 }
6488 
6490 {
6492  {
6493  sglProgramUniform1iv(program, location, count, value);
6494  ReportGLError("glProgramUniform1iv");
6495  }
6496  else
6497  {
6498  ReportGLNullFunction("glProgramUniform1iv");
6499  }
6500 }
6501 
6503 {
6504  if (sglProgramUniform1f)
6505  {
6506  sglProgramUniform1f(program, location, v0);
6507  ReportGLError("glProgramUniform1f");
6508  }
6509  else
6510  {
6511  ReportGLNullFunction("glProgramUniform1f");
6512  }
6513 }
6514 
6516 {
6518  {
6519  sglProgramUniform1fv(program, location, count, value);
6520  ReportGLError("glProgramUniform1fv");
6521  }
6522  else
6523  {
6524  ReportGLNullFunction("glProgramUniform1fv");
6525  }
6526 }
6527 
6529 {
6530  if (sglProgramUniform1d)
6531  {
6532  sglProgramUniform1d(program, location, v0);
6533  ReportGLError("glProgramUniform1d");
6534  }
6535  else
6536  {
6537  ReportGLNullFunction("glProgramUniform1d");
6538  }
6539 }
6540 
6542 {
6544  {
6545  sglProgramUniform1dv(program, location, count, value);
6546  ReportGLError("glProgramUniform1dv");
6547  }
6548  else
6549  {
6550  ReportGLNullFunction("glProgramUniform1dv");
6551  }
6552 }
6553 
6555 {
6557  {
6558  sglProgramUniform1ui(program, location, v0);
6559  ReportGLError("glProgramUniform1ui");
6560  }
6561  else
6562  {
6563  ReportGLNullFunction("glProgramUniform1ui");
6564  }
6565 }
6566 
6568 {
6570  {
6571  sglProgramUniform1uiv(program, location, count, value);
6572  ReportGLError("glProgramUniform1uiv");
6573  }
6574  else
6575  {
6576  ReportGLNullFunction("glProgramUniform1uiv");
6577  }
6578 }
6579 
6581 {
6582  if (sglProgramUniform2i)
6583  {
6584  sglProgramUniform2i(program, location, v0, v1);
6585  ReportGLError("glProgramUniform2i");
6586  }
6587  else
6588  {
6589  ReportGLNullFunction("glProgramUniform2i");
6590  }
6591 }
6592 
6594 {
6596  {
6597  sglProgramUniform2iv(program, location, count, value);
6598  ReportGLError("glProgramUniform2iv");
6599  }
6600  else
6601  {
6602  ReportGLNullFunction("glProgramUniform2iv");
6603  }
6604 }
6605 
6607 {
6608  if (sglProgramUniform2f)
6609  {
6610  sglProgramUniform2f(program, location, v0, v1);
6611  ReportGLError("glProgramUniform2f");
6612  }
6613  else
6614  {
6615  ReportGLNullFunction("glProgramUniform2f");
6616  }
6617 }
6618 
6620 {
6622  {
6623  sglProgramUniform2fv(program, location, count, value);
6624  ReportGLError("glProgramUniform2fv");
6625  }
6626  else
6627  {
6628  ReportGLNullFunction("glProgramUniform2fv");
6629  }
6630 }
6631 
6633 {
6634  if (sglProgramUniform2d)
6635  {
6636  sglProgramUniform2d(program, location, v0, v1);
6637  ReportGLError("glProgramUniform2d");
6638  }
6639  else
6640  {
6641  ReportGLNullFunction("glProgramUniform2d");
6642  }
6643 }
6644 
6646 {
6648  {
6649  sglProgramUniform2dv(program, location, count, value);
6650  ReportGLError("glProgramUniform2dv");
6651  }
6652  else
6653  {
6654  ReportGLNullFunction("glProgramUniform2dv");
6655  }
6656 }
6657 
6659 {
6661  {
6662  sglProgramUniform2ui(program, location, v0, v1);
6663  ReportGLError("glProgramUniform2ui");
6664  }
6665  else
6666  {
6667  ReportGLNullFunction("glProgramUniform2ui");
6668  }
6669 }
6670 
6672 {
6674  {
6675  sglProgramUniform2uiv(program, location, count, value);
6676  ReportGLError("glProgramUniform2uiv");
6677  }
6678  else
6679  {
6680  ReportGLNullFunction("glProgramUniform2uiv");
6681  }
6682 }
6683 
6685 {
6686  if (sglProgramUniform3i)
6687  {
6688  sglProgramUniform3i(program, location, v0, v1, v2);
6689  ReportGLError("glProgramUniform3i");
6690  }
6691  else
6692  {
6693  ReportGLNullFunction("glProgramUniform3i");
6694  }
6695 }
6696 
6698 {
6700  {
6701  sglProgramUniform3iv(program, location, count, value);
6702  ReportGLError("glProgramUniform3iv");
6703  }
6704  else
6705  {
6706  ReportGLNullFunction("glProgramUniform3iv");
6707  }
6708 }
6709 
6711 {
6712  if (sglProgramUniform3f)
6713  {
6714  sglProgramUniform3f(program, location, v0, v1, v2);
6715  ReportGLError("glProgramUniform3f");
6716  }
6717  else
6718  {
6719  ReportGLNullFunction("glProgramUniform3f");
6720  }
6721 }
6722 
6724 {
6726  {
6727  sglProgramUniform3fv(program, location, count, value);
6728  ReportGLError("glProgramUniform3fv");
6729  }
6730  else
6731  {
6732  ReportGLNullFunction("glProgramUniform3fv");
6733  }
6734 }
6735 
6737 {
6738  if (sglProgramUniform3d)
6739  {
6740  sglProgramUniform3d(program, location, v0, v1, v2);
6741  ReportGLError("glProgramUniform3d");
6742  }
6743  else
6744  {
6745  ReportGLNullFunction("glProgramUniform3d");
6746  }
6747 }
6748 
6750 {
6752  {
6753  sglProgramUniform3dv(program, location, count, value);
6754  ReportGLError("glProgramUniform3dv");
6755  }
6756  else
6757  {
6758  ReportGLNullFunction("glProgramUniform3dv");
6759  }
6760 }
6761 
6763 {
6765  {
6766  sglProgramUniform3ui(program, location, v0, v1, v2);
6767  ReportGLError("glProgramUniform3ui");
6768  }
6769  else
6770  {
6771  ReportGLNullFunction("glProgramUniform3ui");
6772  }
6773 }
6774 
6776 {
6778  {
6779  sglProgramUniform3uiv(program, location, count, value);
6780  ReportGLError("glProgramUniform3uiv");
6781  }
6782  else
6783  {
6784  ReportGLNullFunction("glProgramUniform3uiv");
6785  }
6786 }
6787 
6789 {
6790  if (sglProgramUniform4i)
6791  {
6792  sglProgramUniform4i(program, location, v0, v1, v2, v3);
6793  ReportGLError("glProgramUniform4i");
6794  }
6795  else
6796  {
6797  ReportGLNullFunction("glProgramUniform4i");
6798  }
6799 }
6800 
6802 {
6804  {
6805  sglProgramUniform4iv(program, location, count, value);
6806  ReportGLError("glProgramUniform4iv");
6807  }
6808  else
6809  {
6810  ReportGLNullFunction("glProgramUniform4iv");
6811  }
6812 }
6813 
6815 {
6816  if (sglProgramUniform4f)
6817  {
6818  sglProgramUniform4f(program, location, v0, v1, v2, v3);
6819  ReportGLError("glProgramUniform4f");
6820  }
6821  else
6822  {
6823  ReportGLNullFunction("glProgramUniform4f");
6824  }
6825 }
6826 
6828 {
6830  {
6831  sglProgramUniform4fv(program, location, count, value);
6832  ReportGLError("glProgramUniform4fv");
6833  }
6834  else
6835  {
6836  ReportGLNullFunction("glProgramUniform4fv");
6837  }
6838 }
6839 
6841 {
6842  if (sglProgramUniform4d)
6843  {
6844  sglProgramUniform4d(program, location, v0, v1, v2, v3);
6845  ReportGLError("glProgramUniform4d");
6846  }
6847  else
6848  {
6849  ReportGLNullFunction("glProgramUniform4d");
6850  }
6851 }
6852 
6854 {
6856  {
6857  sglProgramUniform4dv(program, location, count, value);
6858  ReportGLError("glProgramUniform4dv");
6859  }
6860  else
6861  {
6862  ReportGLNullFunction("glProgramUniform4dv");
6863  }
6864 }
6865 
6867 {
6869  {
6870  sglProgramUniform4ui(program, location, v0, v1, v2, v3);
6871  ReportGLError("glProgramUniform4ui");
6872  }
6873  else
6874  {
6875  ReportGLNullFunction("glProgramUniform4ui");
6876  }
6877 }
6878 
6880 {
6882  {
6883  sglProgramUniform4uiv(program, location, count, value);
6884  ReportGLError("glProgramUniform4uiv");
6885  }
6886  else
6887  {
6888  ReportGLNullFunction("glProgramUniform4uiv");
6889  }
6890 }
6891 
6893 {
6895  {
6896  sglProgramUniformMatrix2fv(program, location, count, transpose, value);
6897  ReportGLError("glProgramUniformMatrix2fv");
6898  }
6899  else
6900  {
6901  ReportGLNullFunction("glProgramUniformMatrix2fv");
6902  }
6903 }
6904 
6906 {
6908  {
6909  sglProgramUniformMatrix3fv(program, location, count, transpose, value);
6910  ReportGLError("glProgramUniformMatrix3fv");
6911  }
6912  else
6913  {
6914  ReportGLNullFunction("glProgramUniformMatrix3fv");
6915  }
6916 }
6917 
6919 {
6921  {
6922  sglProgramUniformMatrix4fv(program, location, count, transpose, value);
6923  ReportGLError("glProgramUniformMatrix4fv");
6924  }
6925  else
6926  {
6927  ReportGLNullFunction("glProgramUniformMatrix4fv");
6928  }
6929 }
6930 
6932 {
6934  {
6935  sglProgramUniformMatrix2dv(program, location, count, transpose, value);
6936  ReportGLError("glProgramUniformMatrix2dv");
6937  }
6938  else
6939  {
6940  ReportGLNullFunction("glProgramUniformMatrix2dv");
6941  }
6942 }
6943 
6945 {
6947  {
6948  sglProgramUniformMatrix3dv(program, location, count, transpose, value);
6949  ReportGLError("glProgramUniformMatrix3dv");
6950  }
6951  else
6952  {
6953  ReportGLNullFunction("glProgramUniformMatrix3dv");
6954  }
6955 }
6956 
6958 {
6960  {
6961  sglProgramUniformMatrix4dv(program, location, count, transpose, value);
6962  ReportGLError("glProgramUniformMatrix4dv");
6963  }
6964  else
6965  {
6966  ReportGLNullFunction("glProgramUniformMatrix4dv");
6967  }
6968 }
6969 
6971 {
6973  {
6974  sglProgramUniformMatrix2x3fv(program, location, count, transpose, value);
6975  ReportGLError("glProgramUniformMatrix2x3fv");
6976  }
6977  else
6978  {
6979  ReportGLNullFunction("glProgramUniformMatrix2x3fv");
6980  }
6981 }
6982 
6984 {
6986  {
6987  sglProgramUniformMatrix3x2fv(program, location, count, transpose, value);
6988  ReportGLError("glProgramUniformMatrix3x2fv");
6989  }
6990  else
6991  {
6992  ReportGLNullFunction("glProgramUniformMatrix3x2fv");
6993  }
6994 }
6995 
6997 {
6999  {
7000  sglProgramUniformMatrix2x4fv(program, location, count, transpose, value);
7001  ReportGLError("glProgramUniformMatrix2x4fv");
7002  }
7003  else
7004  {
7005  ReportGLNullFunction("glProgramUniformMatrix2x4fv");
7006  }
7007 }
7008 
7010 {
7012  {
7013  sglProgramUniformMatrix4x2fv(program, location, count, transpose, value);
7014  ReportGLError("glProgramUniformMatrix4x2fv");
7015  }
7016  else
7017  {
7018  ReportGLNullFunction("glProgramUniformMatrix4x2fv");
7019  }
7020 }
7021 
7023 {
7025  {
7026  sglProgramUniformMatrix3x4fv(program, location, count, transpose, value);
7027  ReportGLError("glProgramUniformMatrix3x4fv");
7028  }
7029  else
7030  {
7031  ReportGLNullFunction("glProgramUniformMatrix3x4fv");
7032  }
7033 }
7034 
7036 {
7038  {
7039  sglProgramUniformMatrix4x3fv(program, location, count, transpose, value);
7040  ReportGLError("glProgramUniformMatrix4x3fv");
7041  }
7042  else
7043  {
7044  ReportGLNullFunction("glProgramUniformMatrix4x3fv");
7045  }
7046 }
7047 
7049 {
7051  {
7052  sglProgramUniformMatrix2x3dv(program, location, count, transpose, value);
7053  ReportGLError("glProgramUniformMatrix2x3dv");
7054  }
7055  else
7056  {
7057  ReportGLNullFunction("glProgramUniformMatrix2x3dv");
7058  }
7059 }
7060 
7062 {
7064  {
7065  sglProgramUniformMatrix3x2dv(program, location, count, transpose, value);
7066  ReportGLError("glProgramUniformMatrix3x2dv");
7067  }
7068  else
7069  {
7070  ReportGLNullFunction("glProgramUniformMatrix3x2dv");
7071  }
7072 }
7073 
7075 {
7077  {
7078  sglProgramUniformMatrix2x4dv(program, location, count, transpose, value);
7079  ReportGLError("glProgramUniformMatrix2x4dv");
7080  }
7081  else
7082  {
7083  ReportGLNullFunction("glProgramUniformMatrix2x4dv");
7084  }
7085 }
7086 
7088 {
7090  {
7091  sglProgramUniformMatrix4x2dv(program, location, count, transpose, value);
7092  ReportGLError("glProgramUniformMatrix4x2dv");
7093  }
7094  else
7095  {
7096  ReportGLNullFunction("glProgramUniformMatrix4x2dv");
7097  }
7098 }
7099 
7101 {
7103  {
7104  sglProgramUniformMatrix3x4dv(program, location, count, transpose, value);
7105  ReportGLError("glProgramUniformMatrix3x4dv");
7106  }
7107  else
7108  {
7109  ReportGLNullFunction("glProgramUniformMatrix3x4dv");
7110  }
7111 }
7112 
7114 {
7116  {
7117  sglProgramUniformMatrix4x3dv(program, location, count, transpose, value);
7118  ReportGLError("glProgramUniformMatrix4x3dv");
7119  }
7120  else
7121  {
7122  ReportGLNullFunction("glProgramUniformMatrix4x3dv");
7123  }
7124 }
7125 
7127 {
7129  {
7130  sglValidateProgramPipeline(pipeline);
7131  ReportGLError("glValidateProgramPipeline");
7132  }
7133  else
7134  {
7135  ReportGLNullFunction("glValidateProgramPipeline");
7136  }
7137 }
7138 
7140 {
7142  {
7143  sglGetProgramPipelineInfoLog(pipeline, bufSize, length, infoLog);
7144  ReportGLError("glGetProgramPipelineInfoLog");
7145  }
7146  else
7147  {
7148  ReportGLNullFunction("glGetProgramPipelineInfoLog");
7149  }
7150 }
7151 
7153 {
7154  if (sglVertexAttribL1d)
7155  {
7156  sglVertexAttribL1d(index, x);
7157  ReportGLError("glVertexAttribL1d");
7158  }
7159  else
7160  {
7161  ReportGLNullFunction("glVertexAttribL1d");
7162  }
7163 }
7164 
7166 {
7167  if (sglVertexAttribL2d)
7168  {
7169  sglVertexAttribL2d(index, x, y);
7170  ReportGLError("glVertexAttribL2d");
7171  }
7172  else
7173  {
7174  ReportGLNullFunction("glVertexAttribL2d");
7175  }
7176 }
7177 
7179 {
7180  if (sglVertexAttribL3d)
7181  {
7182  sglVertexAttribL3d(index, x, y, z);
7183  ReportGLError("glVertexAttribL3d");
7184  }
7185  else
7186  {
7187  ReportGLNullFunction("glVertexAttribL3d");
7188  }
7189 }
7190 
7192 {
7193  if (sglVertexAttribL4d)
7194  {
7195  sglVertexAttribL4d(index, x, y, z, w);
7196  ReportGLError("glVertexAttribL4d");
7197  }
7198  else
7199  {
7200  ReportGLNullFunction("glVertexAttribL4d");
7201  }
7202 }
7203 
7205 {
7206  if (sglVertexAttribL1dv)
7207  {
7208  sglVertexAttribL1dv(index, v);
7209  ReportGLError("glVertexAttribL1dv");
7210  }
7211  else
7212  {
7213  ReportGLNullFunction("glVertexAttribL1dv");
7214  }
7215 }
7216 
7218 {
7219  if (sglVertexAttribL2dv)
7220  {
7221  sglVertexAttribL2dv(index, v);
7222  ReportGLError("glVertexAttribL2dv");
7223  }
7224  else
7225  {
7226  ReportGLNullFunction("glVertexAttribL2dv");
7227  }
7228 }
7229 
7231 {
7232  if (sglVertexAttribL3dv)
7233  {
7234  sglVertexAttribL3dv(index, v);
7235  ReportGLError("glVertexAttribL3dv");
7236  }
7237  else
7238  {
7239  ReportGLNullFunction("glVertexAttribL3dv");
7240  }
7241 }
7242 
7244 {
7245  if (sglVertexAttribL4dv)
7246  {
7247  sglVertexAttribL4dv(index, v);
7248  ReportGLError("glVertexAttribL4dv");
7249  }
7250  else
7251  {
7252  ReportGLNullFunction("glVertexAttribL4dv");
7253  }
7254 }
7255 
7257 {
7259  {
7260  sglVertexAttribLPointer(index, size, type, stride, pointer);
7261  ReportGLError("glVertexAttribLPointer");
7262  }
7263  else
7264  {
7265  ReportGLNullFunction("glVertexAttribLPointer");
7266  }
7267 }
7268 
7270 {
7272  {
7273  sglGetVertexAttribLdv(index, pname, params);
7274  ReportGLError("glGetVertexAttribLdv");
7275  }
7276  else
7277  {
7278  ReportGLNullFunction("glGetVertexAttribLdv");
7279  }
7280 }
7281 
7283 {
7284  if (sglViewportArrayv)
7285  {
7286  sglViewportArrayv(first, count, v);
7287  ReportGLError("glViewportArrayv");
7288  }
7289  else
7290  {
7291  ReportGLNullFunction("glViewportArrayv");
7292  }
7293 }
7294 
7296 {
7297  if (sglViewportIndexedf)
7298  {
7299  sglViewportIndexedf(index, x, y, w, h);
7300  ReportGLError("glViewportIndexedf");
7301  }
7302  else
7303  {
7304  ReportGLNullFunction("glViewportIndexedf");
7305  }
7306 }
7307 
7309 {
7311  {
7312  sglViewportIndexedfv(index, v);
7313  ReportGLError("glViewportIndexedfv");
7314  }
7315  else
7316  {
7317  ReportGLNullFunction("glViewportIndexedfv");
7318  }
7319 }
7320 
7322 {
7323  if (sglScissorArrayv)
7324  {
7325  sglScissorArrayv(first, count, v);
7326  ReportGLError("glScissorArrayv");
7327  }
7328  else
7329  {
7330  ReportGLNullFunction("glScissorArrayv");
7331  }
7332 }
7333 
7335 {
7336  if (sglScissorIndexed)
7337  {
7338  sglScissorIndexed(index, left, bottom, width, height);
7339  ReportGLError("glScissorIndexed");
7340  }
7341  else
7342  {
7343  ReportGLNullFunction("glScissorIndexed");
7344  }
7345 }
7346 
7348 {
7349  if (sglScissorIndexedv)
7350  {
7351  sglScissorIndexedv(index, v);
7352  ReportGLError("glScissorIndexedv");
7353  }
7354  else
7355  {
7356  ReportGLNullFunction("glScissorIndexedv");
7357  }
7358 }
7359 
7361 {
7362  if (sglDepthRangeArrayv)
7363  {
7364  sglDepthRangeArrayv(first, count, v);
7365  ReportGLError("glDepthRangeArrayv");
7366  }
7367  else
7368  {
7369  ReportGLNullFunction("glDepthRangeArrayv");
7370  }
7371 }
7372 
7374 {
7376  {
7377  sglDepthRangeIndexed(index, n, f);
7378  ReportGLError("glDepthRangeIndexed");
7379  }
7380  else
7381  {
7382  ReportGLNullFunction("glDepthRangeIndexed");
7383  }
7384 }
7385 
7387 {
7388  if (sglGetFloati_v)
7389  {
7390  sglGetFloati_v(target, index, data);
7391  ReportGLError("glGetFloati_v");
7392  }
7393  else
7394  {
7395  ReportGLNullFunction("glGetFloati_v");
7396  }
7397 }
7398 
7400 {
7401  if (sglGetDoublei_v)
7402  {
7403  sglGetDoublei_v(target, index, data);
7404  ReportGLError("glGetDoublei_v");
7405  }
7406  else
7407  {
7408  ReportGLNullFunction("glGetDoublei_v");
7409  }
7410 }
7411 
7413 {
7415  {
7416  GetOpenGLFunction("glReleaseShaderCompiler", sglReleaseShaderCompiler);
7417  GetOpenGLFunction("glShaderBinary", sglShaderBinary);
7418  GetOpenGLFunction("glGetShaderPrecisionFormat", sglGetShaderPrecisionFormat);
7419  GetOpenGLFunction("glDepthRangef", sglDepthRangef);
7420  GetOpenGLFunction("glClearDepthf", sglClearDepthf);
7421  GetOpenGLFunction("glGetProgramBinary", sglGetProgramBinary);
7422  GetOpenGLFunction("glProgramBinary", sglProgramBinary);
7423  GetOpenGLFunction("glProgramParameteri", sglProgramParameteri);
7424  GetOpenGLFunction("glUseProgramStages", sglUseProgramStages);
7425  GetOpenGLFunction("glActiveShaderProgram", sglActiveShaderProgram);
7426  GetOpenGLFunction("glCreateShaderProgramv", sglCreateShaderProgramv);
7427  GetOpenGLFunction("glBindProgramPipeline", sglBindProgramPipeline);
7428  GetOpenGLFunction("glDeleteProgramPipelines", sglDeleteProgramPipelines);
7429  GetOpenGLFunction("glGenProgramPipelines", sglGenProgramPipelines);
7430  GetOpenGLFunction("glIsProgramPipeline", sglIsProgramPipeline);
7431  GetOpenGLFunction("glGetProgramPipelineiv", sglGetProgramPipelineiv);
7432  GetOpenGLFunction("glProgramUniform1i", sglProgramUniform1i);
7433  GetOpenGLFunction("glProgramUniform1iv", sglProgramUniform1iv);
7434  GetOpenGLFunction("glProgramUniform1f", sglProgramUniform1f);
7435  GetOpenGLFunction("glProgramUniform1fv", sglProgramUniform1fv);
7436  GetOpenGLFunction("glProgramUniform1d", sglProgramUniform1d);
7437  GetOpenGLFunction("glProgramUniform1dv", sglProgramUniform1dv);
7438  GetOpenGLFunction("glProgramUniform1ui", sglProgramUniform1ui);
7439  GetOpenGLFunction("glProgramUniform1uiv", sglProgramUniform1uiv);
7440  GetOpenGLFunction("glProgramUniform2i", sglProgramUniform2i);
7441  GetOpenGLFunction("glProgramUniform2iv", sglProgramUniform2iv);
7442  GetOpenGLFunction("glProgramUniform2f", sglProgramUniform2f);
7443  GetOpenGLFunction("glProgramUniform2fv", sglProgramUniform2fv);
7444  GetOpenGLFunction("glProgramUniform2d", sglProgramUniform2d);
7445  GetOpenGLFunction("glProgramUniform2dv", sglProgramUniform2dv);
7446  GetOpenGLFunction("glProgramUniform2ui", sglProgramUniform2ui);
7447  GetOpenGLFunction("glProgramUniform2uiv", sglProgramUniform2uiv);
7448  GetOpenGLFunction("glProgramUniform3i", sglProgramUniform3i);
7449  GetOpenGLFunction("glProgramUniform3iv", sglProgramUniform3iv);
7450  GetOpenGLFunction("glProgramUniform3f", sglProgramUniform3f);
7451  GetOpenGLFunction("glProgramUniform3fv", sglProgramUniform3fv);
7452  GetOpenGLFunction("glProgramUniform3d", sglProgramUniform3d);
7453  GetOpenGLFunction("glProgramUniform3dv", sglProgramUniform3dv);
7454  GetOpenGLFunction("glProgramUniform3ui", sglProgramUniform3ui);
7455  GetOpenGLFunction("glProgramUniform3uiv", sglProgramUniform3uiv);
7456  GetOpenGLFunction("glProgramUniform4i", sglProgramUniform4i);
7457  GetOpenGLFunction("glProgramUniform4iv", sglProgramUniform4iv);
7458  GetOpenGLFunction("glProgramUniform4f", sglProgramUniform4f);
7459  GetOpenGLFunction("glProgramUniform4fv", sglProgramUniform4fv);
7460  GetOpenGLFunction("glProgramUniform4d", sglProgramUniform4d);
7461  GetOpenGLFunction("glProgramUniform4dv", sglProgramUniform4dv);
7462  GetOpenGLFunction("glProgramUniform4ui", sglProgramUniform4ui);
7463  GetOpenGLFunction("glProgramUniform4uiv", sglProgramUniform4uiv);
7464  GetOpenGLFunction("glProgramUniformMatrix2fv", sglProgramUniformMatrix2fv);
7465  GetOpenGLFunction("glProgramUniformMatrix3fv", sglProgramUniformMatrix3fv);
7466  GetOpenGLFunction("glProgramUniformMatrix4fv", sglProgramUniformMatrix4fv);
7467  GetOpenGLFunction("glProgramUniformMatrix2dv", sglProgramUniformMatrix2dv);
7468  GetOpenGLFunction("glProgramUniformMatrix3dv", sglProgramUniformMatrix3dv);
7469  GetOpenGLFunction("glProgramUniformMatrix4dv", sglProgramUniformMatrix4dv);
7470  GetOpenGLFunction("glProgramUniformMatrix2x3fv", sglProgramUniformMatrix2x3fv);
7471  GetOpenGLFunction("glProgramUniformMatrix3x2fv", sglProgramUniformMatrix3x2fv);
7472  GetOpenGLFunction("glProgramUniformMatrix2x4fv", sglProgramUniformMatrix2x4fv);
7473  GetOpenGLFunction("glProgramUniformMatrix4x2fv", sglProgramUniformMatrix4x2fv);
7474  GetOpenGLFunction("glProgramUniformMatrix3x4fv", sglProgramUniformMatrix3x4fv);
7475  GetOpenGLFunction("glProgramUniformMatrix4x3fv", sglProgramUniformMatrix4x3fv);
7476  GetOpenGLFunction("glProgramUniformMatrix2x3dv", sglProgramUniformMatrix2x3dv);
7477  GetOpenGLFunction("glProgramUniformMatrix3x2dv", sglProgramUniformMatrix3x2dv);
7478  GetOpenGLFunction("glProgramUniformMatrix2x4dv", sglProgramUniformMatrix2x4dv);
7479  GetOpenGLFunction("glProgramUniformMatrix4x2dv", sglProgramUniformMatrix4x2dv);
7480  GetOpenGLFunction("glProgramUniformMatrix3x4dv", sglProgramUniformMatrix3x4dv);
7481  GetOpenGLFunction("glProgramUniformMatrix4x3dv", sglProgramUniformMatrix4x3dv);
7482  GetOpenGLFunction("glValidateProgramPipeline", sglValidateProgramPipeline);
7483  GetOpenGLFunction("glGetProgramPipelineInfoLog", sglGetProgramPipelineInfoLog);
7484  GetOpenGLFunction("glVertexAttribL1d", sglVertexAttribL1d);
7485  GetOpenGLFunction("glVertexAttribL2d", sglVertexAttribL2d);
7486  GetOpenGLFunction("glVertexAttribL3d", sglVertexAttribL3d);
7487  GetOpenGLFunction("glVertexAttribL4d", sglVertexAttribL4d);
7488  GetOpenGLFunction("glVertexAttribL1dv", sglVertexAttribL1dv);
7489  GetOpenGLFunction("glVertexAttribL2dv", sglVertexAttribL2dv);
7490  GetOpenGLFunction("glVertexAttribL3dv", sglVertexAttribL3dv);
7491  GetOpenGLFunction("glVertexAttribL4dv", sglVertexAttribL4dv);
7492  GetOpenGLFunction("glVertexAttribLPointer", sglVertexAttribLPointer);
7493  GetOpenGLFunction("glGetVertexAttribLdv", sglGetVertexAttribLdv);
7494  GetOpenGLFunction("glViewportArrayv", sglViewportArrayv);
7495  GetOpenGLFunction("glViewportIndexedf", sglViewportIndexedf);
7496  GetOpenGLFunction("glViewportIndexedfv", sglViewportIndexedfv);
7497  GetOpenGLFunction("glScissorArrayv", sglScissorArrayv);
7498  GetOpenGLFunction("glScissorIndexed", sglScissorIndexed);
7499  GetOpenGLFunction("glScissorIndexedv", sglScissorIndexedv);
7500  GetOpenGLFunction("glDepthRangeArrayv", sglDepthRangeArrayv);
7501  GetOpenGLFunction("glDepthRangeIndexed", sglDepthRangeIndexed);
7502  GetOpenGLFunction("glGetFloati_v", sglGetFloati_v);
7503  GetOpenGLFunction("glGetDoublei_v", sglGetDoublei_v);
7504  }
7505 }
7506 
7507 // GL_VERSION_4_2
7508 
7509 static PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC sglDrawArraysInstancedBaseInstance = nullptr;
7510 static PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC sglDrawElementsInstancedBaseInstance = nullptr;
7511 static PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC sglDrawElementsInstancedBaseVertexBaseInstance = nullptr;
7512 static PFNGLGETINTERNALFORMATIVPROC sglGetInternalformativ = nullptr;
7513 static PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC sglGetActiveAtomicCounterBufferiv = nullptr;
7514 static PFNGLBINDIMAGETEXTUREPROC sglBindImageTexture = nullptr;
7515 static PFNGLMEMORYBARRIERPROC sglMemoryBarrier = nullptr;
7516 static PFNGLTEXSTORAGE1DPROC sglTexStorage1D = nullptr;
7517 static PFNGLTEXSTORAGE2DPROC sglTexStorage2D = nullptr;
7518 static PFNGLTEXSTORAGE3DPROC sglTexStorage3D = nullptr;
7519 static PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC sglDrawTransformFeedbackInstanced = nullptr;
7520 static PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC sglDrawTransformFeedbackStreamInstanced = nullptr;
7521 
7523 {
7525  {
7526  sglDrawArraysInstancedBaseInstance(mode, first, count, instancecount, baseinstance);
7527  ReportGLError("glDrawArraysInstancedBaseInstance");
7528  }
7529  else
7530  {
7531  ReportGLNullFunction("glDrawArraysInstancedBaseInstance");
7532  }
7533 }
7534 
7536 {
7538  {
7539  sglDrawElementsInstancedBaseInstance(mode, count, type, indices, instancecount, baseinstance);
7540  ReportGLError("glDrawElementsInstancedBaseInstance");
7541  }
7542  else
7543  {
7544  ReportGLNullFunction("glDrawElementsInstancedBaseInstance");
7545  }
7546 }
7547 
7549 {
7551  {
7552  sglDrawElementsInstancedBaseVertexBaseInstance(mode, count, type, indices, instancecount, basevertex, baseinstance);
7553  ReportGLError("glDrawElementsInstancedBaseVertexBaseInstance");
7554  }
7555  else
7556  {
7557  ReportGLNullFunction("glDrawElementsInstancedBaseVertexBaseInstance");
7558  }
7559 }
7560 
7562 {
7564  {
7565  sglGetInternalformativ(target, internalformat, pname, bufSize, params);
7566  ReportGLError("glGetInternalformativ");
7567  }
7568  else
7569  {
7570  ReportGLNullFunction("glGetInternalformativ");
7571  }
7572 }
7573 
7575 {
7577  {
7578  sglGetActiveAtomicCounterBufferiv(program, bufferIndex, pname, params);
7579  ReportGLError("glGetActiveAtomicCounterBufferiv");
7580  }
7581  else
7582  {
7583  ReportGLNullFunction("glGetActiveAtomicCounterBufferiv");
7584  }
7585 }
7586 
7588 {
7589  if (sglBindImageTexture)
7590  {
7591  sglBindImageTexture(unit, texture, level, layered, layer, access, format);
7592  ReportGLError("glBindImageTexture");
7593  }
7594  else
7595  {
7596  ReportGLNullFunction("glBindImageTexture");
7597  }
7598 }
7599 
7601 {
7602  if (sglMemoryBarrier)
7603  {
7604  sglMemoryBarrier(barriers);
7605  ReportGLError("glMemoryBarrier");
7606  }
7607  else
7608  {
7609  ReportGLNullFunction("glMemoryBarrier");
7610  }
7611 }
7612 
7614 {
7615  if (sglTexStorage1D)
7616  {
7617  sglTexStorage1D(target, levels, internalformat, width);
7618  ReportGLError("glTexStorage1D");
7619  }
7620  else
7621  {
7622  ReportGLNullFunction("glTexStorage1D");
7623  }
7624 }
7625 
7627 {
7628  if (sglTexStorage2D)
7629  {
7630  sglTexStorage2D(target, levels, internalformat, width, height);
7631  ReportGLError("glTexStorage2D");
7632  }
7633  else
7634  {
7635  ReportGLNullFunction("glTexStorage2D");
7636  }
7637 }
7638 
7640 {
7641  if (sglTexStorage3D)
7642  {
7643  sglTexStorage3D(target, levels, internalformat, width, height, depth);
7644  ReportGLError("glTexStorage3D");
7645  }
7646  else
7647  {
7648  ReportGLNullFunction("glTexStorage3D");
7649  }
7650 }
7651 
7653 {
7655  {
7656  sglDrawTransformFeedbackInstanced(mode, id, instancecount);
7657  ReportGLError("glDrawTransformFeedbackInstanced");
7658  }
7659  else
7660  {
7661  ReportGLNullFunction("glDrawTransformFeedbackInstanced");
7662  }
7663 }
7664 
7666 {
7668  {
7669  sglDrawTransformFeedbackStreamInstanced(mode, id, stream, instancecount);
7670  ReportGLError("glDrawTransformFeedbackStreamInstanced");
7671  }
7672  else
7673  {
7674  ReportGLNullFunction("glDrawTransformFeedbackStreamInstanced");
7675  }
7676 }
7677 
7679 {
7681  {
7682  GetOpenGLFunction("glDrawArraysInstancedBaseInstance", sglDrawArraysInstancedBaseInstance);
7683  GetOpenGLFunction("glDrawElementsInstancedBaseInstance", sglDrawElementsInstancedBaseInstance);
7684  GetOpenGLFunction("glDrawElementsInstancedBaseVertexBaseInstance", sglDrawElementsInstancedBaseVertexBaseInstance);
7685  GetOpenGLFunction("glGetInternalformativ", sglGetInternalformativ);
7686  GetOpenGLFunction("glGetActiveAtomicCounterBufferiv", sglGetActiveAtomicCounterBufferiv);
7687  GetOpenGLFunction("glBindImageTexture", sglBindImageTexture);
7688  GetOpenGLFunction("glMemoryBarrier", sglMemoryBarrier);
7689  GetOpenGLFunction("glTexStorage1D", sglTexStorage1D);
7690  GetOpenGLFunction("glTexStorage2D", sglTexStorage2D);
7691  GetOpenGLFunction("glTexStorage3D", sglTexStorage3D);
7692  GetOpenGLFunction("glDrawTransformFeedbackInstanced", sglDrawTransformFeedbackInstanced);
7693  GetOpenGLFunction("glDrawTransformFeedbackStreamInstanced", sglDrawTransformFeedbackStreamInstanced);
7694  }
7695 }
7696 
7697 // GL_VERSION_4_3
7698 
7699 static PFNGLCLEARBUFFERDATAPROC sglClearBufferData = nullptr;
7700 static PFNGLCLEARBUFFERSUBDATAPROC sglClearBufferSubData = nullptr;
7701 static PFNGLDISPATCHCOMPUTEPROC sglDispatchCompute = nullptr;
7702 static PFNGLDISPATCHCOMPUTEINDIRECTPROC sglDispatchComputeIndirect = nullptr;
7703 static PFNGLCOPYIMAGESUBDATAPROC sglCopyImageSubData = nullptr;
7704 static PFNGLFRAMEBUFFERPARAMETERIPROC sglFramebufferParameteri = nullptr;
7705 static PFNGLGETFRAMEBUFFERPARAMETERIVPROC sglGetFramebufferParameteriv = nullptr;
7706 static PFNGLGETINTERNALFORMATI64VPROC sglGetInternalformati64v = nullptr;
7707 static PFNGLINVALIDATETEXSUBIMAGEPROC sglInvalidateTexSubImage = nullptr;
7708 static PFNGLINVALIDATETEXIMAGEPROC sglInvalidateTexImage = nullptr;
7709 static PFNGLINVALIDATEBUFFERSUBDATAPROC sglInvalidateBufferSubData = nullptr;
7710 static PFNGLINVALIDATEBUFFERDATAPROC sglInvalidateBufferData = nullptr;
7711 static PFNGLINVALIDATEFRAMEBUFFERPROC sglInvalidateFramebuffer = nullptr;
7712 static PFNGLINVALIDATESUBFRAMEBUFFERPROC sglInvalidateSubFramebuffer = nullptr;
7713 static PFNGLMULTIDRAWARRAYSINDIRECTPROC sglMultiDrawArraysIndirect = nullptr;
7714 static PFNGLMULTIDRAWELEMENTSINDIRECTPROC sglMultiDrawElementsIndirect = nullptr;
7715 static PFNGLGETPROGRAMINTERFACEIVPROC sglGetProgramInterfaceiv = nullptr;
7716 static PFNGLGETPROGRAMRESOURCEINDEXPROC sglGetProgramResourceIndex = nullptr;
7717 static PFNGLGETPROGRAMRESOURCENAMEPROC sglGetProgramResourceName = nullptr;
7718 static PFNGLGETPROGRAMRESOURCEIVPROC sglGetProgramResourceiv = nullptr;
7719 static PFNGLGETPROGRAMRESOURCELOCATIONPROC sglGetProgramResourceLocation = nullptr;
7720 static PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC sglGetProgramResourceLocationIndex = nullptr;
7721 static PFNGLSHADERSTORAGEBLOCKBINDINGPROC sglShaderStorageBlockBinding = nullptr;
7722 static PFNGLTEXBUFFERRANGEPROC sglTexBufferRange = nullptr;
7723 static PFNGLTEXSTORAGE2DMULTISAMPLEPROC sglTexStorage2DMultisample = nullptr;
7724 static PFNGLTEXSTORAGE3DMULTISAMPLEPROC sglTexStorage3DMultisample = nullptr;
7725 static PFNGLTEXTUREVIEWPROC sglTextureView = nullptr;
7726 static PFNGLBINDVERTEXBUFFERPROC sglBindVertexBuffer = nullptr;
7727 static PFNGLVERTEXATTRIBFORMATPROC sglVertexAttribFormat = nullptr;
7728 static PFNGLVERTEXATTRIBIFORMATPROC sglVertexAttribIFormat = nullptr;
7729 static PFNGLVERTEXATTRIBLFORMATPROC sglVertexAttribLFormat = nullptr;
7730 static PFNGLVERTEXATTRIBBINDINGPROC sglVertexAttribBinding = nullptr;
7731 static PFNGLVERTEXBINDINGDIVISORPROC sglVertexBindingDivisor = nullptr;
7732 static PFNGLDEBUGMESSAGECONTROLPROC sglDebugMessageControl = nullptr;
7733 static PFNGLDEBUGMESSAGEINSERTPROC sglDebugMessageInsert = nullptr;
7734 static PFNGLDEBUGMESSAGECALLBACKPROC sglDebugMessageCallback = nullptr;
7735 static PFNGLGETDEBUGMESSAGELOGPROC sglGetDebugMessageLog = nullptr;
7736 static PFNGLPUSHDEBUGGROUPPROC sglPushDebugGroup = nullptr;
7737 static PFNGLPOPDEBUGGROUPPROC sglPopDebugGroup = nullptr;
7738 static PFNGLOBJECTLABELPROC sglObjectLabel = nullptr;
7739 static PFNGLGETOBJECTLABELPROC sglGetObjectLabel = nullptr;
7740 static PFNGLOBJECTPTRLABELPROC sglObjectPtrLabel = nullptr;
7741 static PFNGLGETOBJECTPTRLABELPROC sglGetObjectPtrLabel = nullptr;
7742 
7744 {
7745  if (sglClearBufferData)
7746  {
7747  sglClearBufferData(target, internalformat, format, type, data);
7748  ReportGLError("glClearBufferData");
7749  }
7750  else
7751  {
7752  ReportGLNullFunction("glClearBufferData");
7753  }
7754 }
7755 
7757 {
7759  {
7760  sglClearBufferSubData(target, internalformat, offset, size, format, type, data);
7761  ReportGLError("glClearBufferSubData");
7762  }
7763  else
7764  {
7765  ReportGLNullFunction("glClearBufferSubData");
7766  }
7767 }
7768 
7770 {
7771  if (sglDispatchCompute)
7772  {
7773  sglDispatchCompute(num_groups_x, num_groups_y, num_groups_z);
7774  ReportGLError("glDispatchCompute");
7775  }
7776  else
7777  {
7778  ReportGLNullFunction("glDispatchCompute");
7779  }
7780 }
7781 
7783 {
7785  {
7786  sglDispatchComputeIndirect(indirect);
7787  ReportGLError("glDispatchComputeIndirect");
7788  }
7789  else
7790  {
7791  ReportGLNullFunction("glDispatchComputeIndirect");
7792  }
7793 }
7794 
7796 {
7797  if (sglCopyImageSubData)
7798  {
7799  sglCopyImageSubData(srcName, srcTarget, srcLevel, srcX, srcY, srcZ, dstName, dstTarget, dstLevel, dstX, dstY, dstZ, srcWidth, srcHeight, srcDepth);
7800  ReportGLError("glCopyImageSubData");
7801  }
7802  else
7803  {
7804  ReportGLNullFunction("glCopyImageSubData");
7805  }
7806 }
7807 
7809 {
7811  {
7812  sglFramebufferParameteri(target, pname, param);
7813  ReportGLError("glFramebufferParameteri");
7814  }
7815  else
7816  {
7817  ReportGLNullFunction("glFramebufferParameteri");
7818  }
7819 }
7820 
7822 {
7824  {
7825  sglGetFramebufferParameteriv(target, pname, params);
7826  ReportGLError("glGetFramebufferParameteriv");
7827  }
7828  else
7829  {
7830  ReportGLNullFunction("glGetFramebufferParameteriv");
7831  }
7832 }
7833 
7835 {
7837  {
7838  sglGetInternalformati64v(target, internalformat, pname, bufSize, params);
7839  ReportGLError("glGetInternalformati64v");
7840  }
7841  else
7842  {
7843  ReportGLNullFunction("glGetInternalformati64v");
7844  }
7845 }
7846 
7848 {
7850  {
7851  sglInvalidateTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth);
7852  ReportGLError("glInvalidateTexSubImage");
7853  }
7854  else
7855  {
7856  ReportGLNullFunction("glInvalidateTexSubImage");
7857  }
7858 }
7859 
7861 {
7863  {
7864  sglInvalidateTexImage(texture, level);
7865  ReportGLError("glInvalidateTexImage");
7866  }
7867  else
7868  {
7869  ReportGLNullFunction("glInvalidateTexImage");
7870  }
7871 }
7872 
7874 {
7876  {
7877  sglInvalidateBufferSubData(buffer, offset, length);
7878  ReportGLError("glInvalidateBufferSubData");
7879  }
7880  else
7881  {
7882  ReportGLNullFunction("glInvalidateBufferSubData");
7883  }
7884 }
7885 
7887 {
7889  {
7890  sglInvalidateBufferData(buffer);
7891  ReportGLError("glInvalidateBufferData");
7892  }
7893  else
7894  {
7895  ReportGLNullFunction("glInvalidateBufferData");
7896  }
7897 }
7898 
7900 {
7902  {
7903  sglInvalidateFramebuffer(target, numAttachments, attachments);
7904  ReportGLError("glInvalidateFramebuffer");
7905  }
7906  else
7907  {
7908  ReportGLNullFunction("glInvalidateFramebuffer");
7909  }
7910 }
7911 
7913 {
7915  {
7916  sglInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
7917  ReportGLError("glInvalidateSubFramebuffer");
7918  }
7919  else
7920  {
7921  ReportGLNullFunction("glInvalidateSubFramebuffer");
7922  }
7923 }
7924 
7926 {
7928  {
7929  sglMultiDrawArraysIndirect(mode, indirect, drawcount, stride);
7930  ReportGLError("glMultiDrawArraysIndirect");
7931  }
7932  else
7933  {
7934  ReportGLNullFunction("glMultiDrawArraysIndirect");
7935  }
7936 }
7937 
7939 {
7941  {
7942  sglMultiDrawElementsIndirect(mode, type, indirect, drawcount, stride);
7943  ReportGLError("glMultiDrawElementsIndirect");
7944  }
7945  else
7946  {
7947  ReportGLNullFunction("glMultiDrawElementsIndirect");
7948  }
7949 }
7950 
7952 {
7954  {
7955  sglGetProgramInterfaceiv(program, programInterface, pname, params);
7956  ReportGLError("glGetProgramInterfaceiv");
7957  }
7958  else
7959  {
7960  ReportGLNullFunction("glGetProgramInterfaceiv");
7961  }
7962 }
7963 
7965 {
7966  GLuint result;
7968  {
7969  result = sglGetProgramResourceIndex(program, programInterface, name);
7970  ReportGLError("glGetProgramResourceIndex");
7971  }
7972  else
7973  {
7974  ReportGLNullFunction("glGetProgramResourceIndex");
7975  result = 0;
7976  }
7977  return result;
7978 }
7979 
7981 {
7983  {
7984  sglGetProgramResourceName(program, programInterface, index, bufSize, length, name);
7985  ReportGLError("glGetProgramResourceName");
7986  }
7987  else
7988  {
7989  ReportGLNullFunction("glGetProgramResourceName");
7990  }
7991 }
7992 
7994 {
7996  {
7997  sglGetProgramResourceiv(program, programInterface, index, propCount, props, bufSize, length, params);
7998  ReportGLError("glGetProgramResourceiv");
7999  }
8000  else
8001  {
8002  ReportGLNullFunction("glGetProgramResourceiv");
8003  }
8004 }
8005 
8007 {
8008  GLint result;
8010  {
8011  result = sglGetProgramResourceLocation(program, programInterface, name);
8012  ReportGLError("glGetProgramResourceLocation");
8013  }
8014  else
8015  {
8016  ReportGLNullFunction("glGetProgramResourceLocation");
8017  result = 0;
8018  }
8019  return result;
8020 }
8021 
8023 {
8024  GLint result;
8026  {
8027  result = sglGetProgramResourceLocationIndex(program, programInterface, name);
8028  ReportGLError("glGetProgramResourceLocationIndex");
8029  }
8030  else
8031  {
8032  ReportGLNullFunction("glGetProgramResourceLocationIndex");
8033  result = 0;
8034  }
8035  return result;
8036 }
8037 
8039 {
8041  {
8042  sglShaderStorageBlockBinding(program, storageBlockIndex, storageBlockBinding);
8043  ReportGLError("glShaderStorageBlockBinding");
8044  }
8045  else
8046  {
8047  ReportGLNullFunction("glShaderStorageBlockBinding");
8048  }
8049 }
8050 
8052 {
8053  if (sglTexBufferRange)
8054  {
8055  sglTexBufferRange(target, internalformat, buffer, offset, size);
8056  ReportGLError("glTexBufferRange");
8057  }
8058  else
8059  {
8060  ReportGLNullFunction("glTexBufferRange");
8061  }
8062 }
8063 
8065 {
8067  {
8068  sglTexStorage2DMultisample(target, samples, internalformat, width, height, fixedsamplelocations);
8069  ReportGLError("glTexStorage2DMultisample");
8070  }
8071  else
8072  {
8073  ReportGLNullFunction("glTexStorage2DMultisample");
8074  }
8075 }
8076 
8078 {
8080  {
8081  sglTexStorage3DMultisample(target, samples, internalformat, width, height, depth, fixedsamplelocations);
8082  ReportGLError("glTexStorage3DMultisample");
8083  }
8084  else
8085  {
8086  ReportGLNullFunction("glTexStorage3DMultisample");
8087  }
8088 }
8089 
8091 {
8092  if (sglTextureView)
8093  {
8094  sglTextureView(texture, target, origtexture, internalformat, minlevel, numlevels, minlayer, numlayers);
8095  ReportGLError("glTextureView");
8096  }
8097  else
8098  {
8099  ReportGLNullFunction("glTextureView");
8100  }
8101 }
8102 
8104 {
8105  if (sglBindVertexBuffer)
8106  {
8107  sglBindVertexBuffer(bindingindex, buffer, offset, stride);
8108  ReportGLError("glBindVertexBuffer");
8109  }
8110  else
8111  {
8112  ReportGLNullFunction("glBindVertexBuffer");
8113  }
8114 }
8115 
8117 {
8119  {
8120  sglVertexAttribFormat(attribindex, size, type, normalized, relativeoffset);
8121  ReportGLError("glVertexAttribFormat");
8122  }
8123  else
8124  {
8125  ReportGLNullFunction("glVertexAttribFormat");
8126  }
8127 }
8128 
8130 {
8132  {
8133  sglVertexAttribIFormat(attribindex, size, type, relativeoffset);
8134  ReportGLError("glVertexAttribIFormat");
8135  }
8136  else
8137  {
8138  ReportGLNullFunction("glVertexAttribIFormat");
8139  }
8140 }
8141 
8143 {
8145  {
8146  sglVertexAttribLFormat(attribindex, size, type, relativeoffset);
8147  ReportGLError("glVertexAttribLFormat");
8148  }
8149  else
8150  {
8151  ReportGLNullFunction("glVertexAttribLFormat");
8152  }
8153 }
8154 
8156 {
8158  {
8159  sglVertexAttribBinding(attribindex, bindingindex);
8160  ReportGLError("glVertexAttribBinding");
8161  }
8162  else
8163  {
8164  ReportGLNullFunction("glVertexAttribBinding");
8165  }
8166 }
8167 
8169 {
8171  {
8172  sglVertexBindingDivisor(bindingindex, divisor);
8173  ReportGLError("glVertexBindingDivisor");
8174  }
8175  else
8176  {
8177  ReportGLNullFunction("glVertexBindingDivisor");
8178  }
8179 }
8180 
8182 {
8184  {
8185  sglDebugMessageControl(source, type, severity, count, ids, enabled);
8186  ReportGLError("glDebugMessageControl");
8187  }
8188  else
8189  {
8190  ReportGLNullFunction("glDebugMessageControl");
8191  }
8192 }
8193 
8195 {
8197  {
8198  sglDebugMessageInsert(source, type, id, severity, length, buf);
8199  ReportGLError("glDebugMessageInsert");
8200  }
8201  else
8202  {
8203  ReportGLNullFunction("glDebugMessageInsert");
8204  }
8205 }
8206 
8208 {
8210  {
8211  sglDebugMessageCallback(callback, userParam);
8212  ReportGLError("glDebugMessageCallback");
8213  }
8214  else
8215  {
8216  ReportGLNullFunction("glDebugMessageCallback");
8217  }
8218 }
8219 
8221 {
8222  GLuint result;
8224  {
8225  result = sglGetDebugMessageLog(count, bufSize, sources, types, ids, severities, lengths, messageLog);
8226  ReportGLError("glGetDebugMessageLog");
8227  }
8228  else
8229  {
8230  ReportGLNullFunction("glGetDebugMessageLog");
8231  result = 0;
8232  }
8233  return result;
8234 }
8235 
8237 {
8238  if (sglPushDebugGroup)
8239  {
8240  sglPushDebugGroup(source, id, length, message);
8241  ReportGLError("glPushDebugGroup");
8242  }
8243  else
8244  {
8245  ReportGLNullFunction("glPushDebugGroup");
8246  }
8247 }
8248 
8250 {
8251  if (sglPopDebugGroup)
8252  {
8253  sglPopDebugGroup();
8254  ReportGLError("glPopDebugGroup");
8255  }
8256  else
8257  {
8258  ReportGLNullFunction("glPopDebugGroup");
8259  }
8260 }
8261 
8263 {
8264  if (sglObjectLabel)
8265  {
8266  sglObjectLabel(identifier, name, length, label);
8267  ReportGLError("glObjectLabel");
8268  }
8269  else
8270  {
8271  ReportGLNullFunction("glObjectLabel");
8272  }
8273 }
8274 
8276 {
8277  if (sglGetObjectLabel)
8278  {
8279  sglGetObjectLabel(identifier, name, bufSize, length, label);
8280  ReportGLError("glGetObjectLabel");
8281  }
8282  else
8283  {
8284  ReportGLNullFunction("glGetObjectLabel");
8285  }
8286 }
8287 
8288 void APIENTRY glObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label)
8289 {
8290  if (sglObjectPtrLabel)
8291  {
8292  sglObjectPtrLabel(ptr, length, label);
8293  ReportGLError("glObjectPtrLabel");
8294  }
8295  else
8296  {
8297  ReportGLNullFunction("glObjectPtrLabel");
8298  }
8299 }
8300 
8302 {
8304  {
8305  sglGetObjectPtrLabel(ptr, bufSize, length, label);
8306  ReportGLError("glGetObjectPtrLabel");
8307  }
8308  else
8309  {
8310  ReportGLNullFunction("glGetObjectPtrLabel");
8311  }
8312 }
8313 
8315 {
8317  {
8318  GetOpenGLFunction("glClearBufferData", sglClearBufferData);
8319  GetOpenGLFunction("glClearBufferSubData", sglClearBufferSubData);
8320  GetOpenGLFunction("glDispatchCompute", sglDispatchCompute);
8321  GetOpenGLFunction("glDispatchComputeIndirect", sglDispatchComputeIndirect);
8322  GetOpenGLFunction("glCopyImageSubData", sglCopyImageSubData);
8323  GetOpenGLFunction("glFramebufferParameteri", sglFramebufferParameteri);
8324  GetOpenGLFunction("glGetFramebufferParameteriv", sglGetFramebufferParameteriv);
8325  GetOpenGLFunction("glGetInternalformati64v", sglGetInternalformati64v);
8326  GetOpenGLFunction("glInvalidateTexSubImage", sglInvalidateTexSubImage);
8327  GetOpenGLFunction("glInvalidateTexImage", sglInvalidateTexImage);
8328  GetOpenGLFunction("glInvalidateBufferSubData", sglInvalidateBufferSubData);
8329  GetOpenGLFunction("glInvalidateBufferData", sglInvalidateBufferData);
8330  GetOpenGLFunction("glInvalidateFramebuffer", sglInvalidateFramebuffer);
8331  GetOpenGLFunction("glInvalidateSubFramebuffer", sglInvalidateSubFramebuffer);
8332  GetOpenGLFunction("glMultiDrawArraysIndirect", sglMultiDrawArraysIndirect);
8333  GetOpenGLFunction("glMultiDrawElementsIndirect", sglMultiDrawElementsIndirect);
8334  GetOpenGLFunction("glGetProgramInterfaceiv", sglGetProgramInterfaceiv);
8335  GetOpenGLFunction("glGetProgramResourceIndex", sglGetProgramResourceIndex);
8336  GetOpenGLFunction("glGetProgramResourceName", sglGetProgramResourceName);
8337  GetOpenGLFunction("glGetProgramResourceiv", sglGetProgramResourceiv);
8338  GetOpenGLFunction("glGetProgramResourceLocation", sglGetProgramResourceLocation);
8339  GetOpenGLFunction("glGetProgramResourceLocationIndex", sglGetProgramResourceLocationIndex);
8340  GetOpenGLFunction("glShaderStorageBlockBinding", sglShaderStorageBlockBinding);
8341  GetOpenGLFunction("glTexBufferRange", sglTexBufferRange);
8342  GetOpenGLFunction("glTexStorage2DMultisample", sglTexStorage2DMultisample);
8343  GetOpenGLFunction("glTexStorage3DMultisample", sglTexStorage3DMultisample);
8344  GetOpenGLFunction("glTextureView", sglTextureView);
8345  GetOpenGLFunction("glBindVertexBuffer", sglBindVertexBuffer);
8346  GetOpenGLFunction("glVertexAttribFormat", sglVertexAttribFormat);
8347  GetOpenGLFunction("glVertexAttribIFormat", sglVertexAttribIFormat);
8348  GetOpenGLFunction("glVertexAttribLFormat", sglVertexAttribLFormat);
8349  GetOpenGLFunction("glVertexAttribBinding", sglVertexAttribBinding);
8350  GetOpenGLFunction("glVertexBindingDivisor", sglVertexBindingDivisor);
8351  GetOpenGLFunction("glDebugMessageControl", sglDebugMessageControl);
8352  GetOpenGLFunction("glDebugMessageInsert", sglDebugMessageInsert);
8353  GetOpenGLFunction("glDebugMessageCallback", sglDebugMessageCallback);
8354  GetOpenGLFunction("glGetDebugMessageLog", sglGetDebugMessageLog);
8355  GetOpenGLFunction("glPushDebugGroup", sglPushDebugGroup);
8356  GetOpenGLFunction("glPopDebugGroup", sglPopDebugGroup);
8357  GetOpenGLFunction("glObjectLabel", sglObjectLabel);
8358  GetOpenGLFunction("glGetObjectLabel", sglGetObjectLabel);
8359  GetOpenGLFunction("glObjectPtrLabel", sglObjectPtrLabel);
8360  GetOpenGLFunction("glGetObjectPtrLabel", sglGetObjectPtrLabel);
8361  }
8362 }
8363 
8364 // GL_VERSION_4_4
8365 
8366 static PFNGLBUFFERSTORAGEPROC sglBufferStorage = nullptr;
8367 static PFNGLCLEARTEXIMAGEPROC sglClearTexImage = nullptr;
8368 static PFNGLCLEARTEXSUBIMAGEPROC sglClearTexSubImage = nullptr;
8369 static PFNGLBINDBUFFERSBASEPROC sglBindBuffersBase = nullptr;
8370 static PFNGLBINDBUFFERSRANGEPROC sglBindBuffersRange = nullptr;
8371 static PFNGLBINDTEXTURESPROC sglBindTextures = nullptr;
8372 static PFNGLBINDSAMPLERSPROC sglBindSamplers = nullptr;
8373 static PFNGLBINDIMAGETEXTURESPROC sglBindImageTextures = nullptr;
8374 static PFNGLBINDVERTEXBUFFERSPROC sglBindVertexBuffers = nullptr;
8375 
8377 {
8378  if (sglBufferStorage)
8379  {
8380  sglBufferStorage(target, size, data, flags);
8381  ReportGLError("glBufferStorage");
8382  }
8383  else
8384  {
8385  ReportGLNullFunction("glBufferStorage");
8386  }
8387 }
8388 
8390 {
8391  if (sglClearTexImage)
8392  {
8393  sglClearTexImage(texture, level, format, type, data);
8394  ReportGLError("glClearTexImage");
8395  }
8396  else
8397  {
8398  ReportGLNullFunction("glClearTexImage");
8399  }
8400 }
8401 
8403 {
8404  if (sglClearTexSubImage)
8405  {
8406  sglClearTexSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, data);
8407  ReportGLError("glClearTexSubImage");
8408  }
8409  else
8410  {
8411  ReportGLNullFunction("glClearTexSubImage");
8412  }
8413 }
8414 
8416 {
8417  if (sglBindBuffersBase)
8418  {
8419  sglBindBuffersBase(target, first, count, buffers);
8420  ReportGLError("glBindBuffersBase");
8421  }
8422  else
8423  {
8424  ReportGLNullFunction("glBindBuffersBase");
8425  }
8426 }
8427 
8429 {
8430  if (sglBindBuffersRange)
8431  {
8432  sglBindBuffersRange(target, first, count, buffers, offsets, sizes);
8433  ReportGLError("glBindBuffersRange");
8434  }
8435  else
8436  {
8437  ReportGLNullFunction("glBindBuffersRange");
8438  }
8439 }
8440 
8442 {
8443  if (sglBindTextures)
8444  {
8445  sglBindTextures(first, count, textures);
8446  ReportGLError("glBindTextures");
8447  }
8448  else
8449  {
8450  ReportGLNullFunction("glBindTextures");
8451  }
8452 }
8453 
8455 {
8456  if (sglBindSamplers)
8457  {
8458  sglBindSamplers(first, count, samplers);
8459  ReportGLError("glBindSamplers");
8460  }
8461  else
8462  {
8463  ReportGLNullFunction("glBindSamplers");
8464  }
8465 }
8466 
8468 {
8470  {
8471  sglBindImageTextures(first, count, textures);
8472  ReportGLError("glBindImageTextures");
8473  }
8474  else
8475  {
8476  ReportGLNullFunction("glBindImageTextures");
8477  }
8478 }
8479 
8481 {
8483  {
8484  sglBindVertexBuffers(first, count, buffers, offsets, strides);
8485  ReportGLError("glBindVertexBuffers");
8486  }
8487  else
8488  {
8489  ReportGLNullFunction("glBindVertexBuffers");
8490  }
8491 }
8492 
8494 {
8496  {
8497  GetOpenGLFunction("glBufferStorage", sglBufferStorage);
8498  GetOpenGLFunction("glClearTexImage", sglClearTexImage);
8499  GetOpenGLFunction("glClearTexSubImage", sglClearTexSubImage);
8500  GetOpenGLFunction("glBindBuffersBase", sglBindBuffersBase);
8501  GetOpenGLFunction("glBindBuffersRange", sglBindBuffersRange);
8502  GetOpenGLFunction("glBindTextures", sglBindTextures);
8503  GetOpenGLFunction("glBindSamplers", sglBindSamplers);
8504  GetOpenGLFunction("glBindImageTextures", sglBindImageTextures);
8505  GetOpenGLFunction("glBindVertexBuffers", sglBindVertexBuffers);
8506  }
8507 }
8508 
8509 // GL_VERSION_4_5
8510 
8511 static PFNGLCLIPCONTROLPROC sglClipControl = nullptr;
8512 static PFNGLCREATETRANSFORMFEEDBACKSPROC sglCreateTransformFeedbacks = nullptr;
8513 static PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC sglTransformFeedbackBufferBase = nullptr;
8514 static PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC sglTransformFeedbackBufferRange = nullptr;
8515 static PFNGLGETTRANSFORMFEEDBACKIVPROC sglGetTransformFeedbackiv = nullptr;
8516 static PFNGLGETTRANSFORMFEEDBACKI_VPROC sglGetTransformFeedbacki_v = nullptr;
8517 static PFNGLGETTRANSFORMFEEDBACKI64_VPROC sglGetTransformFeedbacki64_v = nullptr;
8518 static PFNGLCREATEBUFFERSPROC sglCreateBuffers = nullptr;
8519 static PFNGLNAMEDBUFFERSTORAGEPROC sglNamedBufferStorage = nullptr;
8520 static PFNGLNAMEDBUFFERDATAPROC sglNamedBufferData = nullptr;
8521 static PFNGLNAMEDBUFFERSUBDATAPROC sglNamedBufferSubData = nullptr;
8522 static PFNGLCOPYNAMEDBUFFERSUBDATAPROC sglCopyNamedBufferSubData = nullptr;
8523 static PFNGLCLEARNAMEDBUFFERDATAPROC sglClearNamedBufferData = nullptr;
8524 static PFNGLCLEARNAMEDBUFFERSUBDATAPROC sglClearNamedBufferSubData = nullptr;
8527 static PFNGLUNMAPNAMEDBUFFERPROC sglUnmapNamedBuffer = nullptr;
8528 static PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC sglFlushMappedNamedBufferRange = nullptr;
8529 static PFNGLGETNAMEDBUFFERPARAMETERIVPROC sglGetNamedBufferParameteriv = nullptr;
8530 static PFNGLGETNAMEDBUFFERPARAMETERI64VPROC sglGetNamedBufferParameteri64v = nullptr;
8531 static PFNGLGETNAMEDBUFFERPOINTERVPROC sglGetNamedBufferPointerv = nullptr;
8532 static PFNGLGETNAMEDBUFFERSUBDATAPROC sglGetNamedBufferSubData = nullptr;
8533 static PFNGLCREATEFRAMEBUFFERSPROC sglCreateFramebuffers = nullptr;
8534 static PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC sglNamedFramebufferRenderbuffer = nullptr;
8535 static PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC sglNamedFramebufferParameteri = nullptr;
8536 static PFNGLNAMEDFRAMEBUFFERTEXTUREPROC sglNamedFramebufferTexture = nullptr;
8537 static PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC sglNamedFramebufferTextureLayer = nullptr;
8538 static PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC sglNamedFramebufferDrawBuffer = nullptr;
8539 static PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC sglNamedFramebufferDrawBuffers = nullptr;
8540 static PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC sglNamedFramebufferReadBuffer = nullptr;
8541 static PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC sglInvalidateNamedFramebufferData = nullptr;
8542 static PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC sglInvalidateNamedFramebufferSubData = nullptr;
8543 static PFNGLCLEARNAMEDFRAMEBUFFERIVPROC sglClearNamedFramebufferiv = nullptr;
8544 static PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC sglClearNamedFramebufferuiv = nullptr;
8545 static PFNGLCLEARNAMEDFRAMEBUFFERFVPROC sglClearNamedFramebufferfv = nullptr;
8546 static PFNGLCLEARNAMEDFRAMEBUFFERFIPROC sglClearNamedFramebufferfi = nullptr;
8547 static PFNGLBLITNAMEDFRAMEBUFFERPROC sglBlitNamedFramebuffer = nullptr;
8548 static PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC sglCheckNamedFramebufferStatus = nullptr;
8549 static PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC sglGetNamedFramebufferParameteriv = nullptr;
8550 static PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC sglGetNamedFramebufferAttachmentParameteriv = nullptr;
8551 static PFNGLCREATERENDERBUFFERSPROC sglCreateRenderbuffers = nullptr;
8552 static PFNGLNAMEDRENDERBUFFERSTORAGEPROC sglNamedRenderbufferStorage = nullptr;
8553 static PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC sglNamedRenderbufferStorageMultisample = nullptr;
8554 static PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC sglGetNamedRenderbufferParameteriv = nullptr;
8555 static PFNGLCREATETEXTURESPROC sglCreateTextures = nullptr;
8556 static PFNGLTEXTUREBUFFERPROC sglTextureBuffer = nullptr;
8557 static PFNGLTEXTUREBUFFERRANGEPROC sglTextureBufferRange = nullptr;
8558 static PFNGLTEXTURESTORAGE1DPROC sglTextureStorage1D = nullptr;
8559 static PFNGLTEXTURESTORAGE2DPROC sglTextureStorage2D = nullptr;
8560 static PFNGLTEXTURESTORAGE3DPROC sglTextureStorage3D = nullptr;
8561 static PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC sglTextureStorage2DMultisample = nullptr;
8562 static PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC sglTextureStorage3DMultisample = nullptr;
8563 static PFNGLTEXTURESUBIMAGE1DPROC sglTextureSubImage1D = nullptr;
8564 static PFNGLTEXTURESUBIMAGE2DPROC sglTextureSubImage2D = nullptr;
8565 static PFNGLTEXTURESUBIMAGE3DPROC sglTextureSubImage3D = nullptr;
8566 static PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC sglCompressedTextureSubImage1D = nullptr;
8567 static PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC sglCompressedTextureSubImage2D = nullptr;
8568 static PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC sglCompressedTextureSubImage3D = nullptr;
8569 static PFNGLCOPYTEXTURESUBIMAGE1DPROC sglCopyTextureSubImage1D = nullptr;
8570 static PFNGLCOPYTEXTURESUBIMAGE2DPROC sglCopyTextureSubImage2D = nullptr;
8571 static PFNGLCOPYTEXTURESUBIMAGE3DPROC sglCopyTextureSubImage3D = nullptr;
8572 static PFNGLTEXTUREPARAMETERFPROC sglTextureParameterf = nullptr;
8573 static PFNGLTEXTUREPARAMETERFVPROC sglTextureParameterfv = nullptr;
8574 static PFNGLTEXTUREPARAMETERIPROC sglTextureParameteri = nullptr;
8575 static PFNGLTEXTUREPARAMETERIIVPROC sglTextureParameterIiv = nullptr;
8576 static PFNGLTEXTUREPARAMETERIUIVPROC sglTextureParameterIuiv = nullptr;
8577 static PFNGLTEXTUREPARAMETERIVPROC sglTextureParameteriv = nullptr;
8578 static PFNGLGENERATETEXTUREMIPMAPPROC sglGenerateTextureMipmap = nullptr;
8579 static PFNGLBINDTEXTUREUNITPROC sglBindTextureUnit = nullptr;
8580 static PFNGLGETTEXTUREIMAGEPROC sglGetTextureImage = nullptr;
8581 static PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC sglGetCompressedTextureImage = nullptr;
8582 static PFNGLGETTEXTURELEVELPARAMETERFVPROC sglGetTextureLevelParameterfv = nullptr;
8583 static PFNGLGETTEXTURELEVELPARAMETERIVPROC sglGetTextureLevelParameteriv = nullptr;
8584 static PFNGLGETTEXTUREPARAMETERFVPROC sglGetTextureParameterfv = nullptr;
8585 static PFNGLGETTEXTUREPARAMETERIIVPROC sglGetTextureParameterIiv = nullptr;
8586 static PFNGLGETTEXTUREPARAMETERIUIVPROC sglGetTextureParameterIuiv = nullptr;
8587 static PFNGLGETTEXTUREPARAMETERIVPROC sglGetTextureParameteriv = nullptr;
8588 static PFNGLCREATEVERTEXARRAYSPROC sglCreateVertexArrays = nullptr;
8589 static PFNGLDISABLEVERTEXARRAYATTRIBPROC sglDisableVertexArrayAttrib = nullptr;
8590 static PFNGLENABLEVERTEXARRAYATTRIBPROC sglEnableVertexArrayAttrib = nullptr;
8591 static PFNGLVERTEXARRAYELEMENTBUFFERPROC sglVertexArrayElementBuffer = nullptr;
8592 static PFNGLVERTEXARRAYVERTEXBUFFERPROC sglVertexArrayVertexBuffer = nullptr;
8593 static PFNGLVERTEXARRAYVERTEXBUFFERSPROC sglVertexArrayVertexBuffers = nullptr;
8594 static PFNGLVERTEXARRAYATTRIBBINDINGPROC sglVertexArrayAttribBinding = nullptr;
8595 static PFNGLVERTEXARRAYATTRIBFORMATPROC sglVertexArrayAttribFormat = nullptr;
8596 static PFNGLVERTEXARRAYATTRIBIFORMATPROC sglVertexArrayAttribIFormat = nullptr;
8597 static PFNGLVERTEXARRAYATTRIBLFORMATPROC sglVertexArrayAttribLFormat = nullptr;
8598 static PFNGLVERTEXARRAYBINDINGDIVISORPROC sglVertexArrayBindingDivisor = nullptr;
8599 static PFNGLGETVERTEXARRAYIVPROC sglGetVertexArrayiv = nullptr;
8600 static PFNGLGETVERTEXARRAYINDEXEDIVPROC sglGetVertexArrayIndexediv = nullptr;
8601 static PFNGLGETVERTEXARRAYINDEXED64IVPROC sglGetVertexArrayIndexed64iv = nullptr;
8602 static PFNGLCREATESAMPLERSPROC sglCreateSamplers = nullptr;
8603 static PFNGLCREATEPROGRAMPIPELINESPROC sglCreateProgramPipelines = nullptr;
8604 static PFNGLCREATEQUERIESPROC sglCreateQueries = nullptr;
8605 static PFNGLGETQUERYBUFFEROBJECTI64VPROC sglGetQueryBufferObjecti64v = nullptr;
8606 static PFNGLGETQUERYBUFFEROBJECTIVPROC sglGetQueryBufferObjectiv = nullptr;
8607 static PFNGLGETQUERYBUFFEROBJECTUI64VPROC sglGetQueryBufferObjectui64v = nullptr;
8608 static PFNGLGETQUERYBUFFEROBJECTUIVPROC sglGetQueryBufferObjectuiv = nullptr;
8609 static PFNGLMEMORYBARRIERBYREGIONPROC sglMemoryBarrierByRegion = nullptr;
8610 static PFNGLGETTEXTURESUBIMAGEPROC sglGetTextureSubImage = nullptr;
8611 static PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC sglGetCompressedTextureSubImage = nullptr;
8612 static PFNGLGETGRAPHICSRESETSTATUSPROC sglGetGraphicsResetStatus = nullptr;
8613 static PFNGLGETNCOMPRESSEDTEXIMAGEPROC sglGetnCompressedTexImage = nullptr;
8614 static PFNGLGETNTEXIMAGEPROC sglGetnTexImage = nullptr;
8615 static PFNGLGETNUNIFORMDVPROC sglGetnUniformdv = nullptr;
8616 static PFNGLGETNUNIFORMFVPROC sglGetnUniformfv = nullptr;
8617 static PFNGLGETNUNIFORMIVPROC sglGetnUniformiv = nullptr;
8618 static PFNGLGETNUNIFORMUIVPROC sglGetnUniformuiv = nullptr;
8619 static PFNGLREADNPIXELSPROC sglReadnPixels = nullptr;
8620 static PFNGLTEXTUREBARRIERPROC sglTextureBarrier = nullptr;
8621 
8623 {
8624  if (sglClipControl)
8625  {
8626  sglClipControl(origin, depth);
8627  ReportGLError("glClipControl");
8628  }
8629  else
8630  {
8631  ReportGLNullFunction("glClipControl");
8632  }
8633 }
8634 
8636 {
8638  {
8640  ReportGLError("glCreateTransformFeedbacks");
8641  }
8642  else
8643  {
8644  ReportGLNullFunction("glCreateTransformFeedbacks");
8645  }
8646 }
8647 
8649 {
8651  {
8652  sglTransformFeedbackBufferBase(xfb, index, buffer);
8653  ReportGLError("glTransformFeedbackBufferBase");
8654  }
8655  else
8656  {
8657  ReportGLNullFunction("glTransformFeedbackBufferBase");
8658  }
8659 }
8660 
8662 {
8664  {
8665  sglTransformFeedbackBufferRange(xfb, index, buffer, offset, size);
8666  ReportGLError("glTransformFeedbackBufferRange");
8667  }
8668  else
8669  {
8670  ReportGLNullFunction("glTransformFeedbackBufferRange");
8671  }
8672 }
8673 
8675 {
8677  {
8678  sglGetTransformFeedbackiv(xfb, pname, param);
8679  ReportGLError("glGetTransformFeedbackiv");
8680  }
8681  else
8682  {
8683  ReportGLNullFunction("glGetTransformFeedbackiv");
8684  }
8685 }
8686 
8688 {
8690  {
8691  sglGetTransformFeedbacki_v(xfb, pname, index, param);
8692  ReportGLError("glGetTransformFeedbacki_v");
8693  }
8694  else
8695  {
8696  ReportGLNullFunction("glGetTransformFeedbacki_v");
8697  }
8698 }
8699 
8701 {
8703  {
8704  sglGetTransformFeedbacki64_v(xfb, pname, index, param);
8705  ReportGLError("glGetTransformFeedbacki64_v");
8706  }
8707  else
8708  {
8709  ReportGLNullFunction("glGetTransformFeedbacki64_v");
8710  }
8711 }
8712 
8714 {
8715  if (sglCreateBuffers)
8716  {
8717  sglCreateBuffers(n, buffers);
8718  ReportGLError("glCreateBuffers");
8719  }
8720  else
8721  {
8722  ReportGLNullFunction("glCreateBuffers");
8723  }
8724 }
8725 
8727 {
8729  {
8730  sglNamedBufferStorage(buffer, size, data, flags);
8731  ReportGLError("glNamedBufferStorage");
8732  }
8733  else
8734  {
8735  ReportGLNullFunction("glNamedBufferStorage");
8736  }
8737 }
8738 
8740 {
8741  if (sglNamedBufferData)
8742  {
8743  sglNamedBufferData(buffer, size, data, usage);
8744  ReportGLError("glNamedBufferData");
8745  }
8746  else
8747  {
8748  ReportGLNullFunction("glNamedBufferData");
8749  }
8750 }
8751 
8753 {
8755  {
8756  sglNamedBufferSubData(buffer, offset, size, data);
8757  ReportGLError("glNamedBufferSubData");
8758  }
8759  else
8760  {
8761  ReportGLNullFunction("glNamedBufferSubData");
8762  }
8763 }
8764 
8766 {
8768  {
8769  sglCopyNamedBufferSubData(readBuffer, writeBuffer, readOffset, writeOffset, size);
8770  ReportGLError("glCopyNamedBufferSubData");
8771  }
8772  else
8773  {
8774  ReportGLNullFunction("glCopyNamedBufferSubData");
8775  }
8776 }
8777 
8779 {
8781  {
8782  sglClearNamedBufferData(buffer, internalformat, format, type, data);
8783  ReportGLError("glClearNamedBufferData");
8784  }
8785  else
8786  {
8787  ReportGLNullFunction("glClearNamedBufferData");
8788  }
8789 }
8790 
8792 {
8794  {
8795  sglClearNamedBufferSubData(buffer, internalformat, offset, size, format, type, data);
8796  ReportGLError("glClearNamedBufferSubData");
8797  }
8798  else
8799  {
8800  ReportGLNullFunction("glClearNamedBufferSubData");
8801  }
8802 }
8803 
8805 {
8806  void * result;
8807  if (sglMapNamedBuffer)
8808  {
8809  result = sglMapNamedBuffer(buffer, access);
8810  ReportGLError("glMapNamedBuffer");
8811  }
8812  else
8813  {
8814  ReportGLNullFunction("glMapNamedBuffer");
8815  result = 0;
8816  }
8817  return result;
8818 }
8819 
8821 {
8822  void * result;
8824  {
8825  result = sglMapNamedBufferRange(buffer, offset, length, access);
8826  ReportGLError("glMapNamedBufferRange");
8827  }
8828  else
8829  {
8830  ReportGLNullFunction("glMapNamedBufferRange");
8831  result = 0;
8832  }
8833  return result;
8834 }
8835 
8837 {
8838  GLboolean result;
8839  if (sglUnmapNamedBuffer)
8840  {
8841  result = sglUnmapNamedBuffer(buffer);
8842  ReportGLError("glUnmapNamedBuffer");
8843  }
8844  else
8845  {
8846  ReportGLNullFunction("glUnmapNamedBuffer");
8847  result = 0;
8848  }
8849  return result;
8850 }
8851 
8853 {
8855  {
8856  sglFlushMappedNamedBufferRange(buffer, offset, length);
8857  ReportGLError("glFlushMappedNamedBufferRange");
8858  }
8859  else
8860  {
8861  ReportGLNullFunction("glFlushMappedNamedBufferRange");
8862  }
8863 }
8864 
8866 {
8868  {
8869  sglGetNamedBufferParameteriv(buffer, pname, params);
8870  ReportGLError("glGetNamedBufferParameteriv");
8871  }
8872  else
8873  {
8874  ReportGLNullFunction("glGetNamedBufferParameteriv");
8875  }
8876 }
8877 
8879 {
8881  {
8882  sglGetNamedBufferParameteri64v(buffer, pname, params);
8883  ReportGLError("glGetNamedBufferParameteri64v");
8884  }
8885  else
8886  {
8887  ReportGLNullFunction("glGetNamedBufferParameteri64v");
8888  }
8889 }
8890 
8892 {
8894  {
8895  sglGetNamedBufferPointerv(buffer, pname, params);
8896  ReportGLError("glGetNamedBufferPointerv");
8897  }
8898  else
8899  {
8900  ReportGLNullFunction("glGetNamedBufferPointerv");
8901  }
8902 }
8903 
8905 {
8907  {
8908  sglGetNamedBufferSubData(buffer, offset, size, data);
8909  ReportGLError("glGetNamedBufferSubData");
8910  }
8911  else
8912  {
8913  ReportGLNullFunction("glGetNamedBufferSubData");
8914  }
8915 }
8916 
8918 {
8920  {
8921  sglCreateFramebuffers(n, framebuffers);
8922  ReportGLError("glCreateFramebuffers");
8923  }
8924  else
8925  {
8926  ReportGLNullFunction("glCreateFramebuffers");
8927  }
8928 }
8929 
8931 {
8933  {
8934  sglNamedFramebufferRenderbuffer(framebuffer, attachment, renderbuffertarget, renderbuffer);
8935  ReportGLError("glNamedFramebufferRenderbuffer");
8936  }
8937  else
8938  {
8939  ReportGLNullFunction("glNamedFramebufferRenderbuffer");
8940  }
8941 }
8942 
8944 {
8946  {
8947  sglNamedFramebufferParameteri(framebuffer, pname, param);
8948  ReportGLError("glNamedFramebufferParameteri");
8949  }
8950  else
8951  {
8952  ReportGLNullFunction("glNamedFramebufferParameteri");
8953  }
8954 }
8955 
8957 {
8959  {
8960  sglNamedFramebufferTexture(framebuffer, attachment, texture, level);
8961  ReportGLError("glNamedFramebufferTexture");
8962  }
8963  else
8964  {
8965  ReportGLNullFunction("glNamedFramebufferTexture");
8966  }
8967 }
8968 
8970 {
8972  {
8973  sglNamedFramebufferTextureLayer(framebuffer, attachment, texture, level, layer);
8974  ReportGLError("glNamedFramebufferTextureLayer");
8975  }
8976  else
8977  {
8978  ReportGLNullFunction("glNamedFramebufferTextureLayer");
8979  }
8980 }
8981 
8983 {
8985  {
8986  sglNamedFramebufferDrawBuffer(framebuffer, buf);
8987  ReportGLError("glNamedFramebufferDrawBuffer");
8988  }
8989  else
8990  {
8991  ReportGLNullFunction("glNamedFramebufferDrawBuffer");
8992  }
8993 }
8994 
8996 {
8998  {
8999  sglNamedFramebufferDrawBuffers(framebuffer, n, bufs);
9000  ReportGLError("glNamedFramebufferDrawBuffers");
9001  }
9002  else
9003  {
9004  ReportGLNullFunction("glNamedFramebufferDrawBuffers");
9005  }
9006 }
9007 
9009 {
9011  {
9012  sglNamedFramebufferReadBuffer(framebuffer, src);
9013  ReportGLError("glNamedFramebufferReadBuffer");
9014  }
9015  else
9016  {
9017  ReportGLNullFunction("glNamedFramebufferReadBuffer");
9018  }
9019 }
9020 
9022 {
9024  {
9025  sglInvalidateNamedFramebufferData(framebuffer, numAttachments, attachments);
9026  ReportGLError("glInvalidateNamedFramebufferData");
9027  }
9028  else
9029  {
9030  ReportGLNullFunction("glInvalidateNamedFramebufferData");
9031  }
9032 }
9033 
9035 {
9037  {
9038  sglInvalidateNamedFramebufferSubData(framebuffer, numAttachments, attachments, x, y, width, height);
9039  ReportGLError("glInvalidateNamedFramebufferSubData");
9040  }
9041  else
9042  {
9043  ReportGLNullFunction("glInvalidateNamedFramebufferSubData");
9044  }
9045 }
9046 
9048 {
9050  {
9051  sglClearNamedFramebufferiv(framebuffer, buffer, drawbuffer, value);
9052  ReportGLError("glClearNamedFramebufferiv");
9053  }
9054  else
9055  {
9056  ReportGLNullFunction("glClearNamedFramebufferiv");
9057  }
9058 }
9059 
9061 {
9063  {
9064  sglClearNamedFramebufferuiv(framebuffer, buffer, drawbuffer, value);
9065  ReportGLError("glClearNamedFramebufferuiv");
9066  }
9067  else
9068  {
9069  ReportGLNullFunction("glClearNamedFramebufferuiv");
9070  }
9071 }
9072 
9074 {
9076  {
9077  sglClearNamedFramebufferfv(framebuffer, buffer, drawbuffer, value);
9078  ReportGLError("glClearNamedFramebufferfv");
9079  }
9080  else
9081  {
9082  ReportGLNullFunction("glClearNamedFramebufferfv");
9083  }
9084 }
9085 
9087 {
9089  {
9090  sglClearNamedFramebufferfi(framebuffer, buffer, depth, stencil);
9091  ReportGLError("glClearNamedFramebufferfi");
9092  }
9093  else
9094  {
9095  ReportGLNullFunction("glClearNamedFramebufferfi");
9096  }
9097 }
9098 
9100 {
9102  {
9103  sglBlitNamedFramebuffer(readFramebuffer, drawFramebuffer, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
9104  ReportGLError("glBlitNamedFramebuffer");
9105  }
9106  else
9107  {
9108  ReportGLNullFunction("glBlitNamedFramebuffer");
9109  }
9110 }
9111 
9113 {
9114  GLenum result;
9116  {
9117  result = sglCheckNamedFramebufferStatus(framebuffer, target);
9118  ReportGLError("glCheckNamedFramebufferStatus");
9119  }
9120  else
9121  {
9122  ReportGLNullFunction("glCheckNamedFramebufferStatus");
9123  result = 0;
9124  }
9125  return result;
9126 }
9127 
9129 {
9131  {
9132  sglGetNamedFramebufferParameteriv(framebuffer, pname, param);
9133  ReportGLError("glGetNamedFramebufferParameteriv");
9134  }
9135  else
9136  {
9137  ReportGLNullFunction("glGetNamedFramebufferParameteriv");
9138  }
9139 }
9140 
9142 {
9144  {
9145  sglGetNamedFramebufferAttachmentParameteriv(framebuffer, attachment, pname, params);
9146  ReportGLError("glGetNamedFramebufferAttachmentParameteriv");
9147  }
9148  else
9149  {
9150  ReportGLNullFunction("glGetNamedFramebufferAttachmentParameteriv");
9151  }
9152 }
9153 
9155 {
9157  {
9158  sglCreateRenderbuffers(n, renderbuffers);
9159  ReportGLError("glCreateRenderbuffers");
9160  }
9161  else
9162  {
9163  ReportGLNullFunction("glCreateRenderbuffers");
9164  }
9165 }
9166 
9168 {
9170  {
9171  sglNamedRenderbufferStorage(renderbuffer, internalformat, width, height);
9172  ReportGLError("glNamedRenderbufferStorage");
9173  }
9174  else
9175  {
9176  ReportGLNullFunction("glNamedRenderbufferStorage");
9177  }
9178 }
9179 
9181 {
9183  {
9184  sglNamedRenderbufferStorageMultisample(renderbuffer, samples, internalformat, width, height);
9185  ReportGLError("glNamedRenderbufferStorageMultisample");
9186  }
9187  else
9188  {
9189  ReportGLNullFunction("glNamedRenderbufferStorageMultisample");
9190  }
9191 }
9192 
9194 {
9196  {
9197  sglGetNamedRenderbufferParameteriv(renderbuffer, pname, params);
9198  ReportGLError("glGetNamedRenderbufferParameteriv");
9199  }
9200  else
9201  {
9202  ReportGLNullFunction("glGetNamedRenderbufferParameteriv");
9203  }
9204 }
9205 
9207 {
9208  if (sglCreateTextures)
9209  {
9210  sglCreateTextures(target, n, textures);
9211  ReportGLError("glCreateTextures");
9212  }
9213  else
9214  {
9215  ReportGLNullFunction("glCreateTextures");
9216  }
9217 }
9218 
9220 {
9221  if (sglTextureBuffer)
9222  {
9223  sglTextureBuffer(texture, internalformat, buffer);
9224  ReportGLError("glTextureBuffer");
9225  }
9226  else
9227  {
9228  ReportGLNullFunction("glTextureBuffer");
9229  }
9230 }
9231 
9233 {
9235  {
9236  sglTextureBufferRange(texture, internalformat, buffer, offset, size);
9237  ReportGLError("glTextureBufferRange");
9238  }
9239  else
9240  {
9241  ReportGLNullFunction("glTextureBufferRange");
9242  }
9243 }
9244 
9246 {
9247  if (sglTextureStorage1D)
9248  {
9249  sglTextureStorage1D(texture, levels, internalformat, width);
9250  ReportGLError("glTextureStorage1D");
9251  }
9252  else
9253  {
9254  ReportGLNullFunction("glTextureStorage1D");
9255  }
9256 }
9257 
9259 {
9260  if (sglTextureStorage2D)
9261  {
9262  sglTextureStorage2D(texture, levels, internalformat, width, height);
9263  ReportGLError("glTextureStorage2D");
9264  }
9265  else
9266  {
9267  ReportGLNullFunction("glTextureStorage2D");
9268  }
9269 }
9270 
9272 {
9273  if (sglTextureStorage3D)
9274  {
9275  sglTextureStorage3D(texture, levels, internalformat, width, height, depth);
9276  ReportGLError("glTextureStorage3D");
9277  }
9278  else
9279  {
9280  ReportGLNullFunction("glTextureStorage3D");
9281  }
9282 }
9283 
9285 {
9287  {
9288  sglTextureStorage2DMultisample(texture, samples, internalformat, width, height, fixedsamplelocations);
9289  ReportGLError("glTextureStorage2DMultisample");
9290  }
9291  else
9292  {
9293  ReportGLNullFunction("glTextureStorage2DMultisample");
9294  }
9295 }
9296 
9298 {
9300  {
9301  sglTextureStorage3DMultisample(texture, samples, internalformat, width, height, depth, fixedsamplelocations);
9302  ReportGLError("glTextureStorage3DMultisample");
9303  }
9304  else
9305  {
9306  ReportGLNullFunction("glTextureStorage3DMultisample");
9307  }
9308 }
9309 
9311 {
9313  {
9314  sglTextureSubImage1D(texture, level, xoffset, width, format, type, pixels);
9315  ReportGLError("glTextureSubImage1D");
9316  }
9317  else
9318  {
9319  ReportGLNullFunction("glTextureSubImage1D");
9320  }
9321 }
9322 
9324 {
9326  {
9327  sglTextureSubImage2D(texture, level, xoffset, yoffset, width, height, format, type, pixels);
9328  ReportGLError("glTextureSubImage2D");
9329  }
9330  else
9331  {
9332  ReportGLNullFunction("glTextureSubImage2D");
9333  }
9334 }
9335 
9337 {
9339  {
9340  sglTextureSubImage3D(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
9341  ReportGLError("glTextureSubImage3D");
9342  }
9343  else
9344  {
9345  ReportGLNullFunction("glTextureSubImage3D");
9346  }
9347 }
9348 
9350 {
9352  {
9353  sglCompressedTextureSubImage1D(texture, level, xoffset, width, format, imageSize, data);
9354  ReportGLError("glCompressedTextureSubImage1D");
9355  }
9356  else
9357  {
9358  ReportGLNullFunction("glCompressedTextureSubImage1D");
9359  }
9360 }
9361 
9363 {
9365  {
9366  sglCompressedTextureSubImage2D(texture, level, xoffset, yoffset, width, height, format, imageSize, data);
9367  ReportGLError("glCompressedTextureSubImage2D");
9368  }
9369  else
9370  {
9371  ReportGLNullFunction("glCompressedTextureSubImage2D");
9372  }
9373 }
9374 
9376 {
9378  {
9379  sglCompressedTextureSubImage3D(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
9380  ReportGLError("glCompressedTextureSubImage3D");
9381  }
9382  else
9383  {
9384  ReportGLNullFunction("glCompressedTextureSubImage3D");
9385  }
9386 }
9387 
9389 {
9391  {
9392  sglCopyTextureSubImage1D(texture, level, xoffset, x, y, width);
9393  ReportGLError("glCopyTextureSubImage1D");
9394  }
9395  else
9396  {
9397  ReportGLNullFunction("glCopyTextureSubImage1D");
9398  }
9399 }
9400 
9402 {
9404  {
9405  sglCopyTextureSubImage2D(texture, level, xoffset, yoffset, x, y, width, height);
9406  ReportGLError("glCopyTextureSubImage2D");
9407  }
9408  else
9409  {
9410  ReportGLNullFunction("glCopyTextureSubImage2D");
9411  }
9412 }
9413 
9415 {
9417  {
9418  sglCopyTextureSubImage3D(texture, level, xoffset, yoffset, zoffset, x, y, width, height);
9419  ReportGLError("glCopyTextureSubImage3D");
9420  }
9421  else
9422  {
9423  ReportGLNullFunction("glCopyTextureSubImage3D");
9424  }
9425 }
9426 
9428 {
9430  {
9431  sglTextureParameterf(texture, pname, param);
9432  ReportGLError("glTextureParameterf");
9433  }
9434  else
9435  {
9436  ReportGLNullFunction("glTextureParameterf");
9437  }
9438 }
9439 
9441 {
9443  {
9444  sglTextureParameterfv(texture, pname, param);
9445  ReportGLError("glTextureParameterfv");
9446  }
9447  else
9448  {
9449  ReportGLNullFunction("glTextureParameterfv");
9450  }
9451 }
9452 
9454 {
9456  {
9457  sglTextureParameteri(texture, pname, param);
9458  ReportGLError("glTextureParameteri");
9459  }
9460  else
9461  {
9462  ReportGLNullFunction("glTextureParameteri");
9463  }
9464 }
9465 
9467 {
9469  {
9470  sglTextureParameterIiv(texture, pname, params);
9471  ReportGLError("glTextureParameterIiv");
9472  }
9473  else
9474  {
9475  ReportGLNullFunction("glTextureParameterIiv");
9476  }
9477 }
9478 
9480 {
9482  {
9483  sglTextureParameterIuiv(texture, pname, params);
9484  ReportGLError("glTextureParameterIuiv");
9485  }
9486  else
9487  {
9488  ReportGLNullFunction("glTextureParameterIuiv");
9489  }
9490 }
9491 
9493 {
9495  {
9496  sglTextureParameteriv(texture, pname, param);
9497  ReportGLError("glTextureParameteriv");
9498  }
9499  else
9500  {
9501  ReportGLNullFunction("glTextureParameteriv");
9502  }
9503 }
9504 
9506 {
9508  {
9509  sglGenerateTextureMipmap(texture);
9510  ReportGLError("glGenerateTextureMipmap");
9511  }
9512  else
9513  {
9514  ReportGLNullFunction("glGenerateTextureMipmap");
9515  }
9516 }
9517 
9519 {
9520  if (sglBindTextureUnit)
9521  {
9522  sglBindTextureUnit(unit, texture);
9523  ReportGLError("glBindTextureUnit");
9524  }
9525  else
9526  {
9527  ReportGLNullFunction("glBindTextureUnit");
9528  }
9529 }
9530 
9532 {
9533  if (sglGetTextureImage)
9534  {
9535  sglGetTextureImage(texture, level, format, type, bufSize, pixels);
9536  ReportGLError("glGetTextureImage");
9537  }
9538  else
9539  {
9540  ReportGLNullFunction("glGetTextureImage");
9541  }
9542 }
9543 
9545 {
9547  {
9548  sglGetCompressedTextureImage(texture, level, bufSize, pixels);
9549  ReportGLError("glGetCompressedTextureImage");
9550  }
9551  else
9552  {
9553  ReportGLNullFunction("glGetCompressedTextureImage");
9554  }
9555 }
9556 
9558 {
9560  {
9561  sglGetTextureLevelParameterfv(texture, level, pname, params);
9562  ReportGLError("glGetTextureLevelParameterfv");
9563  }
9564  else
9565  {
9566  ReportGLNullFunction("glGetTextureLevelParameterfv");
9567  }
9568 }
9569 
9571 {
9573  {
9574  sglGetTextureLevelParameteriv(texture, level, pname, params);
9575  ReportGLError("glGetTextureLevelParameteriv");
9576  }
9577  else
9578  {
9579  ReportGLNullFunction("glGetTextureLevelParameteriv");
9580  }
9581 }
9582 
9584 {
9586  {
9587  sglGetTextureParameterfv(texture, pname, params);
9588  ReportGLError("glGetTextureParameterfv");
9589  }
9590  else
9591  {
9592  ReportGLNullFunction("glGetTextureParameterfv");
9593  }
9594 }
9595 
9597 {
9599  {
9600  sglGetTextureParameterIiv(texture, pname, params);
9601  ReportGLError("glGetTextureParameterIiv");
9602  }
9603  else
9604  {
9605  ReportGLNullFunction("glGetTextureParameterIiv");
9606  }
9607 }
9608 
9610 {
9612  {
9613  sglGetTextureParameterIuiv(texture, pname, params);
9614  ReportGLError("glGetTextureParameterIuiv");
9615  }
9616  else
9617  {
9618  ReportGLNullFunction("glGetTextureParameterIuiv");
9619  }
9620 }
9621 
9623 {
9625  {
9626  sglGetTextureParameteriv(texture, pname, params);
9627  ReportGLError("glGetTextureParameteriv");
9628  }
9629  else
9630  {
9631  ReportGLNullFunction("glGetTextureParameteriv");
9632  }
9633 }
9634 
9636 {
9638  {
9639  sglCreateVertexArrays(n, arrays);
9640  ReportGLError("glCreateVertexArrays");
9641  }
9642  else
9643  {
9644  ReportGLNullFunction("glCreateVertexArrays");
9645  }
9646 }
9647 
9649 {
9651  {
9652  sglDisableVertexArrayAttrib(vaobj, index);
9653  ReportGLError("glDisableVertexArrayAttrib");
9654  }
9655  else
9656  {
9657  ReportGLNullFunction("glDisableVertexArrayAttrib");
9658  }
9659 }
9660 
9662 {
9664  {
9665  sglEnableVertexArrayAttrib(vaobj, index);
9666  ReportGLError("glEnableVertexArrayAttrib");
9667  }
9668  else
9669  {
9670  ReportGLNullFunction("glEnableVertexArrayAttrib");
9671  }
9672 }
9673 
9675 {
9677  {
9678  sglVertexArrayElementBuffer(vaobj, buffer);
9679  ReportGLError("glVertexArrayElementBuffer");
9680  }
9681  else
9682  {
9683  ReportGLNullFunction("glVertexArrayElementBuffer");
9684  }
9685 }
9686 
9688 {
9690  {
9691  sglVertexArrayVertexBuffer(vaobj, bindingindex, buffer, offset, stride);
9692  ReportGLError("glVertexArrayVertexBuffer");
9693  }
9694  else
9695  {
9696  ReportGLNullFunction("glVertexArrayVertexBuffer");
9697  }
9698 }
9699 
9701 {
9703  {
9704  sglVertexArrayVertexBuffers(vaobj, first, count, buffers, offsets, strides);
9705  ReportGLError("glVertexArrayVertexBuffers");
9706  }
9707  else
9708  {
9709  ReportGLNullFunction("glVertexArrayVertexBuffers");
9710  }
9711 }
9712 
9714 {
9716  {
9717  sglVertexArrayAttribBinding(vaobj, attribindex, bindingindex);
9718  ReportGLError("glVertexArrayAttribBinding");
9719  }
9720  else
9721  {
9722  ReportGLNullFunction("glVertexArrayAttribBinding");
9723  }
9724 }
9725 
9727 {
9729  {
9730  sglVertexArrayAttribFormat(vaobj, attribindex, size, type, normalized, relativeoffset);
9731  ReportGLError("glVertexArrayAttribFormat");
9732  }
9733  else
9734  {
9735  ReportGLNullFunction("glVertexArrayAttribFormat");
9736  }
9737 }
9738 
9740 {
9742  {
9743  sglVertexArrayAttribIFormat(vaobj, attribindex, size, type, relativeoffset);
9744  ReportGLError("glVertexArrayAttribIFormat");
9745  }
9746  else
9747  {
9748  ReportGLNullFunction("glVertexArrayAttribIFormat");
9749  }
9750 }
9751 
9753 {
9755  {
9756  sglVertexArrayAttribLFormat(vaobj, attribindex, size, type, relativeoffset);
9757  ReportGLError("glVertexArrayAttribLFormat");
9758  }
9759  else
9760  {
9761  ReportGLNullFunction("glVertexArrayAttribLFormat");
9762  }
9763 }
9764 
9766 {
9768  {
9769  sglVertexArrayBindingDivisor(vaobj, bindingindex, divisor);
9770  ReportGLError("glVertexArrayBindingDivisor");
9771  }
9772  else
9773  {
9774  ReportGLNullFunction("glVertexArrayBindingDivisor");
9775  }
9776 }
9777 
9779 {
9780  if (sglGetVertexArrayiv)
9781  {
9782  sglGetVertexArrayiv(vaobj, pname, param);
9783  ReportGLError("glGetVertexArrayiv");
9784  }
9785  else
9786  {
9787  ReportGLNullFunction("glGetVertexArrayiv");
9788  }
9789 }
9790 
9792 {
9794  {
9795  sglGetVertexArrayIndexediv(vaobj, index, pname, param);
9796  ReportGLError("glGetVertexArrayIndexediv");
9797  }
9798  else
9799  {
9800  ReportGLNullFunction("glGetVertexArrayIndexediv");
9801  }
9802 }
9803 
9805 {
9807  {
9808  sglGetVertexArrayIndexed64iv(vaobj, index, pname, param);
9809  ReportGLError("glGetVertexArrayIndexed64iv");
9810  }
9811  else
9812  {
9813  ReportGLNullFunction("glGetVertexArrayIndexed64iv");
9814  }
9815 }
9816 
9818 {
9819  if (sglCreateSamplers)
9820  {
9821  sglCreateSamplers(n, samplers);
9822  ReportGLError("glCreateSamplers");
9823  }
9824  else
9825  {
9826  ReportGLNullFunction("glCreateSamplers");
9827  }
9828 }
9829 
9831 {
9833  {
9834  sglCreateProgramPipelines(n, pipelines);
9835  ReportGLError("glCreateProgramPipelines");
9836  }
9837  else
9838  {
9839  ReportGLNullFunction("glCreateProgramPipelines");
9840  }
9841 }
9842 
9844 {
9845  if (sglCreateQueries)
9846  {
9847  sglCreateQueries(target, n, ids);
9848  ReportGLError("glCreateQueries");
9849  }
9850  else
9851  {
9852  ReportGLNullFunction("glCreateQueries");
9853  }
9854 }
9855 
9857 {
9859  {
9860  sglGetQueryBufferObjecti64v(id, buffer, pname, offset);
9861  ReportGLError("glGetQueryBufferObjecti64v");
9862  }
9863  else
9864  {
9865  ReportGLNullFunction("glGetQueryBufferObjecti64v");
9866  }
9867 }
9868 
9870 {
9872  {
9873  sglGetQueryBufferObjectiv(id, buffer, pname, offset);
9874  ReportGLError("glGetQueryBufferObjectiv");
9875  }
9876  else
9877  {
9878  ReportGLNullFunction("glGetQueryBufferObjectiv");
9879  }
9880 }
9881 
9883 {
9885  {
9886  sglGetQueryBufferObjectui64v(id, buffer, pname, offset);
9887  ReportGLError("glGetQueryBufferObjectui64v");
9888  }
9889  else
9890  {
9891  ReportGLNullFunction("glGetQueryBufferObjectui64v");
9892  }
9893 }
9894 
9896 {
9898  {
9899  sglGetQueryBufferObjectuiv(id, buffer, pname, offset);
9900  ReportGLError("glGetQueryBufferObjectuiv");
9901  }
9902  else
9903  {
9904  ReportGLNullFunction("glGetQueryBufferObjectuiv");
9905  }
9906 }
9907 
9909 {
9911  {
9912  sglMemoryBarrierByRegion(barriers);
9913  ReportGLError("glMemoryBarrierByRegion");
9914  }
9915  else
9916  {
9917  ReportGLNullFunction("glMemoryBarrierByRegion");
9918  }
9919 }
9920 
9922 {
9924  {
9925  sglGetTextureSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, format, type, bufSize, pixels);
9926  ReportGLError("glGetTextureSubImage");
9927  }
9928  else
9929  {
9930  ReportGLNullFunction("glGetTextureSubImage");
9931  }
9932 }
9933 
9935 {
9937  {
9938  sglGetCompressedTextureSubImage(texture, level, xoffset, yoffset, zoffset, width, height, depth, bufSize, pixels);
9939  ReportGLError("glGetCompressedTextureSubImage");
9940  }
9941  else
9942  {
9943  ReportGLNullFunction("glGetCompressedTextureSubImage");
9944  }
9945 }
9946 
9948 {
9949  GLenum result;
9951  {
9952  result = sglGetGraphicsResetStatus();
9953  ReportGLError("glGetGraphicsResetStatus");
9954  }
9955  else
9956  {
9957  ReportGLNullFunction("glGetGraphicsResetStatus");
9958  result = 0;
9959  }
9960  return result;
9961 }
9962 
9964 {
9966  {
9967  sglGetnCompressedTexImage(target, lod, bufSize, pixels);
9968  ReportGLError("glGetnCompressedTexImage");
9969  }
9970  else
9971  {
9972  ReportGLNullFunction("glGetnCompressedTexImage");
9973  }
9974 }
9975 
9977 {
9978  if (sglGetnTexImage)
9979  {
9980  sglGetnTexImage(target, level, format, type, bufSize, pixels);
9981  ReportGLError("glGetnTexImage");
9982  }
9983  else
9984  {
9985  ReportGLNullFunction("glGetnTexImage");
9986  }
9987 }
9988 
9990 {
9991  if (sglGetnUniformdv)
9992  {
9993  sglGetnUniformdv(program, location, bufSize, params);
9994  ReportGLError("glGetnUniformdv");
9995  }
9996  else
9997  {
9998  ReportGLNullFunction("glGetnUniformdv");
9999  }
10000 }
10001 
10003 {
10004  if (sglGetnUniformfv)
10005  {
10006  sglGetnUniformfv(program, location, bufSize, params);
10007  ReportGLError("glGetnUniformfv");
10008  }
10009  else
10010  {
10011  ReportGLNullFunction("glGetnUniformfv");
10012  }
10013 }
10014 
10016 {
10017  if (sglGetnUniformiv)
10018  {
10019  sglGetnUniformiv(program, location, bufSize, params);
10020  ReportGLError("glGetnUniformiv");
10021  }
10022  else
10023  {
10024  ReportGLNullFunction("glGetnUniformiv");
10025  }
10026 }
10027 
10029 {
10030  if (sglGetnUniformuiv)
10031  {
10032  sglGetnUniformuiv(program, location, bufSize, params);
10033  ReportGLError("glGetnUniformuiv");
10034  }
10035  else
10036  {
10037  ReportGLNullFunction("glGetnUniformuiv");
10038  }
10039 }
10040 
10042 {
10043  if (sglReadnPixels)
10044  {
10045  sglReadnPixels(x, y, width, height, format, type, bufSize, data);
10046  ReportGLError("glReadnPixels");
10047  }
10048  else
10049  {
10050  ReportGLNullFunction("glReadnPixels");
10051  }
10052 }
10053 
10055 {
10056  if (sglTextureBarrier)
10057  {
10059  ReportGLError("glTextureBarrier");
10060  }
10061  else
10062  {
10063  ReportGLNullFunction("glTextureBarrier");
10064  }
10065 }
10066 
10068 {
10070  {
10071  GetOpenGLFunction("glClipControl", sglClipControl);
10072  GetOpenGLFunction("glCreateTransformFeedbacks", sglCreateTransformFeedbacks);
10073  GetOpenGLFunction("glTransformFeedbackBufferBase", sglTransformFeedbackBufferBase);
10074  GetOpenGLFunction("glTransformFeedbackBufferRange", sglTransformFeedbackBufferRange);
10075  GetOpenGLFunction("glGetTransformFeedbackiv", sglGetTransformFeedbackiv);
10076  GetOpenGLFunction("glGetTransformFeedbacki_v", sglGetTransformFeedbacki_v);
10077  GetOpenGLFunction("glGetTransformFeedbacki64_v", sglGetTransformFeedbacki64_v);
10078  GetOpenGLFunction("glCreateBuffers", sglCreateBuffers);
10079  GetOpenGLFunction("glNamedBufferStorage", sglNamedBufferStorage);
10080  GetOpenGLFunction("glNamedBufferData", sglNamedBufferData);
10081  GetOpenGLFunction("glNamedBufferSubData", sglNamedBufferSubData);
10082  GetOpenGLFunction("glCopyNamedBufferSubData", sglCopyNamedBufferSubData);
10083  GetOpenGLFunction("glClearNamedBufferData", sglClearNamedBufferData);
10084  GetOpenGLFunction("glClearNamedBufferSubData", sglClearNamedBufferSubData);
10085  GetOpenGLFunction("glMapNamedBuffer", sglMapNamedBuffer);
10086  GetOpenGLFunction("glMapNamedBufferRange", sglMapNamedBufferRange);
10087  GetOpenGLFunction("glUnmapNamedBuffer", sglUnmapNamedBuffer);
10088  GetOpenGLFunction("glFlushMappedNamedBufferRange", sglFlushMappedNamedBufferRange);
10089  GetOpenGLFunction("glGetNamedBufferParameteriv", sglGetNamedBufferParameteriv);
10090  GetOpenGLFunction("glGetNamedBufferParameteri64v", sglGetNamedBufferParameteri64v);
10091  GetOpenGLFunction("glGetNamedBufferPointerv", sglGetNamedBufferPointerv);
10092  GetOpenGLFunction("glGetNamedBufferSubData", sglGetNamedBufferSubData);
10093  GetOpenGLFunction("glCreateFramebuffers", sglCreateFramebuffers);
10094  GetOpenGLFunction("glNamedFramebufferRenderbuffer", sglNamedFramebufferRenderbuffer);
10095  GetOpenGLFunction("glNamedFramebufferParameteri", sglNamedFramebufferParameteri);
10096  GetOpenGLFunction("glNamedFramebufferTexture", sglNamedFramebufferTexture);
10097  GetOpenGLFunction("glNamedFramebufferTextureLayer", sglNamedFramebufferTextureLayer);
10098  GetOpenGLFunction("glNamedFramebufferDrawBuffer", sglNamedFramebufferDrawBuffer);
10099  GetOpenGLFunction("glNamedFramebufferDrawBuffers", sglNamedFramebufferDrawBuffers);
10100  GetOpenGLFunction("glNamedFramebufferReadBuffer", sglNamedFramebufferReadBuffer);
10101  GetOpenGLFunction("glInvalidateNamedFramebufferData", sglInvalidateNamedFramebufferData);
10102  GetOpenGLFunction("glInvalidateNamedFramebufferSubData", sglInvalidateNamedFramebufferSubData);
10103  GetOpenGLFunction("glClearNamedFramebufferiv", sglClearNamedFramebufferiv);
10104  GetOpenGLFunction("glClearNamedFramebufferuiv", sglClearNamedFramebufferuiv);
10105  GetOpenGLFunction("glClearNamedFramebufferfv", sglClearNamedFramebufferfv);
10106  GetOpenGLFunction("glClearNamedFramebufferfi", sglClearNamedFramebufferfi);
10107  GetOpenGLFunction("glBlitNamedFramebuffer", sglBlitNamedFramebuffer);
10108  GetOpenGLFunction("glCheckNamedFramebufferStatus", sglCheckNamedFramebufferStatus);
10109  GetOpenGLFunction("glGetNamedFramebufferParameteriv", sglGetNamedFramebufferParameteriv);
10110  GetOpenGLFunction("glGetNamedFramebufferAttachmentParameteriv", sglGetNamedFramebufferAttachmentParameteriv);
10111  GetOpenGLFunction("glCreateRenderbuffers", sglCreateRenderbuffers);
10112  GetOpenGLFunction("glNamedRenderbufferStorage", sglNamedRenderbufferStorage);
10113  GetOpenGLFunction("glNamedRenderbufferStorageMultisample", sglNamedRenderbufferStorageMultisample);
10114  GetOpenGLFunction("glGetNamedRenderbufferParameteriv", sglGetNamedRenderbufferParameteriv);
10115  GetOpenGLFunction("glCreateTextures", sglCreateTextures);
10116  GetOpenGLFunction("glTextureBuffer", sglTextureBuffer);
10117  GetOpenGLFunction("glTextureBufferRange", sglTextureBufferRange);
10118  GetOpenGLFunction("glTextureStorage1D", sglTextureStorage1D);
10119  GetOpenGLFunction("glTextureStorage2D", sglTextureStorage2D);
10120  GetOpenGLFunction("glTextureStorage3D", sglTextureStorage3D);
10121  GetOpenGLFunction("glTextureStorage2DMultisample", sglTextureStorage2DMultisample);
10122  GetOpenGLFunction("glTextureStorage3DMultisample", sglTextureStorage3DMultisample);
10123  GetOpenGLFunction("glTextureSubImage1D", sglTextureSubImage1D);
10124  GetOpenGLFunction("glTextureSubImage2D", sglTextureSubImage2D);
10125  GetOpenGLFunction("glTextureSubImage3D", sglTextureSubImage3D);
10126  GetOpenGLFunction("glCompressedTextureSubImage1D", sglCompressedTextureSubImage1D);
10127  GetOpenGLFunction("glCompressedTextureSubImage2D", sglCompressedTextureSubImage2D);
10128  GetOpenGLFunction("glCompressedTextureSubImage3D", sglCompressedTextureSubImage3D);
10129  GetOpenGLFunction("glCopyTextureSubImage1D", sglCopyTextureSubImage1D);
10130  GetOpenGLFunction("glCopyTextureSubImage2D", sglCopyTextureSubImage2D);
10131  GetOpenGLFunction("glCopyTextureSubImage3D", sglCopyTextureSubImage3D);
10132  GetOpenGLFunction("glTextureParameterf", sglTextureParameterf);
10133  GetOpenGLFunction("glTextureParameterfv", sglTextureParameterfv);
10134  GetOpenGLFunction("glTextureParameteri", sglTextureParameteri);
10135  GetOpenGLFunction("glTextureParameterIiv", sglTextureParameterIiv);
10136  GetOpenGLFunction("glTextureParameterIuiv", sglTextureParameterIuiv);
10137  GetOpenGLFunction("glTextureParameteriv", sglTextureParameteriv);
10138  GetOpenGLFunction("glGenerateTextureMipmap", sglGenerateTextureMipmap);
10139  GetOpenGLFunction("glBindTextureUnit", sglBindTextureUnit);
10140  GetOpenGLFunction("glGetTextureImage", sglGetTextureImage);
10141  GetOpenGLFunction("glGetCompressedTextureImage", sglGetCompressedTextureImage);
10142  GetOpenGLFunction("glGetTextureLevelParameterfv", sglGetTextureLevelParameterfv);
10143  GetOpenGLFunction("glGetTextureLevelParameteriv", sglGetTextureLevelParameteriv);
10144  GetOpenGLFunction("glGetTextureParameterfv", sglGetTextureParameterfv);
10145  GetOpenGLFunction("glGetTextureParameterIiv", sglGetTextureParameterIiv);
10146  GetOpenGLFunction("glGetTextureParameterIuiv", sglGetTextureParameterIuiv);
10147  GetOpenGLFunction("glGetTextureParameteriv", sglGetTextureParameteriv);
10148  GetOpenGLFunction("glCreateVertexArrays", sglCreateVertexArrays);
10149  GetOpenGLFunction("glDisableVertexArrayAttrib", sglDisableVertexArrayAttrib);
10150  GetOpenGLFunction("glEnableVertexArrayAttrib", sglEnableVertexArrayAttrib);
10151  GetOpenGLFunction("glVertexArrayElementBuffer", sglVertexArrayElementBuffer);
10152  GetOpenGLFunction("glVertexArrayVertexBuffer", sglVertexArrayVertexBuffer);
10153  GetOpenGLFunction("glVertexArrayVertexBuffers", sglVertexArrayVertexBuffers);
10154  GetOpenGLFunction("glVertexArrayAttribBinding", sglVertexArrayAttribBinding);
10155  GetOpenGLFunction("glVertexArrayAttribFormat", sglVertexArrayAttribFormat);
10156  GetOpenGLFunction("glVertexArrayAttribIFormat", sglVertexArrayAttribIFormat);
10157  GetOpenGLFunction("glVertexArrayAttribLFormat", sglVertexArrayAttribLFormat);
10158  GetOpenGLFunction("glVertexArrayBindingDivisor", sglVertexArrayBindingDivisor);
10159  GetOpenGLFunction("glGetVertexArrayiv", sglGetVertexArrayiv);
10160  GetOpenGLFunction("glGetVertexArrayIndexediv", sglGetVertexArrayIndexediv);
10161  GetOpenGLFunction("glGetVertexArrayIndexed64iv", sglGetVertexArrayIndexed64iv);
10162  GetOpenGLFunction("glCreateSamplers", sglCreateSamplers);
10163  GetOpenGLFunction("glCreateProgramPipelines", sglCreateProgramPipelines);
10164  GetOpenGLFunction("glCreateQueries", sglCreateQueries);
10165  GetOpenGLFunction("glGetQueryBufferObjecti64v", sglGetQueryBufferObjecti64v);
10166  GetOpenGLFunction("glGetQueryBufferObjectiv", sglGetQueryBufferObjectiv);
10167  GetOpenGLFunction("glGetQueryBufferObjectui64v", sglGetQueryBufferObjectui64v);
10168  GetOpenGLFunction("glGetQueryBufferObjectuiv", sglGetQueryBufferObjectuiv);
10169  GetOpenGLFunction("glMemoryBarrierByRegion", sglMemoryBarrierByRegion);
10170  GetOpenGLFunction("glGetTextureSubImage", sglGetTextureSubImage);
10171  GetOpenGLFunction("glGetCompressedTextureSubImage", sglGetCompressedTextureSubImage);
10172  GetOpenGLFunction("glGetGraphicsResetStatus", sglGetGraphicsResetStatus);
10173  GetOpenGLFunction("glGetnCompressedTexImage", sglGetnCompressedTexImage);
10174  GetOpenGLFunction("glGetnTexImage", sglGetnTexImage);
10175  GetOpenGLFunction("glGetnUniformdv", sglGetnUniformdv);
10176  GetOpenGLFunction("glGetnUniformfv", sglGetnUniformfv);
10177  GetOpenGLFunction("glGetnUniformiv", sglGetnUniformiv);
10178  GetOpenGLFunction("glGetnUniformuiv", sglGetnUniformuiv);
10179  GetOpenGLFunction("glReadnPixels", sglReadnPixels);
10180  GetOpenGLFunction("glTextureBarrier", sglTextureBarrier);
10181  }
10182 }
10183 
10184 void InitializeOpenGL(int& major, int& minor, char const* infofile)
10185 {
10186 #if !defined(__MSWINDOWS__)
10189 #endif
10190 
10207 
10208  if (infofile)
10209  {
10210  std::ofstream output(infofile);
10211  if (output)
10212  {
10213  char const* vendor = (char const*)glGetString(GL_VENDOR);
10214  if (vendor)
10215  {
10216  output << "vendor = " << vendor;
10217  }
10218  else
10219  {
10220  output << "vendor = <null>";
10221  }
10222  output << std::endl;
10223 
10224  char const* renderer = (char const*)glGetString(GL_RENDERER);
10225  if (vendor)
10226  {
10227  output << "renderer = " << renderer;
10228  }
10229  else
10230  {
10231  output << "renderer = <null>";
10232  }
10233  output << std::endl;
10234 
10235  char const* version = (char const*)glGetString(GL_VERSION);
10236  if (version)
10237  {
10238  output << "version = " << version;
10239  }
10240  else
10241  {
10242  output << "version = <null>";
10243  }
10244  output << std::endl;
10245 
10247  {
10248  GLint numExtensions;
10249  glGetIntegerv(GL_NUM_EXTENSIONS, &numExtensions);
10250  for (int i = 0; i < numExtensions; ++i)
10251  {
10252  output << glGetStringi(GL_EXTENSIONS, i) << std::endl;
10253  }
10254  }
10255  else
10256  {
10257  char const* extensions = (char const*)glGetString(GL_EXTENSIONS);
10258  if (extensions)
10259  {
10260  output << "extensions =" << std::endl;
10261  std::string tokenString(extensions);
10262  std::vector<std::string> tokens;
10263  tokens.clear();
10264  while (tokenString.length() > 0)
10265  {
10266  // Find the beginning of a token.
10267  auto begin = tokenString.find_first_not_of(" \t");
10268  if (begin == std::string::npos)
10269  {
10270  // All tokens have been found.
10271  break;
10272  }
10273 
10274  // Strip off the white space.
10275  if (begin > 0)
10276  {
10277  tokenString = tokenString.substr(begin);
10278  }
10279 
10280  // Find the end of the token.
10281  auto end = tokenString.find_first_of(" \t");
10282  if (end != std::string::npos)
10283  {
10284  std::string token = tokenString.substr(0, end);
10285  tokens.push_back(token);
10286  tokenString = tokenString.substr(end);
10287  }
10288  else
10289  {
10290  // This is the last token.
10291  tokens.push_back(tokenString);
10292  break;
10293  }
10294  }
10295 
10296  for (auto const& token : tokens)
10297  {
10298  output << " " << token << std::endl;
10299  }
10300  }
10301  else
10302  {
10303  output << "extensions = <null>" << std::endl;
10304  }
10305  }
10306 
10307  output.close();
10308  }
10309  }
10310 
10313 }
10314 
GLuint GLuint storageBlockBinding
Definition: glcorearb.h:2523
static PFNGLGETSTRINGPROC sglGetString
Definition: GteOpenGL.cpp:126
static PFNGLUNIFORM2IPROC sglUniform2i
Definition: GteOpenGL.cpp:1755
void APIENTRY glNamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
Definition: GteOpenGL.cpp:8930
static PFNGLVERTEXATTRIB1SPROC sglVertexAttrib1s
Definition: GteOpenGL.cpp:1774
GLfloat green
Definition: glcorearb.h:107
static PFNGLDISABLEIPROC sglDisablei
Definition: GteOpenGL.cpp:3241
void APIENTRY glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, void *pixels)
Definition: GteOpenGL.cpp:661
static PFNGLCREATESHADERPROC sglCreateShader
Definition: GteOpenGL.cpp:1723
void APIENTRY glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params)
Definition: GteOpenGL.cpp:7993
void APIENTRY glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params)
Definition: GteOpenGL.cpp:7561
void APIENTRY glGetProgramStageiv(GLuint program, GLenum shadertype, GLenum pname, GLint *values)
Definition: GteOpenGL.cpp:5933
void APIENTRY glNamedBufferData(GLuint buffer, GLsizei size, const void *data, GLenum usage)
Definition: GteOpenGL.cpp:8739
static PFNGLUNIFORMMATRIX3X4DVPROC sglUniformMatrix3x4dv
Definition: GteOpenGL.cpp:5485
void APIENTRY glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
Definition: GteOpenGL.cpp:6515
static PFNGLTEXTUREPARAMETERFPROC sglTextureParameterf
Definition: GteOpenGL.cpp:8572
void APIENTRY glVertexAttribI4sv(GLuint index, const GLshort *v)
Definition: GteOpenGL.cpp:3780
static PFNGLDETACHSHADERPROC sglDetachShader
Definition: GteOpenGL.cpp:1726
void APIENTRY glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, void *binary)
Definition: GteOpenGL.cpp:6327
GLuint GLsizei const GLuint const GLintptr const GLsizeiptr * sizes
Definition: glcorearb.h:2616
static PFNGLGETUNIFORMBLOCKINDEXPROC sglGetUniformBlockIndex
Definition: GteOpenGL.cpp:4539
void APIENTRY glUniform2uiv(GLint location, GLsizei count, const GLuint *value)
Definition: GteOpenGL.cpp:3926
void APIENTRY glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset)
Definition: GteOpenGL.cpp:4263
void APIENTRY glProgramUniform1i(GLuint program, GLint location, GLint v0)
Definition: GteOpenGL.cpp:6476
GLdouble n
Definition: glcorearb.h:2003
static PFNGLPROGRAMUNIFORM2IPROC sglProgramUniform2i
Definition: GteOpenGL.cpp:6197
void APIENTRY glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z)
Definition: GteOpenGL.cpp:2762
GLsync APIENTRY glFenceSync(GLenum condition, GLbitfield flags)
Definition: GteOpenGL.cpp:4809
static PFNGLVERTEXATTRIBIPOINTERPROC sglVertexAttribIPointer
Definition: GteOpenGL.cpp:3252
void APIENTRY glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params)
Definition: GteOpenGL.cpp:2171
GLenum GLenum textarget
Definition: glcorearb.h:1286
void APIENTRY glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params)
Definition: GteOpenGL.cpp:7269
void APIENTRY glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids)
Definition: GteOpenGL.cpp:5985
void APIENTRY glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
Definition: GteOpenGL.cpp:889
void APIENTRY glProgramUniform4i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
Definition: GteOpenGL.cpp:6788
static PFNGLCLEARNAMEDFRAMEBUFFERFIPROC sglClearNamedFramebufferfi
Definition: GteOpenGL.cpp:8546
static PFNGLHINTPROC sglHint
Definition: GteOpenGL.cpp:89
static PFNGLBEGINCONDITIONALRENDERPROC sglBeginConditionalRender
Definition: GteOpenGL.cpp:3250
void APIENTRY glDepthRangeArrayv(GLuint first, GLsizei count, const GLdouble *v)
Definition: GteOpenGL.cpp:7360
static PFNGLGETATTACHEDSHADERSPROC sglGetAttachedShaders
Definition: GteOpenGL.cpp:1731
static PFNGLCREATEVERTEXARRAYSPROC sglCreateVertexArrays
Definition: GteOpenGL.cpp:8588
void APIENTRY glVertexAttribI4uiv(GLuint index, const GLuint *v)
Definition: GteOpenGL.cpp:3754
static PFNGLVERTEXATTRIB4DPROC sglVertexAttrib4d
Definition: GteOpenGL.cpp:1796
void APIENTRY glVertexBindingDivisor(GLuint bindingindex, GLuint divisor)
Definition: GteOpenGL.cpp:8168
void APIENTRY glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:2528
GLenum APIENTRY glCheckFramebufferStatus(GLenum target)
Definition: GteOpenGL.cpp:4221
static PFNGLCREATETRANSFORMFEEDBACKSPROC sglCreateTransformFeedbacks
Definition: GteOpenGL.cpp:8512
void APIENTRY glGetTextureLevelParameterfv(GLuint texture, GLint level, GLenum pname, GLfloat *params)
Definition: GteOpenGL.cpp:9557
static PFNGLGETINTEGER64I_VPROC sglGetInteger64i_v
Definition: GteOpenGL.cpp:4736
void APIENTRY glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:1091
void APIENTRY glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value)
Definition: GteOpenGL.cpp:5414
void APIENTRY glTextureParameteri(GLuint texture, GLenum pname, GLint param)
Definition: GteOpenGL.cpp:9453
static PFNGLGETVERTEXARRAYINDEXED64IVPROC sglGetVertexArrayIndexed64iv
Definition: GteOpenGL.cpp:8601
void APIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor)
Definition: GteOpenGL.cpp:461
void APIENTRY glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value)
Definition: GteOpenGL.cpp:5362
static PFNGLUNIFORMBLOCKBINDINGPROC sglUniformBlockBinding
Definition: GteOpenGL.cpp:4542
void APIENTRY glObjectPtrLabel(const void *ptr, GLsizei length, const GLchar *label)
Definition: GteOpenGL.cpp:8288
void APIENTRY glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values)
Definition: GteOpenGL.cpp:4896
void APIENTRY glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
Definition: GteOpenGL.cpp:7256
static PFNGLGETFLOATI_VPROC sglGetFloati_v
Definition: GteOpenGL.cpp:6259
static PFNGLTEXSUBIMAGE1DPROC sglTexSubImage1D
Definition: GteOpenGL.cpp:830
void APIENTRY glDeleteProgram(GLuint program)
Definition: GteOpenGL.cpp:1944
static PFNGLBINDRENDERBUFFERPROC sglBindRenderbuffer
Definition: GteOpenGL.cpp:3296
void APIENTRY glVertexAttrib3dv(GLuint index, const GLdouble *v)
Definition: GteOpenGL.cpp:2723
GLfloat GLfloat GLfloat alpha
Definition: glcorearb.h:107
static PFNGLVERTEXATTRIBPOINTERPROC sglVertexAttribPointer
Definition: GteOpenGL.cpp:1806
void APIENTRY glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:5232
void APIENTRY glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount)
Definition: GteOpenGL.cpp:4557
static PFNGLSCISSORARRAYVPROC sglScissorArrayv
Definition: GteOpenGL.cpp:6254
void APIENTRY glUniform3dv(GLint location, GLsizei count, const GLdouble *value)
Definition: GteOpenGL.cpp:5680
float GLfloat
Definition: glcorearb.h:84
GLint GLint GLint yoffset
Definition: glcorearb.h:407
void APIENTRY glDeleteVertexArrays(GLsizei n, const GLuint *arrays)
Definition: GteOpenGL.cpp:4396
void APIENTRY glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:1153
GLuint uniformIndex
Definition: glcorearb.h:1459
GLenum modeRGB
Definition: glcorearb.h:1787
void APIENTRY glTextureParameteriv(GLuint texture, GLenum pname, const GLint *param)
Definition: GteOpenGL.cpp:9492
static PFNGLVERTEXATTRIB3SVPROC sglVertexAttrib3sv
Definition: GteOpenGL.cpp:1787
static PFNGLCLEARNAMEDFRAMEBUFFERFVPROC sglClearNamedFramebufferfv
Definition: GteOpenGL.cpp:8545
void *APIENTRY glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
Definition: GteOpenGL.cpp:4354
void APIENTRY glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices, GLint basevertex)
Definition: GteOpenGL.cpp:4757
static PFNGLPOPDEBUGGROUPPROC sglPopDebugGroup
Definition: GteOpenGL.cpp:7737
static PFNGLBINDIMAGETEXTURESPROC sglBindImageTextures
Definition: GteOpenGL.cpp:8373
void APIENTRY glTextureBufferRange(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizei size)
Definition: GteOpenGL.cpp:9232
void APIENTRY glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
Definition: GteOpenGL.cpp:4870
static PFNGLISRENDERBUFFERPROC sglIsRenderbuffer
Definition: GteOpenGL.cpp:3295
static PFNGLGETUNIFORMUIVPROC sglGetUniformuiv
Definition: GteOpenGL.cpp:3275
void APIENTRY glPauseTransformFeedback()
Definition: GteOpenGL.cpp:6027
GLint location
Definition: glcorearb.h:800
void APIENTRY glVertexAttrib4Nubv(GLuint index, const GLubyte *v)
Definition: GteOpenGL.cpp:2840
GLenum GLfloat param
Definition: glcorearb.h:99
void APIENTRY glBindFramebuffer(GLenum target, GLuint framebuffer)
Definition: GteOpenGL.cpp:4182
static PFNGLUNIFORMMATRIX4DVPROC sglUniformMatrix4dv
Definition: GteOpenGL.cpp:5481
void APIENTRY glVertexAttrib1s(GLuint index, GLshort x)
Definition: GteOpenGL.cpp:2606
static PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC sglFlushMappedNamedBufferRange
Definition: GteOpenGL.cpp:8528
static PFNGLBLITFRAMEBUFFERPROC sglBlitFramebuffer
Definition: GteOpenGL.cpp:3312
static PFNGLVERTEXATTRIB1FVPROC sglVertexAttrib1fv
Definition: GteOpenGL.cpp:1773
void APIENTRY glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:2515
GLint GLint GLsizei GLint border
Definition: glcorearb.h:103
void APIENTRY glUniform1f(GLint location, GLfloat v0)
Definition: GteOpenGL.cpp:2294
void APIENTRY glTransformFeedbackBufferRange(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizei size)
Definition: GteOpenGL.cpp:8661
GLenum GLenum dstRGB
Definition: glcorearb.h:1789
#define OPENGL_VERSION_2_1
Definition: GteOpenGL.cpp:24
static PFNGLPROGRAMUNIFORM1UIVPROC sglProgramUniform1uiv
Definition: GteOpenGL.cpp:6196
GLuint APIENTRY glGetDebugMessageLog(GLuint count, GLsizei bufSize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog)
Definition: GteOpenGL.cpp:8220
void APIENTRY glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer)
Definition: GteOpenGL.cpp:4570
#define OPENGL_VERSION_3_2
Definition: GteOpenGL.cpp:27
static PFNGLCREATERENDERBUFFERSPROC sglCreateRenderbuffers
Definition: GteOpenGL.cpp:8551
static PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC sglGetActiveSubroutineUniformiv
Definition: GteOpenGL.cpp:5491
static PFNGLMINSAMPLESHADINGPROC sglMinSampleShading
Definition: GteOpenGL.cpp:5464
static PFNGLSTENCILMASKPROC sglStencilMask
Definition: GteOpenGL.cpp:105
static PFNGLVERTEXATTRIBP4UIPROC sglVertexAttribP4ui
Definition: GteOpenGL.cpp:5054
static PFNGLPROGRAMUNIFORM3DPROC sglProgramUniform3d
Definition: GteOpenGL.cpp:6209
void APIENTRY glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount)
Definition: GteOpenGL.cpp:1298
void APIENTRY glEndConditionalRender()
Definition: GteOpenGL.cpp:3507
static PFNGLGETATTRIBLOCATIONPROC sglGetAttribLocation
Definition: GteOpenGL.cpp:1732
void APIENTRY glCompressedTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:9349
int GLint
Definition: glcorearb.h:85
void APIENTRY glTexParameteri(GLenum target, GLenum pname, GLint param)
Definition: GteOpenGL.cpp:253
static void Initialize_OPENGL_VERSION_1_2()
Definition: GteOpenGL.cpp:1104
void APIENTRY glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:6918
void APIENTRY glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w)
Definition: GteOpenGL.cpp:3650
void APIENTRY glGenProgramPipelines(GLsizei n, GLuint *pipelines)
Definition: GteOpenGL.cpp:6434
void APIENTRY glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value)
Definition: GteOpenGL.cpp:6697
void APIENTRY glPointParameteriv(GLenum pname, const GLint *params)
Definition: GteOpenGL.cpp:1350
unsigned int GLuint
Definition: glcorearb.h:89
void APIENTRY glDeleteBuffers(GLsizei n, const GLuint *buffers)
Definition: GteOpenGL.cpp:1547
static PFNGLSAMPLECOVERAGEPROC sglSampleCoverage
Definition: GteOpenGL.cpp:1118
static PFNGLVERTEXATTRIB2FVPROC sglVertexAttrib2fv
Definition: GteOpenGL.cpp:1779
void APIENTRY glDrawArrays(GLenum mode, GLint first, GLsizei count)
Definition: GteOpenGL.cpp:837
void APIENTRY glProgramUniform2d(GLuint program, GLint location, GLdouble v0, GLdouble v1)
Definition: GteOpenGL.cpp:6632
static PFNGLUNIFORM1DPROC sglUniform1d
Definition: GteOpenGL.cpp:5471
static PFNGLDRAWBUFFERSPROC sglDrawBuffers
Definition: GteOpenGL.cpp:1715
static PFNGLVIEWPORTARRAYVPROC sglViewportArrayv
Definition: GteOpenGL.cpp:6251
const GLuint * arrays
Definition: glcorearb.h:1298
void APIENTRY glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:1660
static PFNGLTEXPARAMETERIUIVPROC sglTexParameterIuiv
Definition: GteOpenGL.cpp:3287
static PFNGLCLAMPCOLORPROC sglClampColor
Definition: GteOpenGL.cpp:3249
void APIENTRY glDispatchComputeIndirect(GLintptr indirect)
Definition: GteOpenGL.cpp:7782
void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance)
Definition: GteOpenGL.cpp:7548
void APIENTRY glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:4153
void APIENTRY glViewportIndexedfv(GLuint index, const GLfloat *v)
Definition: GteOpenGL.cpp:7308
static PFNGLVERTEXATTRIBI3IPROC sglVertexAttribI3i
Definition: GteOpenGL.cpp:3257
void APIENTRY glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
Definition: GteOpenGL.cpp:1363
static PFNGLVERTEXARRAYATTRIBIFORMATPROC sglVertexArrayAttribIFormat
Definition: GteOpenGL.cpp:8596
static PFNGLCOLORMASKPROC sglColorMask
Definition: GteOpenGL.cpp:106
GLenum GLuint GLint GLint layer
Definition: glcorearb.h:1294
GLbitfield stages
Definition: glcorearb.h:1926
void APIENTRY glGetQueryBufferObjecti64v(GLuint id, GLuint buffer, GLenum pname, GLintptr offset)
Definition: GteOpenGL.cpp:9856
void APIENTRY glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const void *const *indices, GLsizei drawcount, const GLint *basevertex)
Definition: GteOpenGL.cpp:4783
GLenum clamp
Definition: glcorearb.h:1229
static PFNGLGETVERTEXATTRIBIVPROC sglGetVertexAttribiv
Definition: GteOpenGL.cpp:1743
static PFNGLVERTEXATTRIB3FPROC sglVertexAttrib3f
Definition: GteOpenGL.cpp:1784
static PFNGLISENABLEDPROC sglIsEnabled
Definition: GteOpenGL.cpp:132
void APIENTRY glGetInteger64v(GLenum pname, GLint64 *data)
Definition: GteOpenGL.cpp:4883
void APIENTRY glGetFloatv(GLenum pname, GLfloat *data)
Definition: GteOpenGL.cpp:619
void APIENTRY glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
Definition: GteOpenGL.cpp:6723
static PFNGLPROGRAMUNIFORMMATRIX4FVPROC sglProgramUniformMatrix4fv
Definition: GteOpenGL.cpp:6223
static PFNGLVERTEXATTRIBBINDINGPROC sglVertexAttribBinding
Definition: GteOpenGL.cpp:7730
void APIENTRY glNamedRenderbufferStorageMultisample(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:9180
static PFNGLGETVERTEXATTRIBLDVPROC sglGetVertexAttribLdv
Definition: GteOpenGL.cpp:6250
static PFNGLTEXSTORAGE3DPROC sglTexStorage3D
Definition: GteOpenGL.cpp:7518
const void * indirect
Definition: glcorearb.h:1790
GLenum GLint srcLevel
Definition: glcorearb.h:2505
void APIENTRY glDrawTransformFeedback(GLenum mode, GLuint id)
Definition: GteOpenGL.cpp:6053
static PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC sglCompressedTexSubImage1D
Definition: GteOpenGL.cpp:1124
void APIENTRY glGetVertexArrayiv(GLuint vaobj, GLenum pname, GLint *param)
Definition: GteOpenGL.cpp:9778
void APIENTRY glVertexAttrib4Nuiv(GLuint index, const GLuint *v)
Definition: GteOpenGL.cpp:2853
void APIENTRY glUniform2ui(GLint location, GLuint v0, GLuint v1)
Definition: GteOpenGL.cpp:3874
static PFNGLTEXTUREBARRIERPROC sglTextureBarrier
Definition: GteOpenGL.cpp:8620
GLenum GLuint GLsizei const GLenum * props
Definition: glcorearb.h:2520
void APIENTRY glNamedFramebufferTextureLayer(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer)
Definition: GteOpenGL.cpp:8969
void APIENTRY glUniform1d(GLint location, GLdouble x)
Definition: GteOpenGL.cpp:5602
static PFNGLGENFRAMEBUFFERSPROC sglGenFramebuffers
Definition: GteOpenGL.cpp:3304
void APIENTRY glVertexAttrib4dv(GLuint index, const GLdouble *v)
Definition: GteOpenGL.cpp:2905
static PFNGLGETBUFFERPARAMETERI64VPROC sglGetBufferParameteri64v
Definition: GteOpenGL.cpp:4737
void APIENTRY glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:755
void APIENTRY glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:1508
void APIENTRY glGetnUniformuiv(GLuint program, GLint location, GLsizei bufSize, GLuint *params)
void APIENTRY glEnableVertexAttribArray(GLuint index)
Definition: GteOpenGL.cpp:1996
static PFNGLGETTEXTUREPARAMETERFVPROC sglGetTextureParameterfv
Definition: GteOpenGL.cpp:8584
static PFNGLCOPYTEXTURESUBIMAGE2DPROC sglCopyTextureSubImage2D
Definition: GteOpenGL.cpp:8570
void APIENTRY glGetPointerv(GLenum pname, void **params)
Definition: GteOpenGL.cpp:863
void APIENTRY glProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble *value)
Definition: GteOpenGL.cpp:6541
static PFNGLCREATEBUFFERSPROC sglCreateBuffers
Definition: GteOpenGL.cpp:8518
static PFNGLBINDSAMPLERSPROC sglBindSamplers
Definition: GteOpenGL.cpp:8372
static PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC sglGetNamedFramebufferAttachmentParameteriv
Definition: GteOpenGL.cpp:8550
static PFNGLBINDTEXTURESPROC sglBindTextures
Definition: GteOpenGL.cpp:8371
GLsizei const GLchar *const * uniformNames
Definition: glcorearb.h:1457
void APIENTRY glProgramUniform3i(GLuint program, GLint location, GLint v0, GLint v1, GLint v2)
Definition: GteOpenGL.cpp:6684
void APIENTRY glDepthMask(GLboolean flag)
Definition: GteOpenGL.cpp:396
static PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC sglDrawArraysInstancedBaseInstance
Definition: GteOpenGL.cpp:7509
static PFNGLGETACTIVEATTRIBPROC sglGetActiveAttrib
Definition: GteOpenGL.cpp:1729
static PFNGLGETQUERYBUFFEROBJECTIVPROC sglGetQueryBufferObjectiv
Definition: GteOpenGL.cpp:8606
static PFNGLVERTEXATTRIBI4BVPROC sglVertexAttribI4bv
Definition: GteOpenGL.cpp:3271
void APIENTRY glTextureParameterIiv(GLuint texture, GLenum pname, const GLint *params)
Definition: GteOpenGL.cpp:9466
void APIENTRY glUniform1iv(GLint location, GLsizei count, const GLint *value)
Definition: GteOpenGL.cpp:2450
void APIENTRY glReadnPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data)
void APIENTRY glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines)
Definition: GteOpenGL.cpp:6421
void APIENTRY glInvalidateTexImage(GLuint texture, GLint level)
Definition: GteOpenGL.cpp:7860
void APIENTRY glBindBuffersRange(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes)
Definition: GteOpenGL.cpp:8428
GLboolean invert
Definition: glcorearb.h:544
GLsizei numAttachments
Definition: glcorearb.h:2513
static PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC sglGetActiveAtomicCounterBufferiv
Definition: GteOpenGL.cpp:7513
GLenum srcTarget
Definition: glcorearb.h:2505
void APIENTRY glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
Definition: GteOpenGL.cpp:2022
void APIENTRY glUniformSubroutinesuiv(GLenum shadertype, GLsizei count, const GLuint *indices)
Definition: GteOpenGL.cpp:5907
void APIENTRY glUniform3iv(GLint location, GLsizei count, const GLint *value)
Definition: GteOpenGL.cpp:2476
GLint GLsizei width
Definition: glcorearb.h:98
static PFNGLPROGRAMUNIFORM2FPROC sglProgramUniform2f
Definition: GteOpenGL.cpp:6199
static PFNGLPATCHPARAMETERIPROC sglPatchParameteri
Definition: GteOpenGL.cpp:5497
void APIENTRY glGetTextureParameterfv(GLuint texture, GLenum pname, GLfloat *params)
Definition: GteOpenGL.cpp:9583
void APIENTRY glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
Definition: GteOpenGL.cpp:4237
static PFNGLSCISSORPROC sglScissor
Definition: GteOpenGL.cpp:93
static PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC sglProgramUniformMatrix2x4fv
Definition: GteOpenGL.cpp:6229
static PFNGLGENQUERIESPROC sglGenQueries
Definition: GteOpenGL.cpp:1407
GLenum shadertype
Definition: glcorearb.h:1810
static PFNGLISTRANSFORMFEEDBACKPROC sglIsTransformFeedback
Definition: GteOpenGL.cpp:5502
static void Initialize_OPENGL_VERSION_4_2()
Definition: GteOpenGL.cpp:7678
void APIENTRY glCreateTextures(GLenum target, GLsizei n, GLuint *textures)
Definition: GteOpenGL.cpp:9206
static PFNGLTEXTUREVIEWPROC sglTextureView
Definition: GteOpenGL.cpp:7725
GLenum GLuint GLsizei propCount
Definition: glcorearb.h:2520
void APIENTRY glFramebufferParameteri(GLenum target, GLenum pname, GLint param)
Definition: GteOpenGL.cpp:7808
static PFNGLBINDFRAGDATALOCATIONINDEXEDPROC sglBindFragDataLocationIndexed
Definition: GteOpenGL.cpp:5028
GLint APIENTRY glGetFragDataIndex(GLuint program, const GLchar *name)
Definition: GteOpenGL.cpp:5070
static PFNGLENABLEVERTEXATTRIBARRAYPROC sglEnableVertexAttribArray
Definition: GteOpenGL.cpp:1728
void APIENTRY glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:7626
GLboolean APIENTRY glIsSampler(GLuint sampler)
Definition: GteOpenGL.cpp:5112
static PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC sglDrawTransformFeedbackStream
Definition: GteOpenGL.cpp:5506
GLint APIENTRY glGetUniformLocation(GLuint program, const GLchar *name)
Definition: GteOpenGL.cpp:2129
static PFNGLFRONTFACEPROC sglFrontFace
Definition: GteOpenGL.cpp:88
static PFNGLPOINTPARAMETERIVPROC sglPointParameteriv
Definition: GteOpenGL.cpp:1268
#define GL_ZERO
Definition: glcorearb.h:217
static PFNGLUNIFORM2UIPROC sglUniform2ui
Definition: GteOpenGL.cpp:3279
static PFNGLGETACTIVEUNIFORMPROC sglGetActiveUniform
Definition: GteOpenGL.cpp:1730
static PFNGLBLENDEQUATIONPROC sglBlendEquation
Definition: GteOpenGL.cpp:1270
GLsizei uniformCount
Definition: glcorearb.h:1457
void APIENTRY glVertexAttribI1uiv(GLuint index, const GLuint *v)
Definition: GteOpenGL.cpp:3715
static PFNGLISFRAMEBUFFERPROC sglIsFramebuffer
Definition: GteOpenGL.cpp:3301
void APIENTRY glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:4328
void APIENTRY glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
Definition: GteOpenGL.cpp:8103
static PFNGLTEXSUBIMAGE3DPROC sglTexSubImage3D
Definition: GteOpenGL.cpp:1049
static PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC sglProgramUniformMatrix4x3fv
Definition: GteOpenGL.cpp:6232
static PFNGLPROGRAMUNIFORM1DVPROC sglProgramUniform1dv
Definition: GteOpenGL.cpp:6194
void APIENTRY glVertexAttribL3dv(GLuint index, const GLdouble *v)
Definition: GteOpenGL.cpp:7230
void APIENTRY glDepthRange(GLdouble near, GLdouble far)
Definition: GteOpenGL.cpp:742
static PFNGLISBUFFERPROC sglIsBuffer
Definition: GteOpenGL.cpp:1418
void APIENTRY glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source)
Definition: GteOpenGL.cpp:2116
static PFNGLFENCESYNCPROC sglFenceSync
Definition: GteOpenGL.cpp:4729
static PFNGLBINDTEXTUREUNITPROC sglBindTextureUnit
Definition: GteOpenGL.cpp:8579
void APIENTRY glNamedFramebufferDrawBuffer(GLuint framebuffer, GLenum buf)
Definition: GteOpenGL.cpp:8982
GLenum GLuint GLenum GLuint minlevel
Definition: glcorearb.h:2527
GLboolean APIENTRY glIsTexture(GLuint texture)
Definition: GteOpenGL.cpp:1006
static PFNGLVERTEXATTRIBI2UIPROC sglVertexAttribI2ui
Definition: GteOpenGL.cpp:3260
static PFNGLISENABLEDIPROC sglIsEnabledi
Definition: GteOpenGL.cpp:3242
GLuint start
Definition: glcorearb.h:470
void APIENTRY glProgramUniform3f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
Definition: GteOpenGL.cpp:6710
void APIENTRY glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
Definition: GteOpenGL.cpp:6879
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glcorearb.h:2534
void APIENTRY glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size)
Definition: GteOpenGL.cpp:3429
static PFNGLVERTEXATTRIBL2DVPROC sglVertexAttribL2dv
Definition: GteOpenGL.cpp:6246
static PFNGLFRAMEBUFFERTEXTURE3DPROC sglFramebufferTexture3D
Definition: GteOpenGL.cpp:3308
void APIENTRY glInvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length)
Definition: GteOpenGL.cpp:7873
static PFNGLGETNCOMPRESSEDTEXIMAGEPROC sglGetnCompressedTexImage
Definition: GteOpenGL.cpp:8613
GLuint color
Definition: glcorearb.h:1256
static void Initialize_OPENGL_VERSION_3_3()
Definition: GteOpenGL.cpp:5427
static PFNGLCLEARNAMEDFRAMEBUFFERIVPROC sglClearNamedFramebufferiv
Definition: GteOpenGL.cpp:8543
void APIENTRY glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:7087
static PFNGLGETSHADERINFOLOGPROC sglGetShaderInfoLog
Definition: GteOpenGL.cpp:1736
void APIENTRY glVertexAttrib4uiv(GLuint index, const GLuint *v)
Definition: GteOpenGL.cpp:2996
static PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC sglGetCompressedTextureSubImage
Definition: GteOpenGL.cpp:8611
void APIENTRY glGetNamedFramebufferAttachmentParameteriv(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:9141
const GLuint GLenum const void * binary
Definition: glcorearb.h:1919
static PFNGLGETACTIVEUNIFORMNAMEPROC sglGetActiveUniformName
Definition: GteOpenGL.cpp:4538
void APIENTRY glSamplerParameteri(GLuint sampler, GLenum pname, GLint param)
Definition: GteOpenGL.cpp:5141
static PFNGLSAMPLERPARAMETERIPROC sglSamplerParameteri
Definition: GteOpenGL.cpp:5034
void APIENTRY glVertexAttrib3fv(GLuint index, const GLfloat *v)
Definition: GteOpenGL.cpp:2749
void APIENTRY glCopyTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:9414
GLenum GLint GLint GLint GLint GLuint GLenum GLint dstLevel
Definition: glcorearb.h:2505
static PFNGLBINDFRAMEBUFFERPROC sglBindFramebuffer
Definition: GteOpenGL.cpp:3302
void APIENTRY glTexParameterf(GLenum target, GLenum pname, GLfloat param)
Definition: GteOpenGL.cpp:227
static PFNGLCHECKFRAMEBUFFERSTATUSPROC sglCheckFramebufferStatus
Definition: GteOpenGL.cpp:3305
static PFNGLDELETEPROGRAMPROC sglDeleteProgram
Definition: GteOpenGL.cpp:1724
void APIENTRY glTextureParameterfv(GLuint texture, GLenum pname, const GLfloat *param)
Definition: GteOpenGL.cpp:9440
static PFNGLSCISSORINDEXEDPROC sglScissorIndexed
Definition: GteOpenGL.cpp:6255
void APIENTRY glTextureStorage3D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
Definition: GteOpenGL.cpp:9271
void APIENTRY glVertexAttrib4sv(GLuint index, const GLshort *v)
Definition: GteOpenGL.cpp:2970
static PFNGLGETNAMEDBUFFERPARAMETERIVPROC sglGetNamedBufferParameteriv
Definition: GteOpenGL.cpp:8529
static PFNGLTEXTUREPARAMETERIUIVPROC sglTextureParameterIuiv
Definition: GteOpenGL.cpp:8576
#define OPENGL_VERSION_4_1
Definition: GteOpenGL.cpp:30
void APIENTRY glReleaseShaderCompiler()
Definition: GteOpenGL.cpp:6262
static PFNGLGETSHADERPRECISIONFORMATPROC sglGetShaderPrecisionFormat
Definition: GteOpenGL.cpp:6175
void APIENTRY glDeleteQueries(GLsizei n, const GLuint *ids)
Definition: GteOpenGL.cpp:1440
static PFNGLTEXTUREPARAMETERIIVPROC sglTextureParameterIiv
Definition: GteOpenGL.cpp:8575
static PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC sglClearNamedFramebufferuiv
Definition: GteOpenGL.cpp:8544
static PFNGLPROGRAMUNIFORM2IVPROC sglProgramUniform2iv
Definition: GteOpenGL.cpp:6198
void APIENTRY glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message)
Definition: GteOpenGL.cpp:8236
static PFNGLGETVERTEXATTRIBIIVPROC sglGetVertexAttribIiv
Definition: GteOpenGL.cpp:3253
void APIENTRY glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
Definition: GteOpenGL.cpp:915
#define OPENGL_VERSION_1_3
Definition: GteOpenGL.cpp:20
void APIENTRY glBindRenderbuffer(GLenum target, GLuint renderbuffer)
Definition: GteOpenGL.cpp:4101
void APIENTRY glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:4289
void APIENTRY glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
Definition: GteOpenGL.cpp:8064
static PFNGLBLENDCOLORPROC sglBlendColor
Definition: GteOpenGL.cpp:1269
static PFNGLVERTEXATTRIB4NUSVPROC sglVertexAttrib4Nusv
Definition: GteOpenGL.cpp:1794
void APIENTRY glLineWidth(GLfloat width)
Definition: GteOpenGL.cpp:175
void APIENTRY glVertexAttrib2sv(GLuint index, const GLshort *v)
Definition: GteOpenGL.cpp:2697
void APIENTRY glVertexAttribI4iv(GLuint index, const GLint *v)
Definition: GteOpenGL.cpp:3702
static PFNGLVERTEXATTRIB4FVPROC sglVertexAttrib4fv
Definition: GteOpenGL.cpp:1799
void APIENTRY glStencilMask(GLuint mask)
Definition: GteOpenGL.cpp:370
GLint level
Definition: glcorearb.h:103
static PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC sglProgramUniformMatrix3x4fv
Definition: GteOpenGL.cpp:6231
void *APIENTRY glMapBuffer(GLenum target, GLenum access)
Definition: GteOpenGL.cpp:1628
static PFNGLDISPATCHCOMPUTEINDIRECTPROC sglDispatchComputeIndirect
Definition: GteOpenGL.cpp:7702
GLuint GLsizei bufSize
Definition: glcorearb.h:790
static PFNGLNAMEDBUFFERSUBDATAPROC sglNamedBufferSubData
Definition: GteOpenGL.cpp:8521
void APIENTRY glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *param)
Definition: GteOpenGL.cpp:5193
void APIENTRY glGetQueryBufferObjectuiv(GLuint id, GLuint buffer, GLenum pname, GLintptr offset)
Definition: GteOpenGL.cpp:9895
static PFNGLUNIFORMMATRIX3X2FVPROC sglUniformMatrix3x2fv
Definition: GteOpenGL.cpp:3138
void APIENTRY glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
Definition: GteOpenGL.cpp:8129
void APIENTRY glDeleteShader(GLuint shader)
Definition: GteOpenGL.cpp:1957
void APIENTRY glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z)
Definition: GteOpenGL.cpp:3637
unsigned char GLboolean
Definition: glcorearb.h:90
void APIENTRY glVertexArrayAttribBinding(GLuint vaobj, GLuint attribindex, GLuint bindingindex)
Definition: GteOpenGL.cpp:9713
static PFNGLBINDVERTEXBUFFERPROC sglBindVertexBuffer
Definition: GteOpenGL.cpp:7726
GLuint GLuint stream
Definition: glcorearb.h:1827
static PFNGLGETVERTEXATTRIBIUIVPROC sglGetVertexAttribIuiv
Definition: GteOpenGL.cpp:3254
ptrdiff_t GLsizeiptr
Definition: glcorearb.h:617
unsigned char GLubyte
Definition: glcorearb.h:91
static PFNGLCOPYTEXTURESUBIMAGE1DPROC sglCopyTextureSubImage1D
Definition: GteOpenGL.cpp:8569
static PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC sglCompressedTextureSubImage3D
Definition: GteOpenGL.cpp:8568
void APIENTRY glVertexAttribL1d(GLuint index, GLdouble x)
Definition: GteOpenGL.cpp:7152
void APIENTRY glGenSamplers(GLsizei count, GLuint *samplers)
Definition: GteOpenGL.cpp:5086
static PFNGLUNIFORM1IPROC sglUniform1i
Definition: GteOpenGL.cpp:1754
void APIENTRY glScissorArrayv(GLuint first, GLsizei count, const GLint *v)
Definition: GteOpenGL.cpp:7321
void APIENTRY glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders)
Definition: GteOpenGL.cpp:2035
void APIENTRY glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
Definition: GteOpenGL.cpp:8077
void APIENTRY glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:7074
void APIENTRY glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size)
Definition: GteOpenGL.cpp:8051
static PFNGLBINDTEXTUREPROC sglBindTexture
Definition: GteOpenGL.cpp:832
void APIENTRY glVertexAttribI3uiv(GLuint index, const GLuint *v)
Definition: GteOpenGL.cpp:3741
void APIENTRY glVertexAttrib4Nusv(GLuint index, const GLushort *v)
Definition: GteOpenGL.cpp:2866
static PFNGLTEXSTORAGE2DPROC sglTexStorage2D
Definition: GteOpenGL.cpp:7517
void APIENTRY glMemoryBarrierByRegion(GLbitfield barriers)
Definition: GteOpenGL.cpp:9908
GLfloat GLfloat v1
Definition: glcorearb.h:812
void APIENTRY glUniform1uiv(GLint location, GLsizei count, const GLuint *value)
Definition: GteOpenGL.cpp:3913
void APIENTRY glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label)
Definition: GteOpenGL.cpp:8262
static PFNGLDRAWARRAYSINDIRECTPROC sglDrawArraysIndirect
Definition: GteOpenGL.cpp:5469
static void Initialize_OPENGL_VERSION_1_0()
Definition: GteOpenGL.cpp:768
void APIENTRY glBindVertexArray(GLuint array)
Definition: GteOpenGL.cpp:4383
void APIENTRY glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
Definition: GteOpenGL.cpp:500
const GLuint * buffers
Definition: glcorearb.h:656
GLuint * samplers
Definition: glcorearb.h:1648
void APIENTRY glProgramBinary(GLuint program, GLenum binaryFormat, const void *binary, GLsizei length)
Definition: GteOpenGL.cpp:6340
void APIENTRY glGetTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void *pixels)
Definition: GteOpenGL.cpp:9921
static PFNGLVERTEXATTRIBI4IPROC sglVertexAttribI4i
Definition: GteOpenGL.cpp:3258
void APIENTRY glPointParameterfv(GLenum pname, const GLfloat *params)
Definition: GteOpenGL.cpp:1324
void APIENTRY glMultiDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect, GLsizei drawcount, GLsizei stride)
Definition: GteOpenGL.cpp:7938
void APIENTRY glGetCompressedTextureSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void *pixels)
Definition: GteOpenGL.cpp:9934
static PFNGLVERTEXATTRIB4UBVPROC sglVertexAttrib4ubv
Definition: GteOpenGL.cpp:1803
static PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC sglCompressedTexSubImage3D
Definition: GteOpenGL.cpp:1122
static PFNGLGETACTIVEUNIFORMBLOCKIVPROC sglGetActiveUniformBlockiv
Definition: GteOpenGL.cpp:4540
void APIENTRY glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param)
Definition: GteOpenGL.cpp:5167
static PFNGLVERTEXATTRIBI2UIVPROC sglVertexAttribI2uiv
Definition: GteOpenGL.cpp:3268
static PFNGLVERTEXATTRIB2DVPROC sglVertexAttrib2dv
Definition: GteOpenGL.cpp:1777
static PFNGLSHADERBINARYPROC sglShaderBinary
Definition: GteOpenGL.cpp:6174
void APIENTRY glVertexAttribI4ubv(GLuint index, const GLubyte *v)
Definition: GteOpenGL.cpp:3793
static PFNGLVERTEXATTRIBL1DVPROC sglVertexAttribL1dv
Definition: GteOpenGL.cpp:6245
void APIENTRY glUniform3i(GLint location, GLint v0, GLint v1, GLint v2)
Definition: GteOpenGL.cpp:2372
void APIENTRY glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance)
Definition: GteOpenGL.cpp:7522
void APIENTRY glGetTextureParameterIuiv(GLuint texture, GLenum pname, GLuint *params)
Definition: GteOpenGL.cpp:9609
GLenum sfail
Definition: glcorearb.h:777
static PFNGLGETSAMPLERPARAMETERIIVPROC sglGetSamplerParameterIiv
Definition: GteOpenGL.cpp:5041
static PFNGLENABLEPROC sglEnable
Definition: GteOpenGL.cpp:109
void APIENTRY glPopDebugGroup()
Definition: GteOpenGL.cpp:8249
static PFNGLCREATEPROGRAMPROC sglCreateProgram
Definition: GteOpenGL.cpp:1722
static PFNGLSAMPLERPARAMETERFVPROC sglSamplerParameterfv
Definition: GteOpenGL.cpp:5037
static PFNGLMULTIDRAWELEMENTSPROC sglMultiDrawElements
Definition: GteOpenGL.cpp:1264
static PFNGLBUFFERSTORAGEPROC sglBufferStorage
Definition: GteOpenGL.cpp:8366
static PFNGLTEXSUBIMAGE2DPROC sglTexSubImage2D
Definition: GteOpenGL.cpp:831
static PFNGLPAUSETRANSFORMFEEDBACKPROC sglPauseTransformFeedback
Definition: GteOpenGL.cpp:5503
static PFNGLUNMAPBUFFERPROC sglUnmapBuffer
Definition: GteOpenGL.cpp:1423
int64_t GLint64
Definition: glcorearb.h:1521
void APIENTRY glTextureParameterf(GLuint texture, GLenum pname, GLfloat param)
Definition: GteOpenGL.cpp:9427
void APIENTRY glCreateVertexArrays(GLsizei n, GLuint *arrays)
Definition: GteOpenGL.cpp:9635
static PFNGLUNIFORMMATRIX2DVPROC sglUniformMatrix2dv
Definition: GteOpenGL.cpp:5479
static PFNGLGETQUERYBUFFEROBJECTUIVPROC sglGetQueryBufferObjectuiv
Definition: GteOpenGL.cpp:8608
static PFNGLGETINTERNALFORMATIVPROC sglGetInternalformativ
Definition: GteOpenGL.cpp:7512
static PFNGLUNIFORM3IPROC sglUniform3i
Definition: GteOpenGL.cpp:1756
void OpenGLReportListener(char const *function, GLenum code)
static PFNGLVALIDATEPROGRAMPIPELINEPROC sglValidateProgramPipeline
Definition: GteOpenGL.cpp:6239
static PFNGLGETTEXPARAMETERIUIVPROC sglGetTexParameterIuiv
Definition: GteOpenGL.cpp:3289
static PFNGLUNIFORMMATRIX3X2DVPROC sglUniformMatrix3x2dv
Definition: GteOpenGL.cpp:5484
static PFNGLVERTEXARRAYATTRIBFORMATPROC sglVertexArrayAttribFormat
Definition: GteOpenGL.cpp:8595
static PFNGLBINDSAMPLERPROC sglBindSampler
Definition: GteOpenGL.cpp:5033
GLuint uniformBlockIndex
Definition: glcorearb.h:1461
static PFNGLPROGRAMUNIFORM2DPROC sglProgramUniform2d
Definition: GteOpenGL.cpp:6201
static PFNGLENDQUERYINDEXEDPROC sglEndQueryIndexed
Definition: GteOpenGL.cpp:5508
static PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC sglProgramUniformMatrix3x4dv
Definition: GteOpenGL.cpp:6237
static PFNGLPROGRAMUNIFORM3UIPROC sglProgramUniform3ui
Definition: GteOpenGL.cpp:6211
static PFNGLMULTIDRAWARRAYSINDIRECTPROC sglMultiDrawArraysIndirect
Definition: GteOpenGL.cpp:7713
GLbitfield GLuint program
Definition: glcorearb.h:1926
GLsizei GLenum const void GLint basevertex
Definition: glcorearb.h:1586
void APIENTRY glVertexAttribL2dv(GLuint index, const GLdouble *v)
Definition: GteOpenGL.cpp:7217
GLboolean APIENTRY glIsQuery(GLuint id)
Definition: GteOpenGL.cpp:1453
static PFNGLREADPIXELSPROC sglReadPixels
Definition: GteOpenGL.cpp:120
void APIENTRY glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
Definition: GteOpenGL.cpp:5563
static PFNGLCREATESAMPLERSPROC sglCreateSamplers
Definition: GteOpenGL.cpp:8602
static PFNGLGETPROGRAMRESOURCENAMEPROC sglGetProgramResourceName
Definition: GteOpenGL.cpp:7717
static PFNGLVERTEXATTRIBP2UIVPROC sglVertexAttribP2uiv
Definition: GteOpenGL.cpp:5051
void APIENTRY glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void *data)
Definition: GteOpenGL.cpp:7756
void APIENTRY glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth)
Definition: GteOpenGL.cpp:7639
void APIENTRY glGetnCompressedTexImage(GLenum target, GLint lod, GLsizei bufSize, void *pixels)
Definition: GteOpenGL.cpp:9963
static PFNGLUSEPROGRAMPROC sglUseProgram
Definition: GteOpenGL.cpp:1749
static PFNGLDISABLEPROC sglDisable
Definition: GteOpenGL.cpp:108
static PFNGLVERTEXARRAYVERTEXBUFFERSPROC sglVertexArrayVertexBuffers
Definition: GteOpenGL.cpp:8593
void APIENTRY glGetTransformFeedbackiv(GLuint xfb, GLenum pname, GLint *param)
Definition: GteOpenGL.cpp:8674
GLboolean APIENTRY glIsRenderbuffer(GLuint renderbuffer)
Definition: GteOpenGL.cpp:4085
const GLuint * textures
Definition: glcorearb.h:411
static PFNGLGETQUERYBUFFEROBJECTI64VPROC sglGetQueryBufferObjecti64v
Definition: GteOpenGL.cpp:8605
static PFNGLNAMEDBUFFERSTORAGEPROC sglNamedBufferStorage
Definition: GteOpenGL.cpp:8519
void APIENTRY glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5758
GLuint GLint srcX0
Definition: glcorearb.h:2695
GLenum GLintptr GLintptr writeOffset
Definition: glcorearb.h:1456
void APIENTRY glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value)
Definition: GteOpenGL.cpp:5375
GLint lod
Definition: glcorearb.h:2761
static PFNGLUNIFORMMATRIX4X2DVPROC sglUniformMatrix4x2dv
Definition: GteOpenGL.cpp:5486
static PFNGLUNIFORMMATRIX2X3DVPROC sglUniformMatrix2x3dv
Definition: GteOpenGL.cpp:5482
static void Initialize_OPENGL_VERSION_1_4()
Definition: GteOpenGL.cpp:1389
void APIENTRY glDepthRangeIndexed(GLuint index, GLdouble n, GLdouble f)
Definition: GteOpenGL.cpp:7373
static PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC sglDrawElementsInstancedBaseVertexBaseInstance
Definition: GteOpenGL.cpp:7511
void APIENTRY glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:7113
static PFNGLCLEARNAMEDBUFFERDATAPROC sglClearNamedBufferData
Definition: GteOpenGL.cpp:8523
static PFNGLDRAWBUFFERPROC sglDrawBuffer
Definition: GteOpenGL.cpp:100
void APIENTRY glGetnTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels)
Definition: GteOpenGL.cpp:9976
static PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC sglGetNamedRenderbufferParameteriv
Definition: GteOpenGL.cpp:8554
GLint left
Definition: glcorearb.h:2000
static PFNGLGETSAMPLERPARAMETERIUIVPROC sglGetSamplerParameterIuiv
Definition: GteOpenGL.cpp:5043
GLenum GLenum sfactorAlpha
Definition: glcorearb.h:592
GLuint sampler
Definition: glcorearb.h:1651
static PFNGLTEXIMAGE2DMULTISAMPLEPROC sglTexImage2DMultisample
Definition: GteOpenGL.cpp:4739
void APIENTRY glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:4140
static PFNGLGETQUERYOBJECTI64VPROC sglGetQueryObjecti64v
Definition: GteOpenGL.cpp:5045
static PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC sglRenderbufferStorageMultisample
Definition: GteOpenGL.cpp:3313
static PFNGLPROGRAMBINARYPROC sglProgramBinary
Definition: GteOpenGL.cpp:6179
GLdouble far
Definition: glcorearb.h:138
static PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC sglNamedFramebufferRenderbuffer
Definition: GteOpenGL.cpp:8534
GLenum src
Definition: glcorearb.h:1788
void APIENTRY glProgramUniform1f(GLuint program, GLint location, GLfloat v0)
Definition: GteOpenGL.cpp:6502
static PFNGLBLENDEQUATIONIPROC sglBlendEquationi
Definition: GteOpenGL.cpp:5465
static void Initialize_OPENGL_VERSION_3_2()
Definition: GteOpenGL.cpp:5000
void APIENTRY glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void *pixels)
Definition: GteOpenGL.cpp:565
static PFNGLUNIFORMMATRIX3FVPROC sglUniformMatrix3fv
Definition: GteOpenGL.cpp:1767
static PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC sglProgramUniformMatrix4x2dv
Definition: GteOpenGL.cpp:6236
static PFNGLPOINTPARAMETERFVPROC sglPointParameterfv
Definition: GteOpenGL.cpp:1266
static PFNGLPROGRAMUNIFORM2UIPROC sglProgramUniform2ui
Definition: GteOpenGL.cpp:6203
static PFNGLISPROGRAMPIPELINEPROC sglIsProgramPipeline
Definition: GteOpenGL.cpp:6187
#define GL_NUM_EXTENSIONS
Definition: glcorearb.h:1014
void APIENTRY glShaderStorageBlockBinding(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding)
Definition: GteOpenGL.cpp:8038
void *APIENTRYP PFNGLMAPBUFFERRANGEPROC(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access)
Definition: glcorearb.h:1295
static PFNGLTEXSTORAGE2DMULTISAMPLEPROC sglTexStorage2DMultisample
Definition: GteOpenGL.cpp:7723
void APIENTRY glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z)
Definition: GteOpenGL.cpp:7769
static PFNGLGETTRANSFORMFEEDBACKVARYINGPROC sglGetTransformFeedbackVarying
Definition: GteOpenGL.cpp:3248
void APIENTRY glDeleteTextures(GLsizei n, const GLuint *textures)
Definition: GteOpenGL.cpp:980
static PFNGLVERTEXARRAYELEMENTBUFFERPROC sglVertexArrayElementBuffer
Definition: GteOpenGL.cpp:8591
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint GLint GLint dstZ
Definition: glcorearb.h:2505
static PFNGLGETPOINTERVPROC sglGetPointerv
Definition: GteOpenGL.cpp:824
const GLuint * pipelines
Definition: glcorearb.h:1930
GLsizei const GLfloat * value
Definition: glcorearb.h:819
static PFNGLCOPYTEXIMAGE2DPROC sglCopyTexImage2D
Definition: GteOpenGL.cpp:827
void APIENTRY glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y)
Definition: GteOpenGL.cpp:2632
static PFNGLGETQUERYINDEXEDIVPROC sglGetQueryIndexediv
Definition: GteOpenGL.cpp:5509
static PFNGLTEXIMAGE3DPROC sglTexImage3D
Definition: GteOpenGL.cpp:1048
const GLenum * bufs
Definition: glcorearb.h:776
static PFNGLGENTEXTURESPROC sglGenTextures
Definition: GteOpenGL.cpp:834
void APIENTRY glVertexArrayVertexBuffers(GLuint vaobj, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides)
Definition: GteOpenGL.cpp:9700
static void Initialize_OPENGL_VERSION_4_4()
Definition: GteOpenGL.cpp:8493
static PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC sglDrawElementsInstancedBaseInstance
Definition: GteOpenGL.cpp:7510
static PFNGLDEBUGMESSAGECONTROLPROC sglDebugMessageControl
Definition: GteOpenGL.cpp:7732
static PFNGLVERTEXATTRIBP1UIPROC sglVertexAttribP1ui
Definition: GteOpenGL.cpp:5048
GLuint colorNumber
Definition: glcorearb.h:1646
GLuint const GLchar * name
Definition: glcorearb.h:781
GLuint drawFramebuffer
Definition: glcorearb.h:2695
void APIENTRY glGetUniformuiv(GLuint program, GLint location, GLuint *params)
Definition: GteOpenGL.cpp:3819
void APIENTRY glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:7951
void APIENTRY glProgramUniform1d(GLuint program, GLint location, GLdouble v0)
Definition: GteOpenGL.cpp:6528
static PFNGLVIEWPORTPROC sglViewport
Definition: GteOpenGL.cpp:134
static void Initialize_OPENGL_VERSION_3_0()
Definition: GteOpenGL.cpp:4438
void APIENTRY glGetNamedFramebufferParameteriv(GLuint framebuffer, GLenum pname, GLint *param)
Definition: GteOpenGL.cpp:9128
void APIENTRY glGetUniformfv(GLuint program, GLint location, GLfloat *params)
Definition: GteOpenGL.cpp:2145
static PFNGLISVERTEXARRAYPROC sglIsVertexArray
Definition: GteOpenGL.cpp:3320
static PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC sglCheckNamedFramebufferStatus
Definition: GteOpenGL.cpp:8548
static PFNGLCLEARCOLORPROC sglClearColor
Definition: GteOpenGL.cpp:102
static PFNGLVERTEXATTRIBI1UIPROC sglVertexAttribI1ui
Definition: GteOpenGL.cpp:3259
static PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC sglProgramUniformMatrix3x2dv
Definition: GteOpenGL.cpp:6234
static PFNGLBINDBUFFERPROC sglBindBuffer
Definition: GteOpenGL.cpp:1415
void APIENTRY glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:687
void APIENTRY glUniform4uiv(GLint location, GLsizei count, const GLuint *value)
Definition: GteOpenGL.cpp:3952
void APIENTRY glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params)
Definition: GteOpenGL.cpp:5258
void APIENTRY glTextureBarrier()
GLenum GLenum GLenum dppass
Definition: glcorearb.h:777
static PFNGLTRANSFORMFEEDBACKVARYINGSPROC sglTransformFeedbackVaryings
Definition: GteOpenGL.cpp:3247
static PFNGLOBJECTPTRLABELPROC sglObjectPtrLabel
Definition: GteOpenGL.cpp:7740
void APIENTRY glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
Definition: GteOpenGL.cpp:1272
void APIENTRY glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z)
Definition: GteOpenGL.cpp:7178
void APIENTRY glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer)
Definition: GteOpenGL.cpp:3022
static PFNGLPUSHDEBUGGROUPPROC sglPushDebugGroup
Definition: GteOpenGL.cpp:7736
GLenum APIENTRY glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout)
Definition: GteOpenGL.cpp:4854
static PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC sglNamedFramebufferReadBuffer
Definition: GteOpenGL.cpp:8540
void APIENTRY glUniform2f(GLint location, GLfloat v0, GLfloat v1)
Definition: GteOpenGL.cpp:2307
void APIENTRY glBlitNamedFramebuffer(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
Definition: GteOpenGL.cpp:9099
static PFNGLPROGRAMUNIFORMMATRIX2DVPROC sglProgramUniformMatrix2dv
Definition: GteOpenGL.cpp:6224
static PFNGLENABLEVERTEXARRAYATTRIBPROC sglEnableVertexArrayAttrib
Definition: GteOpenGL.cpp:8590
static PFNGLVERTEXATTRIBP1UIVPROC sglVertexAttribP1uiv
Definition: GteOpenGL.cpp:5049
void APIENTRY glCopyTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:9401
void APIENTRY glBeginQueryIndexed(GLenum target, GLuint index, GLuint id)
Definition: GteOpenGL.cpp:6079
static PFNGLVERTEXATTRIB4FPROC sglVertexAttrib4f
Definition: GteOpenGL.cpp:1798
void APIENTRY glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
Definition: GteOpenGL.cpp:4195
void APIENTRY glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers)
Definition: GteOpenGL.cpp:4114
static PFNGLBINDVERTEXARRAYPROC sglBindVertexArray
Definition: GteOpenGL.cpp:3317
GLuint APIENTRY glGetSubroutineIndex(GLuint program, GLenum shadertype, const GLchar *name)
Definition: GteOpenGL.cpp:5852
void APIENTRY glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data)
Definition: GteOpenGL.cpp:4909
static PFNGLUNIFORM4FVPROC sglUniform4fv
Definition: GteOpenGL.cpp:1761
static PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC sglDrawTransformFeedbackInstanced
Definition: GteOpenGL.cpp:7519
static PFNGLCREATEFRAMEBUFFERSPROC sglCreateFramebuffers
Definition: GteOpenGL.cpp:8533
static void Initialize_OPENGL_VERSION_4_3()
Definition: GteOpenGL.cpp:8314
static PFNGLVERTEXATTRIBI2IVPROC sglVertexAttribI2iv
Definition: GteOpenGL.cpp:3264
GLsizei samples
Definition: glcorearb.h:1293
void APIENTRY glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:2197
static PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC sglGetCompressedTextureImage
Definition: GteOpenGL.cpp:8581
static PFNGLPROGRAMPARAMETERIPROC sglProgramParameteri
Definition: GteOpenGL.cpp:6180
void APIENTRY glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
Definition: GteOpenGL.cpp:240
#define OPENGL_VERSION_4_5
Definition: GteOpenGL.cpp:34
void APIENTRY glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:941
void APIENTRY glTextureStorage2DMultisample(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
Definition: GteOpenGL.cpp:9284
static PFNGLBINDBUFFERSBASEPROC sglBindBuffersBase
Definition: GteOpenGL.cpp:8369
static PFNGLCOMPRESSEDTEXIMAGE1DPROC sglCompressedTexImage1D
Definition: GteOpenGL.cpp:1121
static PFNGLREADNPIXELSPROC sglReadnPixels
Definition: GteOpenGL.cpp:8619
static PFNGLGETPROGRAMSTAGEIVPROC sglGetProgramStageiv
Definition: GteOpenGL.cpp:5496
GLenum target
Definition: glcorearb.h:1662
static PFNGLVERTEXATTRIBP4UIVPROC sglVertexAttribP4uiv
Definition: GteOpenGL.cpp:5055
static PFNGLSAMPLERPARAMETERIVPROC sglSamplerParameteriv
Definition: GteOpenGL.cpp:5035
static PFNGLDEPTHMASKPROC sglDepthMask
Definition: GteOpenGL.cpp:107
static PFNGLTEXTUREPARAMETERIVPROC sglTextureParameteriv
Definition: GteOpenGL.cpp:8577
static PFNGLTEXPARAMETERIPROC sglTexParameteri
Definition: GteOpenGL.cpp:96
#define OPENGL_VERSION_3_3
Definition: GteOpenGL.cpp:28
static PFNGLGETQUERYOBJECTUI64VPROC sglGetQueryObjectui64v
Definition: GteOpenGL.cpp:5046
static PFNGLRELEASESHADERCOMPILERPROC sglReleaseShaderCompiler
Definition: GteOpenGL.cpp:6173
GLenum GLsizei GLsizei GLint * values
Definition: glcorearb.h:1597
static PFNGLBEGINQUERYPROC sglBeginQuery
Definition: GteOpenGL.cpp:1410
GLint GLenum GLint x
Definition: glcorearb.h:404
void APIENTRY glGetProgramiv(GLuint program, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:2064
static PFNGLPROGRAMUNIFORM2FVPROC sglProgramUniform2fv
Definition: GteOpenGL.cpp:6200
GLint GLuint mask
Definition: glcorearb.h:119
GLuint GLsizei const GLuint const GLintptr * offsets
Definition: glcorearb.h:2616
GLenum GLint GLint GLint GLint GLuint dstName
Definition: glcorearb.h:2505
static PFNGLGETQUERYBUFFEROBJECTUI64VPROC sglGetQueryBufferObjectui64v
Definition: GteOpenGL.cpp:8607
GLenum cap
Definition: glext.h:8371
static PFNGLTEXPARAMETERFPROC sglTexParameterf
Definition: GteOpenGL.cpp:94
void APIENTRY glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:3209
void APIENTRY glPixelStorei(GLenum pname, GLint param)
Definition: GteOpenGL.cpp:539
static PFNGLGETINTEGERI_VPROC sglGetIntegeri_v
Definition: GteOpenGL.cpp:3239
static PFNGLCOLORMASKIPROC sglColorMaski
Definition: GteOpenGL.cpp:3237
void APIENTRY glDisableVertexArrayAttrib(GLuint vaobj, GLuint index)
Definition: GteOpenGL.cpp:9648
GLsizeiptr size
Definition: glcorearb.h:659
static PFNGLUNIFORM1UIPROC sglUniform1ui
Definition: GteOpenGL.cpp:3278
GLint GLenum GLboolean GLuint relativeoffset
Definition: glcorearb.h:2529
static PFNGLPROGRAMUNIFORM4FVPROC sglProgramUniform4fv
Definition: GteOpenGL.cpp:6216
void APIENTRY glBlendEquation(GLenum mode)
Definition: GteOpenGL.cpp:1376
void APIENTRY glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
Definition: GteOpenGL.cpp:6775
void APIENTRY glTexParameterIiv(GLenum target, GLenum pname, const GLint *params)
Definition: GteOpenGL.cpp:3965
void APIENTRY glVertexArrayAttribIFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
Definition: GteOpenGL.cpp:9739
GLuint APIENTRY glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar *const *strings)
Definition: GteOpenGL.cpp:6392
void APIENTRY glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params)
Definition: GteOpenGL.cpp:2184
static PFNGLUNIFORM4IVPROC sglUniform4iv
Definition: GteOpenGL.cpp:1765
static PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC sglGetFramebufferAttachmentParameteriv
Definition: GteOpenGL.cpp:3310
void APIENTRY glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params)
Definition: GteOpenGL.cpp:5245
void APIENTRY glGetQueryBufferObjectiv(GLuint id, GLuint buffer, GLenum pname, GLintptr offset)
Definition: GteOpenGL.cpp:9869
const void * userParam
Definition: glcorearb.h:2536
void APIENTRY glProgramUniform3d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2)
Definition: GteOpenGL.cpp:6736
void APIENTRY glVertexAttrib4Nbv(GLuint index, const GLbyte *v)
Definition: GteOpenGL.cpp:2788
void APIENTRY glBindSampler(GLuint unit, GLuint sampler)
Definition: GteOpenGL.cpp:5128
const GLchar * uniformBlockName
Definition: glcorearb.h:1460
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei imageSize
Definition: glcorearb.h:545
void APIENTRY glClearNamedFramebufferfi(GLuint framebuffer, GLenum buffer, const GLfloat depth, GLint stencil)
Definition: GteOpenGL.cpp:9086
static void Initialize_OPENGL_VERSION_2_1()
Definition: GteOpenGL.cpp:3222
void APIENTRY glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:3157
GLsizei GLboolean transpose
Definition: glcorearb.h:827
void APIENTRY glLogicOp(GLenum opcode)
Definition: GteOpenGL.cpp:474
static PFNGLPOLYGONMODEPROC sglPolygonMode
Definition: GteOpenGL.cpp:92
void APIENTRY glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val)
Definition: GteOpenGL.cpp:4974
GLint APIENTRY glGetFragDataLocation(GLuint program, const GLchar *name)
Definition: GteOpenGL.cpp:3845
GLubyte GLubyte GLubyte GLubyte w
Definition: glcorearb.h:852
static PFNGLUSEPROGRAMSTAGESPROC sglUseProgramStages
Definition: GteOpenGL.cpp:6181
static PFNGLUNIFORM3UIVPROC sglUniform3uiv
Definition: GteOpenGL.cpp:3284
GLenum srcRGB
Definition: glcorearb.h:1789
void APIENTRY glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name)
Definition: GteOpenGL.cpp:7980
GLint GLint GLsizei GLsizei GLsizei depth
Definition: glcorearb.h:471
static PFNGLCOPYTEXSUBIMAGE2DPROC sglCopyTexSubImage2D
Definition: GteOpenGL.cpp:829
void APIENTRY glScissorIndexed(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:7334
static PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC sglProgramUniformMatrix2x3dv
Definition: GteOpenGL.cpp:6233
void APIENTRY glGetBufferPointerv(GLenum target, GLenum pname, void **params)
Definition: GteOpenGL.cpp:1673
static PFNGLGETPROGRAMRESOURCELOCATIONPROC sglGetProgramResourceLocation
Definition: GteOpenGL.cpp:7719
void APIENTRY glVertexAttribL1dv(GLuint index, const GLdouble *v)
Definition: GteOpenGL.cpp:7204
static PFNGLPATCHPARAMETERFVPROC sglPatchParameterfv
Definition: GteOpenGL.cpp:5498
static PFNGLMAPNAMEDBUFFERRANGEPROC sglMapNamedBufferRange
Definition: GteOpenGL.cpp:8526
static PFNGLGETTEXPARAMETERIIVPROC sglGetTexParameterIiv
Definition: GteOpenGL.cpp:3288
static PFNGLGETQUERYOBJECTIVPROC sglGetQueryObjectiv
Definition: GteOpenGL.cpp:1413
GLuint APIENTRY glCreateProgram()
Definition: GteOpenGL.cpp:1912
void APIENTRY glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer)
Definition: GteOpenGL.cpp:4341
void APIENTRY glCompressedTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:9375
static PFNGLCOMPRESSEDTEXIMAGE2DPROC sglCompressedTexImage2D
Definition: GteOpenGL.cpp:1120
void APIENTRY glActiveShaderProgram(GLuint pipeline, GLuint program)
Definition: GteOpenGL.cpp:6379
static PFNGLBINDIMAGETEXTUREPROC sglBindImageTexture
Definition: GteOpenGL.cpp:7514
struct __GLsync * GLsync
Definition: glcorearb.h:1482
GLboolean GLboolean GLboolean GLboolean a
Definition: glcorearb.h:1217
static PFNGLPROGRAMUNIFORM1IPROC sglProgramUniform1i
Definition: GteOpenGL.cpp:6189
static PFNGLGENPROGRAMPIPELINESPROC sglGenProgramPipelines
Definition: GteOpenGL.cpp:6186
static PFNGLBINDATTRIBLOCATIONPROC sglBindAttribLocation
Definition: GteOpenGL.cpp:1720
static PFNGLDEPTHRANGEPROC sglDepthRange
Definition: GteOpenGL.cpp:133
static PFNGLPROGRAMUNIFORM3IVPROC sglProgramUniform3iv
Definition: GteOpenGL.cpp:6206
static PFNGLGETVERTEXARRAYIVPROC sglGetVertexArrayiv
Definition: GteOpenGL.cpp:8599
void APIENTRY glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:4664
void APIENTRY glEnablei(GLenum target, GLuint index)
Definition: GteOpenGL.cpp:3361
void APIENTRY glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const void *indices, GLint basevertex)
Definition: GteOpenGL.cpp:4744
static PFNGLENDQUERYPROC sglEndQuery
Definition: GteOpenGL.cpp:1411
void APIENTRY glDetachShader(GLuint program, GLuint shader)
Definition: GteOpenGL.cpp:1970
static PFNGLPROGRAMUNIFORM3FVPROC sglProgramUniform3fv
Definition: GteOpenGL.cpp:6208
void APIENTRY glBindTexture(GLenum target, GLuint texture)
Definition: GteOpenGL.cpp:967
GLenum APIENTRY glGetError()
Definition: GteOpenGL.cpp:604
int GLsizei
Definition: glcorearb.h:86
static PFNGLTEXTURESUBIMAGE3DPROC sglTextureSubImage3D
Definition: GteOpenGL.cpp:8565
static PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC sglNamedFramebufferDrawBuffer
Definition: GteOpenGL.cpp:8538
GLint APIENTRY glGetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name)
Definition: GteOpenGL.cpp:8006
GLenum condition
Definition: glext.h:9100
void APIENTRY glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, void *data)
Definition: GteOpenGL.cpp:1615
static PFNGLPROGRAMUNIFORM4FPROC sglProgramUniform4f
Definition: GteOpenGL.cpp:6215
GLsizei GLenum * sources
Definition: glcorearb.h:2537
void APIENTRY glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params)
Definition: GteOpenGL.cpp:5284
GLsizei GLenum GLenum GLuint GLenum GLsizei * lengths
Definition: glcorearb.h:2537
static PFNGLSHADERSTORAGEBLOCKBINDINGPROC sglShaderStorageBlockBinding
Definition: GteOpenGL.cpp:7721
void APIENTRY glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3)
Definition: GteOpenGL.cpp:2385
void APIENTRY glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a)
Definition: GteOpenGL.cpp:3322
const GLuint * renderbuffers
Definition: glcorearb.h:1277
void APIENTRY glVertexArrayAttribLFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
Definition: GteOpenGL.cpp:9752
static PFNGLPRIMITIVERESTARTINDEXPROC sglPrimitiveRestartIndex
Definition: GteOpenGL.cpp:4534
void APIENTRY glGetActiveSubroutineName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name)
Definition: GteOpenGL.cpp:5894
void APIENTRY glViewportArrayv(GLuint first, GLsizei count, const GLfloat *v)
Definition: GteOpenGL.cpp:7282
void APIENTRY glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream)
Definition: GteOpenGL.cpp:6066
static PFNGLTEXIMAGE1DPROC sglTexImage1D
Definition: GteOpenGL.cpp:98
void APIENTRY glInvalidateNamedFramebufferSubData(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:9034
static PFNGLPROGRAMUNIFORM4UIPROC sglProgramUniform4ui
Definition: GteOpenGL.cpp:6219
signed char GLbyte
Definition: glcorearb.h:693
GLuint framebuffer
Definition: glcorearb.h:1282
static PFNGLVERTEXATTRIBI3UIPROC sglVertexAttribI3ui
Definition: GteOpenGL.cpp:3261
void APIENTRY glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:7912
GLenum precisiontype
Definition: glcorearb.h:1920
static PFNGLPOINTPARAMETERFPROC sglPointParameterf
Definition: GteOpenGL.cpp:1265
static PFNGLTEXSTORAGE1DPROC sglTexStorage1D
Definition: GteOpenGL.cpp:7516
void APIENTRY glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params)
Definition: GteOpenGL.cpp:4004
void APIENTRY glVertexArrayVertexBuffer(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride)
Definition: GteOpenGL.cpp:9687
void APIENTRY glShaderSource(GLuint shader, GLsizei count, const GLchar *const *string, const GLint *length)
Definition: GteOpenGL.cpp:2268
static PFNGLGETSAMPLERPARAMETERFVPROC sglGetSamplerParameterfv
Definition: GteOpenGL.cpp:5042
static PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC sglCompressedTextureSubImage2D
Definition: GteOpenGL.cpp:8567
void APIENTRY glReadBuffer(GLenum src)
Definition: GteOpenGL.cpp:552
void APIENTRY glFinish()
Definition: GteOpenGL.cpp:435
void APIENTRY glFlushMappedNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length)
Definition: GteOpenGL.cpp:8852
GLboolean GLboolean g
Definition: glcorearb.h:1217
void APIENTRY glBindAttribLocation(GLuint program, GLuint index, const GLchar *name)
Definition: GteOpenGL.cpp:1886
void APIENTRY glGetDoublei_v(GLenum target, GLuint index, GLdouble *data)
Definition: GteOpenGL.cpp:7399
GLuint GLuint uniformBlockBinding
Definition: glcorearb.h:1463
static PFNGLUNIFORMMATRIX2X4DVPROC sglUniformMatrix2x4dv
Definition: GteOpenGL.cpp:5483
void APIENTRY glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName)
Definition: GteOpenGL.cpp:4677
void APIENTRY glLinkProgram(GLuint program)
Definition: GteOpenGL.cpp:2255
void APIENTRY glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params)
Definition: GteOpenGL.cpp:4922
GLint GLint srcX1
Definition: glcorearb.h:1292
static PFNGLVERTEXATTRIB1SVPROC sglVertexAttrib1sv
Definition: GteOpenGL.cpp:1775
void APIENTRY glVertexAttribI2i(GLuint index, GLint x, GLint y)
Definition: GteOpenGL.cpp:3572
static PFNGLINVALIDATESUBFRAMEBUFFERPROC sglInvalidateSubFramebuffer
Definition: GteOpenGL.cpp:7712
static PFNGLGETPROGRAMRESOURCEINDEXPROC sglGetProgramResourceIndex
Definition: GteOpenGL.cpp:7716
void APIENTRY glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label)
Definition: GteOpenGL.cpp:8275
void APIENTRY glEnableVertexArrayAttrib(GLuint vaobj, GLuint index)
Definition: GteOpenGL.cpp:9661
static PFNGLPROGRAMUNIFORM3FPROC sglProgramUniform3f
Definition: GteOpenGL.cpp:6207
static PFNGLSTENCILFUNCSEPARATEPROC sglStencilFuncSeparate
Definition: GteOpenGL.cpp:1717
static PFNGLNAMEDFRAMEBUFFERTEXTUREPROC sglNamedFramebufferTexture
Definition: GteOpenGL.cpp:8536
void APIENTRY glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5797
static PFNGLBLENDFUNCSEPARATEPROC sglBlendFuncSeparate
Definition: GteOpenGL.cpp:1262
static void Initialize_OPENGL_VERSION_1_5()
Definition: GteOpenGL.cpp:1686
void APIENTRY glProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble *value)
Definition: GteOpenGL.cpp:6749
void APIENTRY glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value)
Definition: GteOpenGL.cpp:6489
void APIENTRY glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const void *data)
Definition: GteOpenGL.cpp:8389
static PFNGLTEXTURESTORAGE2DPROC sglTextureStorage2D
Definition: GteOpenGL.cpp:8559
static PFNGLPROGRAMUNIFORM4IVPROC sglProgramUniform4iv
Definition: GteOpenGL.cpp:6214
static PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC sglNamedFramebufferDrawBuffers
Definition: GteOpenGL.cpp:8539
#define OPENGL_VERSION_3_0
Definition: GteOpenGL.cpp:25
static PFNGLVERTEXATTRIB3FVPROC sglVertexAttrib3fv
Definition: GteOpenGL.cpp:1785
static PFNGLCLEARPROC sglClear
Definition: GteOpenGL.cpp:101
GLenum GLenum GLenum dfactorAlpha
Definition: glcorearb.h:592
static PFNGLGETBUFFERSUBDATAPROC sglGetBufferSubData
Definition: GteOpenGL.cpp:1421
static PFNGLGETTEXTURESUBIMAGEPROC sglGetTextureSubImage
Definition: GteOpenGL.cpp:8610
GLint GLint GLint GLint dstX0
Definition: glcorearb.h:1292
static PFNGLGETFRAGDATAINDEXPROC sglGetFragDataIndex
Definition: GteOpenGL.cpp:5029
static void Initialize_OPENGL_VERSION_1_1()
Definition: GteOpenGL.cpp:1022
static PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC sglCompressedTextureSubImage1D
Definition: GteOpenGL.cpp:8566
void APIENTRY glEndQuery(GLenum target)
Definition: GteOpenGL.cpp:1482
void APIENTRY glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level)
Definition: GteOpenGL.cpp:4935
void APIENTRY glDrawElementsIndirect(GLenum mode, GLenum type, const void *indirect)
Definition: GteOpenGL.cpp:5589
static PFNGLBINDBUFFERBASEPROC sglBindBufferBase
Definition: GteOpenGL.cpp:3246
void APIENTRY glTexImage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations)
Definition: GteOpenGL.cpp:4948
#define OPENGL_VERSION_1_4
Definition: GteOpenGL.cpp:21
static PFNGLSAMPLERPARAMETERIIVPROC sglSamplerParameterIiv
Definition: GteOpenGL.cpp:5038
static PFNGLFINISHPROC sglFinish
Definition: GteOpenGL.cpp:110
static PFNGLUNIFORMMATRIX4X3DVPROC sglUniformMatrix4x3dv
Definition: GteOpenGL.cpp:5487
void APIENTRY glNamedBufferStorage(GLuint buffer, GLsizei size, const void *data, GLbitfield flags)
Definition: GteOpenGL.cpp:8726
void APIENTRY glClearNamedFramebufferuiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint *value)
Definition: GteOpenGL.cpp:9060
static PFNGLGETPROGRAMBINARYPROC sglGetProgramBinary
Definition: GteOpenGL.cpp:6178
void APIENTRY glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value)
Definition: GteOpenGL.cpp:4017
static void Initialize_OPENGL_VERSION_4_0()
Definition: GteOpenGL.cpp:6118
GLint GLint GLint GLint GLint GLint GLint dstY1
Definition: glcorearb.h:1292
GLuint storageBlockIndex
Definition: glcorearb.h:2523
void APIENTRY glVertexAttrib4usv(GLuint index, const GLushort *v)
Definition: GteOpenGL.cpp:3009
void APIENTRY glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
Definition: GteOpenGL.cpp:4276
GLsizei GLsizei GLchar * infoLog
Definition: glcorearb.h:795
GLint GLenum GLboolean normalized
Definition: glcorearb.h:867
static PFNGLGETVERTEXATTRIBDVPROC sglGetVertexAttribdv
Definition: GteOpenGL.cpp:1741
static PFNGLGETVERTEXATTRIBFVPROC sglGetVertexAttribfv
Definition: GteOpenGL.cpp:1742
static PFNGLPROVOKINGVERTEXPROC sglProvokingVertex
Definition: GteOpenGL.cpp:4728
void APIENTRY glDeleteSync(GLsync sync)
Definition: GteOpenGL.cpp:4841
static PFNGLGETQUERYOBJECTUIVPROC sglGetQueryObjectuiv
Definition: GteOpenGL.cpp:1414
static PFNGLGETTEXTUREPARAMETERIVPROC sglGetTextureParameteriv
Definition: GteOpenGL.cpp:8587
void APIENTRY glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value)
Definition: GteOpenGL.cpp:5401
GLenum GLenum GLenum srcAlpha
Definition: glcorearb.h:1789
static PFNGLVERTEXATTRIBI4UBVPROC sglVertexAttribI4ubv
Definition: GteOpenGL.cpp:3273
static void Initialize_OPENGL_VERSION_4_5()
static PFNGLBEGINQUERYINDEXEDPROC sglBeginQueryIndexed
Definition: GteOpenGL.cpp:5507
static PFNGLVERTEXATTRIBP2UIPROC sglVertexAttribP2ui
Definition: GteOpenGL.cpp:5050
#define GL_MINOR_VERSION
Definition: glcorearb.h:1013
void APIENTRY glUniform1i(GLint location, GLint v0)
Definition: GteOpenGL.cpp:2346
static PFNGLFRAMEBUFFERTEXTURE1DPROC sglFramebufferTexture1D
Definition: GteOpenGL.cpp:3306
void APIENTRY glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:713
static PFNGLVERTEXATTRIBL3DPROC sglVertexAttribL3d
Definition: GteOpenGL.cpp:6243
GLbitfield GLuint64 timeout
Definition: glcorearb.h:1594
static PFNGLDEPTHRANGEFPROC sglDepthRangef
Definition: GteOpenGL.cpp:6176
GLboolean APIENTRY glIsBuffer(GLuint buffer)
Definition: GteOpenGL.cpp:1573
void APIENTRY glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value)
Definition: GteOpenGL.cpp:5349
GLsizei GLsizei GLenum * binaryFormat
Definition: glcorearb.h:1923
void APIENTRY glGetTextureParameterIiv(GLuint texture, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:9596
void APIENTRY glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
Definition: GteOpenGL.cpp:2892
void APIENTRY glGetVertexArrayIndexediv(GLuint vaobj, GLuint index, GLenum pname, GLint *param)
Definition: GteOpenGL.cpp:9791
void APIENTRY glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value)
Definition: GteOpenGL.cpp:4030
static PFNGLBINDPROGRAMPIPELINEPROC sglBindProgramPipeline
Definition: GteOpenGL.cpp:6184
void APIENTRY glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
Definition: GteOpenGL.cpp:2333
void APIENTRY glBufferData(GLenum target, GLsizeiptr size, const void *data, GLenum usage)
Definition: GteOpenGL.cpp:1589
GLuint GLint GLboolean GLint GLenum access
Definition: glcorearb.h:2217
static PFNGLBINDFRAGDATALOCATIONPROC sglBindFragDataLocation
Definition: GteOpenGL.cpp:3276
void APIENTRY glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2)
Definition: GteOpenGL.cpp:3887
GLuint renderbuffer
Definition: glcorearb.h:1276
void APIENTRY glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision)
Definition: GteOpenGL.cpp:6288
void APIENTRY glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
Definition: GteOpenGL.cpp:6827
static PFNGLCULLFACEPROC sglCullFace
Definition: GteOpenGL.cpp:87
void APIENTRY glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled)
Definition: GteOpenGL.cpp:8181
static PFNGLVERTEXATTRIB4NUIVPROC sglVertexAttrib4Nuiv
Definition: GteOpenGL.cpp:1793
void APIENTRY glUseProgram(GLuint program)
Definition: GteOpenGL.cpp:2281
static void ReportGLError(const char *glFunction)
Definition: GteOpenGL.cpp:58
static PFNGLACTIVETEXTUREPROC sglActiveTexture
Definition: GteOpenGL.cpp:1117
void APIENTRY glClearNamedBufferData(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void *data)
Definition: GteOpenGL.cpp:8778
static PFNGLVERTEXATTRIBP3UIPROC sglVertexAttribP3ui
Definition: GteOpenGL.cpp:5052
static PFNGLPROGRAMUNIFORM3DVPROC sglProgramUniform3dv
Definition: GteOpenGL.cpp:6210
static PFNGLVERTEXATTRIBP3UIVPROC sglVertexAttribP3uiv
Definition: GteOpenGL.cpp:5053
static PFNGLCLEARBUFFERUIVPROC sglClearBufferuiv
Definition: GteOpenGL.cpp:3291
static PFNGLDRAWARRAYSINSTANCEDPROC sglDrawArraysInstanced
Definition: GteOpenGL.cpp:4531
GLuint writeBuffer
Definition: glcorearb.h:2670
GLuint GLint GLboolean layered
Definition: glcorearb.h:2217
GLenum dfactor
Definition: glcorearb.h:117
unsigned int GLenum
Definition: glcorearb.h:83
static PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC sglNamedFramebufferTextureLayer
Definition: GteOpenGL.cpp:8537
static PFNGLFRAMEBUFFERTEXTUREPROC sglFramebufferTexture
Definition: GteOpenGL.cpp:4738
static PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC sglMultiDrawElementsBaseVertex
Definition: GteOpenGL.cpp:4727
GLsizei GLsizei GLchar * source
Definition: glcorearb.h:798
static PFNGLVERTEXATTRIB4BVPROC sglVertexAttrib4bv
Definition: GteOpenGL.cpp:1795
GLfloat GLfloat blue
Definition: glcorearb.h:107
static PFNGLDRAWELEMENTSPROC sglDrawElements
Definition: GteOpenGL.cpp:823
static PFNGLTEXBUFFERRANGEPROC sglTexBufferRange
Definition: GteOpenGL.cpp:7722
void APIENTRY glVertexAttribI3iv(GLuint index, const GLint *v)
Definition: GteOpenGL.cpp:3689
static PFNGLGETNUNIFORMDVPROC sglGetnUniformdv
Definition: GteOpenGL.cpp:8615
static PFNGLTEXPARAMETERIIVPROC sglTexParameterIiv
Definition: GteOpenGL.cpp:3286
void APIENTRY glCopyImageSubData(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth)
Definition: GteOpenGL.cpp:7795
static PFNGLCOPYBUFFERSUBDATAPROC sglCopyBufferSubData
Definition: GteOpenGL.cpp:4535
static PFNGLDRAWELEMENTSBASEVERTEXPROC sglDrawElementsBaseVertex
Definition: GteOpenGL.cpp:4724
GLuint GLuint end
Definition: glcorearb.h:470
const GLuint * framebuffers
Definition: glcorearb.h:1283
GLsizei GLenum GLenum GLuint GLenum GLsizei GLchar * messageLog
Definition: glcorearb.h:2537
void APIENTRY glGetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params)
Definition: GteOpenGL.cpp:7834
static PFNGLMEMORYBARRIERBYREGIONPROC sglMemoryBarrierByRegion
Definition: GteOpenGL.cpp:8609
void APIENTRY glProgramUniform4ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
Definition: GteOpenGL.cpp:6866
static PFNGLUNIFORM3DVPROC sglUniform3dv
Definition: GteOpenGL.cpp:5477
void APIENTRY glGenTransformFeedbacks(GLsizei n, GLuint *ids)
Definition: GteOpenGL.cpp:5998
void APIENTRY glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:1078
void APIENTRY glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:4622
GLsizei const GLchar *const * string
Definition: glcorearb.h:809
GLint ref
Definition: glcorearb.h:119
GLsizei GLenum const void * indices
Definition: glcorearb.h:401
GLint GLint internalformat
Definition: glcorearb.h:103
static PFNGLGETNUNIFORMUIVPROC sglGetnUniformuiv
Definition: GteOpenGL.cpp:8618
static PFNGLVERTEXATTRIB4NUBPROC sglVertexAttrib4Nub
Definition: GteOpenGL.cpp:1791
const GLubyte *APIENTRYP PFNGLGETSTRINGPROC(GLenum name)
Definition: glcorearb.h:131
static PFNGLUNIFORM2UIVPROC sglUniform2uiv
Definition: GteOpenGL.cpp:3283
void APIENTRY glClipControl(GLenum origin, GLenum depth)
Definition: GteOpenGL.cpp:8622
static PFNGLMULTIDRAWELEMENTSINDIRECTPROC sglMultiDrawElementsIndirect
Definition: GteOpenGL.cpp:7714
void *APIENTRYP PFNGLMAPNAMEDBUFFERRANGEPROC(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access)
Definition: glcorearb.h:2674
static PFNGLPROGRAMUNIFORM1UIPROC sglProgramUniform1ui
Definition: GteOpenGL.cpp:6195
static PFNGLGETSAMPLERPARAMETERIVPROC sglGetSamplerParameteriv
Definition: GteOpenGL.cpp:5040
static PFNGLGETPROGRAMPIPELINEIVPROC sglGetProgramPipelineiv
Definition: GteOpenGL.cpp:6188
void APIENTRY glTextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers)
Definition: GteOpenGL.cpp:8090
static PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC sglGetProgramResourceLocationIndex
Definition: GteOpenGL.cpp:7720
void APIENTRY glGetTransformFeedbacki_v(GLuint xfb, GLenum pname, GLuint index, GLint *param)
Definition: GteOpenGL.cpp:8687
static PFNGLCOPYTEXIMAGE1DPROC sglCopyTexImage1D
Definition: GteOpenGL.cpp:826
static PFNGLINVALIDATEBUFFERSUBDATAPROC sglInvalidateBufferSubData
Definition: GteOpenGL.cpp:7709
static PFNGLVERTEXARRAYVERTEXBUFFERPROC sglVertexArrayVertexBuffer
Definition: GteOpenGL.cpp:8592
GLboolean APIENTRY glIsProgram(GLuint program)
Definition: GteOpenGL.cpp:2223
static PFNGLTEXPARAMETERFVPROC sglTexParameterfv
Definition: GteOpenGL.cpp:95
static PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC sglDrawTransformFeedbackStreamInstanced
Definition: GteOpenGL.cpp:7520
static PFNGLCREATEQUERIESPROC sglCreateQueries
Definition: GteOpenGL.cpp:8604
static void Initialize_OPENGL_VERSION_2_0()
Definition: GteOpenGL.cpp:3035
static PFNGLCOPYTEXSUBIMAGE1DPROC sglCopyTexSubImage1D
Definition: GteOpenGL.cpp:828
void APIENTRY glProgramUniform1ui(GLuint program, GLint location, GLuint v0)
Definition: GteOpenGL.cpp:6554
void APIENTRY glBeginConditionalRender(GLuint id, GLenum mode)
Definition: GteOpenGL.cpp:3494
GLuint GLsizei const GLchar * label
Definition: glcorearb.h:2540
static PFNGLGETSUBROUTINEINDEXPROC sglGetSubroutineIndex
Definition: GteOpenGL.cpp:5490
void APIENTRY glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLint basevertex)
Definition: GteOpenGL.cpp:4770
static PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC sglDrawElementsInstancedBaseVertex
Definition: GteOpenGL.cpp:4726
void APIENTRY glVertexAttrib4iv(GLuint index, const GLint *v)
Definition: GteOpenGL.cpp:2944
GLsizei const GLenum * attachments
Definition: glcorearb.h:2513
static PFNGLTEXTUREPARAMETERFVPROC sglTextureParameterfv
Definition: GteOpenGL.cpp:8573
static PFNGLTEXTURESTORAGE1DPROC sglTextureStorage1D
Definition: GteOpenGL.cpp:8558
static PFNGLUNIFORM4DVPROC sglUniform4dv
Definition: GteOpenGL.cpp:5478
void APIENTRY glDrawBuffer(GLenum buf)
Definition: GteOpenGL.cpp:305
void APIENTRY glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size)
Definition: GteOpenGL.cpp:4596
static PFNGLVERTEXATTRIBL4DPROC sglVertexAttribL4d
Definition: GteOpenGL.cpp:6244
uint64_t GLuint64
Definition: glcorearb.h:1520
void APIENTRY glClearNamedBufferSubData(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizei size, GLenum format, GLenum type, const void *data)
Definition: GteOpenGL.cpp:8791
static PFNGLGETUNIFORMSUBROUTINEUIVPROC sglGetUniformSubroutineuiv
Definition: GteOpenGL.cpp:5495
void APIENTRY glBufferStorage(GLenum target, GLsizeiptr size, const void *data, GLbitfield flags)
Definition: GteOpenGL.cpp:8376
void APIENTRY glBindProgramPipeline(GLuint pipeline)
Definition: GteOpenGL.cpp:6408
static PFNGLSTENCILMASKSEPARATEPROC sglStencilMaskSeparate
Definition: GteOpenGL.cpp:1718
static int GetOpenGLVersion()
Definition: GteOpenGL.cpp:50
static PFNGLVIEWPORTINDEXEDFPROC sglViewportIndexedf
Definition: GteOpenGL.cpp:6252
void APIENTRY glTexParameteriv(GLenum target, GLenum pname, const GLint *params)
Definition: GteOpenGL.cpp:266
void APIENTRY glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
Definition: GteOpenGL.cpp:7139
static PFNGLPROGRAMUNIFORM4DPROC sglProgramUniform4d
Definition: GteOpenGL.cpp:6217
static PFNGLDISABLEVERTEXATTRIBARRAYPROC sglDisableVertexAttribArray
Definition: GteOpenGL.cpp:1727
GLboolean * data
Definition: glcorearb.h:126
void APIENTRY glDeleteSamplers(GLsizei count, const GLuint *samplers)
Definition: GteOpenGL.cpp:5099
static PFNGLVERTEXATTRIBI1UIVPROC sglVertexAttribI1uiv
Definition: GteOpenGL.cpp:3267
static PFNGLTEXTURESTORAGE3DPROC sglTextureStorage3D
Definition: GteOpenGL.cpp:8560
static PFNGLBLENDFUNCSEPARATEIPROC sglBlendFuncSeparatei
Definition: GteOpenGL.cpp:5468
void APIENTRY glGenBuffers(GLsizei n, GLuint *buffers)
Definition: GteOpenGL.cpp:1560
static PFNGLUNIFORM2DPROC sglUniform2d
Definition: GteOpenGL.cpp:5472
GLsizei const GLchar *const GLuint * uniformIndices
Definition: glcorearb.h:1457
void APIENTRY glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:5219
void APIENTRY glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *param)
Definition: GteOpenGL.cpp:5206
static PFNGLMAPBUFFERPROC sglMapBuffer
Definition: GteOpenGL.cpp:1422
static PFNGLDELETESAMPLERSPROC sglDeleteSamplers
Definition: GteOpenGL.cpp:5031
static PFNGLCLEARBUFFERIVPROC sglClearBufferiv
Definition: GteOpenGL.cpp:3290
void APIENTRY glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:3196
GLboolean APIENTRY glIsFramebuffer(GLuint framebuffer)
Definition: GteOpenGL.cpp:4166
static PFNGLTEXIMAGE2DPROC sglTexImage2D
Definition: GteOpenGL.cpp:99
void APIENTRY glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *param)
Definition: GteOpenGL.cpp:5180
#define OPENGL_VERSION_2_0
Definition: GteOpenGL.cpp:23
void APIENTRY glGenRenderbuffers(GLsizei n, GLuint *renderbuffers)
Definition: GteOpenGL.cpp:4127
GLenum GLintptr readOffset
Definition: glcorearb.h:1456
static PFNGLDELETEFRAMEBUFFERSPROC sglDeleteFramebuffers
Definition: GteOpenGL.cpp:3303
static PFNGLDELETETEXTURESPROC sglDeleteTextures
Definition: GteOpenGL.cpp:833
void APIENTRY glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
Definition: GteOpenGL.cpp:6671
GLint first
Definition: glcorearb.h:400
const GLubyte *APIENTRY glGetString(GLenum name)
Definition: GteOpenGL.cpp:645
void APIENTRY glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
Definition: GteOpenGL.cpp:1847
void APIENTRY glProgramUniform3ui(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2)
Definition: GteOpenGL.cpp:6762
static PFNGLISQUERYPROC sglIsQuery
Definition: GteOpenGL.cpp:1409
static PFNGLCLEARTEXIMAGEPROC sglClearTexImage
Definition: GteOpenGL.cpp:8367
void APIENTRY glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf)
Definition: GteOpenGL.cpp:8194
void APIENTRY glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:6931
void * GetOpenGLFunctionPointer(char const *name)
GLboolean APIENTRY glIsTransformFeedback(GLuint id)
Definition: GteOpenGL.cpp:6011
void APIENTRY glVertexAttrib2dv(GLuint index, const GLdouble *v)
Definition: GteOpenGL.cpp:2645
void APIENTRY glBlendEquationi(GLuint buf, GLenum mode)
Definition: GteOpenGL.cpp:5524
void APIENTRY glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
Definition: GteOpenGL.cpp:4250
void APIENTRY glCreateQueries(GLenum target, GLsizei n, GLuint *ids)
Definition: GteOpenGL.cpp:9843
static PFNGLREADBUFFERPROC sglReadBuffer
Definition: GteOpenGL.cpp:119
void APIENTRY glUniform4dv(GLint location, GLsizei count, const GLdouble *value)
Definition: GteOpenGL.cpp:5693
void APIENTRY glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:7061
static PFNGLVERTEXATTRIB4UIVPROC sglVertexAttrib4uiv
Definition: GteOpenGL.cpp:1804
GLuint texture
Definition: glcorearb.h:410
void APIENTRY glBindFragDataLocation(GLuint program, GLuint color, const GLchar *name)
Definition: GteOpenGL.cpp:3832
void APIENTRY glPrimitiveRestartIndex(GLuint index)
Definition: GteOpenGL.cpp:4583
static PFNGLGETNUNIFORMFVPROC sglGetnUniformfv
Definition: GteOpenGL.cpp:8616
void APIENTRY glMultiDrawArraysIndirect(GLenum mode, const void *indirect, GLsizei drawcount, GLsizei stride)
Definition: GteOpenGL.cpp:7925
static PFNGLBINDVERTEXBUFFERSPROC sglBindVertexBuffers
Definition: GteOpenGL.cpp:8374
static PFNGLVERTEXATTRIB2DPROC sglVertexAttrib2d
Definition: GteOpenGL.cpp:1776
void APIENTRY glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:1065
static PFNGLUNIFORM2DVPROC sglUniform2dv
Definition: GteOpenGL.cpp:5476
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glcorearb.h:1292
void APIENTRY glPatchParameteri(GLenum pname, GLint value)
Definition: GteOpenGL.cpp:5946
static PFNGLGETNUNIFORMIVPROC sglGetnUniformiv
Definition: GteOpenGL.cpp:8617
void APIENTRY glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5732
void APIENTRY glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount)
Definition: GteOpenGL.cpp:1285
#define GL_RENDERER
Definition: glcorearb.h:369
static PFNGLVERTEXATTRIBDIVISORPROC sglVertexAttribDivisor
Definition: GteOpenGL.cpp:5047
static PFNGLRENDERBUFFERSTORAGEPROC sglRenderbufferStorage
Definition: GteOpenGL.cpp:3299
static PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC sglProgramUniformMatrix2x4dv
Definition: GteOpenGL.cpp:6235
GLsizei GLenum GLsizei GLsizei GLboolean fixedsamplelocations
Definition: glcorearb.h:1601
static PFNGLSCISSORINDEXEDVPROC sglScissorIndexedv
Definition: GteOpenGL.cpp:6256
static PFNGLCLIENTWAITSYNCPROC sglClientWaitSync
Definition: GteOpenGL.cpp:4732
void APIENTRY glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
Definition: GteOpenGL.cpp:1808
static PFNGLDELETEPROGRAMPIPELINESPROC sglDeleteProgramPipelines
Definition: GteOpenGL.cpp:6185
void APIENTRY glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value)
Definition: GteOpenGL.cpp:5323
#define GL_MAJOR_VERSION
Definition: glcorearb.h:1012
void APIENTRY glGetActiveSubroutineUniformiv(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values)
Definition: GteOpenGL.cpp:5868
static PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC sglDrawRangeElementsBaseVertex
Definition: GteOpenGL.cpp:4725
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint GLint GLint GLsizei GLsizei srcHeight
Definition: glcorearb.h:2505
void APIENTRY glProgramUniform2ui(GLuint program, GLint location, GLuint v0, GLuint v1)
Definition: GteOpenGL.cpp:6658
void APIENTRY glGenTextures(GLsizei n, GLuint *textures)
Definition: GteOpenGL.cpp:993
void APIENTRY glValidateProgramPipeline(GLuint pipeline)
Definition: GteOpenGL.cpp:7126
static PFNGLUNIFORM4UIVPROC sglUniform4uiv
Definition: GteOpenGL.cpp:3285
GLboolean APIENTRY glIsShader(GLuint shader)
Definition: GteOpenGL.cpp:2239
GLint GLsizei count
Definition: glcorearb.h:400
void APIENTRY glVertexArrayElementBuffer(GLuint vaobj, GLuint buffer)
Definition: GteOpenGL.cpp:9674
void APIENTRY glVertexAttrib2fv(GLuint index, const GLfloat *v)
Definition: GteOpenGL.cpp:2671
static PFNGLUNIFORM1FPROC sglUniform1f
Definition: GteOpenGL.cpp:1750
GLint GLint xoffset
Definition: glcorearb.h:406
static PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC sglTransformFeedbackBufferBase
Definition: GteOpenGL.cpp:8513
GLuint GLsizei const GLchar * message
Definition: glcorearb.h:2538
static PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC sglTextureStorage3DMultisample
Definition: GteOpenGL.cpp:8562
GLboolean APIENTRY glIsProgramPipeline(GLuint pipeline)
Definition: GteOpenGL.cpp:6447
static PFNGLTEXIMAGE3DMULTISAMPLEPROC sglTexImage3DMultisample
Definition: GteOpenGL.cpp:4740
static PFNGLGETINTERNALFORMATI64VPROC sglGetInternalformati64v
Definition: GteOpenGL.cpp:7706
static PFNGLVERTEXATTRIBL1DPROC sglVertexAttribL1d
Definition: GteOpenGL.cpp:6241
static PFNGLGETTEXTUREPARAMETERIUIVPROC sglGetTextureParameterIuiv
Definition: GteOpenGL.cpp:8586
GLenum GLint GLint GLint GLint srcZ
Definition: glcorearb.h:2505
void APIENTRY glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value)
Definition: GteOpenGL.cpp:6801
void APIENTRY glDrawElements(GLenum mode, GLsizei count, GLenum type, const void *indices)
Definition: GteOpenGL.cpp:850
static PFNGLPROGRAMUNIFORM2UIVPROC sglProgramUniform2uiv
Definition: GteOpenGL.cpp:6204
static PFNGLVERTEXATTRIB4USVPROC sglVertexAttrib4usv
Definition: GteOpenGL.cpp:1805
void APIENTRY glUniform2d(GLint location, GLdouble x, GLdouble y)
Definition: GteOpenGL.cpp:5615
GLfloat GLfloat GLfloat GLfloat v3
Definition: glcorearb.h:814
static PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC sglProgramUniformMatrix4x3dv
Definition: GteOpenGL.cpp:6238
static PFNGLBINDTRANSFORMFEEDBACKPROC sglBindTransformFeedback
Definition: GteOpenGL.cpp:5499
static PFNGLCLEARBUFFERFIPROC sglClearBufferfi
Definition: GteOpenGL.cpp:3293
void APIENTRY glStencilFunc(GLenum func, GLint ref, GLuint mask)
Definition: GteOpenGL.cpp:487
GLint void * img
Definition: glcorearb.h:551
void APIENTRY glShaderBinary(GLsizei count, const GLuint *shaders, GLenum binaryformat, const void *binary, GLsizei length)
Definition: GteOpenGL.cpp:6275
static PFNGLLOGICOPPROC sglLogicOp
Definition: GteOpenGL.cpp:113
void APIENTRY glVertexAttrib2s(GLuint index, GLshort x, GLshort y)
Definition: GteOpenGL.cpp:2684
static PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC sglGetActiveUniformBlockName
Definition: GteOpenGL.cpp:4541
void APIENTRY glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value)
Definition: GteOpenGL.cpp:5388
void APIENTRY glNamedRenderbufferStorage(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:9167
GLsizei GLsizei GLuint * shaders
Definition: glcorearb.h:792
static PFNGLISSAMPLERPROC sglIsSampler
Definition: GteOpenGL.cpp:5032
void APIENTRY glBindTransformFeedback(GLenum target, GLuint id)
Definition: GteOpenGL.cpp:5972
static PFNGLUNIFORM4UIPROC sglUniform4ui
Definition: GteOpenGL.cpp:3281
void APIENTRY glNamedFramebufferDrawBuffers(GLuint framebuffer, GLsizei n, const GLenum *bufs)
Definition: GteOpenGL.cpp:8995
void APIENTRY glStencilOpSeparate(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass)
Definition: GteOpenGL.cpp:1834
static PFNGLUNIFORMMATRIX3DVPROC sglUniformMatrix3dv
Definition: GteOpenGL.cpp:5480
static PFNGLUNIFORMMATRIX2FVPROC sglUniformMatrix2fv
Definition: GteOpenGL.cpp:1766
void APIENTRY glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:6463
GLbitfield flags
Definition: glcorearb.h:1591
GLsizei const GLchar *const GLenum bufferMode
Definition: glcorearb.h:1227
void APIENTRY glActiveTexture(GLenum texture)
Definition: GteOpenGL.cpp:1127
GLsizei const GLchar *const * strings
Definition: glcorearb.h:1928
void APIENTRY glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:214
static PFNGLGETUNIFORMDVPROC sglGetUniformdv
Definition: GteOpenGL.cpp:5488
static PFNGLVERTEXATTRIBIFORMATPROC sglVertexAttribIFormat
Definition: GteOpenGL.cpp:7728
void APIENTRY glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments)
Definition: GteOpenGL.cpp:7899
void APIENTRY glGetCompressedTextureImage(GLuint texture, GLint level, GLsizei bufSize, void *pixels)
Definition: GteOpenGL.cpp:9544
void APIENTRY glScissorIndexedv(GLuint index, const GLint *v)
Definition: GteOpenGL.cpp:7347
void APIENTRY glHint(GLenum target, GLenum mode)
Definition: GteOpenGL.cpp:162
static PFNGLENDTRANSFORMFEEDBACKPROC sglEndTransformFeedback
Definition: GteOpenGL.cpp:3244
static PFNGLVERTEXARRAYATTRIBBINDINGPROC sglVertexArrayAttribBinding
Definition: GteOpenGL.cpp:8594
void APIENTRY glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w)
Definition: GteOpenGL.cpp:2957
void(APIENTRY * GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, const void *userParam)
Definition: glcorearb.h:2242
GLint GLint GLint srcY1
Definition: glcorearb.h:1292
void APIENTRY glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void *data)
Definition: GteOpenGL.cpp:7743
static PFNGLDEBUGMESSAGEINSERTPROC sglDebugMessageInsert
Definition: GteOpenGL.cpp:7733
static PFNGLUNIFORMMATRIX4FVPROC sglUniformMatrix4fv
Definition: GteOpenGL.cpp:1768
void APIENTRY glEndQueryIndexed(GLenum target, GLuint index)
Definition: GteOpenGL.cpp:6092
void APIENTRY glGetUniformdv(GLuint program, GLint location, GLdouble *params)
Definition: GteOpenGL.cpp:5823
void APIENTRY glProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble *value)
Definition: GteOpenGL.cpp:6853
#define GL_VERSION
Definition: glcorearb.h:370
static PFNGLVERTEXATTRIB3SPROC sglVertexAttrib3s
Definition: GteOpenGL.cpp:1786
GLuint * ids
Definition: glcorearb.h:647
void APIENTRY glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil)
Definition: GteOpenGL.cpp:4056
GLfloat v0
Definition: glcorearb.h:811
void APIENTRY glGetNamedBufferParameteriv(GLuint buffer, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:8865
void APIENTRY glCullFace(GLenum mode)
Definition: GteOpenGL.cpp:136
static PFNGLINVALIDATEFRAMEBUFFERPROC sglInvalidateFramebuffer
Definition: GteOpenGL.cpp:7711
void APIENTRY glSampleMaski(GLuint maskNumber, GLbitfield mask)
Definition: GteOpenGL.cpp:4987
static PFNGLVERTEXATTRIBI3UIVPROC sglVertexAttribI3uiv
Definition: GteOpenGL.cpp:3269
void APIENTRY glMinSampleShading(GLfloat value)
Definition: GteOpenGL.cpp:5511
void APIENTRY glFlush()
Definition: GteOpenGL.cpp:448
#define OPENGL_VERSION_4_4
Definition: GteOpenGL.cpp:33
static PFNGLCOPYTEXSUBIMAGE3DPROC sglCopyTexSubImage3D
Definition: GteOpenGL.cpp:1050
static PFNGLGETVERTEXARRAYINDEXEDIVPROC sglGetVertexArrayIndexediv
Definition: GteOpenGL.cpp:8600
#define GL_EXTENSIONS
Definition: glcorearb.h:371
GLenum pname
Definition: glcorearb.h:99
GLenum zfail
Definition: glcorearb.h:120
GLint GLint GLsizei GLint GLenum format
Definition: glcorearb.h:103
GLenum GLint GLint srcX
Definition: glcorearb.h:2505
void *APIENTRYP PFNGLMAPBUFFERPROC(GLenum target, GLenum access)
Definition: glcorearb.h:662
GLint GLsizei GLsizei height
Definition: glcorearb.h:98
void APIENTRY glGetNamedBufferParameteri64v(GLuint buffer, GLenum pname, GLint64 *params)
Definition: GteOpenGL.cpp:8878
void APIENTRY glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value)
Definition: GteOpenGL.cpp:4043
#define OPENGL_VERSION_4_3
Definition: GteOpenGL.cpp:32
static PFNGLGETBUFFERPOINTERVPROC sglGetBufferPointerv
Definition: GteOpenGL.cpp:1425
static PFNGLGETTRANSFORMFEEDBACKI64_VPROC sglGetTransformFeedbacki64_v
Definition: GteOpenGL.cpp:8517
void APIENTRY glGetObjectPtrLabel(const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label)
Definition: GteOpenGL.cpp:8301
static PFNGLGETACTIVESUBROUTINENAMEPROC sglGetActiveSubroutineName
Definition: GteOpenGL.cpp:5493
void APIENTRY glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params)
Definition: GteOpenGL.cpp:700
void APIENTRY glBindBuffer(GLenum target, GLuint buffer)
Definition: GteOpenGL.cpp:1534
static PFNGLISSYNCPROC sglIsSync
Definition: GteOpenGL.cpp:4730
GLsizei const GLchar *const * varyings
Definition: glcorearb.h:1227
void APIENTRY glBindBuffersBase(GLenum target, GLuint first, GLsizei count, const GLuint *buffers)
Definition: GteOpenGL.cpp:8415
void APIENTRY glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName)
Definition: GteOpenGL.cpp:4635
static PFNGLBLENDFUNCIPROC sglBlendFunci
Definition: GteOpenGL.cpp:5467
GLenum GLuint GLenum GLuint GLuint GLuint GLuint numlayers
Definition: glcorearb.h:2527
static PFNGLUNIFORM4DPROC sglUniform4d
Definition: GteOpenGL.cpp:5474
static PFNGLPROGRAMUNIFORM3UIVPROC sglProgramUniform3uiv
Definition: GteOpenGL.cpp:6212
GLint GLfloat GLint stencil
Definition: glcorearb.h:1273
static PFNGLVERTEXATTRIB4NBVPROC sglVertexAttrib4Nbv
Definition: GteOpenGL.cpp:1788
void APIENTRY glVertexAttrib1sv(GLuint index, const GLshort *v)
Definition: GteOpenGL.cpp:2619
void APIENTRY glVertexAttrib1fv(GLuint index, const GLfloat *v)
Definition: GteOpenGL.cpp:2593
GLint GLsizei GLsizei instancecount
Definition: glcorearb.h:1452
static PFNGLSAMPLEMASKIPROC sglSampleMaski
Definition: GteOpenGL.cpp:4742
static PFNGLSTENCILOPSEPARATEPROC sglStencilOpSeparate
Definition: GteOpenGL.cpp:1716
GLenum mode
Definition: glcorearb.h:94
GLboolean GLboolean GLboolean b
Definition: glcorearb.h:1217
void APIENTRY glSampleCoverage(GLfloat value, GLboolean invert)
Definition: GteOpenGL.cpp:1140
void APIENTRY glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params)
Definition: GteOpenGL.cpp:5297
GLenum attachment
Definition: glcorearb.h:1286
static PFNGLPOINTSIZEPROC sglPointSize
Definition: GteOpenGL.cpp:91
static PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC sglInvalidateNamedFramebufferData
Definition: GteOpenGL.cpp:8541
static PFNGLVIEWPORTINDEXEDFVPROC sglViewportIndexedfv
Definition: GteOpenGL.cpp:6253
void APIENTRY glBindTextureUnit(GLuint unit, GLuint texture)
Definition: GteOpenGL.cpp:9518
static PFNGLACTIVESHADERPROGRAMPROC sglActiveShaderProgram
Definition: GteOpenGL.cpp:6182
void APIENTRY glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:6957
static PFNGLGETTEXTUREPARAMETERIIVPROC sglGetTextureParameterIiv
Definition: GteOpenGL.cpp:8585
static PFNGLGETBOOLEANVPROC sglGetBooleanv
Definition: GteOpenGL.cpp:121
void APIENTRY glTextureParameterIuiv(GLuint texture, GLenum pname, const GLuint *params)
Definition: GteOpenGL.cpp:9479
static PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC sglTransformFeedbackBufferRange
Definition: GteOpenGL.cpp:8514
static PFNGLGETTEXLEVELPARAMETERFVPROC sglGetTexLevelParameterfv
Definition: GteOpenGL.cpp:130
GLenum GLuint GLsizei bufsize
Definition: glcorearb.h:1813
static PFNGLVERTEXATTRIB2FPROC sglVertexAttrib2f
Definition: GteOpenGL.cpp:1778
static PFNGLENABLEIPROC sglEnablei
Definition: GteOpenGL.cpp:3240
static PFNGLPROGRAMUNIFORMMATRIX4DVPROC sglProgramUniformMatrix4dv
Definition: GteOpenGL.cpp:6226
static PFNGLPROGRAMUNIFORMMATRIX3FVPROC sglProgramUniformMatrix3fv
Definition: GteOpenGL.cpp:6222
GLfloat units
Definition: glcorearb.h:403
void APIENTRY glTexParameterIuiv(GLenum target, GLenum pname, const GLuint *params)
Definition: GteOpenGL.cpp:3978
static PFNGLGETUNIFORMLOCATIONPROC sglGetUniformLocation
Definition: GteOpenGL.cpp:1738
GLenum GLint GLint * precision
Definition: glcorearb.h:1920
void APIENTRY glUniform2fv(GLint location, GLsizei count, const GLfloat *value)
Definition: GteOpenGL.cpp:2411
static PFNGLVERTEXATTRIBL3DVPROC sglVertexAttribL3dv
Definition: GteOpenGL.cpp:6247
void APIENTRY glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:2502
static PFNGLDELETESHADERPROC sglDeleteShader
Definition: GteOpenGL.cpp:1725
static PFNGLCLEARTEXSUBIMAGEPROC sglClearTexSubImage
Definition: GteOpenGL.cpp:8368
static PFNGLVERTEXARRAYATTRIBLFORMATPROC sglVertexArrayAttribLFormat
Definition: GteOpenGL.cpp:8597
static PFNGLDELETEBUFFERSPROC sglDeleteBuffers
Definition: GteOpenGL.cpp:1416
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint GLint GLint GLsizei GLsizei GLsizei srcDepth
Definition: glcorearb.h:2505
void APIENTRY glCompileShader(GLuint shader)
Definition: GteOpenGL.cpp:1899
void APIENTRY glVertexAttrib4Niv(GLuint index, const GLint *v)
Definition: GteOpenGL.cpp:2801
static PFNGLGETPROGRAMINTERFACEIVPROC sglGetProgramInterfaceiv
Definition: GteOpenGL.cpp:7715
void APIENTRY glBindSamplers(GLuint first, GLsizei count, const GLuint *samplers)
Definition: GteOpenGL.cpp:8454
static PFNGLBLITNAMEDFRAMEBUFFERPROC sglBlitNamedFramebuffer
Definition: GteOpenGL.cpp:8547
void APIENTRY glGetVertexArrayIndexed64iv(GLuint vaobj, GLuint index, GLenum pname, GLint64 *param)
Definition: GteOpenGL.cpp:9804
void APIENTRY glDisableVertexAttribArray(GLuint index)
Definition: GteOpenGL.cpp:1983
static PFNGLGETFRAGDATALOCATIONPROC sglGetFragDataLocation
Definition: GteOpenGL.cpp:3277
static PFNGLATTACHSHADERPROC sglAttachShader
Definition: GteOpenGL.cpp:1719
void APIENTRY glPointParameteri(GLenum pname, GLint param)
Definition: GteOpenGL.cpp:1337
static PFNGLCOPYTEXTURESUBIMAGE3DPROC sglCopyTextureSubImage3D
Definition: GteOpenGL.cpp:8571
GLsizei maxCount
Definition: glcorearb.h:792
void APIENTRY glDrawArraysIndirect(GLenum mode, const void *indirect)
Definition: GteOpenGL.cpp:5576
void APIENTRY glBindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides)
Definition: GteOpenGL.cpp:8480
void APIENTRY glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:292
void APIENTRY glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:6970
void APIENTRY glVertexAttrib4Nsv(GLuint index, const GLshort *v)
Definition: GteOpenGL.cpp:2814
void APIENTRY glDrawBuffers(GLsizei n, const GLenum *bufs)
Definition: GteOpenGL.cpp:1821
void APIENTRY glTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:9310
static PFNGLCREATETEXTURESPROC sglCreateTextures
Definition: GteOpenGL.cpp:8555
void APIENTRY glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:3991
static PFNGLGETOBJECTLABELPROC sglGetObjectLabel
Definition: GteOpenGL.cpp:7739
void APIENTRY glVertexAttribDivisor(GLuint index, GLuint divisor)
Definition: GteOpenGL.cpp:5310
void APIENTRY glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:7100
#define OPENGL_VERSION_1_1
Definition: GteOpenGL.cpp:18
static PFNGLENDCONDITIONALRENDERPROC sglEndConditionalRender
Definition: GteOpenGL.cpp:3251
GLenum GLenum dpfail
Definition: glcorearb.h:777
static PFNGLCLIPCONTROLPROC sglClipControl
Definition: GteOpenGL.cpp:8511
static PFNGLSTENCILOPPROC sglStencilOp
Definition: GteOpenGL.cpp:115
static PFNGLCOPYIMAGESUBDATAPROC sglCopyImageSubData
Definition: GteOpenGL.cpp:7703
GLuint GLsizei GLsizei * length
Definition: glcorearb.h:790
void APIENTRY glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w)
Definition: GteOpenGL.cpp:3598
unsigned short GLushort
Definition: glcorearb.h:694
GLuint GLfloat * val
Definition: glcorearb.h:1603
static PFNGLMEMORYBARRIERPROC sglMemoryBarrier
Definition: GteOpenGL.cpp:7515
void APIENTRY glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *param)
Definition: GteOpenGL.cpp:5154
static PFNGLGETDEBUGMESSAGELOGPROC sglGetDebugMessageLog
Definition: GteOpenGL.cpp:7735
GLdouble GLdouble GLdouble z
Definition: glcorearb.h:843
void APIENTRY glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:3533
void APIENTRY glCopyTextureSubImage1D(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
Definition: GteOpenGL.cpp:9388
GLenum modeAlpha
Definition: glcorearb.h:775
GLfloat GLfloat GLfloat GLfloat h
Definition: glcorearb.h:1997
static PFNGLVERTEXATTRIB4NIVPROC sglVertexAttrib4Niv
Definition: GteOpenGL.cpp:1789
static PFNGLFLUSHPROC sglFlush
Definition: GteOpenGL.cpp:111
GLenum GLuint GLenum GLuint GLuint numlevels
Definition: glcorearb.h:2527
void APIENTRY glClearNamedFramebufferfv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat *value)
Definition: GteOpenGL.cpp:9073
void APIENTRY glValidateProgram(GLuint program)
Definition: GteOpenGL.cpp:2541
GLuint shader
Definition: glcorearb.h:780
void APIENTRY glInvalidateBufferData(GLuint buffer)
Definition: GteOpenGL.cpp:7886
static PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC sglNamedRenderbufferStorageMultisample
Definition: GteOpenGL.cpp:8553
static PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC sglNamedFramebufferParameteri
Definition: GteOpenGL.cpp:8535
void APIENTRY glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:6983
GLenum GLenum zpass
Definition: glcorearb.h:120
void APIENTRY glTextureStorage3DMultisample(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
Definition: GteOpenGL.cpp:9297
void APIENTRY glTextureStorage2D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:9258
GLint GLint GLsizei GLint GLenum GLenum const void * pixels
Definition: glcorearb.h:103
GLsizeiptr const void GLenum usage
Definition: glcorearb.h:659
GLuint APIENTRY glGetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name)
Definition: GteOpenGL.cpp:7964
void APIENTRY glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name)
Definition: GteOpenGL.cpp:5057
static PFNGLPOLYGONOFFSETPROC sglPolygonOffset
Definition: GteOpenGL.cpp:825
static PFNGLVERTEXATTRIBL4DVPROC sglVertexAttribL4dv
Definition: GteOpenGL.cpp:6248
static PFNGLGETERRORPROC sglGetError
Definition: GteOpenGL.cpp:123
static PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC sglProgramUniformMatrix2x3fv
Definition: GteOpenGL.cpp:6227
static PFNGLCLEARBUFFERSUBDATAPROC sglClearBufferSubData
Definition: GteOpenGL.cpp:7700
GLenum GLuint origtexture
Definition: glcorearb.h:2527
void APIENTRY glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y)
Definition: GteOpenGL.cpp:7165
GLenum func
Definition: glcorearb.h:778
void *APIENTRY glMapNamedBuffer(GLuint buffer, GLenum access)
Definition: GteOpenGL.cpp:8804
void APIENTRY glGetFloati_v(GLenum target, GLuint index, GLfloat *data)
Definition: GteOpenGL.cpp:7386
static PFNGLVERTEXATTRIBI4UIVPROC sglVertexAttribI4uiv
Definition: GteOpenGL.cpp:3270
static PFNGLUNIFORM1FVPROC sglUniform1fv
Definition: GteOpenGL.cpp:1758
static PFNGLGETUNIFORMFVPROC sglGetUniformfv
Definition: GteOpenGL.cpp:1739
void APIENTRY glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar *const *uniformNames, GLuint *uniformIndices)
Definition: GteOpenGL.cpp:4609
GLuint num_groups_y
Definition: glcorearb.h:2503
void APIENTRY glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value)
Definition: GteOpenGL.cpp:6619
void APIENTRY glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
Definition: GteOpenGL.cpp:2918
static PFNGLGENERATEMIPMAPPROC sglGenerateMipmap
Definition: GteOpenGL.cpp:3311
GLenum void ** pointer
Definition: glcorearb.h:805
void APIENTRY glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5706
GLenum array
Definition: glext.h:6669
static PFNGLISPROGRAMPROC sglIsProgram
Definition: GteOpenGL.cpp:1745
static PFNGLGENSAMPLERSPROC sglGenSamplers
Definition: GteOpenGL.cpp:5030
void APIENTRY glProgramParameteri(GLuint program, GLenum pname, GLint value)
Definition: GteOpenGL.cpp:6353
static PFNGLCOMPILESHADERPROC sglCompileShader
Definition: GteOpenGL.cpp:1721
void APIENTRY glGetVertexAttribPointerv(GLuint index, GLenum pname, void **pointer)
Definition: GteOpenGL.cpp:2210
GLuint divisor
Definition: glcorearb.h:1665
static PFNGLTEXPARAMETERIVPROC sglTexParameteriv
Definition: GteOpenGL.cpp:97
void APIENTRY glClearDepth(GLdouble depth)
Definition: GteOpenGL.cpp:357
const GLint const GLsizei GLsizei drawcount
Definition: glcorearb.h:593
static PFNGLGETTEXLEVELPARAMETERIVPROC sglGetTexLevelParameteriv
Definition: GteOpenGL.cpp:131
void APIENTRY glClampColor(GLenum target, GLenum clamp)
Definition: GteOpenGL.cpp:3481
static PFNGLPROGRAMUNIFORM3IPROC sglProgramUniform3i
Definition: GteOpenGL.cpp:6205
static PFNGLDRAWELEMENTSINSTANCEDPROC sglDrawElementsInstanced
Definition: GteOpenGL.cpp:4532
void APIENTRY glVertexAttribBinding(GLuint attribindex, GLuint bindingindex)
Definition: GteOpenGL.cpp:8155
static PFNGLVERTEXATTRIBLFORMATPROC sglVertexAttribLFormat
Definition: GteOpenGL.cpp:7729
void APIENTRY glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar *const *varyings, GLenum bufferMode)
Definition: GteOpenGL.cpp:3455
void APIENTRY glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w)
Definition: GteOpenGL.cpp:2827
void APIENTRY glCreateTransformFeedbacks(GLsizei n, GLuint *ids)
Definition: GteOpenGL.cpp:8635
GLenum GLenum renderbuffertarget
Definition: glcorearb.h:1289
void APIENTRY glCreateRenderbuffers(GLsizei n, GLuint *renderbuffers)
Definition: GteOpenGL.cpp:9154
static PFNGLDRAWTRANSFORMFEEDBACKPROC sglDrawTransformFeedback
Definition: GteOpenGL.cpp:5505
static PFNGLDEPTHFUNCPROC sglDepthFunc
Definition: GteOpenGL.cpp:116
GLenum GLenum severity
Definition: glcorearb.h:2534
static PFNGLUNIFORM3UIPROC sglUniform3ui
Definition: GteOpenGL.cpp:3280
static PFNGLTEXTUREBUFFERRANGEPROC sglTextureBufferRange
Definition: GteOpenGL.cpp:8557
void APIENTRY glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width)
Definition: GteOpenGL.cpp:7613
void APIENTRY glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
Definition: GteOpenGL.cpp:383
void APIENTRY glTexImage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations)
Definition: GteOpenGL.cpp:4961
void APIENTRY glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y)
Definition: GteOpenGL.cpp:2658
GLboolean APIENTRY glIsEnabledi(GLenum target, GLuint index)
Definition: GteOpenGL.cpp:3387
void APIENTRY glGetNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, void *data)
Definition: GteOpenGL.cpp:8904
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glcorearb.h:2535
static PFNGLGETFLOATVPROC sglGetFloatv
Definition: GteOpenGL.cpp:124
double GLdouble
Definition: glcorearb.h:88
const GLdouble * v
Definition: glcorearb.h:832
void APIENTRY glGetBooleanv(GLenum pname, GLboolean *data)
Definition: GteOpenGL.cpp:578
void APIENTRY glNamedFramebufferReadBuffer(GLuint framebuffer, GLenum src)
Definition: GteOpenGL.cpp:9008
void APIENTRY glGetBooleani_v(GLenum target, GLuint index, GLboolean *data)
Definition: GteOpenGL.cpp:3335
static PFNGLUNIFORMMATRIX3X4FVPROC sglUniformMatrix3x4fv
Definition: GteOpenGL.cpp:3141
#define OPENGL_VERSION_4_2
Definition: GteOpenGL.cpp:31
void APIENTRY glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount)
Definition: GteOpenGL.cpp:7665
void APIENTRY glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:7022
void APIENTRY glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h)
Definition: GteOpenGL.cpp:7295
static PFNGLGETPROGRAMRESOURCEIVPROC sglGetProgramResourceiv
Definition: GteOpenGL.cpp:7718
void APIENTRY glVertexAttrib4bv(GLuint index, const GLbyte *v)
Definition: GteOpenGL.cpp:2879
GLboolean r
Definition: glcorearb.h:1217
void APIENTRY glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:3170
static PFNGLBUFFERSUBDATAPROC sglBufferSubData
Definition: GteOpenGL.cpp:1420
void APIENTRY glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5810
static PFNGLVERTEXARRAYBINDINGDIVISORPROC sglVertexArrayBindingDivisor
Definition: GteOpenGL.cpp:8598
static PFNGLCLEARNAMEDBUFFERSUBDATAPROC sglClearNamedBufferSubData
Definition: GteOpenGL.cpp:8524
static PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC sglProgramUniformMatrix3x2fv
Definition: GteOpenGL.cpp:6228
void APIENTRY glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z)
Definition: GteOpenGL.cpp:2710
void APIENTRY glVertexAttrib4ubv(GLuint index, const GLubyte *v)
Definition: GteOpenGL.cpp:2983
void APIENTRY glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instancecount)
Definition: GteOpenGL.cpp:4544
GLboolean APIENTRY glIsSync(GLsync sync)
Definition: GteOpenGL.cpp:4825
void APIENTRY glProvokingVertex(GLenum mode)
Definition: GteOpenGL.cpp:4796
#define OPENGL_VERSION_1_5
Definition: GteOpenGL.cpp:22
static PFNGLBLENDEQUATIONSEPARATEPROC sglBlendEquationSeparate
Definition: GteOpenGL.cpp:1714
void APIENTRY glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
Definition: GteOpenGL.cpp:8116
GLdouble s
Definition: glext.h:231
static PFNGLGETNAMEDBUFFERSUBDATAPROC sglGetNamedBufferSubData
Definition: GteOpenGL.cpp:8532
void APIENTRY glUniform3uiv(GLint location, GLsizei count, const GLuint *value)
Definition: GteOpenGL.cpp:3939
void APIENTRY glNamedFramebufferTexture(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level)
Definition: GteOpenGL.cpp:8956
static PFNGLVERTEXATTRIB3DPROC sglVertexAttrib3d
Definition: GteOpenGL.cpp:1782
static PFNGLUNIFORM4IPROC sglUniform4i
Definition: GteOpenGL.cpp:1757
void APIENTRY glGetIntegerv(GLenum pname, GLint *data)
Definition: GteOpenGL.cpp:632
void APIENTRY glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value)
Definition: GteOpenGL.cpp:6567
void APIENTRY glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:1179
static PFNGLDEPTHRANGEARRAYVPROC sglDepthRangeArrayv
Definition: GteOpenGL.cpp:6257
void APIENTRY glCompressedTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:9362
void APIENTRY glGetUniformSubroutineuiv(GLenum shadertype, GLint location, GLuint *params)
Definition: GteOpenGL.cpp:5920
void APIENTRY glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z)
Definition: GteOpenGL.cpp:5628
static PFNGLUNIFORM4FPROC sglUniform4f
Definition: GteOpenGL.cpp:1753
GLfloat GLfloat GLfloat v2
Definition: glcorearb.h:813
static PFNGLVERTEXATTRIBI4SVPROC sglVertexAttribI4sv
Definition: GteOpenGL.cpp:3272
GLenum GLenum GLenum GLenum dstAlpha
Definition: glcorearb.h:1789
GLuint index
Definition: glcorearb.h:781
void APIENTRY glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:3144
void APIENTRY glVertexAttribI1iv(GLuint index, const GLint *v)
Definition: GteOpenGL.cpp:3663
static PFNGLGETTRANSFORMFEEDBACKIVPROC sglGetTransformFeedbackiv
Definition: GteOpenGL.cpp:8515
void APIENTRY glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:279
void APIENTRY glPatchParameterfv(GLenum pname, const GLfloat *values)
Definition: GteOpenGL.cpp:5959
static PFNGLDISPATCHCOMPUTEPROC sglDispatchCompute
Definition: GteOpenGL.cpp:7701
void APIENTRY glVertexAttrib1f(GLuint index, GLfloat x)
Definition: GteOpenGL.cpp:2580
static PFNGLNAMEDBUFFERDATAPROC sglNamedBufferData
Definition: GteOpenGL.cpp:8520
void APIENTRY glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:7574
void APIENTRY glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z)
Definition: GteOpenGL.cpp:2736
const GLubyte *APIENTRY glGetStringi(GLenum name, GLuint index)
Definition: GteOpenGL.cpp:4069
static PFNGLGETINTEGERVPROC sglGetIntegerv
Definition: GteOpenGL.cpp:125
void APIENTRY glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha)
Definition: GteOpenGL.cpp:5537
static PFNGLINVALIDATETEXSUBIMAGEPROC sglInvalidateTexSubImage
Definition: GteOpenGL.cpp:7707
static PFNGLGETPROGRAMPIPELINEINFOLOGPROC sglGetProgramPipelineInfoLog
Definition: GteOpenGL.cpp:6240
void APIENTRY glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format)
Definition: GteOpenGL.cpp:7587
static PFNGLDRAWARRAYSPROC sglDrawArrays
Definition: GteOpenGL.cpp:822
static PFNGLVERTEXATTRIBI4IVPROC sglVertexAttribI4iv
Definition: GteOpenGL.cpp:3266
void APIENTRY glGetCompressedTexImage(GLenum target, GLint level, void *img)
Definition: GteOpenGL.cpp:1231
static PFNGLGETUNIFORMINDICESPROC sglGetUniformIndices
Definition: GteOpenGL.cpp:4536
static PFNGLVERTEXATTRIB1DVPROC sglVertexAttrib1dv
Definition: GteOpenGL.cpp:1771
GLint GLint GLint GLint GLint dstY0
Definition: glcorearb.h:1292
static PFNGLSHADERSOURCEPROC sglShaderSource
Definition: GteOpenGL.cpp:1748
static PFNGLDEPTHRANGEINDEXEDPROC sglDepthRangeIndexed
Definition: GteOpenGL.cpp:6258
void APIENTRY glProgramUniform4d(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3)
Definition: GteOpenGL.cpp:6840
void *APIENTRYP PFNGLMAPNAMEDBUFFERPROC(GLuint buffer, GLenum access)
Definition: glcorearb.h:2673
void APIENTRY glTextureBuffer(GLuint texture, GLenum internalformat, GLuint buffer)
Definition: GteOpenGL.cpp:9219
void APIENTRY glClearDepthf(GLfloat d)
Definition: GteOpenGL.cpp:6314
void APIENTRY glUniform1ui(GLint location, GLuint v0)
Definition: GteOpenGL.cpp:3861
void APIENTRY glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:6944
static PFNGLPROGRAMUNIFORM4IPROC sglProgramUniform4i
Definition: GteOpenGL.cpp:6213
static PFNGLGETTEXIMAGEPROC sglGetTexImage
Definition: GteOpenGL.cpp:127
void APIENTRY glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:6905
static PFNGLGETBOOLEANI_VPROC sglGetBooleani_v
Definition: GteOpenGL.cpp:3238
void APIENTRY glPolygonOffset(GLfloat factor, GLfloat units)
Definition: GteOpenGL.cpp:876
void APIENTRY glStencilMaskSeparate(GLenum face, GLuint mask)
Definition: GteOpenGL.cpp:1860
void APIENTRY glBindImageTextures(GLuint first, GLsizei count, const GLuint *textures)
Definition: GteOpenGL.cpp:8467
#define GL_NO_ERROR
Definition: glcorearb.h:238
static PFNGLBINDBUFFERRANGEPROC sglBindBufferRange
Definition: GteOpenGL.cpp:3245
void APIENTRY glVertexAttrib3sv(GLuint index, const GLshort *v)
Definition: GteOpenGL.cpp:2775
void APIENTRY glVertexAttribI4bv(GLuint index, const GLbyte *v)
Definition: GteOpenGL.cpp:3767
void APIENTRY glClear(GLbitfield mask)
Definition: GteOpenGL.cpp:318
#define OPENGL_VERSION_1_2
Definition: GteOpenGL.cpp:19
static PFNGLUNIFORM2FVPROC sglUniform2fv
Definition: GteOpenGL.cpp:1759
static PFNGLPROGRAMUNIFORM2DVPROC sglProgramUniform2dv
Definition: GteOpenGL.cpp:6202
void APIENTRY glUniform4iv(GLint location, GLsizei count, const GLint *value)
Definition: GteOpenGL.cpp:2489
static PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC sglInvalidateNamedFramebufferSubData
Definition: GteOpenGL.cpp:8542
static PFNGLUNIFORMMATRIX2X4FVPROC sglUniformMatrix2x4fv
Definition: GteOpenGL.cpp:3139
static PFNGLGETNAMEDBUFFERPARAMETERI64VPROC sglGetNamedBufferParameteri64v
Definition: GteOpenGL.cpp:8530
static PFNGLCOMPRESSEDTEXIMAGE3DPROC sglCompressedTexImage3D
Definition: GteOpenGL.cpp:1119
void APIENTRY glPointParameterf(GLenum pname, GLfloat param)
Definition: GteOpenGL.cpp:1311
static PFNGLBLENDFUNCPROC sglBlendFunc
Definition: GteOpenGL.cpp:112
void APIENTRY glNamedBufferSubData(GLuint buffer, GLintptr offset, GLsizei size, const void *data)
Definition: GteOpenGL.cpp:8752
static PFNGLGETVERTEXATTRIBPOINTERVPROC sglGetVertexAttribPointerv
Definition: GteOpenGL.cpp:1744
void APIENTRY glQueryCounter(GLuint id, GLenum target)
Definition: GteOpenGL.cpp:5271
void APIENTRY glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params)
Definition: GteOpenGL.cpp:3546
static PFNGLUNIFORMMATRIX4X3FVPROC sglUniformMatrix4x3fv
Definition: GteOpenGL.cpp:3142
void APIENTRY glUniform1dv(GLint location, GLsizei count, const GLdouble *value)
Definition: GteOpenGL.cpp:5654
static PFNGLTEXSTORAGE3DMULTISAMPLEPROC sglTexStorage3DMultisample
Definition: GteOpenGL.cpp:7724
GLenum GLuint GLenum GLuint GLuint GLuint minlayer
Definition: glcorearb.h:2527
static PFNGLGETTEXTUREIMAGEPROC sglGetTextureImage
Definition: GteOpenGL.cpp:8580
static PFNGLVERTEXATTRIB1FPROC sglVertexAttrib1f
Definition: GteOpenGL.cpp:1772
void APIENTRY glVertexArrayBindingDivisor(GLuint vaobj, GLuint bindingindex, GLuint divisor)
Definition: GteOpenGL.cpp:9765
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint GLint GLint GLsizei srcWidth
Definition: glcorearb.h:2505
void APIENTRY glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length)
Definition: GteOpenGL.cpp:4370
void APIENTRY glBindBufferBase(GLenum target, GLuint index, GLuint buffer)
Definition: GteOpenGL.cpp:3442
void APIENTRY glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:1192
GLfloat f
Definition: glcorearb.h:1921
void APIENTRY glGetQueryiv(GLenum target, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:1495
static PFNGLGETSYNCIVPROC sglGetSynciv
Definition: GteOpenGL.cpp:4735
static PFNGLPROGRAMUNIFORMMATRIX2FVPROC sglProgramUniformMatrix2fv
Definition: GteOpenGL.cpp:6221
static PFNGLGETCOMPRESSEDTEXIMAGEPROC sglGetCompressedTexImage
Definition: GteOpenGL.cpp:1125
static PFNGLOBJECTLABELPROC sglObjectLabel
Definition: GteOpenGL.cpp:7738
void APIENTRY glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value)
Definition: GteOpenGL.cpp:6593
void APIENTRY glInvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth)
Definition: GteOpenGL.cpp:7847
GLenum programInterface
Definition: glcorearb.h:2517
static PFNGLTEXTUREPARAMETERIPROC sglTextureParameteri
Definition: GteOpenGL.cpp:8574
void APIENTRY glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:7035
void APIENTRY glUniform2i(GLint location, GLint v0, GLint v1)
Definition: GteOpenGL.cpp:2359
static PFNGLVERTEXATTRIB4NSVPROC sglVertexAttrib4Nsv
Definition: GteOpenGL.cpp:1790
GLenum const GLfloat * params
Definition: glcorearb.h:100
static PFNGLUNIFORM2IVPROC sglUniform2iv
Definition: GteOpenGL.cpp:1763
static PFNGLMAPBUFFERRANGEPROC sglMapBufferRange
Definition: GteOpenGL.cpp:3315
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint dstX
Definition: glcorearb.h:2505
GLenum GLint * range
Definition: glcorearb.h:1920
GLenum GLint GLint GLint GLint GLuint GLenum dstTarget
Definition: glcorearb.h:2505
void APIENTRY glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instancecount, GLuint baseinstance)
Definition: GteOpenGL.cpp:7535
void APIENTRY glGetDoublev(GLenum pname, GLdouble *data)
Definition: GteOpenGL.cpp:591
void APIENTRY glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:6105
static PFNGLUNIFORM3DPROC sglUniform3d
Definition: GteOpenGL.cpp:5473
GLenum APIENTRY glGetGraphicsResetStatus()
Definition: GteOpenGL.cpp:9947
static void Initialize_OPENGL_VERSION_1_3()
Definition: GteOpenGL.cpp:1244
static PFNGLUNIFORM1UIVPROC sglUniform1uiv
Definition: GteOpenGL.cpp:3282
static PFNGLUNIFORM1IVPROC sglUniform1iv
Definition: GteOpenGL.cpp:1762
void APIENTRY glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5745
void APIENTRY glCreateSamplers(GLsizei n, GLuint *samplers)
Definition: GteOpenGL.cpp:9817
GLuint APIENTRY glCreateShader(GLenum type)
Definition: GteOpenGL.cpp:1928
static PFNGLPROGRAMUNIFORM4DVPROC sglProgramUniform4dv
Definition: GteOpenGL.cpp:6218
void APIENTRY glGetnUniformiv(GLuint program, GLint location, GLsizei bufSize, GLint *params)
static PFNGLUNIFORMSUBROUTINESUIVPROC sglUniformSubroutinesuiv
Definition: GteOpenGL.cpp:5494
void APIENTRY glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value)
Definition: GteOpenGL.cpp:5336
void APIENTRY glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding)
Definition: GteOpenGL.cpp:4690
static PFNGLPROGRAMUNIFORM1FVPROC sglProgramUniform1fv
Definition: GteOpenGL.cpp:6192
void APIENTRY glCopyNamedBufferSubData(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizei size)
Definition: GteOpenGL.cpp:8765
static PFNGLGETACTIVEUNIFORMSIVPROC sglGetActiveUniformsiv
Definition: GteOpenGL.cpp:4537
void APIENTRY glUniform1fv(GLint location, GLsizei count, const GLfloat *value)
Definition: GteOpenGL.cpp:2398
static PFNGLGETQUERYIVPROC sglGetQueryiv
Definition: GteOpenGL.cpp:1412
static PFNGLPROGRAMUNIFORMMATRIX3DVPROC sglProgramUniformMatrix3dv
Definition: GteOpenGL.cpp:6225
static PFNGLPOINTPARAMETERIPROC sglPointParameteri
Definition: GteOpenGL.cpp:1267
void APIENTRY glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei instancecount)
Definition: GteOpenGL.cpp:7652
GLuint GLuint num_groups_z
Definition: glcorearb.h:2503
static PFNGLFLUSHMAPPEDBUFFERRANGEPROC sglFlushMappedBufferRange
Definition: GteOpenGL.cpp:3316
void APIENTRY glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
Definition: GteOpenGL.cpp:902
static PFNGLGETFRAMEBUFFERPARAMETERIVPROC sglGetFramebufferParameteriv
Definition: GteOpenGL.cpp:7705
void APIENTRY glVertexAttribI2uiv(GLuint index, const GLuint *v)
Definition: GteOpenGL.cpp:3728
static PFNGLDEBUGMESSAGECALLBACKPROC sglDebugMessageCallback
Definition: GteOpenGL.cpp:7734
void APIENTRY glCreateFramebuffers(GLsizei n, GLuint *framebuffers)
Definition: GteOpenGL.cpp:8917
void APIENTRY glGenerateTextureMipmap(GLuint texture)
Definition: GteOpenGL.cpp:9505
void APIENTRY glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
Definition: GteOpenGL.cpp:331
static PFNGLSAMPLERPARAMETERIUIVPROC sglSamplerParameterIuiv
Definition: GteOpenGL.cpp:5039
static PFNGLSAMPLERPARAMETERFPROC sglSamplerParameterf
Definition: GteOpenGL.cpp:5036
static PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC sglGetSubroutineUniformLocation
Definition: GteOpenGL.cpp:5489
static PFNGLSTENCILFUNCPROC sglStencilFunc
Definition: GteOpenGL.cpp:114
static PFNGLGETTEXPARAMETERFVPROC sglGetTexParameterfv
Definition: GteOpenGL.cpp:128
void APIENTRY glCreateBuffers(GLsizei n, GLuint *buffers)
Definition: GteOpenGL.cpp:8713
static PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC sglProgramUniformMatrix4x2fv
Definition: GteOpenGL.cpp:6230
static PFNGLUNIFORMMATRIX4X2FVPROC sglUniformMatrix4x2fv
Definition: GteOpenGL.cpp:3140
static PFNGLFRAMEBUFFERTEXTURE2DPROC sglFramebufferTexture2D
Definition: GteOpenGL.cpp:3307
static void Initialize_OPENGL_VERSION_3_1()
Definition: GteOpenGL.cpp:4703
static PFNGLISTEXTUREPROC sglIsTexture
Definition: GteOpenGL.cpp:835
static PFNGLDELETERENDERBUFFERSPROC sglDeleteRenderbuffers
Definition: GteOpenGL.cpp:3297
static PFNGLVERTEXATTRIBI4UIPROC sglVertexAttribI4ui
Definition: GteOpenGL.cpp:3262
void APIENTRY glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const void *data)
Definition: GteOpenGL.cpp:1602
void APIENTRY glDisable(GLenum cap)
Definition: GteOpenGL.cpp:409
static PFNGLGETPROGRAMIVPROC sglGetProgramiv
Definition: GteOpenGL.cpp:1733
void APIENTRY glEndTransformFeedback()
Definition: GteOpenGL.cpp:3416
static PFNGLGETSHADERIVPROC sglGetShaderiv
Definition: GteOpenGL.cpp:1735
static PFNGLGETGRAPHICSRESETSTATUSPROC sglGetGraphicsResetStatus
Definition: GteOpenGL.cpp:8612
static PFNGLTEXTUREBUFFERPROC sglTextureBuffer
Definition: GteOpenGL.cpp:8556
GLboolean APIENTRY glIsVertexArray(GLuint array)
Definition: GteOpenGL.cpp:4422
void APIENTRY glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
Definition: GteOpenGL.cpp:2077
static PFNGLDELETETRANSFORMFEEDBACKSPROC sglDeleteTransformFeedbacks
Definition: GteOpenGL.cpp:5500
static PFNGLGETPROGRAMINFOLOGPROC sglGetProgramInfoLog
Definition: GteOpenGL.cpp:1734
static void ReportGLNullFunction(const char *glFunction)
Definition: GteOpenGL.cpp:78
GLintptr offset
Definition: glcorearb.h:660
void APIENTRY glPointSize(GLfloat size)
Definition: GteOpenGL.cpp:188
void APIENTRY glDebugMessageCallback(GLDEBUGPROC callback, const void *userParam)
Definition: GteOpenGL.cpp:8207
GLboolean APIENTRY glUnmapBuffer(GLenum target)
Definition: GteOpenGL.cpp:1644
void APIENTRY glNamedFramebufferParameteri(GLuint framebuffer, GLenum pname, GLint param)
Definition: GteOpenGL.cpp:8943
void APIENTRY glGetNamedBufferPointerv(GLuint buffer, GLenum pname, void **params)
Definition: GteOpenGL.cpp:8891
static PFNGLUNIFORM1DVPROC sglUniform1dv
Definition: GteOpenGL.cpp:5475
void APIENTRY glGetIntegeri_v(GLenum target, GLuint index, GLint *data)
Definition: GteOpenGL.cpp:3348
void APIENTRY glGetQueryBufferObjectui64v(GLuint id, GLuint buffer, GLenum pname, GLintptr offset)
Definition: GteOpenGL.cpp:9882
static PFNGLCOPYNAMEDBUFFERSUBDATAPROC sglCopyNamedBufferSubData
Definition: GteOpenGL.cpp:8522
void APIENTRY glTextureSubImage2D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:9323
void APIENTRY glGenVertexArrays(GLsizei n, GLuint *arrays)
Definition: GteOpenGL.cpp:4409
GLenum APIENTRY glCheckNamedFramebufferStatus(GLuint framebuffer, GLenum target)
Definition: GteOpenGL.cpp:9112
void APIENTRY glVertexAttrib4fv(GLuint index, const GLfloat *v)
Definition: GteOpenGL.cpp:2931
static PFNGLGETOBJECTPTRLABELPROC sglGetObjectPtrLabel
Definition: GteOpenGL.cpp:7741
void APIENTRY glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:954
void APIENTRY glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:1205
static PFNGLVERTEXATTRIB2SPROC sglVertexAttrib2s
Definition: GteOpenGL.cpp:1780
static PFNGLGENTRANSFORMFEEDBACKSPROC sglGenTransformFeedbacks
Definition: GteOpenGL.cpp:5501
GLuint buffer
Definition: glcorearb.h:655
void APIENTRY glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void *indices)
Definition: GteOpenGL.cpp:1052
GLsizei GLenum GLenum * types
Definition: glcorearb.h:2537
void APIENTRY glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer)
Definition: GteOpenGL.cpp:3520
void APIENTRY glGetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:9193
static PFNGLVALIDATEPROGRAMPROC sglValidateProgram
Definition: GteOpenGL.cpp:1769
static PFNGLTEXTURESUBIMAGE1DPROC sglTextureSubImage1D
Definition: GteOpenGL.cpp:8563
void APIENTRY glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program)
Definition: GteOpenGL.cpp:6366
GLint GLenum GLboolean GLsizei stride
Definition: glcorearb.h:867
static PFNGLPROGRAMUNIFORM1DPROC sglProgramUniform1d
Definition: GteOpenGL.cpp:6193
static PFNGLGENERATETEXTUREMIPMAPPROC sglGenerateTextureMipmap
Definition: GteOpenGL.cpp:8578
void APIENTRY glBlendFunci(GLuint buf, GLenum src, GLenum dst)
Definition: GteOpenGL.cpp:5550
unsigned int GLbitfield
Definition: glcorearb.h:87
static PFNGLQUERYCOUNTERPROC sglQueryCounter
Definition: GteOpenGL.cpp:5044
static PFNGLDELETEVERTEXARRAYSPROC sglDeleteVertexArrays
Definition: GteOpenGL.cpp:3318
void APIENTRY glVertexAttribI1ui(GLuint index, GLuint x)
Definition: GteOpenGL.cpp:3611
GLsizei GLenum GLenum GLuint GLenum * severities
Definition: glcorearb.h:2537
static PFNGLFRAMEBUFFERRENDERBUFFERPROC sglFramebufferRenderbuffer
Definition: GteOpenGL.cpp:3309
static PFNGLUNIFORM3FVPROC sglUniform3fv
Definition: GteOpenGL.cpp:1760
void APIENTRY glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:7821
static PFNGLGENBUFFERSPROC sglGenBuffers
Definition: GteOpenGL.cpp:1417
static PFNGLVERTEXBINDINGDIVISORPROC sglVertexBindingDivisor
Definition: GteOpenGL.cpp:7731
static PFNGLISSHADERPROC sglIsShader
Definition: GteOpenGL.cpp:1746
void *APIENTRY glMapNamedBufferRange(GLuint buffer, GLintptr offset, GLsizei length, GLbitfield access)
Definition: GteOpenGL.cpp:8820
static PFNGLUNIFORM2FPROC sglUniform2f
Definition: GteOpenGL.cpp:1751
GLuint bindingindex
Definition: glcorearb.h:2532
static PFNGLVERTEXATTRIBL2DPROC sglVertexAttribL2d
Definition: GteOpenGL.cpp:6242
static void GetOpenGLFunction(char const *name, PGLFunction &function)
Definition: GteOpenGL.cpp:39
GLuint attribindex
Definition: glcorearb.h:2742
static PFNGLINVALIDATETEXIMAGEPROC sglInvalidateTexImage
Definition: GteOpenGL.cpp:7708
static PFNGLGETTEXTURELEVELPARAMETERFVPROC sglGetTextureLevelParameterfv
Definition: GteOpenGL.cpp:8582
static PFNGLTEXBUFFERPROC sglTexBuffer
Definition: GteOpenGL.cpp:4533
static PFNGLVERTEXATTRIB1DPROC sglVertexAttrib1d
Definition: GteOpenGL.cpp:1770
static PFNGLGETMULTISAMPLEFVPROC sglGetMultisamplefv
Definition: GteOpenGL.cpp:4741
void APIENTRY glVertexAttrib1d(GLuint index, GLdouble x)
Definition: GteOpenGL.cpp:2554
void APIENTRY glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:7048
static PFNGLCLEARBUFFERDATAPROC sglClearBufferData
Definition: GteOpenGL.cpp:7699
static PFNGLUNIFORM3FPROC sglUniform3f
Definition: GteOpenGL.cpp:1752
GLint srcY0
Definition: glcorearb.h:1292
static PFNGLDELETESYNCPROC sglDeleteSync
Definition: GteOpenGL.cpp:4731
void APIENTRY glFrontFace(GLenum mode)
Definition: GteOpenGL.cpp:149
#define GL_VENDOR
Definition: glcorearb.h:368
static PFNGLGETDOUBLEVPROC sglGetDoublev
Definition: GteOpenGL.cpp:122
void APIENTRY glGetnUniformfv(GLuint program, GLint location, GLsizei bufSize, GLfloat *params)
void APIENTRY glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5784
GLint GLsizei GLsizei GLuint baseinstance
Definition: glcorearb.h:2212
static PFNGLWAITSYNCPROC sglWaitSync
Definition: GteOpenGL.cpp:4733
static PFNGLBEGINTRANSFORMFEEDBACKPROC sglBeginTransformFeedback
Definition: GteOpenGL.cpp:3243
static PFNGLBINDBUFFERSRANGEPROC sglBindBuffersRange
Definition: GteOpenGL.cpp:8370
void APIENTRY glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2)
Definition: GteOpenGL.cpp:2320
static PFNGLRESUMETRANSFORMFEEDBACKPROC sglResumeTransformFeedback
Definition: GteOpenGL.cpp:5504
void APIENTRY glGetTransformFeedbacki64_v(GLuint xfb, GLenum pname, GLuint index, GLint64 *param)
Definition: GteOpenGL.cpp:8700
GLenum GLenum dst
Definition: glcorearb.h:1788
GLuint bufferIndex
Definition: glcorearb.h:2216
void APIENTRY glGenFramebuffers(GLsizei n, GLuint *framebuffers)
Definition: GteOpenGL.cpp:4208
static PFNGLVERTEXATTRIB4IVPROC sglVertexAttrib4iv
Definition: GteOpenGL.cpp:1800
void APIENTRY glClearTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data)
Definition: GteOpenGL.cpp:8402
GLboolean APIENTRY glUnmapNamedBuffer(GLuint buffer)
Definition: GteOpenGL.cpp:8836
GLenum GLint GLint GLint srcY
Definition: glcorearb.h:2505
static PFNGLVERTEXATTRIB4SPROC sglVertexAttrib4s
Definition: GteOpenGL.cpp:1801
#define OPENGL_VERSION_4_0
Definition: GteOpenGL.cpp:29
void APIENTRY glClearStencil(GLint s)
Definition: GteOpenGL.cpp:344
static PFNGLDRAWRANGEELEMENTSPROC sglDrawRangeElements
Definition: GteOpenGL.cpp:1047
void APIENTRY glInvalidateNamedFramebufferData(GLuint framebuffer, GLsizei numAttachments, const GLenum *attachments)
Definition: GteOpenGL.cpp:9021
void APIENTRY glTextureSubImage3D(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *pixels)
Definition: GteOpenGL.cpp:9336
GLint GLint bottom
Definition: glcorearb.h:2000
static PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC sglCompressedTexSubImage2D
Definition: GteOpenGL.cpp:1123
static PFNGLGETSTRINGIPROC sglGetStringi
Definition: GteOpenGL.cpp:3294
static void Initialize_OPENGL_VERSION_4_1()
Definition: GteOpenGL.cpp:7412
static PFNGLGETINTEGER64VPROC sglGetInteger64v
Definition: GteOpenGL.cpp:4734
static PFNGLMAPNAMEDBUFFERPROC sglMapNamedBuffer
Definition: GteOpenGL.cpp:8525
void APIENTRY glDisablei(GLenum target, GLuint index)
Definition: GteOpenGL.cpp:3374
void APIENTRY glGetnUniformdv(GLuint program, GLint location, GLsizei bufSize, GLdouble *params)
Definition: GteOpenGL.cpp:9989
void APIENTRY glUniform2dv(GLint location, GLsizei count, const GLdouble *value)
Definition: GteOpenGL.cpp:5667
static PFNGLGETTEXPARAMETERIVPROC sglGetTexParameteriv
Definition: GteOpenGL.cpp:129
static PFNGLGETTRANSFORMFEEDBACKI_VPROC sglGetTransformFeedbacki_v
Definition: GteOpenGL.cpp:8516
void APIENTRY glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:6892
GLenum GLint GLint GLint GLint GLuint GLenum GLint GLint GLint dstY
Definition: glcorearb.h:2505
void APIENTRY glCreateProgramPipelines(GLsizei n, GLuint *pipelines)
Definition: GteOpenGL.cpp:9830
void APIENTRY glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5771
GLuint APIENTRY glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName)
Definition: GteOpenGL.cpp:4648
GLint APIENTRY glGetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const GLchar *name)
Definition: GteOpenGL.cpp:8022
static PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC sglTextureStorage2DMultisample
Definition: GteOpenGL.cpp:8561
void APIENTRY glVertexAttribI2ui(GLuint index, GLuint x, GLuint y)
Definition: GteOpenGL.cpp:3624
static PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC sglGetNamedFramebufferParameteriv
Definition: GteOpenGL.cpp:8549
static PFNGLDRAWELEMENTSINDIRECTPROC sglDrawElementsIndirect
Definition: GteOpenGL.cpp:5470
static PFNGLGETSHADERSOURCEPROC sglGetShaderSource
Definition: GteOpenGL.cpp:1737
static PFNGLVERTEXATTRIB3DVPROC sglVertexAttrib3dv
Definition: GteOpenGL.cpp:1783
static PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC sglGetActiveSubroutineUniformName
Definition: GteOpenGL.cpp:5492
void APIENTRY glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:7009
void APIENTRY glGetActiveSubroutineUniformName(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name)
Definition: GteOpenGL.cpp:5881
static PFNGLGETUNIFORMIVPROC sglGetUniformiv
Definition: GteOpenGL.cpp:1740
void APIENTRY glVertexAttrib1dv(GLuint index, const GLdouble *v)
Definition: GteOpenGL.cpp:2567
static PFNGLVERTEXATTRIB4SVPROC sglVertexAttrib4sv
Definition: GteOpenGL.cpp:1802
void APIENTRY glBindTextures(GLuint first, GLsizei count, const GLuint *textures)
Definition: GteOpenGL.cpp:8441
static PFNGLPROGRAMUNIFORM1FPROC sglProgramUniform1f
Definition: GteOpenGL.cpp:6191
static PFNGLCLEARDEPTHFPROC sglClearDepthf
Definition: GteOpenGL.cpp:6177
const GLubyte *APIENTRYP PFNGLGETSTRINGIPROC(GLenum name, GLuint index)
Definition: glcorearb.h:1274
void APIENTRY glVertexAttribI1i(GLuint index, GLint x)
Definition: GteOpenGL.cpp:3559
GLuint64EXT * result
Definition: glext.h:10003
void APIENTRY glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params)
Definition: GteOpenGL.cpp:1521
void APIENTRY glDepthFunc(GLenum func)
Definition: GteOpenGL.cpp:513
void APIENTRY glVertexAttribI4usv(GLuint index, const GLushort *v)
Definition: GteOpenGL.cpp:3806
static PFNGLGETDOUBLEI_VPROC sglGetDoublei_v
Definition: GteOpenGL.cpp:6260
static PFNGLBLENDEQUATIONSEPARATEIPROC sglBlendEquationSeparatei
Definition: GteOpenGL.cpp:5466
void APIENTRY glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset)
Definition: GteOpenGL.cpp:8142
void APIENTRY glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
Definition: GteOpenGL.cpp:928
void APIENTRY glTransformFeedbackBufferBase(GLuint xfb, GLuint index, GLuint buffer)
Definition: GteOpenGL.cpp:8648
static PFNGLVERTEXATTRIB4NUBVPROC sglVertexAttrib4Nubv
Definition: GteOpenGL.cpp:1792
void APIENTRY glBeginQuery(GLenum target, GLuint id)
Definition: GteOpenGL.cpp:1469
static PFNGLFRAMEBUFFERPARAMETERIPROC sglFramebufferParameteri
Definition: GteOpenGL.cpp:7704
short GLshort
Definition: glcorearb.h:692
void APIENTRY glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog)
Definition: GteOpenGL.cpp:2103
static PFNGLUNIFORM3IVPROC sglUniform3iv
Definition: GteOpenGL.cpp:1764
static PFNGLGETRENDERBUFFERPARAMETERIVPROC sglGetRenderbufferParameteriv
Definition: GteOpenGL.cpp:3300
void APIENTRY glGetTextureLevelParameteriv(GLuint texture, GLint level, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:9570
GLint y
Definition: glcorearb.h:98
static PFNGLLINKPROGRAMPROC sglLinkProgram
Definition: GteOpenGL.cpp:1747
void APIENTRY glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:1166
void APIENTRY glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z)
Definition: GteOpenGL.cpp:3585
static PFNGLGETTEXTURELEVELPARAMETERIVPROC sglGetTextureLevelParameteriv
Definition: GteOpenGL.cpp:8583
void APIENTRY glClearNamedFramebufferiv(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint *value)
Definition: GteOpenGL.cpp:9047
static PFNGLVERTEXATTRIBFORMATPROC sglVertexAttribFormat
Definition: GteOpenGL.cpp:7727
GLint GLint GLint GLint zoffset
Definition: glcorearb.h:472
void APIENTRY glVertexAttribI2iv(GLuint index, const GLint *v)
Definition: GteOpenGL.cpp:3676
static PFNGLGETNAMEDBUFFERPOINTERVPROC sglGetNamedBufferPointerv
Definition: GteOpenGL.cpp:8531
GLint APIENTRY glGetSubroutineUniformLocation(GLuint program, GLenum shadertype, const GLchar *name)
Definition: GteOpenGL.cpp:5836
GLuint GLsizei GLsizei GLchar * uniformName
Definition: glcorearb.h:1459
void APIENTRY glPixelStoref(GLenum pname, GLfloat param)
Definition: GteOpenGL.cpp:526
void APIENTRY glVertexArrayAttribFormat(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset)
Definition: GteOpenGL.cpp:9726
void APIENTRY glProgramUniform4f(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3)
Definition: GteOpenGL.cpp:6814
GLint GLint GLint GLint GLint GLint dstX1
Definition: glcorearb.h:1292
void APIENTRY glPolygonMode(GLenum face, GLenum mode)
Definition: GteOpenGL.cpp:201
void APIENTRY glResumeTransformFeedback()
Definition: GteOpenGL.cpp:6040
void APIENTRY glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3)
Definition: GteOpenGL.cpp:3900
void APIENTRY glBeginTransformFeedback(GLenum primitiveMode)
Definition: GteOpenGL.cpp:3403
static PFNGLDISABLEVERTEXARRAYATTRIBPROC sglDisableVertexArrayAttrib
Definition: GteOpenGL.cpp:8589
void APIENTRY glGenerateMipmap(GLenum target)
Definition: GteOpenGL.cpp:4302
void APIENTRY glUniform4fv(GLint location, GLsizei count, const GLfloat *value)
Definition: GteOpenGL.cpp:2437
ptrdiff_t GLintptr
Definition: glcorearb.h:618
static PFNGLLINEWIDTHPROC sglLineWidth
Definition: GteOpenGL.cpp:90
static PFNGLVERTEXATTRIBI4USVPROC sglVertexAttribI4usv
Definition: GteOpenGL.cpp:3274
static PFNGLVERTEXATTRIB2SVPROC sglVertexAttrib2sv
Definition: GteOpenGL.cpp:1781
static PFNGLTEXTURESUBIMAGE2DPROC sglTextureSubImage2D
Definition: GteOpenGL.cpp:8564
static PFNGLVERTEXATTRIB4DVPROC sglVertexAttrib4dv
Definition: GteOpenGL.cpp:1797
void APIENTRY glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
Definition: GteOpenGL.cpp:674
static PFNGLVERTEXATTRIBI1IVPROC sglVertexAttribI1iv
Definition: GteOpenGL.cpp:3263
void APIENTRY glGenQueries(GLsizei n, GLuint *ids)
Definition: GteOpenGL.cpp:1427
void APIENTRY glDepthRangef(GLfloat n, GLfloat f)
Definition: GteOpenGL.cpp:6301
static PFNGLCLEARBUFFERFVPROC sglClearBufferfv
Definition: GteOpenGL.cpp:3292
void APIENTRY glProgramUniform2f(GLuint program, GLint location, GLfloat v0, GLfloat v1)
Definition: GteOpenGL.cpp:6606
void APIENTRY glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
Definition: GteOpenGL.cpp:7191
void APIENTRY glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name)
Definition: GteOpenGL.cpp:3468
GLenum GLuint GLint GLenum face
Definition: glext.h:3311
GLint APIENTRY glGetAttribLocation(GLuint program, const GLchar *name)
Definition: GteOpenGL.cpp:2048
void APIENTRY glUniform2iv(GLint location, GLsizei count, const GLint *value)
Definition: GteOpenGL.cpp:2463
#define OPENGL_VERSION_3_1
Definition: GteOpenGL.cpp:26
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:103
void APIENTRY glGetUniformiv(GLuint program, GLint location, GLint *params)
Definition: GteOpenGL.cpp:2158
void APIENTRY glGetShaderiv(GLuint shader, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:2090
void APIENTRY glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter)
Definition: GteOpenGL.cpp:4315
static PFNGLVERTEXATTRIBI2IPROC sglVertexAttribI2i
Definition: GteOpenGL.cpp:3256
void APIENTRY glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void *data)
Definition: GteOpenGL.cpp:1218
void APIENTRY glTextureStorage1D(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width)
Definition: GteOpenGL.cpp:9245
static PFNGLCREATESHADERPROGRAMVPROC sglCreateShaderProgramv
Definition: GteOpenGL.cpp:6183
void APIENTRY glUniform3fv(GLint location, GLsizei count, const GLfloat *value)
Definition: GteOpenGL.cpp:2424
const GLuint GLenum binaryformat
Definition: glcorearb.h:1919
#define APIENTRY
Definition: glcorearb.h:47
void InitializeOpenGL(int &major, int &minor, char const *infofile)
static PFNGLGETNTEXIMAGEPROC sglGetnTexImage
Definition: GteOpenGL.cpp:8614
static PFNGLFRAMEBUFFERTEXTURELAYERPROC sglFramebufferTextureLayer
Definition: GteOpenGL.cpp:3314
static PFNGLCLEARSTENCILPROC sglClearStencil
Definition: GteOpenGL.cpp:103
static PFNGLVERTEXATTRIBI1IPROC sglVertexAttribI1i
Definition: GteOpenGL.cpp:3255
static PFNGLNAMEDRENDERBUFFERSTORAGEPROC sglNamedRenderbufferStorage
Definition: GteOpenGL.cpp:8552
static PFNGLUNIFORMMATRIX2X3FVPROC sglUniformMatrix2x3fv
Definition: GteOpenGL.cpp:3137
GLsizei const GLuint const GLintptr const GLsizei * strides
Definition: glcorearb.h:2620
static PFNGLPIXELSTOREFPROC sglPixelStoref
Definition: GteOpenGL.cpp:117
GLboolean APIENTRY glIsEnabled(GLenum cap)
Definition: GteOpenGL.cpp:726
void APIENTRY glGetTextureImage(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void *pixels)
Definition: GteOpenGL.cpp:9531
static PFNGLPROGRAMUNIFORM4UIVPROC sglProgramUniform4uiv
Definition: GteOpenGL.cpp:6220
static PFNGLCREATEPROGRAMPIPELINESPROC sglCreateProgramPipelines
Definition: GteOpenGL.cpp:8603
static PFNGLVERTEXATTRIBI3IVPROC sglVertexAttribI3iv
Definition: GteOpenGL.cpp:3265
static PFNGLINVALIDATEBUFFERDATAPROC sglInvalidateBufferData
Definition: GteOpenGL.cpp:7710
char GLchar
Definition: glcorearb.h:691
void APIENTRY glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name)
Definition: GteOpenGL.cpp:2009
void APIENTRY glMemoryBarrier(GLbitfield barriers)
Definition: GteOpenGL.cpp:7600
GLuint srcName
Definition: wglext.h:649
static PFNGLCLEARDEPTHPROC sglClearDepth
Definition: GteOpenGL.cpp:104
void APIENTRY glProgramUniform2i(GLuint program, GLint location, GLint v0, GLint v1)
Definition: GteOpenGL.cpp:6580
void APIENTRY glAttachShader(GLuint program, GLuint shader)
Definition: GteOpenGL.cpp:1873
static PFNGLVERTEXATTRIBLPOINTERPROC sglVertexAttribLPointer
Definition: GteOpenGL.cpp:6249
static PFNGLGETBUFFERPARAMETERIVPROC sglGetBufferParameteriv
Definition: GteOpenGL.cpp:1424
static PFNGLGENVERTEXARRAYSPROC sglGenVertexArrays
Definition: GteOpenGL.cpp:3319
GLenum writeTarget
Definition: glcorearb.h:1456
void APIENTRY glEnable(GLenum cap)
Definition: GteOpenGL.cpp:422
static PFNGLUNMAPNAMEDBUFFERPROC sglUnmapNamedBuffer
Definition: GteOpenGL.cpp:8527
void APIENTRY glVertexAttribL4dv(GLuint index, const GLdouble *v)
Definition: GteOpenGL.cpp:7243
void APIENTRY glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w)
Definition: GteOpenGL.cpp:5641
static PFNGLMULTIDRAWARRAYSPROC sglMultiDrawArrays
Definition: GteOpenGL.cpp:1263
static PFNGLDELETEQUERIESPROC sglDeleteQueries
Definition: GteOpenGL.cpp:1408
GLint drawbuffer
Definition: glcorearb.h:1270
static PFNGLGENRENDERBUFFERSPROC sglGenRenderbuffers
Definition: GteOpenGL.cpp:3298
void APIENTRY glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:3183
void APIENTRY glProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble *value)
Definition: GteOpenGL.cpp:6645
void APIENTRY glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value)
Definition: GteOpenGL.cpp:6996
GLenum dfactorRGB
Definition: glcorearb.h:592
void APIENTRY glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value)
Definition: GteOpenGL.cpp:5719
static PFNGLPROGRAMUNIFORM1IVPROC sglProgramUniform1iv
Definition: GteOpenGL.cpp:6190
void APIENTRY glGetTextureParameteriv(GLuint texture, GLenum pname, GLint *params)
Definition: GteOpenGL.cpp:9622
GLsizei levels
Definition: glcorearb.h:2219
static PFNGLBUFFERDATAPROC sglBufferData
Definition: GteOpenGL.cpp:1419
static PFNGLPIXELSTOREIPROC sglPixelStorei
Definition: GteOpenGL.cpp:118


geometric_tools_engine
Author(s): Yijiang Huang
autogenerated on Thu Jul 18 2019 04:00:01