PageRenderTime 86ms CodeModel.GetById 42ms RepoModel.GetById 0ms app.codeStats 1ms

/src/cinder/linux/gl_es_load.cpp

https://github.com/paulhoux/Cinder
C++ | 1487 lines | 1344 code | 75 blank | 68 comment | 54 complexity | 52d0b583a85f295c89b196286435a071 MD5 | raw file
Possible License(s): GPL-3.0
  1. /*
  2. Copyright (c) 2015, The Cinder Project, All rights reserved.
  3. This code is intended for use with the Cinder C++ library: http://libcinder.org
  4. Redistribution and use in source and binary forms, with or without modification, are permitted provided that
  5. the following conditions are met:
  6. * Redistributions of source code must retain the above copyright notice, this list of conditions and
  7. the following disclaimer.
  8. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
  9. the following disclaimer in the documentation and/or other materials provided with the distribution.
  10. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
  11. WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
  12. PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
  13. ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
  14. TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  15. HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
  16. NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  17. POSSIBILITY OF SUCH DAMAGE.
  18. */
  19. #include "cinder/gl/platform.h"
  20. #include "cinder/linux/gl_es_load.h"
  21. #include <algorithm>
  22. #include <cctype>
  23. #include <iostream>
  24. #include <sstream>
  25. #include <string>
  26. #if defined( CINDER_ANDROID )
  27. #include <android/log.h>
  28. #endif
  29. // -----------------------------------------------------------------------------
  30. // iOS
  31. // -----------------------------------------------------------------------------
  32. #if defined( CINDER_COCOA_TOUCH )
  33. // Nothing for now
  34. // -----------------------------------------------------------------------------
  35. // Android and Linux
  36. // -----------------------------------------------------------------------------
  37. #elif defined( CINDER_ANDROID ) || defined( CINDER_LINUX )
  38. static bool hasExtension( const std::string& extName );
  39. static void* loadEglProc( const std::string& procName ) ;
  40. static void clearLoadCount();
  41. static uint32_t getLoadCount();
  42. #define _GL_ES_LOAD_DEBUG_
  43. static void _dbg_out( const std::string& s )
  44. {
  45. #if defined( _GL_ES_LOAD_DEBUG_ )
  46. #if defined( CINDER_ANDROID )
  47. __android_log_print( ANDROID_LOG_INFO, "cinder:gl_es_load", s.c_str() );
  48. #elif defined( CINDER_LINUX )
  49. std::cout << s << std::endl;
  50. #endif
  51. #endif
  52. }
  53. #define DEBUG( STRM ) \
  54. { \
  55. std::stringstream tmpss; \
  56. tmpss << STRM; \
  57. _dbg_out( tmpss.str() ); \
  58. }
  59. #define EXT_QUOTE_STR( STR ) \
  60. #STR
  61. // ----------------------------------------------------------------------------
  62. // OpenGL ES 3.0
  63. // ----------------------------------------------------------------------------
  64. #if defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3 )
  65. PFNGLREADBUFFERPROC fnptr_ci_glReadBuffer = nullptr;
  66. PFNGLDRAWRANGEELEMENTSPROC fnptr_ci_glDrawRangeElements = nullptr;
  67. PFNGLTEXIMAGE3DPROC fnptr_ci_glTexImage3D = nullptr;
  68. PFNGLTEXSUBIMAGE3DPROC fnptr_ci_glTexSubImage3D = nullptr;
  69. PFNGLCOPYTEXSUBIMAGE3DPROC fnptr_ci_glCopyTexSubImage3D = nullptr;
  70. PFNGLCOMPRESSEDTEXIMAGE3DPROC fnptr_ci_glCompressedTexImage3D = nullptr;
  71. PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC fnptr_ci_glCompressedTexSubImage3D = nullptr;
  72. PFNGLGENQUERIESPROC fnptr_ci_glGenQueries = nullptr;
  73. PFNGLDELETEQUERIESPROC fnptr_ci_glDeleteQueries = nullptr;
  74. PFNGLISQUERYPROC fnptr_ci_glIsQuery = nullptr;
  75. PFNGLBEGINQUERYPROC fnptr_ci_glBeginQuery = nullptr;
  76. PFNGLENDQUERYPROC fnptr_ci_glEndQuery = nullptr;
  77. PFNGLGETQUERYIVPROC fnptr_ci_glGetQueryiv = nullptr;
  78. PFNGLGETQUERYOBJECTUIVPROC fnptr_ci_glGetQueryObjectuiv = nullptr;
  79. PFNGLUNMAPBUFFERPROC fnptr_ci_glUnmapBuffer = nullptr;
  80. PFNGLGETBUFFERPOINTERVPROC fnptr_ci_glGetBufferPointerv = nullptr;
  81. PFNGLDRAWBUFFERSPROC fnptr_ci_glDrawBuffers = nullptr;
  82. PFNGLUNIFORMMATRIX2X3FVPROC fnptr_ci_glUniformMatrix2x3fv = nullptr;
  83. PFNGLUNIFORMMATRIX3X2FVPROC fnptr_ci_glUniformMatrix3x2fv = nullptr;
  84. PFNGLUNIFORMMATRIX2X4FVPROC fnptr_ci_glUniformMatrix2x4fv = nullptr;
  85. PFNGLUNIFORMMATRIX4X2FVPROC fnptr_ci_glUniformMatrix4x2fv = nullptr;
  86. PFNGLUNIFORMMATRIX3X4FVPROC fnptr_ci_glUniformMatrix3x4fv = nullptr;
  87. PFNGLUNIFORMMATRIX4X3FVPROC fnptr_ci_glUniformMatrix4x3fv = nullptr;
  88. PFNGLBLITFRAMEBUFFERPROC fnptr_ci_glBlitFramebuffer = nullptr;
  89. PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC fnptr_ci_glRenderbufferStorageMultisample = nullptr;
  90. PFNGLFRAMEBUFFERTEXTURELAYERPROC fnptr_ci_glFramebufferTextureLayer = nullptr;
  91. PFNGLMAPBUFFERRANGEPROC fnptr_ci_glMapBufferRange = nullptr;
  92. PFNGLFLUSHMAPPEDBUFFERRANGEPROC fnptr_ci_glFlushMappedBufferRange = nullptr;
  93. PFNGLBINDVERTEXARRAYPROC fnptr_ci_glBindVertexArray = nullptr;
  94. PFNGLDELETEVERTEXARRAYSPROC fnptr_ci_glDeleteVertexArrays = nullptr;
  95. PFNGLGENVERTEXARRAYSPROC fnptr_ci_glGenVertexArrays = nullptr;
  96. PFNGLISVERTEXARRAYPROC fnptr_ci_glIsVertexArray = nullptr;
  97. PFNGLGETINTEGERI_VPROC fnptr_ci_glGetIntegeri_v = nullptr;
  98. PFNGLBEGINTRANSFORMFEEDBACKPROC fnptr_ci_glBeginTransformFeedback = nullptr;
  99. PFNGLENDTRANSFORMFEEDBACKPROC fnptr_ci_glEndTransformFeedback = nullptr;
  100. PFNGLBINDBUFFERRANGEPROC fnptr_ci_glBindBufferRange = nullptr;
  101. PFNGLBINDBUFFERBASEPROC fnptr_ci_glBindBufferBase = nullptr;
  102. PFNGLTRANSFORMFEEDBACKVARYINGSPROC fnptr_ci_glTransformFeedbackVaryings = nullptr;
  103. PFNGLGETTRANSFORMFEEDBACKVARYINGPROC fnptr_ci_glGetTransformFeedbackVarying = nullptr;
  104. PFNGLVERTEXATTRIBIPOINTERPROC fnptr_ci_glVertexAttribIPointer = nullptr;
  105. PFNGLGETVERTEXATTRIBIIVPROC fnptr_ci_glGetVertexAttribIiv = nullptr;
  106. PFNGLGETVERTEXATTRIBIUIVPROC fnptr_ci_glGetVertexAttribIuiv = nullptr;
  107. PFNGLVERTEXATTRIBI4IPROC fnptr_ci_glVertexAttribI4i = nullptr;
  108. PFNGLVERTEXATTRIBI4UIPROC fnptr_ci_glVertexAttribI4ui = nullptr;
  109. PFNGLVERTEXATTRIBI4IVPROC fnptr_ci_glVertexAttribI4iv = nullptr;
  110. PFNGLVERTEXATTRIBI4UIVPROC fnptr_ci_glVertexAttribI4uiv = nullptr;
  111. PFNGLGETUNIFORMUIVPROC fnptr_ci_glGetUniformuiv = nullptr;
  112. PFNGLGETFRAGDATALOCATIONPROC fnptr_ci_glGetFragDataLocation = nullptr;
  113. PFNGLUNIFORM1UIPROC fnptr_ci_glUniform1ui = nullptr;
  114. PFNGLUNIFORM2UIPROC fnptr_ci_glUniform2ui = nullptr;
  115. PFNGLUNIFORM3UIPROC fnptr_ci_glUniform3ui = nullptr;
  116. PFNGLUNIFORM4UIPROC fnptr_ci_glUniform4ui = nullptr;
  117. PFNGLUNIFORM1UIVPROC fnptr_ci_glUniform1uiv = nullptr;
  118. PFNGLUNIFORM2UIVPROC fnptr_ci_glUniform2uiv = nullptr;
  119. PFNGLUNIFORM3UIVPROC fnptr_ci_glUniform3uiv = nullptr;
  120. PFNGLUNIFORM4UIVPROC fnptr_ci_glUniform4uiv = nullptr;
  121. PFNGLCLEARBUFFERIVPROC fnptr_ci_glClearBufferiv = nullptr;
  122. PFNGLCLEARBUFFERUIVPROC fnptr_ci_glClearBufferuiv = nullptr;
  123. PFNGLCLEARBUFFERFVPROC fnptr_ci_glClearBufferfv = nullptr;
  124. PFNGLCLEARBUFFERFIPROC fnptr_ci_glClearBufferfi = nullptr;
  125. PFNGLGETSTRINGIPROC fnptr_ci_glGetStringi = nullptr;
  126. PFNGLCOPYBUFFERSUBDATAPROC fnptr_ci_glCopyBufferSubData = nullptr;
  127. PFNGLGETUNIFORMINDICESPROC fnptr_ci_glGetUniformIndices = nullptr;
  128. PFNGLGETACTIVEUNIFORMSIVPROC fnptr_ci_glGetActiveUniformsiv = nullptr;
  129. PFNGLGETUNIFORMBLOCKINDEXPROC fnptr_ci_glGetUniformBlockIndex = nullptr;
  130. PFNGLGETACTIVEUNIFORMBLOCKIVPROC fnptr_ci_glGetActiveUniformBlockiv = nullptr;
  131. PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC fnptr_ci_glGetActiveUniformBlockName = nullptr;
  132. PFNGLUNIFORMBLOCKBINDINGPROC fnptr_ci_glUniformBlockBinding = nullptr;
  133. PFNGLDRAWARRAYSINSTANCEDPROC fnptr_ci_glDrawArraysInstanced = nullptr;
  134. PFNGLDRAWELEMENTSINSTANCEDPROC fnptr_ci_glDrawElementsInstanced = nullptr;
  135. PFNGLFENCESYNCPROC fnptr_ci_glFenceSync = nullptr;
  136. PFNGLISSYNCPROC fnptr_ci_glIsSync = nullptr;
  137. PFNGLDELETESYNCPROC fnptr_ci_glDeleteSync = nullptr;
  138. PFNGLCLIENTWAITSYNCPROC fnptr_ci_glClientWaitSync = nullptr;
  139. PFNGLWAITSYNCPROC fnptr_ci_glWaitSync = nullptr;
  140. PFNGLGETINTEGER64VPROC fnptr_ci_glGetInteger64v = nullptr;
  141. PFNGLGETSYNCIVPROC fnptr_ci_glGetSynciv = nullptr;
  142. PFNGLGETINTEGER64I_VPROC fnptr_ci_glGetInteger64i_v = nullptr;
  143. PFNGLGETBUFFERPARAMETERI64VPROC fnptr_ci_glGetBufferParameteri64v = nullptr;
  144. PFNGLGENSAMPLERSPROC fnptr_ci_glGenSamplers = nullptr;
  145. PFNGLDELETESAMPLERSPROC fnptr_ci_glDeleteSamplers = nullptr;
  146. PFNGLISSAMPLERPROC fnptr_ci_glIsSampler = nullptr;
  147. PFNGLBINDSAMPLERPROC fnptr_ci_glBindSampler = nullptr;
  148. PFNGLSAMPLERPARAMETERIPROC fnptr_ci_glSamplerParameteri = nullptr;
  149. PFNGLSAMPLERPARAMETERIVPROC fnptr_ci_glSamplerParameteriv = nullptr;
  150. PFNGLSAMPLERPARAMETERFPROC fnptr_ci_glSamplerParameterf = nullptr;
  151. PFNGLSAMPLERPARAMETERFVPROC fnptr_ci_glSamplerParameterfv = nullptr;
  152. PFNGLGETSAMPLERPARAMETERIVPROC fnptr_ci_glGetSamplerParameteriv = nullptr;
  153. PFNGLGETSAMPLERPARAMETERFVPROC fnptr_ci_glGetSamplerParameterfv = nullptr;
  154. PFNGLVERTEXATTRIBDIVISORPROC fnptr_ci_glVertexAttribDivisor = nullptr;
  155. PFNGLBINDTRANSFORMFEEDBACKPROC fnptr_ci_glBindTransformFeedback = nullptr;
  156. PFNGLDELETETRANSFORMFEEDBACKSPROC fnptr_ci_glDeleteTransformFeedbacks = nullptr;
  157. PFNGLGENTRANSFORMFEEDBACKSPROC fnptr_ci_glGenTransformFeedbacks = nullptr;
  158. PFNGLISTRANSFORMFEEDBACKPROC fnptr_ci_glIsTransformFeedback = nullptr;
  159. PFNGLPAUSETRANSFORMFEEDBACKPROC fnptr_ci_glPauseTransformFeedback = nullptr;
  160. PFNGLRESUMETRANSFORMFEEDBACKPROC fnptr_ci_glResumeTransformFeedback = nullptr;
  161. PFNGLGETPROGRAMBINARYPROC fnptr_ci_glGetProgramBinary = nullptr;
  162. PFNGLPROGRAMBINARYPROC fnptr_ci_glProgramBinary = nullptr;
  163. PFNGLPROGRAMPARAMETERIPROC fnptr_ci_glProgramParameteri = nullptr;
  164. PFNGLINVALIDATEFRAMEBUFFERPROC fnptr_ci_glInvalidateFramebuffer = nullptr;
  165. PFNGLINVALIDATESUBFRAMEBUFFERPROC fnptr_ci_glInvalidateSubFramebuffer = nullptr;
  166. PFNGLTEXSTORAGE2DPROC fnptr_ci_glTexStorage2D = nullptr;
  167. PFNGLTEXSTORAGE3DPROC fnptr_ci_glTexStorage3D = nullptr;
  168. PFNGLGETINTERNALFORMATIVPROC fnptr_ci_glGetInternalformativ = nullptr;
  169. void gl_es_3_0_load()
  170. {
  171. //DEBUG( "gl_es_3_0_load entered..." );
  172. clearLoadCount();
  173. fnptr_ci_glReadBuffer = (PFNGLREADBUFFERPROC)loadEglProc("glReadBuffer");
  174. fnptr_ci_glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)loadEglProc("glDrawRangeElements");
  175. fnptr_ci_glTexImage3D = (PFNGLTEXIMAGE3DPROC)loadEglProc("glTexImage3D");
  176. fnptr_ci_glTexSubImage3D = (PFNGLTEXSUBIMAGE3DPROC)loadEglProc("glTexSubImage3D");
  177. fnptr_ci_glCopyTexSubImage3D = (PFNGLCOPYTEXSUBIMAGE3DPROC)loadEglProc("glCopyTexSubImage3D");
  178. fnptr_ci_glCompressedTexImage3D = (PFNGLCOMPRESSEDTEXIMAGE3DPROC)loadEglProc("glCompressedTexImage3D");
  179. fnptr_ci_glCompressedTexSubImage3D = (PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)loadEglProc("glCompressedTexSubImage3D");
  180. fnptr_ci_glGenQueries = (PFNGLGENQUERIESPROC)loadEglProc("glGenQueries");
  181. fnptr_ci_glDeleteQueries = (PFNGLDELETEQUERIESPROC)loadEglProc("glDeleteQueries");
  182. fnptr_ci_glIsQuery = (PFNGLISQUERYPROC)loadEglProc("glIsQuery");
  183. fnptr_ci_glBeginQuery = (PFNGLBEGINQUERYPROC)loadEglProc("glBeginQuery");
  184. fnptr_ci_glEndQuery = (PFNGLENDQUERYPROC)loadEglProc("glEndQuery");
  185. fnptr_ci_glGetQueryiv = (PFNGLGETQUERYIVPROC)loadEglProc("glGetQueryiv");
  186. fnptr_ci_glGetQueryObjectuiv = (PFNGLGETQUERYOBJECTUIVPROC)loadEglProc("glGetQueryObjectuiv");
  187. fnptr_ci_glUnmapBuffer = (PFNGLUNMAPBUFFERPROC)loadEglProc("glUnmapBuffer");
  188. fnptr_ci_glGetBufferPointerv = (PFNGLGETBUFFERPOINTERVPROC)loadEglProc("glGetBufferPointerv");
  189. fnptr_ci_glDrawBuffers = (PFNGLDRAWBUFFERSPROC)loadEglProc("glDrawBuffers");
  190. fnptr_ci_glUniformMatrix2x3fv = (PFNGLUNIFORMMATRIX2X3FVPROC)loadEglProc("glUniformMatrix2x3fv");
  191. fnptr_ci_glUniformMatrix3x2fv = (PFNGLUNIFORMMATRIX3X2FVPROC)loadEglProc("glUniformMatrix3x2fv");
  192. fnptr_ci_glUniformMatrix2x4fv = (PFNGLUNIFORMMATRIX2X4FVPROC)loadEglProc("glUniformMatrix2x4fv");
  193. fnptr_ci_glUniformMatrix4x2fv = (PFNGLUNIFORMMATRIX4X2FVPROC)loadEglProc("glUniformMatrix4x2fv");
  194. fnptr_ci_glUniformMatrix3x4fv = (PFNGLUNIFORMMATRIX3X4FVPROC)loadEglProc("glUniformMatrix3x4fv");
  195. fnptr_ci_glUniformMatrix4x3fv = (PFNGLUNIFORMMATRIX4X3FVPROC)loadEglProc("glUniformMatrix4x3fv");
  196. fnptr_ci_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)loadEglProc("glBlitFramebuffer");
  197. fnptr_ci_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)loadEglProc("glRenderbufferStorageMultisample");
  198. fnptr_ci_glFramebufferTextureLayer = (PFNGLFRAMEBUFFERTEXTURELAYERPROC)loadEglProc("glFramebufferTextureLayer");
  199. fnptr_ci_glMapBufferRange = (PFNGLMAPBUFFERRANGEPROC)loadEglProc("glMapBufferRange");
  200. fnptr_ci_glFlushMappedBufferRange = (PFNGLFLUSHMAPPEDBUFFERRANGEPROC)loadEglProc("glFlushMappedBufferRange");
  201. fnptr_ci_glBindVertexArray = (PFNGLBINDVERTEXARRAYPROC)loadEglProc("glBindVertexArray");
  202. fnptr_ci_glDeleteVertexArrays = (PFNGLDELETEVERTEXARRAYSPROC)loadEglProc("glDeleteVertexArrays");
  203. fnptr_ci_glGenVertexArrays = (PFNGLGENVERTEXARRAYSPROC)loadEglProc("glGenVertexArrays");
  204. fnptr_ci_glIsVertexArray = (PFNGLISVERTEXARRAYPROC)loadEglProc("glIsVertexArray");
  205. fnptr_ci_glGetIntegeri_v = (PFNGLGETINTEGERI_VPROC)loadEglProc("glGetIntegeri_v");
  206. fnptr_ci_glBeginTransformFeedback = (PFNGLBEGINTRANSFORMFEEDBACKPROC)loadEglProc("glBeginTransformFeedback");
  207. fnptr_ci_glEndTransformFeedback = (PFNGLENDTRANSFORMFEEDBACKPROC)loadEglProc("glEndTransformFeedback");
  208. fnptr_ci_glBindBufferRange = (PFNGLBINDBUFFERRANGEPROC)loadEglProc("glBindBufferRange");
  209. fnptr_ci_glBindBufferBase = (PFNGLBINDBUFFERBASEPROC)loadEglProc("glBindBufferBase");
  210. fnptr_ci_glTransformFeedbackVaryings = (PFNGLTRANSFORMFEEDBACKVARYINGSPROC)loadEglProc("glTransformFeedbackVaryings");
  211. fnptr_ci_glGetTransformFeedbackVarying = (PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)loadEglProc("glGetTransformFeedbackVarying");
  212. fnptr_ci_glVertexAttribIPointer = (PFNGLVERTEXATTRIBIPOINTERPROC)loadEglProc("glVertexAttribIPointer");
  213. fnptr_ci_glGetVertexAttribIiv = (PFNGLGETVERTEXATTRIBIIVPROC)loadEglProc("glGetVertexAttribIiv");
  214. fnptr_ci_glGetVertexAttribIuiv = (PFNGLGETVERTEXATTRIBIUIVPROC)loadEglProc("glGetVertexAttribIuiv");
  215. fnptr_ci_glVertexAttribI4i = (PFNGLVERTEXATTRIBI4IPROC)loadEglProc("glVertexAttribI4i");
  216. fnptr_ci_glVertexAttribI4ui = (PFNGLVERTEXATTRIBI4UIPROC)loadEglProc("glVertexAttribI4ui");
  217. fnptr_ci_glVertexAttribI4iv = (PFNGLVERTEXATTRIBI4IVPROC)loadEglProc("glVertexAttribI4iv");
  218. fnptr_ci_glVertexAttribI4uiv = (PFNGLVERTEXATTRIBI4UIVPROC)loadEglProc("glVertexAttribI4uiv");
  219. fnptr_ci_glGetUniformuiv = (PFNGLGETUNIFORMUIVPROC)loadEglProc("glGetUniformuiv");
  220. fnptr_ci_glGetFragDataLocation = (PFNGLGETFRAGDATALOCATIONPROC)loadEglProc("glGetFragDataLocation");
  221. fnptr_ci_glUniform1ui = (PFNGLUNIFORM1UIPROC)loadEglProc("glUniform1ui");
  222. fnptr_ci_glUniform2ui = (PFNGLUNIFORM2UIPROC)loadEglProc("glUniform2ui");
  223. fnptr_ci_glUniform3ui = (PFNGLUNIFORM3UIPROC)loadEglProc("glUniform3ui");
  224. fnptr_ci_glUniform4ui = (PFNGLUNIFORM4UIPROC)loadEglProc("glUniform4ui");
  225. fnptr_ci_glUniform1uiv = (PFNGLUNIFORM1UIVPROC)loadEglProc("glUniform1uiv");
  226. fnptr_ci_glUniform2uiv = (PFNGLUNIFORM2UIVPROC)loadEglProc("glUniform2uiv");
  227. fnptr_ci_glUniform3uiv = (PFNGLUNIFORM3UIVPROC)loadEglProc("glUniform3uiv");
  228. fnptr_ci_glUniform4uiv = (PFNGLUNIFORM4UIVPROC)loadEglProc("glUniform4uiv");
  229. fnptr_ci_glClearBufferiv = (PFNGLCLEARBUFFERIVPROC)loadEglProc("glClearBufferiv");
  230. fnptr_ci_glClearBufferuiv = (PFNGLCLEARBUFFERUIVPROC)loadEglProc("glClearBufferuiv");
  231. fnptr_ci_glClearBufferfv = (PFNGLCLEARBUFFERFVPROC)loadEglProc("glClearBufferfv");
  232. fnptr_ci_glClearBufferfi = (PFNGLCLEARBUFFERFIPROC)loadEglProc("glClearBufferfi");
  233. fnptr_ci_glGetStringi = (PFNGLGETSTRINGIPROC)loadEglProc("glGetStringi");
  234. fnptr_ci_glCopyBufferSubData = (PFNGLCOPYBUFFERSUBDATAPROC)loadEglProc("glCopyBufferSubData");
  235. fnptr_ci_glGetUniformIndices = (PFNGLGETUNIFORMINDICESPROC)loadEglProc("glGetUniformIndices");
  236. fnptr_ci_glGetActiveUniformsiv = (PFNGLGETACTIVEUNIFORMSIVPROC)loadEglProc("glGetActiveUniformsiv");
  237. fnptr_ci_glGetUniformBlockIndex = (PFNGLGETUNIFORMBLOCKINDEXPROC)loadEglProc("glGetUniformBlockIndex");
  238. fnptr_ci_glGetActiveUniformBlockiv = (PFNGLGETACTIVEUNIFORMBLOCKIVPROC)loadEglProc("glGetActiveUniformBlockiv");
  239. fnptr_ci_glGetActiveUniformBlockName = (PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)loadEglProc("glGetActiveUniformBlockName");
  240. fnptr_ci_glUniformBlockBinding = (PFNGLUNIFORMBLOCKBINDINGPROC)loadEglProc("glUniformBlockBinding");
  241. fnptr_ci_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)loadEglProc("glDrawArraysInstanced");
  242. fnptr_ci_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)loadEglProc("glDrawElementsInstanced");
  243. fnptr_ci_glFenceSync = (PFNGLFENCESYNCPROC)loadEglProc("glFenceSync");
  244. fnptr_ci_glIsSync = (PFNGLISSYNCPROC)loadEglProc("glIsSync");
  245. fnptr_ci_glDeleteSync = (PFNGLDELETESYNCPROC)loadEglProc("glDeleteSync");
  246. fnptr_ci_glClientWaitSync = (PFNGLCLIENTWAITSYNCPROC)loadEglProc("glClientWaitSync");
  247. fnptr_ci_glWaitSync = (PFNGLWAITSYNCPROC)loadEglProc("glWaitSync");
  248. fnptr_ci_glGetInteger64v = (PFNGLGETINTEGER64VPROC)loadEglProc("glGetInteger64v");
  249. fnptr_ci_glGetSynciv = (PFNGLGETSYNCIVPROC)loadEglProc("glGetSynciv");
  250. fnptr_ci_glGetInteger64i_v = (PFNGLGETINTEGER64I_VPROC)loadEglProc("glGetInteger64i_v");
  251. fnptr_ci_glGetBufferParameteri64v = (PFNGLGETBUFFERPARAMETERI64VPROC)loadEglProc("glGetBufferParameteri64v");
  252. fnptr_ci_glGenSamplers = (PFNGLGENSAMPLERSPROC)loadEglProc("glGenSamplers");
  253. fnptr_ci_glDeleteSamplers = (PFNGLDELETESAMPLERSPROC)loadEglProc("glDeleteSamplers");
  254. fnptr_ci_glIsSampler = (PFNGLISSAMPLERPROC)loadEglProc("glIsSampler");
  255. fnptr_ci_glBindSampler = (PFNGLBINDSAMPLERPROC)loadEglProc("glBindSampler");
  256. fnptr_ci_glSamplerParameteri = (PFNGLSAMPLERPARAMETERIPROC)loadEglProc("glSamplerParameteri");
  257. fnptr_ci_glSamplerParameteriv = (PFNGLSAMPLERPARAMETERIVPROC)loadEglProc("glSamplerParameteriv");
  258. fnptr_ci_glSamplerParameterf = (PFNGLSAMPLERPARAMETERFPROC)loadEglProc("glSamplerParameterf");
  259. fnptr_ci_glSamplerParameterfv = (PFNGLSAMPLERPARAMETERFVPROC)loadEglProc("glSamplerParameterfv");
  260. fnptr_ci_glGetSamplerParameteriv = (PFNGLGETSAMPLERPARAMETERIVPROC)loadEglProc("glGetSamplerParameteriv");
  261. fnptr_ci_glGetSamplerParameterfv = (PFNGLGETSAMPLERPARAMETERFVPROC)loadEglProc("glGetSamplerParameterfv");
  262. fnptr_ci_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)loadEglProc("glVertexAttribDivisor");
  263. fnptr_ci_glBindTransformFeedback = (PFNGLBINDTRANSFORMFEEDBACKPROC)loadEglProc("glBindTransformFeedback");
  264. fnptr_ci_glDeleteTransformFeedbacks = (PFNGLDELETETRANSFORMFEEDBACKSPROC)loadEglProc("glDeleteTransformFeedbacks");
  265. fnptr_ci_glGenTransformFeedbacks = (PFNGLGENTRANSFORMFEEDBACKSPROC)loadEglProc("glGenTransformFeedbacks");
  266. fnptr_ci_glIsTransformFeedback = (PFNGLISTRANSFORMFEEDBACKPROC)loadEglProc("glIsTransformFeedback");
  267. fnptr_ci_glPauseTransformFeedback = (PFNGLPAUSETRANSFORMFEEDBACKPROC)loadEglProc("glPauseTransformFeedback");
  268. fnptr_ci_glResumeTransformFeedback = (PFNGLRESUMETRANSFORMFEEDBACKPROC)loadEglProc("glResumeTransformFeedback");
  269. fnptr_ci_glGetProgramBinary = (PFNGLGETPROGRAMBINARYPROC)loadEglProc("glGetProgramBinary");
  270. fnptr_ci_glProgramBinary = (PFNGLPROGRAMBINARYPROC)loadEglProc("glProgramBinary");
  271. fnptr_ci_glProgramParameteri = (PFNGLPROGRAMPARAMETERIPROC)loadEglProc("glProgramParameteri");
  272. fnptr_ci_glInvalidateFramebuffer = (PFNGLINVALIDATEFRAMEBUFFERPROC)loadEglProc("glInvalidateFramebuffer");
  273. fnptr_ci_glInvalidateSubFramebuffer = (PFNGLINVALIDATESUBFRAMEBUFFERPROC)loadEglProc("glInvalidateSubFramebuffer");
  274. fnptr_ci_glTexStorage2D = (PFNGLTEXSTORAGE2DPROC)loadEglProc("glTexStorage2D");
  275. fnptr_ci_glTexStorage3D = (PFNGLTEXSTORAGE3DPROC)loadEglProc("glTexStorage3D");
  276. fnptr_ci_glGetInternalformativ = (PFNGLGETINTERNALFORMATIVPROC)loadEglProc("glGetInternalformativ");
  277. DEBUG( "gl_es_3_0_load: SUCCESSFUL! | " << getLoadCount() << " procs loaded");
  278. }
  279. #endif // defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3 )
  280. // ----------------------------------------------------------------------------
  281. // OpenGL ES 3.1
  282. // ----------------------------------------------------------------------------
  283. #if defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3_1 )
  284. PFNGLDISPATCHCOMPUTEPROC fnptr_ci_glDispatchCompute = nullptr;
  285. PFNGLDISPATCHCOMPUTEINDIRECTPROC fnptr_ci_glDispatchComputeIndirect = nullptr;
  286. PFNGLDRAWARRAYSINDIRECTPROC fnptr_ci_glDrawArraysIndirect = nullptr;
  287. PFNGLDRAWELEMENTSINDIRECTPROC fnptr_ci_glDrawElementsIndirect = nullptr;
  288. PFNGLFRAMEBUFFERPARAMETERIPROC fnptr_ci_glFramebufferParameteri = nullptr;
  289. PFNGLGETFRAMEBUFFERPARAMETERIVPROC fnptr_ci_glGetFramebufferParameteriv = nullptr;
  290. PFNGLGETPROGRAMINTERFACEIVPROC fnptr_ci_glGetProgramInterfaceiv = nullptr;
  291. PFNGLGETPROGRAMRESOURCEINDEXPROC fnptr_ci_glGetProgramResourceIndex = nullptr;
  292. PFNGLGETPROGRAMRESOURCENAMEPROC fnptr_ci_glGetProgramResourceName = nullptr;
  293. PFNGLGETPROGRAMRESOURCEIVPROC fnptr_ci_glGetProgramResourceiv = nullptr;
  294. PFNGLGETPROGRAMRESOURCELOCATIONPROC fnptr_ci_glGetProgramResourceLocation = nullptr;
  295. PFNGLUSEPROGRAMSTAGESPROC fnptr_ci_glUseProgramStages = nullptr;
  296. PFNGLACTIVESHADERPROGRAMPROC fnptr_ci_glActiveShaderProgram = nullptr;
  297. PFNGLCREATESHADERPROGRAMVPROC fnptr_ci_glCreateShaderProgramv = nullptr;
  298. PFNGLBINDPROGRAMPIPELINEPROC fnptr_ci_glBindProgramPipeline = nullptr;
  299. PFNGLDELETEPROGRAMPIPELINESPROC fnptr_ci_glDeleteProgramPipelines = nullptr;
  300. PFNGLGENPROGRAMPIPELINESPROC fnptr_ci_glGenProgramPipelines = nullptr;
  301. PFNGLISPROGRAMPIPELINEPROC fnptr_ci_glIsProgramPipeline = nullptr;
  302. PFNGLGETPROGRAMPIPELINEIVPROC fnptr_ci_glGetProgramPipelineiv = nullptr;
  303. PFNGLPROGRAMUNIFORM1IPROC fnptr_ci_glProgramUniform1i = nullptr;
  304. PFNGLPROGRAMUNIFORM2IPROC fnptr_ci_glProgramUniform2i = nullptr;
  305. PFNGLPROGRAMUNIFORM3IPROC fnptr_ci_glProgramUniform3i = nullptr;
  306. PFNGLPROGRAMUNIFORM4IPROC fnptr_ci_glProgramUniform4i = nullptr;
  307. PFNGLPROGRAMUNIFORM1UIPROC fnptr_ci_glProgramUniform1ui = nullptr;
  308. PFNGLPROGRAMUNIFORM2UIPROC fnptr_ci_glProgramUniform2ui = nullptr;
  309. PFNGLPROGRAMUNIFORM3UIPROC fnptr_ci_glProgramUniform3ui = nullptr;
  310. PFNGLPROGRAMUNIFORM4UIPROC fnptr_ci_glProgramUniform4ui = nullptr;
  311. PFNGLPROGRAMUNIFORM1FPROC fnptr_ci_glProgramUniform1f = nullptr;
  312. PFNGLPROGRAMUNIFORM2FPROC fnptr_ci_glProgramUniform2f = nullptr;
  313. PFNGLPROGRAMUNIFORM3FPROC fnptr_ci_glProgramUniform3f = nullptr;
  314. PFNGLPROGRAMUNIFORM4FPROC fnptr_ci_glProgramUniform4f = nullptr;
  315. PFNGLPROGRAMUNIFORM1IVPROC fnptr_ci_glProgramUniform1iv = nullptr;
  316. PFNGLPROGRAMUNIFORM2IVPROC fnptr_ci_glProgramUniform2iv = nullptr;
  317. PFNGLPROGRAMUNIFORM3IVPROC fnptr_ci_glProgramUniform3iv = nullptr;
  318. PFNGLPROGRAMUNIFORM4IVPROC fnptr_ci_glProgramUniform4iv = nullptr;
  319. PFNGLPROGRAMUNIFORM1UIVPROC fnptr_ci_glProgramUniform1uiv = nullptr;
  320. PFNGLPROGRAMUNIFORM2UIVPROC fnptr_ci_glProgramUniform2uiv = nullptr;
  321. PFNGLPROGRAMUNIFORM3UIVPROC fnptr_ci_glProgramUniform3uiv = nullptr;
  322. PFNGLPROGRAMUNIFORM4UIVPROC fnptr_ci_glProgramUniform4uiv = nullptr;
  323. PFNGLPROGRAMUNIFORM1FVPROC fnptr_ci_glProgramUniform1fv = nullptr;
  324. PFNGLPROGRAMUNIFORM2FVPROC fnptr_ci_glProgramUniform2fv = nullptr;
  325. PFNGLPROGRAMUNIFORM3FVPROC fnptr_ci_glProgramUniform3fv = nullptr;
  326. PFNGLPROGRAMUNIFORM4FVPROC fnptr_ci_glProgramUniform4fv = nullptr;
  327. PFNGLPROGRAMUNIFORMMATRIX2FVPROC fnptr_ci_glProgramUniformMatrix2fv = nullptr;
  328. PFNGLPROGRAMUNIFORMMATRIX3FVPROC fnptr_ci_glProgramUniformMatrix3fv = nullptr;
  329. PFNGLPROGRAMUNIFORMMATRIX4FVPROC fnptr_ci_glProgramUniformMatrix4fv = nullptr;
  330. PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC fnptr_ci_glProgramUniformMatrix2x3fv = nullptr;
  331. PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC fnptr_ci_glProgramUniformMatrix3x2fv = nullptr;
  332. PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC fnptr_ci_glProgramUniformMatrix2x4fv = nullptr;
  333. PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC fnptr_ci_glProgramUniformMatrix4x2fv = nullptr;
  334. PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC fnptr_ci_glProgramUniformMatrix3x4fv = nullptr;
  335. PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC fnptr_ci_glProgramUniformMatrix4x3fv = nullptr;
  336. PFNGLVALIDATEPROGRAMPIPELINEPROC fnptr_ci_glValidateProgramPipeline = nullptr;
  337. PFNGLGETPROGRAMPIPELINEINFOLOGPROC fnptr_ci_glGetProgramPipelineInfoLog = nullptr;
  338. PFNGLBINDIMAGETEXTUREPROC fnptr_ci_glBindImageTexture = nullptr;
  339. PFNGLGETBOOLEANI_VPROC fnptr_ci_glGetBooleani_v = nullptr;
  340. PFNGLMEMORYBARRIERPROC fnptr_ci_glMemoryBarrier = nullptr;
  341. PFNGLMEMORYBARRIERBYREGIONPROC fnptr_ci_glMemoryBarrierByRegion = nullptr;
  342. PFNGLTEXSTORAGE2DMULTISAMPLEPROC fnptr_ci_glTexStorage2DMultisample = nullptr;
  343. PFNGLGETMULTISAMPLEFVPROC fnptr_ci_glGetMultisamplefv = nullptr;
  344. PFNGLSAMPLEMASKIPROC fnptr_ci_glSampleMaski = nullptr;
  345. PFNGLGETTEXLEVELPARAMETERIVPROC fnptr_ci_glGetTexLevelParameteriv = nullptr;
  346. PFNGLGETTEXLEVELPARAMETERFVPROC fnptr_ci_glGetTexLevelParameterfv = nullptr;
  347. PFNGLBINDVERTEXBUFFERPROC fnptr_ci_glBindVertexBuffer = nullptr;
  348. PFNGLVERTEXATTRIBFORMATPROC fnptr_ci_glVertexAttribFormat = nullptr;
  349. PFNGLVERTEXATTRIBIFORMATPROC fnptr_ci_glVertexAttribIFormat = nullptr;
  350. PFNGLVERTEXATTRIBBINDINGPROC fnptr_ci_glVertexAttribBinding = nullptr;
  351. PFNGLVERTEXBINDINGDIVISORPROC fnptr_ci_glVertexBindingDivisor = nullptr;
  352. void gl_es_3_1_load()
  353. {
  354. //DEBUG( "gl_es_3_1_load entered..." );
  355. clearLoadCount();
  356. fnptr_ci_glDispatchCompute = (PFNGLDISPATCHCOMPUTEPROC)loadEglProc("glDispatchCompute");
  357. fnptr_ci_glDispatchComputeIndirect = (PFNGLDISPATCHCOMPUTEINDIRECTPROC)loadEglProc("glDispatchComputeIndirect");
  358. fnptr_ci_glDrawArraysIndirect = (PFNGLDRAWARRAYSINDIRECTPROC)loadEglProc("glDrawArraysIndirect");
  359. fnptr_ci_glDrawElementsIndirect = (PFNGLDRAWELEMENTSINDIRECTPROC)loadEglProc("glDrawElementsIndirect");
  360. fnptr_ci_glFramebufferParameteri = (PFNGLFRAMEBUFFERPARAMETERIPROC)loadEglProc("glFramebufferParameteri");
  361. fnptr_ci_glGetFramebufferParameteriv = (PFNGLGETFRAMEBUFFERPARAMETERIVPROC)loadEglProc("glGetFramebufferParameteriv");
  362. fnptr_ci_glGetProgramInterfaceiv = (PFNGLGETPROGRAMINTERFACEIVPROC)loadEglProc("glGetProgramInterfaceiv");
  363. fnptr_ci_glGetProgramResourceIndex = (PFNGLGETPROGRAMRESOURCEINDEXPROC)loadEglProc("glGetProgramResourceIndex");
  364. fnptr_ci_glGetProgramResourceName = (PFNGLGETPROGRAMRESOURCENAMEPROC)loadEglProc("glGetProgramResourceName");
  365. fnptr_ci_glGetProgramResourceiv = (PFNGLGETPROGRAMRESOURCEIVPROC)loadEglProc("glGetProgramResourceiv");
  366. fnptr_ci_glGetProgramResourceLocation = (PFNGLGETPROGRAMRESOURCELOCATIONPROC)loadEglProc("glGetProgramResourceLocation");
  367. fnptr_ci_glUseProgramStages = (PFNGLUSEPROGRAMSTAGESPROC)loadEglProc("glUseProgramStages");
  368. fnptr_ci_glActiveShaderProgram = (PFNGLACTIVESHADERPROGRAMPROC)loadEglProc("glActiveShaderProgram");
  369. fnptr_ci_glCreateShaderProgramv = (PFNGLCREATESHADERPROGRAMVPROC)loadEglProc("glCreateShaderProgramv");
  370. fnptr_ci_glBindProgramPipeline = (PFNGLBINDPROGRAMPIPELINEPROC)loadEglProc("glBindProgramPipeline");
  371. fnptr_ci_glDeleteProgramPipelines = (PFNGLDELETEPROGRAMPIPELINESPROC)loadEglProc("glDeleteProgramPipelines");
  372. fnptr_ci_glGenProgramPipelines = (PFNGLGENPROGRAMPIPELINESPROC)loadEglProc("glGenProgramPipelines");
  373. fnptr_ci_glIsProgramPipeline = (PFNGLISPROGRAMPIPELINEPROC)loadEglProc("glIsProgramPipeline");
  374. fnptr_ci_glGetProgramPipelineiv = (PFNGLGETPROGRAMPIPELINEIVPROC)loadEglProc("glGetProgramPipelineiv");
  375. fnptr_ci_glProgramUniform1i = (PFNGLPROGRAMUNIFORM1IPROC)loadEglProc("glProgramUniform1i");
  376. fnptr_ci_glProgramUniform2i = (PFNGLPROGRAMUNIFORM2IPROC)loadEglProc("glProgramUniform2i");
  377. fnptr_ci_glProgramUniform3i = (PFNGLPROGRAMUNIFORM3IPROC)loadEglProc("glProgramUniform3i");
  378. fnptr_ci_glProgramUniform4i = (PFNGLPROGRAMUNIFORM4IPROC)loadEglProc("glProgramUniform4i");
  379. fnptr_ci_glProgramUniform1ui = (PFNGLPROGRAMUNIFORM1UIPROC)loadEglProc("glProgramUniform1ui");
  380. fnptr_ci_glProgramUniform2ui = (PFNGLPROGRAMUNIFORM2UIPROC)loadEglProc("glProgramUniform2ui");
  381. fnptr_ci_glProgramUniform3ui = (PFNGLPROGRAMUNIFORM3UIPROC)loadEglProc("glProgramUniform3ui");
  382. fnptr_ci_glProgramUniform4ui = (PFNGLPROGRAMUNIFORM4UIPROC)loadEglProc("glProgramUniform4ui");
  383. fnptr_ci_glProgramUniform1f = (PFNGLPROGRAMUNIFORM1FPROC)loadEglProc("glProgramUniform1f");
  384. fnptr_ci_glProgramUniform2f = (PFNGLPROGRAMUNIFORM2FPROC)loadEglProc("glProgramUniform2f");
  385. fnptr_ci_glProgramUniform3f = (PFNGLPROGRAMUNIFORM3FPROC)loadEglProc("glProgramUniform3f");
  386. fnptr_ci_glProgramUniform4f = (PFNGLPROGRAMUNIFORM4FPROC)loadEglProc("glProgramUniform4f");
  387. fnptr_ci_glProgramUniform1iv = (PFNGLPROGRAMUNIFORM1IVPROC)loadEglProc("glProgramUniform1iv");
  388. fnptr_ci_glProgramUniform2iv = (PFNGLPROGRAMUNIFORM2IVPROC)loadEglProc("glProgramUniform2iv");
  389. fnptr_ci_glProgramUniform3iv = (PFNGLPROGRAMUNIFORM3IVPROC)loadEglProc("glProgramUniform3iv");
  390. fnptr_ci_glProgramUniform4iv = (PFNGLPROGRAMUNIFORM4IVPROC)loadEglProc("glProgramUniform4iv");
  391. fnptr_ci_glProgramUniform1uiv = (PFNGLPROGRAMUNIFORM1UIVPROC)loadEglProc("glProgramUniform1uiv");
  392. fnptr_ci_glProgramUniform2uiv = (PFNGLPROGRAMUNIFORM2UIVPROC)loadEglProc("glProgramUniform2uiv");
  393. fnptr_ci_glProgramUniform3uiv = (PFNGLPROGRAMUNIFORM3UIVPROC)loadEglProc("glProgramUniform3uiv");
  394. fnptr_ci_glProgramUniform4uiv = (PFNGLPROGRAMUNIFORM4UIVPROC)loadEglProc("glProgramUniform4uiv");
  395. fnptr_ci_glProgramUniform1fv = (PFNGLPROGRAMUNIFORM1FVPROC)loadEglProc("glProgramUniform1fv");
  396. fnptr_ci_glProgramUniform2fv = (PFNGLPROGRAMUNIFORM2FVPROC)loadEglProc("glProgramUniform2fv");
  397. fnptr_ci_glProgramUniform3fv = (PFNGLPROGRAMUNIFORM3FVPROC)loadEglProc("glProgramUniform3fv");
  398. fnptr_ci_glProgramUniform4fv = (PFNGLPROGRAMUNIFORM4FVPROC)loadEglProc("glProgramUniform4fv");
  399. fnptr_ci_glProgramUniformMatrix2fv = (PFNGLPROGRAMUNIFORMMATRIX2FVPROC)loadEglProc("glProgramUniformMatrix2fv");
  400. fnptr_ci_glProgramUniformMatrix3fv = (PFNGLPROGRAMUNIFORMMATRIX3FVPROC)loadEglProc("glProgramUniformMatrix3fv");
  401. fnptr_ci_glProgramUniformMatrix4fv = (PFNGLPROGRAMUNIFORMMATRIX4FVPROC)loadEglProc("glProgramUniformMatrix4fv");
  402. fnptr_ci_glProgramUniformMatrix2x3fv = (PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)loadEglProc("glProgramUniformMatrix2x3fv");
  403. fnptr_ci_glProgramUniformMatrix3x2fv = (PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)loadEglProc("glProgramUniformMatrix3x2fv");
  404. fnptr_ci_glProgramUniformMatrix2x4fv = (PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)loadEglProc("glProgramUniformMatrix2x4fv");
  405. fnptr_ci_glProgramUniformMatrix4x2fv = (PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)loadEglProc("glProgramUniformMatrix4x2fv");
  406. fnptr_ci_glProgramUniformMatrix3x4fv = (PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)loadEglProc("glProgramUniformMatrix3x4fv");
  407. fnptr_ci_glProgramUniformMatrix4x3fv = (PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)loadEglProc("glProgramUniformMatrix4x3fv");
  408. fnptr_ci_glValidateProgramPipeline = (PFNGLVALIDATEPROGRAMPIPELINEPROC)loadEglProc("glValidateProgramPipeline");
  409. fnptr_ci_glGetProgramPipelineInfoLog = (PFNGLGETPROGRAMPIPELINEINFOLOGPROC)loadEglProc("glGetProgramPipelineInfoLog");
  410. fnptr_ci_glBindImageTexture = (PFNGLBINDIMAGETEXTUREPROC)loadEglProc("glBindImageTexture");
  411. fnptr_ci_glGetBooleani_v = (PFNGLGETBOOLEANI_VPROC)loadEglProc("glGetBooleani_v");
  412. fnptr_ci_glMemoryBarrier = (PFNGLMEMORYBARRIERPROC)loadEglProc("glMemoryBarrier");
  413. fnptr_ci_glMemoryBarrierByRegion = (PFNGLMEMORYBARRIERBYREGIONPROC)loadEglProc("glMemoryBarrierByRegion");
  414. fnptr_ci_glTexStorage2DMultisample = (PFNGLTEXSTORAGE2DMULTISAMPLEPROC)loadEglProc("glTexStorage2DMultisample");
  415. fnptr_ci_glGetMultisamplefv = (PFNGLGETMULTISAMPLEFVPROC)loadEglProc("glGetMultisamplefv");
  416. fnptr_ci_glSampleMaski = (PFNGLSAMPLEMASKIPROC)loadEglProc("glSampleMaski");
  417. fnptr_ci_glGetTexLevelParameteriv = (PFNGLGETTEXLEVELPARAMETERIVPROC)loadEglProc("glGetTexLevelParameteriv");
  418. fnptr_ci_glGetTexLevelParameterfv = (PFNGLGETTEXLEVELPARAMETERFVPROC)loadEglProc("glGetTexLevelParameterfv");
  419. fnptr_ci_glBindVertexBuffer = (PFNGLBINDVERTEXBUFFERPROC)loadEglProc("glBindVertexBuffer");
  420. fnptr_ci_glVertexAttribFormat = (PFNGLVERTEXATTRIBFORMATPROC)loadEglProc("glVertexAttribFormat");
  421. fnptr_ci_glVertexAttribIFormat = (PFNGLVERTEXATTRIBIFORMATPROC)loadEglProc("glVertexAttribIFormat");
  422. fnptr_ci_glVertexAttribBinding = (PFNGLVERTEXATTRIBBINDINGPROC)loadEglProc("glVertexAttribBinding");
  423. fnptr_ci_glVertexBindingDivisor = (PFNGLVERTEXBINDINGDIVISORPROC)loadEglProc("glVertexBindingDivisor");
  424. DEBUG( "gl_es_3_1_load: SUCCESSFUL! | " << getLoadCount() << " procs loaded");
  425. }
  426. #endif // defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3_1 )
  427. // ----------------------------------------------------------------------------
  428. // OpenGL ES 3.2
  429. // ----------------------------------------------------------------------------
  430. #if defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3_2 )
  431. PFNGLBLENDBARRIERPROC fnptr_ci_glBlendBarrier = nullptr;
  432. PFNGLCOPYIMAGESUBDATAPROC fnptr_ci_glCopyImageSubData = nullptr;
  433. PFNGLDEBUGMESSAGECONTROLPROC fnptr_ci_glDebugMessageControl = nullptr;
  434. PFNGLDEBUGMESSAGEINSERTPROC fnptr_ci_glDebugMessageInsert = nullptr;
  435. PFNGLDEBUGMESSAGECALLBACKPROC fnptr_ci_glDebugMessageCallback = nullptr;
  436. PFNGLGETDEBUGMESSAGELOGPROC fnptr_ci_glGetDebugMessageLog = nullptr;
  437. PFNGLPUSHDEBUGGROUPPROC fnptr_ci_glPushDebugGroup = nullptr;
  438. PFNGLPOPDEBUGGROUPPROC fnptr_ci_glPopDebugGroup = nullptr;
  439. PFNGLOBJECTLABELPROC fnptr_ci_glObjectLabel = nullptr;
  440. PFNGLGETOBJECTLABELPROC fnptr_ci_glGetObjectLabel = nullptr;
  441. PFNGLOBJECTPTRLABELPROC fnptr_ci_glObjectPtrLabel = nullptr;
  442. PFNGLGETOBJECTPTRLABELPROC fnptr_ci_glGetObjectPtrLabel = nullptr;
  443. PFNGLGETPOINTERVPROC fnptr_ci_glGetPointerv = nullptr;
  444. PFNGLENABLEIPROC fnptr_ci_glEnablei = nullptr;
  445. PFNGLDISABLEIPROC fnptr_ci_glDisablei = nullptr;
  446. PFNGLBLENDEQUATIONIPROC fnptr_ci_glBlendEquationi = nullptr;
  447. PFNGLBLENDEQUATIONSEPARATEIPROC fnptr_ci_glBlendEquationSeparatei = nullptr;
  448. PFNGLBLENDFUNCIPROC fnptr_ci_glBlendFunci = nullptr;
  449. PFNGLBLENDFUNCSEPARATEIPROC fnptr_ci_glBlendFuncSeparatei = nullptr;
  450. PFNGLCOLORMASKIPROC fnptr_ci_glColorMaski = nullptr;
  451. PFNGLISENABLEDIPROC fnptr_ci_glIsEnabledi = nullptr;
  452. PFNGLDRAWELEMENTSBASEVERTEXPROC fnptr_ci_glDrawElementsBaseVertex = nullptr;
  453. PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC fnptr_ci_glDrawRangeElementsBaseVertex = nullptr;
  454. PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC fnptr_ci_glDrawElementsInstancedBaseVertex = nullptr;
  455. PFNGLFRAMEBUFFERTEXTUREPROC fnptr_ci_glFramebufferTexture = nullptr;
  456. PFNGLPRIMITIVEBOUNDINGBOXPROC fnptr_ci_glPrimitiveBoundingBox = nullptr;
  457. PFNGLGETGRAPHICSRESETSTATUSPROC fnptr_ci_glGetGraphicsResetStatus = nullptr;
  458. PFNGLREADNPIXELSPROC fnptr_ci_glReadnPixels = nullptr;
  459. PFNGLGETNUNIFORMFVPROC fnptr_ci_glGetnUniformfv = nullptr;
  460. PFNGLGETNUNIFORMIVPROC fnptr_ci_glGetnUniformiv = nullptr;
  461. PFNGLGETNUNIFORMUIVPROC fnptr_ci_glGetnUniformuiv = nullptr;
  462. PFNGLMINSAMPLESHADINGPROC fnptr_ci_glMinSampleShading = nullptr;
  463. PFNGLPATCHPARAMETERIPROC fnptr_ci_glPatchParameteri = nullptr;
  464. PFNGLTEXPARAMETERIIVPROC fnptr_ci_glTexParameterIiv = nullptr;
  465. PFNGLTEXPARAMETERIUIVPROC fnptr_ci_glTexParameterIuiv = nullptr;
  466. PFNGLGETTEXPARAMETERIIVPROC fnptr_ci_glGetTexParameterIiv = nullptr;
  467. PFNGLGETTEXPARAMETERIUIVPROC fnptr_ci_glGetTexParameterIuiv = nullptr;
  468. PFNGLSAMPLERPARAMETERIIVPROC fnptr_ci_glSamplerParameterIiv = nullptr;
  469. PFNGLSAMPLERPARAMETERIUIVPROC fnptr_ci_glSamplerParameterIuiv = nullptr;
  470. PFNGLGETSAMPLERPARAMETERIIVPROC fnptr_ci_glGetSamplerParameterIiv = nullptr;
  471. PFNGLGETSAMPLERPARAMETERIUIVPROC fnptr_ci_glGetSamplerParameterIuiv = nullptr;
  472. PFNGLTEXBUFFERPROC fnptr_ci_glTexBuffer = nullptr;
  473. PFNGLTEXBUFFERRANGEPROC fnptr_ci_glTexBufferRange = nullptr;
  474. PFNGLTEXSTORAGE3DMULTISAMPLEPROC fnptr_ci_glTexStorage3DMultisample = nullptr;
  475. void gl_es_3_2_load()
  476. {
  477. //DEBUG( "gl_es_3_2_load entered..." );
  478. clearLoadCount();
  479. fnptr_ci_glBlendBarrier = (PFNGLBLENDBARRIERPROC)loadEglProc("glBlendBarrier");
  480. fnptr_ci_glCopyImageSubData = (PFNGLCOPYIMAGESUBDATAPROC)loadEglProc("glCopyImageSubData");
  481. fnptr_ci_glDebugMessageControl = (PFNGLDEBUGMESSAGECONTROLPROC)loadEglProc("glDebugMessageControl");
  482. fnptr_ci_glDebugMessageInsert = (PFNGLDEBUGMESSAGEINSERTPROC)loadEglProc("glDebugMessageInsert");
  483. fnptr_ci_glDebugMessageCallback = (PFNGLDEBUGMESSAGECALLBACKPROC)loadEglProc("glDebugMessageCallback");
  484. fnptr_ci_glGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGPROC)loadEglProc("glGetDebugMessageLog");
  485. fnptr_ci_glPushDebugGroup = (PFNGLPUSHDEBUGGROUPPROC)loadEglProc("glPushDebugGroup");
  486. fnptr_ci_glPopDebugGroup = (PFNGLPOPDEBUGGROUPPROC)loadEglProc("glPopDebugGroup");
  487. fnptr_ci_glObjectLabel = (PFNGLOBJECTLABELPROC)loadEglProc("glObjectLabel");
  488. fnptr_ci_glGetObjectLabel = (PFNGLGETOBJECTLABELPROC)loadEglProc("glGetObjectLabel");
  489. fnptr_ci_glObjectPtrLabel = (PFNGLOBJECTPTRLABELPROC)loadEglProc("glObjectPtrLabel");
  490. fnptr_ci_glGetObjectPtrLabel = (PFNGLGETOBJECTPTRLABELPROC)loadEglProc("glGetObjectPtrLabel");
  491. fnptr_ci_glGetPointerv = (PFNGLGETPOINTERVPROC)loadEglProc("glGetPointerv");
  492. fnptr_ci_glEnablei = (PFNGLENABLEIPROC)loadEglProc("glEnablei");
  493. fnptr_ci_glDisablei = (PFNGLDISABLEIPROC)loadEglProc("glDisablei");
  494. fnptr_ci_glBlendEquationi = (PFNGLBLENDEQUATIONIPROC)loadEglProc("glBlendEquationi");
  495. fnptr_ci_glBlendEquationSeparatei = (PFNGLBLENDEQUATIONSEPARATEIPROC)loadEglProc("glBlendEquationSeparatei");
  496. fnptr_ci_glBlendFunci = (PFNGLBLENDFUNCIPROC)loadEglProc("glBlendFunci");
  497. fnptr_ci_glBlendFuncSeparatei = (PFNGLBLENDFUNCSEPARATEIPROC)loadEglProc("glBlendFuncSeparatei");
  498. fnptr_ci_glColorMaski = (PFNGLCOLORMASKIPROC)loadEglProc("glColorMaski");
  499. fnptr_ci_glIsEnabledi = (PFNGLISENABLEDIPROC)loadEglProc("glIsEnabledi");
  500. fnptr_ci_glDrawElementsBaseVertex = (PFNGLDRAWELEMENTSBASEVERTEXPROC)loadEglProc("glDrawElementsBaseVertex");
  501. fnptr_ci_glDrawRangeElementsBaseVertex = (PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)loadEglProc("glDrawRangeElementsBaseVertex");
  502. fnptr_ci_glDrawElementsInstancedBaseVertex = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)loadEglProc("glDrawElementsInstancedBaseVertex");
  503. fnptr_ci_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)loadEglProc("glFramebufferTexture");
  504. fnptr_ci_glPrimitiveBoundingBox = (PFNGLPRIMITIVEBOUNDINGBOXPROC)loadEglProc("glPrimitiveBoundingBox");
  505. fnptr_ci_glGetGraphicsResetStatus = (PFNGLGETGRAPHICSRESETSTATUSPROC)loadEglProc("glGetGraphicsResetStatus");
  506. fnptr_ci_glReadnPixels = (PFNGLREADNPIXELSPROC)loadEglProc("glReadnPixels");
  507. fnptr_ci_glGetnUniformfv = (PFNGLGETNUNIFORMFVPROC)loadEglProc("glGetnUniformfv");
  508. fnptr_ci_glGetnUniformiv = (PFNGLGETNUNIFORMIVPROC)loadEglProc("glGetnUniformiv");
  509. fnptr_ci_glGetnUniformuiv = (PFNGLGETNUNIFORMUIVPROC)loadEglProc("glGetnUniformuiv");
  510. fnptr_ci_glMinSampleShading = (PFNGLMINSAMPLESHADINGPROC)loadEglProc("glMinSampleShading");
  511. fnptr_ci_glPatchParameteri = (PFNGLPATCHPARAMETERIPROC)loadEglProc("glPatchParameteri");
  512. fnptr_ci_glTexParameterIiv = (PFNGLTEXPARAMETERIIVPROC)loadEglProc("glTexParameterIiv");
  513. fnptr_ci_glTexParameterIuiv = (PFNGLTEXPARAMETERIUIVPROC)loadEglProc("glTexParameterIuiv");
  514. fnptr_ci_glGetTexParameterIiv = (PFNGLGETTEXPARAMETERIIVPROC)loadEglProc("glGetTexParameterIiv");
  515. fnptr_ci_glGetTexParameterIuiv = (PFNGLGETTEXPARAMETERIUIVPROC)loadEglProc("glGetTexParameterIuiv");
  516. fnptr_ci_glSamplerParameterIiv = (PFNGLSAMPLERPARAMETERIIVPROC)loadEglProc("glSamplerParameterIiv");
  517. fnptr_ci_glSamplerParameterIuiv = (PFNGLSAMPLERPARAMETERIUIVPROC)loadEglProc("glSamplerParameterIuiv");
  518. fnptr_ci_glGetSamplerParameterIiv = (PFNGLGETSAMPLERPARAMETERIIVPROC)loadEglProc("glGetSamplerParameterIiv");
  519. fnptr_ci_glGetSamplerParameterIuiv = (PFNGLGETSAMPLERPARAMETERIUIVPROC)loadEglProc("glGetSamplerParameterIuiv");
  520. fnptr_ci_glTexBuffer = (PFNGLTEXBUFFERPROC)loadEglProc("glTexBuffer");
  521. fnptr_ci_glTexBufferRange = (PFNGLTEXBUFFERRANGEPROC)loadEglProc("glTexBufferRange");
  522. fnptr_ci_glTexStorage3DMultisample = (PFNGLTEXSTORAGE3DMULTISAMPLEPROC)loadEglProc("glTexStorage3DMultisample");
  523. DEBUG( "gl_es_3_2_load: SUCCESSFUL! | " << getLoadCount() << " procs loaded");
  524. }
  525. #endif // defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3_2 )
  526. // ----------------------------------------------------------------------------
  527. // OpenGL ES 2.0 Extensions
  528. // ----------------------------------------------------------------------------
  529. #if ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_2 )
  530. #define extstr_GL_NV_read_buffer EXT_QUOTE_STR(GL_NV_read_buffer)
  531. #define extstr_GL_OES_vertex_array_object EXT_QUOTE_STR(GL_OES_vertex_array_object)
  532. #define extstr_GL_ARB_vertex_array_object EXT_QUOTE_STR(GL_ARB_vertex_array_object)
  533. PFNGLBLENDBARRIERKHRPROC fnptr_ci_glBlendBarrierKHR = nullptr;
  534. PFNGLDEBUGMESSAGECONTROLKHRPROC fnptr_ci_glDebugMessageControlKHR = nullptr;
  535. PFNGLDEBUGMESSAGEINSERTKHRPROC fnptr_ci_glDebugMessageInsertKHR = nullptr;
  536. PFNGLDEBUGMESSAGECALLBACKKHRPROC fnptr_ci_glDebugMessageCallbackKHR = nullptr;
  537. PFNGLGETDEBUGMESSAGELOGKHRPROC fnptr_ci_glGetDebugMessageLogKHR = nullptr;
  538. PFNGLPUSHDEBUGGROUPKHRPROC fnptr_ci_glPushDebugGroupKHR = nullptr;
  539. PFNGLPOPDEBUGGROUPKHRPROC fnptr_ci_glPopDebugGroupKHR = nullptr;
  540. PFNGLOBJECTLABELKHRPROC fnptr_ci_glObjectLabelKHR = nullptr;
  541. PFNGLGETOBJECTLABELKHRPROC fnptr_ci_glGetObjectLabelKHR = nullptr;
  542. PFNGLOBJECTPTRLABELKHRPROC fnptr_ci_glObjectPtrLabelKHR = nullptr;
  543. PFNGLGETOBJECTPTRLABELKHRPROC fnptr_ci_glGetObjectPtrLabelKHR = nullptr;
  544. PFNGLGETPOINTERVKHRPROC fnptr_ci_glGetPointervKHR = nullptr;
  545. PFNGLGETGRAPHICSRESETSTATUSKHRPROC fnptr_ci_glGetGraphicsResetStatusKHR = nullptr;
  546. PFNGLREADNPIXELSKHRPROC fnptr_ci_glReadnPixelsKHR = nullptr;
  547. PFNGLGETNUNIFORMFVKHRPROC fnptr_ci_glGetnUniformfvKHR = nullptr;
  548. PFNGLGETNUNIFORMIVKHRPROC fnptr_ci_glGetnUniformivKHR = nullptr;
  549. PFNGLGETNUNIFORMUIVKHRPROC fnptr_ci_glGetnUniformuivKHR = nullptr;
  550. PFNGLEGLIMAGETARGETTEXTURE2DOESPROC fnptr_ci_glEGLImageTargetTexture2DOES = nullptr;
  551. PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC fnptr_ci_glEGLImageTargetRenderbufferStorageOES = nullptr;
  552. PFNGLCOPYIMAGESUBDATAOESPROC fnptr_ci_glCopyImageSubDataOES = nullptr;
  553. PFNGLENABLEIOESPROC fnptr_ci_glEnableiOES = nullptr;
  554. PFNGLDISABLEIOESPROC fnptr_ci_glDisableiOES = nullptr;
  555. PFNGLBLENDEQUATIONIOESPROC fnptr_ci_glBlendEquationiOES = nullptr;
  556. PFNGLBLENDEQUATIONSEPARATEIOESPROC fnptr_ci_glBlendEquationSeparateiOES = nullptr;
  557. PFNGLBLENDFUNCIOESPROC fnptr_ci_glBlendFunciOES = nullptr;
  558. PFNGLBLENDFUNCSEPARATEIOESPROC fnptr_ci_glBlendFuncSeparateiOES = nullptr;
  559. PFNGLCOLORMASKIOESPROC fnptr_ci_glColorMaskiOES = nullptr;
  560. PFNGLISENABLEDIOESPROC fnptr_ci_glIsEnablediOES = nullptr;
  561. PFNGLDRAWELEMENTSBASEVERTEXOESPROC fnptr_ci_glDrawElementsBaseVertexOES = nullptr;
  562. PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC fnptr_ci_glDrawRangeElementsBaseVertexOES = nullptr;
  563. PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC fnptr_ci_glDrawElementsInstancedBaseVertexOES = nullptr;
  564. PFNGLMULTIDRAWELEMENTSBASEVERTEXOESPROC fnptr_ci_glMultiDrawElementsBaseVertexOES = nullptr;
  565. PFNGLFRAMEBUFFERTEXTUREOESPROC fnptr_ci_glFramebufferTextureOES = nullptr;
  566. PFNGLGETPROGRAMBINARYOESPROC fnptr_ci_glGetProgramBinaryOES = nullptr;
  567. PFNGLPROGRAMBINARYOESPROC fnptr_ci_glProgramBinaryOES = nullptr;
  568. PFNGLGETBUFFERPOINTERVOESPROC fnptr_ci_glGetBufferPointervOES = nullptr;
  569. PFNGLPRIMITIVEBOUNDINGBOXOESPROC fnptr_ci_glPrimitiveBoundingBoxOES = nullptr;
  570. PFNGLMINSAMPLESHADINGOESPROC fnptr_ci_glMinSampleShadingOES = nullptr;
  571. PFNGLTEXIMAGE3DOESPROC fnptr_ci_glTexImage3DOES = nullptr;
  572. PFNGLTEXSUBIMAGE3DOESPROC fnptr_ci_glTexSubImage3DOES = nullptr;
  573. PFNGLCOPYTEXSUBIMAGE3DOESPROC fnptr_ci_glCopyTexSubImage3DOES = nullptr;
  574. PFNGLCOMPRESSEDTEXIMAGE3DOESPROC fnptr_ci_glCompressedTexImage3DOES = nullptr;
  575. PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC fnptr_ci_glCompressedTexSubImage3DOES = nullptr;
  576. PFNGLFRAMEBUFFERTEXTURE3DOESPROC fnptr_ci_glFramebufferTexture3DOES = nullptr;
  577. PFNGLTEXPARAMETERIIVOESPROC fnptr_ci_glTexParameterIivOES = nullptr;
  578. PFNGLTEXPARAMETERIUIVOESPROC fnptr_ci_glTexParameterIuivOES = nullptr;
  579. PFNGLGETTEXPARAMETERIIVOESPROC fnptr_ci_glGetTexParameterIivOES = nullptr;
  580. PFNGLGETTEXPARAMETERIUIVOESPROC fnptr_ci_glGetTexParameterIuivOES = nullptr;
  581. PFNGLSAMPLERPARAMETERIIVOESPROC fnptr_ci_glSamplerParameterIivOES = nullptr;
  582. PFNGLSAMPLERPARAMETERIUIVOESPROC fnptr_ci_glSamplerParameterIuivOES = nullptr;
  583. PFNGLGETSAMPLERPARAMETERIIVOESPROC fnptr_ci_glGetSamplerParameterIivOES = nullptr;
  584. PFNGLGETSAMPLERPARAMETERIUIVOESPROC fnptr_ci_glGetSamplerParameterIuivOES = nullptr;
  585. PFNGLTEXBUFFEROESPROC fnptr_ci_glTexBufferOES = nullptr;
  586. PFNGLTEXBUFFERRANGEOESPROC fnptr_ci_glTexBufferRangeOES = nullptr;
  587. PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC fnptr_ci_glTexStorage3DMultisampleOES = nullptr;
  588. PFNGLTEXTUREVIEWOESPROC fnptr_ci_glTextureViewOES = nullptr;
  589. PFNGLGETPERFMONITORGROUPSAMDPROC fnptr_ci_glGetPerfMonitorGroupsAMD = nullptr;
  590. PFNGLGETPERFMONITORCOUNTERSAMDPROC fnptr_ci_glGetPerfMonitorCountersAMD = nullptr;
  591. PFNGLGETPERFMONITORGROUPSTRINGAMDPROC fnptr_ci_glGetPerfMonitorGroupStringAMD = nullptr;
  592. PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC fnptr_ci_glGetPerfMonitorCounterStringAMD = nullptr;
  593. PFNGLGETPERFMONITORCOUNTERINFOAMDPROC fnptr_ci_glGetPerfMonitorCounterInfoAMD = nullptr;
  594. PFNGLGENPERFMONITORSAMDPROC fnptr_ci_glGenPerfMonitorsAMD = nullptr;
  595. PFNGLDELETEPERFMONITORSAMDPROC fnptr_ci_glDeletePerfMonitorsAMD = nullptr;
  596. PFNGLSELECTPERFMONITORCOUNTERSAMDPROC fnptr_ci_glSelectPerfMonitorCountersAMD = nullptr;
  597. PFNGLBEGINPERFMONITORAMDPROC fnptr_ci_glBeginPerfMonitorAMD = nullptr;
  598. PFNGLENDPERFMONITORAMDPROC fnptr_ci_glEndPerfMonitorAMD = nullptr;
  599. PFNGLGETPERFMONITORCOUNTERDATAAMDPROC fnptr_ci_glGetPerfMonitorCounterDataAMD = nullptr;
  600. PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC fnptr_ci_glGetTranslatedShaderSourceANGLE = nullptr;
  601. PFNGLCOPYTEXTURELEVELSAPPLEPROC fnptr_ci_glCopyTextureLevelsAPPLE = nullptr;
  602. PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC fnptr_ci_glResolveMultisampleFramebufferAPPLE = nullptr;
  603. PFNGLFENCESYNCAPPLEPROC fnptr_ci_glFenceSyncAPPLE = nullptr;
  604. PFNGLISSYNCAPPLEPROC fnptr_ci_glIsSyncAPPLE = nullptr;
  605. PFNGLDELETESYNCAPPLEPROC fnptr_ci_glDeleteSyncAPPLE = nullptr;
  606. PFNGLCLIENTWAITSYNCAPPLEPROC fnptr_ci_glClientWaitSyncAPPLE = nullptr;
  607. PFNGLWAITSYNCAPPLEPROC fnptr_ci_glWaitSyncAPPLE = nullptr;
  608. PFNGLGETINTEGER64VAPPLEPROC fnptr_ci_glGetInteger64vAPPLE = nullptr;
  609. PFNGLGETSYNCIVAPPLEPROC fnptr_ci_glGetSyncivAPPLE = nullptr;
  610. PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC fnptr_ci_glDrawArraysInstancedBaseInstanceEXT = nullptr;
  611. PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC fnptr_ci_glDrawElementsInstancedBaseInstanceEXT = nullptr;
  612. PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC fnptr_ci_glDrawElementsInstancedBaseVertexBaseInstanceEXT = nullptr;
  613. PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC fnptr_ci_glBindFragDataLocationIndexedEXT = nullptr;
  614. PFNGLBINDFRAGDATALOCATIONEXTPROC fnptr_ci_glBindFragDataLocationEXT = nullptr;
  615. PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC fnptr_ci_glGetProgramResourceLocationIndexEXT = nullptr;
  616. PFNGLGETFRAGDATAINDEXEXTPROC fnptr_ci_glGetFragDataIndexEXT = nullptr;
  617. PFNGLCOPYIMAGESUBDATAEXTPROC fnptr_ci_glCopyImageSubDataEXT = nullptr;
  618. PFNGLLABELOBJECTEXTPROC fnptr_ci_glLabelObjectEXT = nullptr;
  619. PFNGLGETOBJECTLABELEXTPROC fnptr_ci_glGetObjectLabelEXT = nullptr;
  620. PFNGLINSERTEVENTMARKEREXTPROC fnptr_ci_glInsertEventMarkerEXT = nullptr;
  621. PFNGLPUSHGROUPMARKEREXTPROC fnptr_ci_glPushGroupMarkerEXT = nullptr;
  622. PFNGLPOPGROUPMARKEREXTPROC fnptr_ci_glPopGroupMarkerEXT = nullptr;
  623. PFNGLDISCARDFRAMEBUFFEREXTPROC fnptr_ci_glDiscardFramebufferEXT = nullptr;
  624. PFNGLGENQUERIESEXTPROC fnptr_ci_glGenQueriesEXT = nullptr;
  625. PFNGLDELETEQUERIESEXTPROC fnptr_ci_glDeleteQueriesEXT = nullptr;
  626. PFNGLISQUERYEXTPROC fnptr_ci_glIsQueryEXT = nullptr;
  627. PFNGLBEGINQUERYEXTPROC fnptr_ci_glBeginQueryEXT = nullptr;
  628. PFNGLENDQUERYEXTPROC fnptr_ci_glEndQueryEXT = nullptr;
  629. PFNGLQUERYCOUNTEREXTPROC fnptr_ci_glQueryCounterEXT = nullptr;
  630. PFNGLGETQUERYIVEXTPROC fnptr_ci_glGetQueryivEXT = nullptr;
  631. PFNGLGETQUERYOBJECTIVEXTPROC fnptr_ci_glGetQueryObjectivEXT = nullptr;
  632. PFNGLGETQUERYOBJECTUIVEXTPROC fnptr_ci_glGetQueryObjectuivEXT = nullptr;
  633. PFNGLGETQUERYOBJECTI64VEXTPROC fnptr_ci_glGetQueryObjecti64vEXT = nullptr;
  634. PFNGLGETQUERYOBJECTUI64VEXTPROC fnptr_ci_glGetQueryObjectui64vEXT = nullptr;
  635. PFNGLDRAWBUFFERSEXTPROC fnptr_ci_glDrawBuffersEXT = nullptr;
  636. PFNGLENABLEIEXTPROC fnptr_ci_glEnableiEXT = nullptr;
  637. PFNGLDISABLEIEXTPROC fnptr_ci_glDisableiEXT = nullptr;
  638. PFNGLBLENDEQUATIONIEXTPROC fnptr_ci_glBlendEquationiEXT = nullptr;
  639. PFNGLBLENDEQUATIONSEPARATEIEXTPROC fnptr_ci_glBlendEquationSeparateiEXT = nullptr;
  640. PFNGLBLENDFUNCIEXTPROC fnptr_ci_glBlendFunciEXT = nullptr;
  641. PFNGLBLENDFUNCSEPARATEIEXTPROC fnptr_ci_glBlendFuncSeparateiEXT = nullptr;
  642. PFNGLCOLORMASKIEXTPROC fnptr_ci_glColorMaskiEXT = nullptr;
  643. PFNGLISENABLEDIEXTPROC fnptr_ci_glIsEnablediEXT = nullptr;
  644. PFNGLDRAWELEMENTSBASEVERTEXEXTPROC fnptr_ci_glDrawElementsBaseVertexEXT = nullptr;
  645. PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC fnptr_ci_glDrawRangeElementsBaseVertexEXT = nullptr;
  646. PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC fnptr_ci_glDrawElementsInstancedBaseVertexEXT = nullptr;
  647. PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC fnptr_ci_glMultiDrawElementsBaseVertexEXT = nullptr;
  648. PFNGLMULTIDRAWARRAYSEXTPROC fnptr_ci_glMultiDrawArraysEXT = nullptr;
  649. PFNGLMULTIDRAWELEMENTSEXTPROC fnptr_ci_glMultiDrawElementsEXT = nullptr;
  650. PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC fnptr_ci_glMultiDrawArraysIndirectEXT = nullptr;
  651. PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC fnptr_ci_glMultiDrawElementsIndirectEXT = nullptr;
  652. PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC fnptr_ci_glFramebufferTexture2DMultisampleEXT = nullptr;
  653. PFNGLREADBUFFERINDEXEDEXTPROC fnptr_ci_glReadBufferIndexedEXT = nullptr;
  654. PFNGLDRAWBUFFERSINDEXEDEXTPROC fnptr_ci_glDrawBuffersIndexedEXT = nullptr;
  655. PFNGLGETINTEGERI_VEXTPROC fnptr_ci_glGetIntegeri_vEXT = nullptr;
  656. PFNGLPRIMITIVEBOUNDINGBOXEXTPROC fnptr_ci_glPrimitiveBoundingBoxEXT = nullptr;
  657. PFNGLRASTERSAMPLESEXTPROC fnptr_ci_glRasterSamplesEXT = nullptr;
  658. PFNGLGETGRAPHICSRESETSTATUSEXTPROC fnptr_ci_glGetGraphicsResetStatusEXT = nullptr;
  659. PFNGLREADNPIXELSEXTPROC fnptr_ci_glReadnPixelsEXT = nullptr;
  660. PFNGLGETNUNIFORMFVEXTPROC fnptr_ci_glGetnUniformfvEXT = nullptr;
  661. PFNGLGETNUNIFORMIVEXTPROC fnptr_ci_glGetnUniformivEXT = nullptr;
  662. PFNGLACTIVESHADERPROGRAMEXTPROC fnptr_ci_glActiveShaderProgramEXT = nullptr;
  663. PFNGLBINDPROGRAMPIPELINEEXTPROC fnptr_ci_glBindProgramPipelineEXT = nullptr;
  664. PFNGLCREATESHADERPROGRAMVEXTPROC fnptr_ci_glCreateShaderProgramvEXT = nullptr;
  665. PFNGLDELETEPROGRAMPIPELINESEXTPROC fnptr_ci_glDeleteProgramPipelinesEXT = nullptr;
  666. PFNGLGENPROGRAMPIPELINESEXTPROC fnptr_ci_glGenProgramPipelinesEXT = nullptr;
  667. PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC fnptr_ci_glGetProgramPipelineInfoLogEXT = nullptr;
  668. PFNGLGETPROGRAMPIPELINEIVEXTPROC fnptr_ci_glGetProgramPipelineivEXT = nullptr;
  669. PFNGLISPROGRAMPIPELINEEXTPROC fnptr_ci_glIsProgramPipelineEXT = nullptr;
  670. PFNGLPROGRAMPARAMETERIEXTPROC fnptr_ci_glProgramParameteriEXT = nullptr;
  671. PFNGLPROGRAMUNIFORM1FEXTPROC fnptr_ci_glProgramUniform1fEXT = nullptr;
  672. PFNGLPROGRAMUNIFORM1FVEXTPROC fnptr_ci_glProgramUniform1fvEXT = nullptr;
  673. PFNGLPROGRAMUNIFORM1IEXTPROC fnptr_ci_glProgramUniform1iEXT = nullptr;
  674. PFNGLPROGRAMUNIFORM1IVEXTPROC fnptr_ci_glProgramUniform1ivEXT = nullptr;
  675. PFNGLPROGRAMUNIFORM2FEXTPROC fnptr_ci_glProgramUniform2fEXT = nullptr;
  676. PFNGLPROGRAMUNIFORM2FVEXTPROC fnptr_ci_glProgramUniform2fvEXT = nullptr;
  677. PFNGLPROGRAMUNIFORM2IEXTPROC fnptr_ci_glProgramUniform2iEXT = nullptr;
  678. PFNGLPROGRAMUNIFORM2IVEXTPROC fnptr_ci_glProgramUniform2ivEXT = nullptr;
  679. PFNGLPROGRAMUNIFORM3FEXTPROC fnptr_ci_glProgramUniform3fEXT = nullptr;
  680. PFNGLPROGRAMUNIFORM3FVEXTPROC fnptr_ci_glProgramUniform3fvEXT = nullptr;
  681. PFNGLPROGRAMUNIFORM3IEXTPROC fnptr_ci_glProgramUniform3iEXT = nullptr;
  682. PFNGLPROGRAMUNIFORM3IVEXTPROC fnptr_ci_glProgramUniform3ivEXT = nullptr;
  683. PFNGLPROGRAMUNIFORM4FEXTPROC fnptr_ci_glProgramUniform4fEXT = nullptr;
  684. PFNGLPROGRAMUNIFORM4FVEXTPROC fnptr_ci_glProgramUniform4fvEXT = nullptr;
  685. PFNGLPROGRAMUNIFORM4IEXTPROC fnptr_ci_glProgramUniform4iEXT = nullptr;
  686. PFNGLPROGRAMUNIFORM4IVEXTPROC fnptr_ci_glProgramUniform4ivEXT = nullptr;
  687. PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC fnptr_ci_glProgramUniformMatrix2fvEXT = nullptr;
  688. PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC fnptr_ci_glProgramUniformMatrix3fvEXT = nullptr;
  689. PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC fnptr_ci_glProgramUniformMatrix4fvEXT = nullptr;
  690. PFNGLUSEPROGRAMSTAGESEXTPROC fnptr_ci_glUseProgramStagesEXT = nullptr;
  691. PFNGLVALIDATEPROGRAMPIPELINEEXTPROC fnptr_ci_glValidateProgramPipelineEXT = nullptr;
  692. PFNGLPROGRAMUNIFORM1UIEXTPROC fnptr_ci_glProgramUniform1uiEXT = nullptr;
  693. PFNGLPROGRAMUNIFORM2UIEXTPROC fnptr_ci_glProgramUniform2uiEXT = nullptr;
  694. PFNGLPROGRAMUNIFORM3UIEXTPROC fnptr_ci_glProgramUniform3uiEXT = nullptr;
  695. PFNGLPROGRAMUNIFORM4UIEXTPROC fnptr_ci_glProgramUniform4uiEXT = nullptr;
  696. PFNGLPROGRAMUNIFORM1UIVEXTPROC fnptr_ci_glProgramUniform1uivEXT = nullptr;
  697. PFNGLPROGRAMUNIFORM2UIVEXTPROC fnptr_ci_glProgramUniform2uivEXT = nullptr;
  698. PFNGLPROGRAMUNIFORM3UIVEXTPROC fnptr_ci_glProgramUniform3uivEXT = nullptr;
  699. PFNGLPROGRAMUNIFORM4UIVEXTPROC fnptr_ci_glProgramUniform4uivEXT = nullptr;
  700. PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC fnptr_ci_glProgramUniformMatrix2x3fvEXT = nullptr;
  701. PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC fnptr_ci_glProgramUniformMatrix3x2fvEXT = nullptr;
  702. PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC fnptr_ci_glProgramUniformMatrix2x4fvEXT = nullptr;
  703. PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC fnptr_ci_glProgramUniformMatrix4x2fvEXT = nullptr;
  704. PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC fnptr_ci_glProgramUniformMatrix3x4fvEXT = nullptr;
  705. PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC fnptr_ci_glProgramUniformMatrix4x3fvEXT = nullptr;
  706. PFNGLTEXPAGECOMMITMENTEXTPROC fnptr_ci_glTexPageCommitmentEXT = nullptr;
  707. PFNGLTEXPARAMETERIIVEXTPROC fnptr_ci_glTexParameterIivEXT = nullptr;
  708. PFNGLTEXPARAMETERIUIVEXTPROC fnptr_ci_glTexParameterIuivEXT = nullptr;
  709. PFNGLGETTEXPARAMETERIIVEXTPROC fnptr_ci_glGetTexParameterIivEXT = nullptr;
  710. PFNGLGETTEXPARAMETERIUIVEXTPROC fnptr_ci_glGetTexParameterIuivEXT = nullptr;
  711. PFNGLSAMPLERPARAMETERIIVEXTPROC fnptr_ci_glSamplerParameterIivEXT = nullptr;
  712. PFNGLSAMPLERPARAMETERIUIVEXTPROC fnptr_ci_glSamplerParameterIuivEXT = nullptr;
  713. PFNGLGETSAMPLERPARAMETERIIVEXTPROC fnptr_ci_glGetSamplerParameterIivEXT = nullptr;
  714. PFNGLGETSAMPLERPARAMETERIUIVEXTPROC fnptr_ci_glGetSamplerParameterIuivEXT = nullptr;
  715. PFNGLTEXBUFFEREXTPROC fnptr_ci_glTexBufferEXT = nullptr;
  716. PFNGLTEXBUFFERRANGEEXTPROC fnptr_ci_glTexBufferRangeEXT = nullptr;
  717. PFNGLTEXSTORAGE1DEXTPROC fnptr_ci_glTexStorage1DEXT = nullptr;
  718. PFNGLTEXSTORAGE2DEXTPROC fnptr_ci_glTexStorage2DEXT = nullptr;
  719. PFNGLTEXSTORAGE3DEXTPROC fnptr_ci_glTexStorage3DEXT = nullptr;
  720. PFNGLTEXTURESTORAGE1DEXTPROC fnptr_ci_glTextureStorage1DEXT = nullptr;
  721. PFNGLTEXTURESTORAGE2DEXTPROC fnptr_ci_glTextureStorage2DEXT = nullptr;
  722. PFNGLTEXTURESTORAGE3DEXTPROC fnptr_ci_glTextureStorage3DEXT = nullptr;
  723. PFNGLTEXTUREVIEWEXTPROC fnptr_ci_glTextureViewEXT = nullptr;
  724. PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC fnptr_ci_glFramebufferTexture2DMultisampleIMG = nullptr;
  725. PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC fnptr_ci_glApplyFramebufferAttachmentCMAAINTEL = nullptr;
  726. PFNGLBEGINPERFQUERYINTELPROC fnptr_ci_glBeginPerfQueryINTEL = nullptr;
  727. PFNGLCREATEPERFQUERYINTELPROC fnptr_ci_glCreatePerfQueryINTEL = nullptr;
  728. PFNGLDELETEPERFQUERYINTELPROC fnptr_ci_glDeletePerfQueryINTEL = nullptr;
  729. PFNGLENDPERFQUERYINTELPROC fnptr_ci_glEndPerfQueryINTEL = nullptr;
  730. PFNGLGETFIRSTPERFQUERYIDINTELPROC fnptr_ci_glGetFirstPerfQueryIdINTEL = nullptr;
  731. PFNGLGETNEXTPERFQUERYIDINTELPROC fnptr_ci_glGetNextPerfQueryIdINTEL = nullptr;
  732. PFNGLGETPERFCOUNTERINFOINTELPROC fnptr_ci_glGetPerfCounterInfoINTEL = nullptr;
  733. PFNGLGETPERFQUERYDATAINTELPROC fnptr_ci_glGetPerfQueryDataINTEL = nullptr;
  734. PFNGLGETPERFQUERYIDBYNAMEINTELPROC fnptr_ci_glGetPerfQueryIdByNameINTEL = nullptr;
  735. PFNGLGETPERFQUERYINFOINTELPROC fnptr_ci_glGetPerfQueryInfoINTEL = nullptr;
  736. PFNGLGETTEXTUREHANDLENVPROC fnptr_ci_glGetTextureHandleNV = nullptr;
  737. PFNGLGETTEXTURESAMPLERHANDLENVPROC fnptr_ci_glGetTextureSamplerHandleNV = nullptr;
  738. PFNGLMAKETEXTUREHANDLERESIDENTNVPROC fnptr_ci_glMakeTextureHandleResidentNV = nullptr;
  739. PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC fnptr_ci_glMakeTextureHandleNonResidentNV = nullptr;
  740. PFNGLGETIMAGEHANDLENVPROC fnptr_ci_glGetImageHandleNV = nullptr;
  741. PFNGLMAKEIMAGEHANDLERESIDENTNVPROC fnptr_ci_glMakeImageHandleResidentNV = nullptr;
  742. PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC fnptr_ci_glMakeImageHandleNonResidentNV = nullptr;
  743. PFNGLUNIFORMHANDLEUI64NVPROC fnptr_ci_glUniformHandleui64NV = nullptr;
  744. PFNGLUNIFORMHANDLEUI64VNVPROC fnptr_ci_glUniformHandleui64vNV = nullptr;
  745. PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC fnptr_ci_glProgramUniformHandleui64NV = nullptr;
  746. PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC fnptr_ci_glProgramUniformHandleui64vNV = nullptr;
  747. PFNGLISTEXTUREHANDLERESIDENTNVPROC fnptr_ci_glIsTextureHandleResidentNV = nullptr;
  748. PFNGLISIMAGEHANDLERESIDENTNVPROC fnptr_ci_glIsImageHandleResidentNV = nullptr;
  749. PFNGLBLENDPARAMETERINVPROC fnptr_ci_glBlendParameteriNV = nullptr;
  750. PFNGLBLENDBARRIERNVPROC fnptr_ci_glBlendBarrierNV = nullptr;
  751. PFNGLBEGINCONDITIONALRENDERNVPROC fnptr_ci_glBeginConditionalRenderNV = nullptr;
  752. PFNGLENDCONDITIONALRENDERNVPROC fnptr_ci_glEndConditionalRenderNV = nullptr;
  753. PFNGLSUBPIXELPRECISIONBIASNVPROC fnptr_ci_glSubpixelPrecisionBiasNV = nullptr;
  754. PFNGLCOPYBUFFERSUBDATANVPROC fnptr_ci_glCopyBufferSubDataNV = nullptr;
  755. PFNGLCOVERAGEMASKNVPROC fnptr_ci_glCoverageMaskNV = nullptr;
  756. PFNGLCOVERAGEOPERATIONNVPROC fnptr_ci_glCoverageOperationNV = nullptr;
  757. PFNGLDRAWBUFFERSNVPROC fnptr_ci_glDrawBuffersNV = nullptr;
  758. PFNGLDELETEFENCESNVPROC fnptr_ci_glDeleteFencesNV = nullptr;
  759. PFNGLGENFENCESNVPROC fnptr_ci_glGenFencesNV = nullptr;
  760. PFNGLISFENCENVPROC fnptr_ci_glIsFenceNV = nullptr;
  761. PFNGLTESTFENCENVPROC fnptr_ci_glTestFenceNV = nullptr;
  762. PFNGLGETFENCEIVNVPROC fnptr_ci_glGetFenceivNV = nullptr;
  763. PFNGLFINISHFENCENVPROC fnptr_ci_glFinishFenceNV = nullptr;
  764. PFNGLSETFENCENVPROC fnptr_ci_glSetFenceNV = nullptr;
  765. PFNGLFRAGMENTCOVERAGECOLORNVPROC fnptr_ci_glFragmentCoverageColorNV = nullptr;
  766. PFNGLCOVERAGEMODULATIONTABLENVPROC fnptr_ci_glCoverageModulationTableNV = nullptr;
  767. PFNGLGETCOVERAGEMODULATIONTABLENVPROC fnptr_ci_glGetCoverageModulationTableNV = nullptr;
  768. PFNGLCOVERAGEMODULATIONNVPROC fnptr_ci_glCoverageModulationNV = nullptr;
  769. PFNGLGETINTERNALFORMATSAMPLEIVNVPROC fnptr_ci_glGetInternalformatSampleivNV = nullptr;
  770. PFNGLUNIFORMMATRIX2X3FVNVPROC fnptr_ci_glUniformMatrix2x3fvNV = nullptr;
  771. PFNGLUNIFORMMATRIX3X2FVNVPROC fnptr_ci_glUniformMatrix3x2fvNV = nullptr;
  772. PFNGLUNIFORMMATRIX2X4FVNVPROC fnptr_ci_glUniformMatrix2x4fvNV = nullptr;
  773. PFNGLUNIFORMMATRIX4X2FVNVPROC fnptr_ci_glUniformMatrix4x2fvNV = nullptr;
  774. PFNGLUNIFORMMATRIX3X4FVNVPROC fnptr_ci_glUniformMatrix3x4fvNV = nullptr;
  775. PFNGLUNIFORMMATRIX4X3FVNVPROC fnptr_ci_glUniformMatrix4x3fvNV = nullptr;
  776. PFNGLGENPATHSNVPROC fnptr_ci_glGenPathsNV = nullptr;
  777. PFNGLDELETEPATHSNVPROC fnptr_ci_glDeletePathsNV = nullptr;
  778. PFNGLISPATHNVPROC fnptr_ci_glIsPathNV = nullptr;
  779. PFNGLPATHCOMMANDSNVPROC fnptr_ci_glPathCommandsNV = nullptr;
  780. PFNGLPATHCOORDSNVPROC fnptr_ci_glPathCoordsNV = nullptr;
  781. PFNGLPATHSUBCOMMANDSNVPROC fnptr_ci_glPathSubCommandsNV = nullptr;
  782. PFNGLPATHSUBCOORDSNVPROC fnptr_ci_glPathSubCoordsNV = nullptr;
  783. PFNGLPATHSTRINGNVPROC fnptr_ci_glPathStringNV = nullptr;
  784. PFNGLPATHGLYPHSNVPROC fnptr_ci_glPathGlyphsNV = nullptr;
  785. PFNGLPATHGLYPHRANGENVPROC fnptr_ci_glPathGlyphRangeNV = nullptr;
  786. PFNGLWEIGHTPATHSNVPROC fnptr_ci_glWeightPathsNV = nullptr;
  787. PFNGLCOPYPATHNVPROC fnptr_ci_glCopyPathNV = nullptr;
  788. PFNGLINTERPOLATEPATHSNVPROC fnptr_ci_glInterpolatePathsNV = nullptr;
  789. PFNGLTRANSFORMPATHNVPROC fnptr_ci_glTransformPathNV = nullptr;
  790. PFNGLPATHPARAMETERIVNVPROC fnptr_ci_glPathParameterivNV = nullptr;
  791. PFNGLPATHPARAMETERINVPROC fnptr_ci_glPathParameteriNV = nullptr;
  792. PFNGLPATHPARAMETERFVNVPROC fnptr_ci_glPathParameterfvNV = nullptr;
  793. PFNGLPATHPARAMETERFNVPROC fnptr_ci_glPathParameterfNV = nullptr;
  794. PFNGLPATHDASHARRAYNVPROC fnptr_ci_glPathDashArrayNV = nullptr;
  795. PFNGLPATHSTENCILFUNCNVPROC fnptr_ci_glPathStencilFuncNV = nullptr;
  796. PFNGLPATHSTENCILDEPTHOFFSETNVPROC fnptr_ci_glPathStencilDepthOffsetNV = nullptr;
  797. PFNGLSTENCILFILLPATHNVPROC fnptr_ci_glStencilFillPathNV = nullptr;
  798. PFNGLSTENCILSTROKEPATHNVPROC fnptr_ci_glStencilStrokePathNV = nullptr;
  799. PFNGLSTENCILFILLPATHINSTANCEDNVPROC fnptr_ci_glStencilFillPathInstancedNV = nullptr;
  800. PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC fnptr_ci_glStencilStrokePathInstancedNV = nullptr;
  801. PFNGLPATHCOVERDEPTHFUNCNVPROC fnptr_ci_glPathCoverDepthFuncNV = nullptr;
  802. PFNGLCOVERFILLPATHNVPROC fnptr_ci_glCoverFillPathNV = nullptr;
  803. PFNGLCOVERSTROKEPATHNVPROC fnptr_ci_glCoverStrokePathNV = nullptr;
  804. PFNGLCOVERFILLPATHINSTANCEDNVPROC fnptr_ci_glCoverFillPathInstancedNV = nullptr;
  805. PFNGLCOVERSTROKEPATHINSTANCEDNVPROC fnptr_ci_glCoverStrokePathInstancedNV = nullptr;
  806. PFNGLGETPATHPARAMETERIVNVPROC fnptr_ci_glGetPathParameterivNV = nullptr;
  807. PFNGLGETPATHPARAMETERFVNVPROC fnptr_ci_glGetPathParameterfvNV = nullptr;
  808. PFNGLGETPATHCOMMANDSNVPROC fnptr_ci_glGetPathCommandsNV = nullptr;
  809. PFNGLGETPATHCOORDSNVPROC fnptr_ci_glGetPathCoordsNV = nullptr;
  810. PFNGLGETPATHDASHARRAYNVPROC fnptr_ci_glGetPathDashArrayNV = nullptr;
  811. PFNGLGETPATHMETRICSNVPROC fnptr_ci_glGetPathMetricsNV = nullptr;
  812. PFNGLGETPATHMETRICRANGENVPROC fnptr_ci_glGetPathMetricRangeNV = nullptr;
  813. PFNGLGETPATHSPACINGNVPROC fnptr_ci_glGetPathSpacingNV = nullptr;
  814. PFNGLISPOINTINFILLPATHNVPROC fnptr_ci_glIsPointInFillPathNV = nullptr;
  815. PFNGLISPOINTINSTROKEPATHNVPROC fnptr_ci_glIsPointInStrokePathNV = nullptr;
  816. PFNGLGETPATHLENGTHNVPROC fnptr_ci_glGetPathLengthNV = nullptr;
  817. PFNGLPOINTALONGPATHNVPROC fnptr_ci_glPointAlongPathNV = nullptr;
  818. PFNGLMATRIXLOAD3X2FNVPROC fnptr_ci_glMatrixLoad3x2fNV = nullptr;
  819. PFNGLMATRIXLOAD3X3FNVPROC fnptr_ci_glMatrixLoad3x3fNV = nullptr;
  820. PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC fnptr_ci_glMatrixLoadTranspose3x3fNV = nullptr;
  821. PFNGLMATRIXMULT3X2FNVPROC fnptr_ci_glMatrixMult3x2fNV = nullptr;
  822. PFNGLMATRIXMULT3X3FNVPROC fnptr_ci_glMatrixMult3x3fNV = nullptr;
  823. PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC fnptr_ci_glMatrixMultTranspose3x3fNV = nullptr;
  824. PFNGLSTENCILTHENCOVERFILLPATHNVPROC fnptr_ci_glStencilThenCoverFillPathNV = nullptr;
  825. PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC fnptr_ci_glStencilThenCoverStrokePathNV = nullptr;
  826. PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC fnptr_ci_glStencilThenCoverFillPathInstancedNV = nullptr;
  827. PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC fnptr_ci_glStencilThenCoverStrokePathInstancedNV = nullptr;
  828. PFNGLPATHGLYPHINDEXRANGENVPROC fnptr_ci_glPathGlyphIndexRangeNV = nullptr;
  829. PFNGLPATHGLYPHINDEXARRAYNVPROC fnptr_ci_glPathGlyphIndexArrayNV = nullptr;
  830. PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC fnptr_ci_glPathMemoryGlyphIndexArrayNV = nullptr;
  831. PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC fnptr_ci_glProgramPathFragmentInputGenNV = nullptr;
  832. PFNGLGETPROGRAMRESOURCEFVNVPROC fnptr_ci_glGetProgramResourcefvNV = nullptr;
  833. PFNGLPOLYGONMODENVPROC fnptr_ci_glPolygonModeNV = nullptr;
  834. PFNGLREADBUFFERNVPROC fnptr_ci_glReadBufferNV = nullptr;
  835. PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC fnptr_ci_glFramebufferSampleLocationsfvNV = nullptr;
  836. PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC fnptr_ci_glNamedFramebufferSampleLocationsfvNV = nullptr;
  837. PFNGLRESOLVEDEPTHVALUESNVPROC fnptr_ci_glResolveDepthValuesNV = nullptr;
  838. PFNGLVIEWPORTARRAYVNVPROC fnptr_ci_glViewportArrayvNV = nullptr;
  839. PFNGLVIEWPORTINDEXEDFNVPROC fnptr_ci_glViewportIndexedfNV = nullptr;
  840. PFNGLVIEWPORTINDEXEDFVNVPROC fnptr_ci_glViewportIndexedfvNV = nullptr;
  841. PFNGLSCISSORARRAYVNVPROC fnptr_ci_glScissorArrayvNV = nullptr;
  842. PFNGLSCISSORINDEXEDNVPROC fnptr_ci_glScissorIndexedNV = nullptr;
  843. PFNGLSCISSORINDEXEDVNVPROC fnptr_ci_glScissorIndexedvNV = nullptr;
  844. PFNGLDEPTHRANGEARRAYFVNVPROC fnptr_ci_glDepthRangeArrayfvNV = nullptr;
  845. PFNGLDEPTHRANGEINDEXEDFNVPROC fnptr_ci_glDepthRangeIndexedfNV = nullptr;
  846. PFNGLGETFLOATI_VNVPROC fnptr_ci_glGetFloati_vNV = nullptr;
  847. PFNGLENABLEINVPROC fnptr_ci_glEnableiNV = nullptr;
  848. PFNGLDISABLEINVPROC fnptr_ci_glDisableiNV = nullptr;
  849. PFNGLISENABLEDINVPROC fnptr_ci_glIsEnablediNV = nullptr;
  850. PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC fnptr_ci_glFramebufferTextureMultiviewOVR = nullptr;
  851. PFNGLALPHAFUNCQCOMPROC fnptr_ci_glAlphaFuncQCOM = nullptr;
  852. PFNGLGETDRIVERCONTROLSQCOMPROC fnptr_ci_glGetDriverControlsQCOM = nullptr;
  853. PFNGLGETDRIVERCONTROLSTRINGQCOMPROC fnptr_ci_glGetDriverControlStringQCOM = nullptr;
  854. PFNGLENABLEDRIVERCONTROLQCOMPROC fnptr_ci_glEnableDriverControlQCOM = nullptr;
  855. PFNGLDISABLEDRIVERCONTROLQCOMPROC fnptr_ci_glDisableDriverControlQCOM = nullptr;
  856. PFNGLEXTGETTEXTURESQCOMPROC fnptr_ci_glExtGetTexturesQCOM = nullptr;
  857. PFNGLEXTGETBUFFERSQCOMPROC fnptr_ci_glExtGetBuffersQCOM = nullptr;
  858. PFNGLEXTGETRENDERBUFFERSQCOMPROC fnptr_ci_glExtGetRenderbuffersQCOM = nullptr;
  859. PFNGLEXTGETFRAMEBUFFERSQCOMPROC fnptr_ci_glExtGetFramebuffersQCOM = nullptr;
  860. PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC fnptr_ci_glExtGetTexLevelParameterivQCOM = nullptr;
  861. PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC fnptr_ci_glExtTexObjectStateOverrideiQCOM = nullptr;
  862. PFNGLEXTGETTEXSUBIMAGEQCOMPROC fnptr_ci_glExtGetTexSubImageQCOM = nullptr;
  863. PFNGLEXTGETBUFFERPOINTERVQCOMPROC fnptr_ci_glExtGetBufferPointervQCOM = nullptr;
  864. PFNGLEXTGETSHADERSQCOMPROC fnptr_ci_glExtGetShadersQCOM = nullptr;
  865. PFNGLEXTGETPROGRAMSQCOMPROC fnptr_ci_glExtGetProgramsQCOM = nullptr;
  866. PFNGLEXTISPROGRAMBINARYQCOMPROC fnptr_ci_glExtIsProgramBinaryQCOM = nullptr;
  867. PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC fnptr_ci_glExtGetProgramBinarySourceQCOM = nullptr;
  868. PFNGLSTARTTILINGQCOMPROC fnptr_ci_glStartTilingQCOM = nullptr;
  869. PFNGLENDTILINGQCOMPROC fnptr_ci_glEndTilingQCOM = nullptr;
  870. #if ( CINDER_GL_ES_VERSION == CINDER_GL_ES_VERSION_2 )
  871. // GL_OES_vertex_array_object
  872. PFNGLBINDVERTEXARRAYOESPROC fnptr_ci_glBindVertexArrayOES = nullptr;
  873. PFNGLDELETEVERTEXARRAYSOESPROC fnptr_ci_glDeleteVertexArraysOES = nullptr;
  874. PFNGLGENVERTEXARRAYSOESPROC fnptr_ci_glGenVertexArraysOES = nullptr;
  875. PFNGLISVERTEXARRAYOESPROC fnptr_ci_glIsVertexArrayOES = nullptr;
  876. // GL_OES_mapbuffer
  877. PFNGLMAPBUFFEROESPROC fnptr_ci_glMapBufferOES = nullptr;
  878. PFNGLUNMAPBUFFEROESPROC fnptr_ci_glUnmapBufferOES = nullptr;
  879. // GL_EXT_map_buffer_range
  880. PFNGLMAPBUFFERRANGEEXTPROC fnptr_ci_glMapBufferRangeEXT = nullptr;
  881. PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC fnptr_ci_glFlushMappedBufferRangeEXT = nullptr;
  882. // GL_EXT_multisampled_render_to_texture and the like
  883. PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC fnptr_ci_glRenderbufferStorageMultisample = nullptr;
  884. // GL_NV_framebuffer_blit, GL_ANGLE_framebuffer_blit
  885. PFNGLBLITFRAMEBUFFERANGLEPROC fnptr_ci_glBlitFramebuffer = nullptr;
  886. // GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced, GL_NV_draw_instanced
  887. PFNGLDRAWARRAYSINSTANCEDPROC fnptr_ci_glDrawArraysInstanced = nullptr;
  888. PFNGLDRAWELEMENTSINSTANCEDPROC fnptr_ci_glDrawElementsInstanced = nullptr;
  889. // GL_ANGLE_instanced_arrays, GL_EXT_instanced_arrays, GL_NV_instanced_arrays
  890. PFNGLVERTEXATTRIBDIVISORPROC fnptr_ci_glVertexAttribDivisor = nullptr;
  891. #endif
  892. #if ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_2 )
  893. PFNGLBUFFERSTORAGEPROC fnptr_ci_glBufferStorage = nullptr;
  894. #endif
  895. void gl_es_2_0_ext_load()
  896. {
  897. //DEBUG( "gl_es_2_0_ext_load entered..." );
  898. clearLoadCount();
  899. fnptr_ci_glBlendBarrierKHR = (PFNGLBLENDBARRIERKHRPROC)loadEglProc("glBlendBarrierKHR");
  900. fnptr_ci_glDebugMessageControlKHR = (PFNGLDEBUGMESSAGECONTROLKHRPROC)loadEglProc("glDebugMessageControlKHR");
  901. fnptr_ci_glDebugMessageInsertKHR = (PFNGLDEBUGMESSAGEINSERTKHRPROC)loadEglProc("glDebugMessageInsertKHR");
  902. fnptr_ci_glDebugMessageCallbackKHR = (PFNGLDEBUGMESSAGECALLBACKKHRPROC)loadEglProc("glDebugMessageCallbackKHR");
  903. fnptr_ci_glGetDebugMessageLogKHR = (PFNGLGETDEBUGMESSAGELOGKHRPROC)loadEglProc("glGetDebugMessageLogKHR");
  904. fnptr_ci_glPushDebugGroupKHR = (PFNGLPUSHDEBUGGROUPKHRPROC)loadEglProc("glPushDebugGroupKHR");
  905. fnptr_ci_glPopDebugGroupKHR = (PFNGLPOPDEBUGGROUPKHRPROC)loadEglProc("glPopDebugGroupKHR");
  906. fnptr_ci_glObjectLabelKHR = (PFNGLOBJECTLABELKHRPROC)loadEglProc("glObjectLabelKHR");
  907. fnptr_ci_glGetObjectLabelKHR = (PFNGLGETOBJECTLABELKHRPROC)loadEglProc("glGetObjectLabelKHR");
  908. fnptr_ci_glObjectPtrLabelKHR = (PFNGLOBJECTPTRLABELKHRPROC)loadEglProc("glObjectPtrLabelKHR");
  909. fnptr_ci_glGetObjectPtrLabelKHR = (PFNGLGETOBJECTPTRLABELKHRPROC)loadEglProc("glGetObjectPtrLabelKHR");
  910. fnptr_ci_glGetPointervKHR = (PFNGLGETPOINTERVKHRPROC)loadEglProc("glGetPointervKHR");
  911. fnptr_ci_glGetGraphicsResetStatusKHR = (PFNGLGETGRAPHICSRESETSTATUSKHRPROC)loadEglProc("glGetGraphicsResetStatusKHR");
  912. fnptr_ci_glReadnPixelsKHR = (PFNGLREADNPIXELSKHRPROC)loadEglProc("glReadnPixelsKHR");
  913. fnptr_ci_glGetnUniformfvKHR = (PFNGLGETNUNIFORMFVKHRPROC)loadEglProc("glGetnUniformfvKHR");
  914. fnptr_ci_glGetnUniformivKHR = (PFNGLGETNUNIFORMIVKHRPROC)loadEglProc("glGetnUniformivKHR");
  915. fnptr_ci_glGetnUniformuivKHR = (PFNGLGETNUNIFORMUIVKHRPROC)loadEglProc("glGetnUniformuivKHR");
  916. fnptr_ci_glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)loadEglProc("glEGLImageTargetTexture2DOES");
  917. fnptr_ci_glEGLImageTargetRenderbufferStorageOES = (PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)loadEglProc("glEGLImageTargetRenderbufferStorageOES");
  918. fnptr_ci_glCopyImageSubDataOES = (PFNGLCOPYIMAGESUBDATAOESPROC)loadEglProc("glCopyImageSubDataOES");
  919. fnptr_ci_glEnableiOES = (PFNGLENABLEIOESPROC)loadEglProc("glEnableiOES");
  920. fnptr_ci_glDisableiOES = (PFNGLDISABLEIOESPROC)loadEglProc("glDisableiOES");
  921. fnptr_ci_glBlendEquationiOES = (PFNGLBLENDEQUATIONIOESPROC)loadEglProc("glBlendEquationiOES");
  922. fnptr_ci_glBlendEquationSeparateiOES = (PFNGLBLENDEQUATIONSEPARATEIOESPROC)loadEglProc("glBlendEquationSeparateiOES");
  923. fnptr_ci_glBlendFunciOES = (PFNGLBLENDFUNCIOESPROC)loadEglProc("glBlendFunciOES");
  924. fnptr_ci_glBlendFuncSeparateiOES = (PFNGLBLENDFUNCSEPARATEIOESPROC)loadEglProc("glBlendFuncSeparateiOES");
  925. fnptr_ci_glColorMaskiOES = (PFNGLCOLORMASKIOESPROC)loadEglProc("glColorMaskiOES");
  926. fnptr_ci_glIsEnablediOES = (PFNGLISENABLEDIOESPROC)loadEglProc("glIsEnablediOES");
  927. fnptr_ci_glDrawElementsBaseVertexOES = (PFNGLDRAWELEMENTSBASEVERTEXOESPROC)loadEglProc("glDrawElementsBaseVertexOES");
  928. fnptr_ci_glDrawRangeElementsBaseVertexOES = (PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC)loadEglProc("glDrawRangeElementsBaseVertexOES");
  929. fnptr_ci_glDrawElementsInstancedBaseVertexOES = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC)loadEglProc("glDrawElementsInstancedBaseVertexOES");
  930. fnptr_ci_glMultiDrawElementsBaseVertexOES = (PFNGLMULTIDRAWELEMENTSBASEVERTEXOESPROC)loadEglProc("glMultiDrawElementsBaseVertexOES");
  931. fnptr_ci_glFramebufferTextureOES = (PFNGLFRAMEBUFFERTEXTUREOESPROC)loadEglProc("glFramebufferTextureOES");
  932. fnptr_ci_glGetProgramBinaryOES = (PFNGLGETPROGRAMBINARYOESPROC)loadEglProc("glGetProgramBinaryOES");
  933. fnptr_ci_glProgramBinaryOES = (PFNGLPROGRAMBINARYOESPROC)loadEglProc("glProgramBinaryOES");
  934. fnptr_ci_glGetBufferPointervOES = (PFNGLGETBUFFERPOINTERVOESPROC)loadEglProc("glGetBufferPointervOES");
  935. fnptr_ci_glPrimitiveBoundingBoxOES = (PFNGLPRIMITIVEBOUNDINGBOXOESPROC)loadEglProc("glPrimitiveBoundingBoxOES");
  936. fnptr_ci_glMinSampleShadingOES = (PFNGLMINSAMPLESHADINGOESPROC)loadEglProc("glMinSampleShadingOES");
  937. fnptr_ci_glTexImage3DOES = (PFNGLTEXIMAGE3DOESPROC)loadEglProc("glTexImage3DOES");
  938. fnptr_ci_glTexSubImage3DOES = (PFNGLTEXSUBIMAGE3DOESPROC)loadEglProc("glTexSubImage3DOES");
  939. fnptr_ci_glCopyTexSubImage3DOES = (PFNGLCOPYTEXSUBIMAGE3DOESPROC)loadEglProc("glCopyTexSubImage3DOES");
  940. fnptr_ci_glCompressedTexImage3DOES = (PFNGLCOMPRESSEDTEXIMAGE3DOESPROC)loadEglProc("glCompressedTexImage3DOES");
  941. fnptr_ci_glCompressedTexSubImage3DOES = (PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC)loadEglProc("glCompressedTexSubImage3DOES");
  942. fnptr_ci_glFramebufferTexture3DOES = (PFNGLFRAMEBUFFERTEXTURE3DOESPROC)loadEglProc("glFramebufferTexture3DOES");
  943. fnptr_ci_glTexParameterIivOES = (PFNGLTEXPARAMETERIIVOESPROC)loadEglProc("glTexParameterIivOES");
  944. fnptr_ci_glTexParameterIuivOES = (PFNGLTEXPARAMETERIUIVOESPROC)loadEglProc("glTexParameterIuivOES");
  945. fnptr_ci_glGetTexParameterIivOES = (PFNGLGETTEXPARAMETERIIVOESPROC)loadEglProc("glGetTexParameterIivOES");
  946. fnptr_ci_glGetTexParameterIuivOES = (PFNGLGETTEXPARAMETERIUIVOESPROC)loadEglProc("glGetTexParameterIuivOES");
  947. fnptr_ci_glSamplerParameterIivOES = (PFNGLSAMPLERPARAMETERIIVOESPROC)loadEglProc("glSamplerParameterIivOES");
  948. fnptr_ci_glSamplerParameterIuivOES = (PFNGLSAMPLERPARAMETERIUIVOESPROC)loadEglProc("glSamplerParameterIuivOES");
  949. fnptr_ci_glGetSamplerParameterIivOES = (PFNGLGETSAMPLERPARAMETERIIVOESPROC)loadEglProc("glGetSamplerParameterIivOES");
  950. fnptr_ci_glGetSamplerParameterIuivOES = (PFNGLGETSAMPLERPARAMETERIUIVOESPROC)loadEglProc("glGetSamplerParameterIuivOES");
  951. fnptr_ci_glTexBufferOES = (PFNGLTEXBUFFEROESPROC)loadEglProc("glTexBufferOES");
  952. fnptr_ci_glTexBufferRangeOES = (PFNGLTEXBUFFERRANGEOESPROC)loadEglProc("glTexBufferRangeOES");
  953. fnptr_ci_glTexStorage3DMultisampleOES = (PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC)loadEglProc("glTexStorage3DMultisampleOES");
  954. fnptr_ci_glTextureViewOES = (PFNGLTEXTUREVIEWOESPROC)loadEglProc("glTextureViewOES");
  955. fnptr_ci_glGetPerfMonitorGroupsAMD = (PFNGLGETPERFMONITORGROUPSAMDPROC)loadEglProc("glGetPerfMonitorGroupsAMD");
  956. fnptr_ci_glGetPerfMonitorCountersAMD = (PFNGLGETPERFMONITORCOUNTERSAMDPROC)loadEglProc("glGetPerfMonitorCountersAMD");
  957. fnptr_ci_glGetPerfMonitorGroupStringAMD = (PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)loadEglProc("glGetPerfMonitorGroupStringAMD");
  958. fnptr_ci_glGetPerfMonitorCounterStringAMD = (PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)loadEglProc("glGetPerfMonitorCounterStringAMD");
  959. fnptr_ci_glGetPerfMonitorCounterInfoAMD = (PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)loadEglProc("glGetPerfMonitorCounterInfoAMD");
  960. fnptr_ci_glGenPerfMonitorsAMD = (PFNGLGENPERFMONITORSAMDPROC)loadEglProc("glGenPerfMonitorsAMD");
  961. fnptr_ci_glDeletePerfMonitorsAMD = (PFNGLDELETEPERFMONITORSAMDPROC)loadEglProc("glDeletePerfMonitorsAMD");
  962. fnptr_ci_glSelectPerfMonitorCountersAMD = (PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)loadEglProc("glSelectPerfMonitorCountersAMD");
  963. fnptr_ci_glBeginPerfMonitorAMD = (PFNGLBEGINPERFMONITORAMDPROC)loadEglProc("glBeginPerfMonitorAMD");
  964. fnptr_ci_glEndPerfMonitorAMD = (PFNGLENDPERFMONITORAMDPROC)loadEglProc("glEndPerfMonitorAMD");
  965. fnptr_ci_glGetPerfMonitorCounterDataAMD = (PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)loadEglProc("glGetPerfMonitorCounterDataAMD");
  966. fnptr_ci_glGetTranslatedShaderSourceANGLE = (PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC)loadEglProc("glGetTranslatedShaderSourceANGLE");
  967. fnptr_ci_glCopyTextureLevelsAPPLE = (PFNGLCOPYTEXTURELEVELSAPPLEPROC)loadEglProc("glCopyTextureLevelsAPPLE");
  968. fnptr_ci_glResolveMultisampleFramebufferAPPLE = (PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC)loadEglProc("glResolveMultisampleFramebufferAPPLE");
  969. fnptr_ci_glFenceSyncAPPLE = (PFNGLFENCESYNCAPPLEPROC)loadEglProc("glFenceSyncAPPLE");
  970. fnptr_ci_glIsSyncAPPLE = (PFNGLISSYNCAPPLEPROC)loadEglProc("glIsSyncAPPLE");
  971. fnptr_ci_glDeleteSyncAPPLE = (PFNGLDELETESYNCAPPLEPROC)loadEglProc("glDeleteSyncAPPLE");
  972. fnptr_ci_glClientWaitSyncAPPLE = (PFNGLCLIENTWAITSYNCAPPLEPROC)loadEglProc("glClientWaitSyncAPPLE");
  973. fnptr_ci_glWaitSyncAPPLE = (PFNGLWAITSYNCAPPLEPROC)loadEglProc("glWaitSyncAPPLE");
  974. fnptr_ci_glGetInteger64vAPPLE = (PFNGLGETINTEGER64VAPPLEPROC)loadEglProc("glGetInteger64vAPPLE");
  975. fnptr_ci_glGetSyncivAPPLE = (PFNGLGETSYNCIVAPPLEPROC)loadEglProc("glGetSyncivAPPLE");
  976. fnptr_ci_glDrawArraysInstancedBaseInstanceEXT = (PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC)loadEglProc("glDrawArraysInstancedBaseInstanceEXT");
  977. fnptr_ci_glDrawElementsInstancedBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC)loadEglProc("glDrawElementsInstancedBaseInstanceEXT");
  978. fnptr_ci_glDrawElementsInstancedBaseVertexBaseInstanceEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC)loadEglProc("glDrawElementsInstancedBaseVertexBaseInstanceEXT");
  979. fnptr_ci_glBindFragDataLocationIndexedEXT = (PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC)loadEglProc("glBindFragDataLocationIndexedEXT");
  980. fnptr_ci_glBindFragDataLocationEXT = (PFNGLBINDFRAGDATALOCATIONEXTPROC)loadEglProc("glBindFragDataLocationEXT");
  981. fnptr_ci_glGetProgramResourceLocationIndexEXT = (PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC)loadEglProc("glGetProgramResourceLocationIndexEXT");
  982. fnptr_ci_glGetFragDataIndexEXT = (PFNGLGETFRAGDATAINDEXEXTPROC)loadEglProc("glGetFragDataIndexEXT");
  983. fnptr_ci_glCopyImageSubDataEXT = (PFNGLCOPYIMAGESUBDATAEXTPROC)loadEglProc("glCopyImageSubDataEXT");
  984. fnptr_ci_glLabelObjectEXT = (PFNGLLABELOBJECTEXTPROC)loadEglProc("glLabelObjectEXT");
  985. fnptr_ci_glGetObjectLabelEXT = (PFNGLGETOBJECTLABELEXTPROC)loadEglProc("glGetObjectLabelEXT");
  986. fnptr_ci_glInsertEventMarkerEXT = (PFNGLINSERTEVENTMARKEREXTPROC)loadEglProc("glInsertEventMarkerEXT");
  987. fnptr_ci_glPushGroupMarkerEXT = (PFNGLPUSHGROUPMARKEREXTPROC)loadEglProc("glPushGroupMarkerEXT");
  988. fnptr_ci_glPopGroupMarkerEXT = (PFNGLPOPGROUPMARKEREXTPROC)loadEglProc("glPopGroupMarkerEXT");
  989. fnptr_ci_glDiscardFramebufferEXT = (PFNGLDISCARDFRAMEBUFFEREXTPROC)loadEglProc("glDiscardFramebufferEXT");
  990. fnptr_ci_glGenQueriesEXT = (PFNGLGENQUERIESEXTPROC)loadEglProc("glGenQueriesEXT");
  991. fnptr_ci_glDeleteQueriesEXT = (PFNGLDELETEQUERIESEXTPROC)loadEglProc("glDeleteQueriesEXT");
  992. fnptr_ci_glIsQueryEXT = (PFNGLISQUERYEXTPROC)loadEglProc("glIsQueryEXT");
  993. fnptr_ci_glBeginQueryEXT = (PFNGLBEGINQUERYEXTPROC)loadEglProc("glBeginQueryEXT");
  994. fnptr_ci_glEndQueryEXT = (PFNGLENDQUERYEXTPROC)loadEglProc("glEndQueryEXT");
  995. fnptr_ci_glQueryCounterEXT = (PFNGLQUERYCOUNTEREXTPROC)loadEglProc("glQueryCounterEXT");
  996. fnptr_ci_glGetQueryivEXT = (PFNGLGETQUERYIVEXTPROC)loadEglProc("glGetQueryivEXT");
  997. fnptr_ci_glGetQueryObjectivEXT = (PFNGLGETQUERYOBJECTIVEXTPROC)loadEglProc("glGetQueryObjectivEXT");
  998. fnptr_ci_glGetQueryObjectuivEXT = (PFNGLGETQUERYOBJECTUIVEXTPROC)loadEglProc("glGetQueryObjectuivEXT");
  999. fnptr_ci_glGetQueryObjecti64vEXT = (PFNGLGETQUERYOBJECTI64VEXTPROC)loadEglProc("glGetQueryObjecti64vEXT");
  1000. fnptr_ci_glGetQueryObjectui64vEXT = (PFNGLGETQUERYOBJECTUI64VEXTPROC)loadEglProc("glGetQueryObjectui64vEXT");
  1001. fnptr_ci_glDrawBuffersEXT = (PFNGLDRAWBUFFERSEXTPROC)loadEglProc("glDrawBuffersEXT");
  1002. fnptr_ci_glEnableiEXT = (PFNGLENABLEIEXTPROC)loadEglProc("glEnableiEXT");
  1003. fnptr_ci_glDisableiEXT = (PFNGLDISABLEIEXTPROC)loadEglProc("glDisableiEXT");
  1004. fnptr_ci_glBlendEquationiEXT = (PFNGLBLENDEQUATIONIEXTPROC)loadEglProc("glBlendEquationiEXT");
  1005. fnptr_ci_glBlendEquationSeparateiEXT = (PFNGLBLENDEQUATIONSEPARATEIEXTPROC)loadEglProc("glBlendEquationSeparateiEXT");
  1006. fnptr_ci_glBlendFunciEXT = (PFNGLBLENDFUNCIEXTPROC)loadEglProc("glBlendFunciEXT");
  1007. fnptr_ci_glBlendFuncSeparateiEXT = (PFNGLBLENDFUNCSEPARATEIEXTPROC)loadEglProc("glBlendFuncSeparateiEXT");
  1008. fnptr_ci_glColorMaskiEXT = (PFNGLCOLORMASKIEXTPROC)loadEglProc("glColorMaskiEXT");
  1009. fnptr_ci_glIsEnablediEXT = (PFNGLISENABLEDIEXTPROC)loadEglProc("glIsEnablediEXT");
  1010. fnptr_ci_glDrawElementsBaseVertexEXT = (PFNGLDRAWELEMENTSBASEVERTEXEXTPROC)loadEglProc("glDrawElementsBaseVertexEXT");
  1011. fnptr_ci_glDrawRangeElementsBaseVertexEXT = (PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC)loadEglProc("glDrawRangeElementsBaseVertexEXT");
  1012. fnptr_ci_glDrawElementsInstancedBaseVertexEXT = (PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC)loadEglProc("glDrawElementsInstancedBaseVertexEXT");
  1013. fnptr_ci_glMultiDrawElementsBaseVertexEXT = (PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC)loadEglProc("glMultiDrawElementsBaseVertexEXT");
  1014. fnptr_ci_glMultiDrawArraysEXT = (PFNGLMULTIDRAWARRAYSEXTPROC)loadEglProc("glMultiDrawArraysEXT");
  1015. fnptr_ci_glMultiDrawElementsEXT = (PFNGLMULTIDRAWELEMENTSEXTPROC)loadEglProc("glMultiDrawElementsEXT");
  1016. fnptr_ci_glMultiDrawArraysIndirectEXT = (PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC)loadEglProc("glMultiDrawArraysIndirectEXT");
  1017. fnptr_ci_glMultiDrawElementsIndirectEXT = (PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC)loadEglProc("glMultiDrawElementsIndirectEXT");
  1018. fnptr_ci_glFramebufferTexture2DMultisampleEXT = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)loadEglProc("glFramebufferTexture2DMultisampleEXT");
  1019. fnptr_ci_glReadBufferIndexedEXT = (PFNGLREADBUFFERINDEXEDEXTPROC)loadEglProc("glReadBufferIndexedEXT");
  1020. fnptr_ci_glDrawBuffersIndexedEXT = (PFNGLDRAWBUFFERSINDEXEDEXTPROC)loadEglProc("glDrawBuffersIndexedEXT");
  1021. fnptr_ci_glGetIntegeri_vEXT = (PFNGLGETINTEGERI_VEXTPROC)loadEglProc("glGetIntegeri_vEXT");
  1022. fnptr_ci_glPrimitiveBoundingBoxEXT = (PFNGLPRIMITIVEBOUNDINGBOXEXTPROC)loadEglProc("glPrimitiveBoundingBoxEXT");
  1023. fnptr_ci_glRasterSamplesEXT = (PFNGLRASTERSAMPLESEXTPROC)loadEglProc("glRasterSamplesEXT");
  1024. fnptr_ci_glGetGraphicsResetStatusEXT = (PFNGLGETGRAPHICSRESETSTATUSEXTPROC)loadEglProc("glGetGraphicsResetStatusEXT");
  1025. fnptr_ci_glReadnPixelsEXT = (PFNGLREADNPIXELSEXTPROC)loadEglProc("glReadnPixelsEXT");
  1026. fnptr_ci_glGetnUniformfvEXT = (PFNGLGETNUNIFORMFVEXTPROC)loadEglProc("glGetnUniformfvEXT");
  1027. fnptr_ci_glGetnUniformivEXT = (PFNGLGETNUNIFORMIVEXTPROC)loadEglProc("glGetnUniformivEXT");
  1028. fnptr_ci_glActiveShaderProgramEXT = (PFNGLACTIVESHADERPROGRAMEXTPROC)loadEglProc("glActiveShaderProgramEXT");
  1029. fnptr_ci_glBindProgramPipelineEXT = (PFNGLBINDPROGRAMPIPELINEEXTPROC)loadEglProc("glBindProgramPipelineEXT");
  1030. fnptr_ci_glCreateShaderProgramvEXT = (PFNGLCREATESHADERPROGRAMVEXTPROC)loadEglProc("glCreateShaderProgramvEXT");
  1031. fnptr_ci_glDeleteProgramPipelinesEXT = (PFNGLDELETEPROGRAMPIPELINESEXTPROC)loadEglProc("glDeleteProgramPipelinesEXT");
  1032. fnptr_ci_glGenProgramPipelinesEXT = (PFNGLGENPROGRAMPIPELINESEXTPROC)loadEglProc("glGenProgramPipelinesEXT");
  1033. fnptr_ci_glGetProgramPipelineInfoLogEXT = (PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC)loadEglProc("glGetProgramPipelineInfoLogEXT");
  1034. fnptr_ci_glGetProgramPipelineivEXT = (PFNGLGETPROGRAMPIPELINEIVEXTPROC)loadEglProc("glGetProgramPipelineivEXT");
  1035. fnptr_ci_glIsProgramPipelineEXT = (PFNGLISPROGRAMPIPELINEEXTPROC)loadEglProc("glIsProgramPipelineEXT");
  1036. fnptr_ci_glProgramParameteriEXT = (PFNGLPROGRAMPARAMETERIEXTPROC)loadEglProc("glProgramParameteriEXT");
  1037. fnptr_ci_glProgramUniform1fEXT = (PFNGLPROGRAMUNIFORM1FEXTPROC)loadEglProc("glProgramUniform1fEXT");
  1038. fnptr_ci_glProgramUniform1fvEXT = (PFNGLPROGRAMUNIFORM1FVEXTPROC)loadEglProc("glProgramUniform1fvEXT");
  1039. fnptr_ci_glProgramUniform1iEXT = (PFNGLPROGRAMUNIFORM1IEXTPROC)loadEglProc("glProgramUniform1iEXT");
  1040. fnptr_ci_glProgramUniform1ivEXT = (PFNGLPROGRAMUNIFORM1IVEXTPROC)loadEglProc("glProgramUniform1ivEXT");
  1041. fnptr_ci_glProgramUniform2fEXT = (PFNGLPROGRAMUNIFORM2FEXTPROC)loadEglProc("glProgramUniform2fEXT");
  1042. fnptr_ci_glProgramUniform2fvEXT = (PFNGLPROGRAMUNIFORM2FVEXTPROC)loadEglProc("glProgramUniform2fvEXT");
  1043. fnptr_ci_glProgramUniform2iEXT = (PFNGLPROGRAMUNIFORM2IEXTPROC)loadEglProc("glProgramUniform2iEXT");
  1044. fnptr_ci_glProgramUniform2ivEXT = (PFNGLPROGRAMUNIFORM2IVEXTPROC)loadEglProc("glProgramUniform2ivEXT");
  1045. fnptr_ci_glProgramUniform3fEXT = (PFNGLPROGRAMUNIFORM3FEXTPROC)loadEglProc("glProgramUniform3fEXT");
  1046. fnptr_ci_glProgramUniform3fvEXT = (PFNGLPROGRAMUNIFORM3FVEXTPROC)loadEglProc("glProgramUniform3fvEXT");
  1047. fnptr_ci_glProgramUniform3iEXT = (PFNGLPROGRAMUNIFORM3IEXTPROC)loadEglProc("glProgramUniform3iEXT");
  1048. fnptr_ci_glProgramUniform3ivEXT = (PFNGLPROGRAMUNIFORM3IVEXTPROC)loadEglProc("glProgramUniform3ivEXT");
  1049. fnptr_ci_glProgramUniform4fEXT = (PFNGLPROGRAMUNIFORM4FEXTPROC)loadEglProc("glProgramUniform4fEXT");
  1050. fnptr_ci_glProgramUniform4fvEXT = (PFNGLPROGRAMUNIFORM4FVEXTPROC)loadEglProc("glProgramUniform4fvEXT");
  1051. fnptr_ci_glProgramUniform4iEXT = (PFNGLPROGRAMUNIFORM4IEXTPROC)loadEglProc("glProgramUniform4iEXT");
  1052. fnptr_ci_glProgramUniform4ivEXT = (PFNGLPROGRAMUNIFORM4IVEXTPROC)loadEglProc("glProgramUniform4ivEXT");
  1053. fnptr_ci_glProgramUniformMatrix2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)loadEglProc("glProgramUniformMatrix2fvEXT");
  1054. fnptr_ci_glProgramUniformMatrix3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)loadEglProc("glProgramUniformMatrix3fvEXT");
  1055. fnptr_ci_glProgramUniformMatrix4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)loadEglProc("glProgramUniformMatrix4fvEXT");
  1056. fnptr_ci_glUseProgramStagesEXT = (PFNGLUSEPROGRAMSTAGESEXTPROC)loadEglProc("glUseProgramStagesEXT");
  1057. fnptr_ci_glValidateProgramPipelineEXT = (PFNGLVALIDATEPROGRAMPIPELINEEXTPROC)loadEglProc("glValidateProgramPipelineEXT");
  1058. fnptr_ci_glProgramUniform1uiEXT = (PFNGLPROGRAMUNIFORM1UIEXTPROC)loadEglProc("glProgramUniform1uiEXT");
  1059. fnptr_ci_glProgramUniform2uiEXT = (PFNGLPROGRAMUNIFORM2UIEXTPROC)loadEglProc("glProgramUniform2uiEXT");
  1060. fnptr_ci_glProgramUniform3uiEXT = (PFNGLPROGRAMUNIFORM3UIEXTPROC)loadEglProc("glProgramUniform3uiEXT");
  1061. fnptr_ci_glProgramUniform4uiEXT = (PFNGLPROGRAMUNIFORM4UIEXTPROC)loadEglProc("glProgramUniform4uiEXT");
  1062. fnptr_ci_glProgramUniform1uivEXT = (PFNGLPROGRAMUNIFORM1UIVEXTPROC)loadEglProc("glProgramUniform1uivEXT");
  1063. fnptr_ci_glProgramUniform2uivEXT = (PFNGLPROGRAMUNIFORM2UIVEXTPROC)loadEglProc("glProgramUniform2uivEXT");
  1064. fnptr_ci_glProgramUniform3uivEXT = (PFNGLPROGRAMUNIFORM3UIVEXTPROC)loadEglProc("glProgramUniform3uivEXT");
  1065. fnptr_ci_glProgramUniform4uivEXT = (PFNGLPROGRAMUNIFORM4UIVEXTPROC)loadEglProc("glProgramUniform4uivEXT");
  1066. fnptr_ci_glProgramUniformMatrix2x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)loadEglProc("glProgramUniformMatrix2x3fvEXT");
  1067. fnptr_ci_glProgramUniformMatrix3x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)loadEglProc("glProgramUniformMatrix3x2fvEXT");
  1068. fnptr_ci_glProgramUniformMatrix2x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)loadEglProc("glProgramUniformMatrix2x4fvEXT");
  1069. fnptr_ci_glProgramUniformMatrix4x2fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)loadEglProc("glProgramUniformMatrix4x2fvEXT");
  1070. fnptr_ci_glProgramUniformMatrix3x4fvEXT = (PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)loadEglProc("glProgramUniformMatrix3x4fvEXT");
  1071. fnptr_ci_glProgramUniformMatrix4x3fvEXT = (PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)loadEglProc("glProgramUniformMatrix4x3fvEXT");
  1072. fnptr_ci_glTexPageCommitmentEXT = (PFNGLTEXPAGECOMMITMENTEXTPROC)loadEglProc("glTexPageCommitmentEXT");
  1073. fnptr_ci_glTexParameterIivEXT = (PFNGLTEXPARAMETERIIVEXTPROC)loadEglProc("glTexParameterIivEXT");
  1074. fnptr_ci_glTexParameterIuivEXT = (PFNGLTEXPARAMETERIUIVEXTPROC)loadEglProc("glTexParameterIuivEXT");
  1075. fnptr_ci_glGetTexParameterIivEXT = (PFNGLGETTEXPARAMETERIIVEXTPROC)loadEglProc("glGetTexParameterIivEXT");
  1076. fnptr_ci_glGetTexParameterIuivEXT = (PFNGLGETTEXPARAMETERIUIVEXTPROC)loadEglProc("glGetTexParameterIuivEXT");
  1077. fnptr_ci_glSamplerParameterIivEXT = (PFNGLSAMPLERPARAMETERIIVEXTPROC)loadEglProc("glSamplerParameterIivEXT");
  1078. fnptr_ci_glSamplerParameterIuivEXT = (PFNGLSAMPLERPARAMETERIUIVEXTPROC)loadEglProc("glSamplerParameterIuivEXT");
  1079. fnptr_ci_glGetSamplerParameterIivEXT = (PFNGLGETSAMPLERPARAMETERIIVEXTPROC)loadEglProc("glGetSamplerParameterIivEXT");
  1080. fnptr_ci_glGetSamplerParameterIuivEXT = (PFNGLGETSAMPLERPARAMETERIUIVEXTPROC)loadEglProc("glGetSamplerParameterIuivEXT");
  1081. fnptr_ci_glTexBufferEXT = (PFNGLTEXBUFFEREXTPROC)loadEglProc("glTexBufferEXT");
  1082. fnptr_ci_glTexBufferRangeEXT = (PFNGLTEXBUFFERRANGEEXTPROC)loadEglProc("glTexBufferRangeEXT");
  1083. fnptr_ci_glTexStorage1DEXT = (PFNGLTEXSTORAGE1DEXTPROC)loadEglProc("glTexStorage1DEXT");
  1084. fnptr_ci_glTexStorage2DEXT = (PFNGLTEXSTORAGE2DEXTPROC)loadEglProc("glTexStorage2DEXT");
  1085. fnptr_ci_glTexStorage3DEXT = (PFNGLTEXSTORAGE3DEXTPROC)loadEglProc("glTexStorage3DEXT");
  1086. fnptr_ci_glTextureStorage1DEXT = (PFNGLTEXTURESTORAGE1DEXTPROC)loadEglProc("glTextureStorage1DEXT");
  1087. fnptr_ci_glTextureStorage2DEXT = (PFNGLTEXTURESTORAGE2DEXTPROC)loadEglProc("glTextureStorage2DEXT");
  1088. fnptr_ci_glTextureStorage3DEXT = (PFNGLTEXTURESTORAGE3DEXTPROC)loadEglProc("glTextureStorage3DEXT");
  1089. fnptr_ci_glTextureViewEXT = (PFNGLTEXTUREVIEWEXTPROC)loadEglProc("glTextureViewEXT");
  1090. fnptr_ci_glFramebufferTexture2DMultisampleIMG = (PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC)loadEglProc("glFramebufferTexture2DMultisampleIMG");
  1091. fnptr_ci_glApplyFramebufferAttachmentCMAAINTEL = (PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC)loadEglProc("glApplyFramebufferAttachmentCMAAINTEL");
  1092. fnptr_ci_glBeginPerfQueryINTEL = (PFNGLBEGINPERFQUERYINTELPROC)loadEglProc("glBeginPerfQueryINTEL");
  1093. fnptr_ci_glCreatePerfQueryINTEL = (PFNGLCREATEPERFQUERYINTELPROC)loadEglProc("glCreatePerfQueryINTEL");
  1094. fnptr_ci_glDeletePerfQueryINTEL = (PFNGLDELETEPERFQUERYINTELPROC)loadEglProc("glDeletePerfQueryINTEL");
  1095. fnptr_ci_glEndPerfQueryINTEL = (PFNGLENDPERFQUERYINTELPROC)loadEglProc("glEndPerfQueryINTEL");
  1096. fnptr_ci_glGetFirstPerfQueryIdINTEL = (PFNGLGETFIRSTPERFQUERYIDINTELPROC)loadEglProc("glGetFirstPerfQueryIdINTEL");
  1097. fnptr_ci_glGetNextPerfQueryIdINTEL = (PFNGLGETNEXTPERFQUERYIDINTELPROC)loadEglProc("glGetNextPerfQueryIdINTEL");
  1098. fnptr_ci_glGetPerfCounterInfoINTEL = (PFNGLGETPERFCOUNTERINFOINTELPROC)loadEglProc("glGetPerfCounterInfoINTEL");
  1099. fnptr_ci_glGetPerfQueryDataINTEL = (PFNGLGETPERFQUERYDATAINTELPROC)loadEglProc("glGetPerfQueryDataINTEL");
  1100. fnptr_ci_glGetPerfQueryIdByNameINTEL = (PFNGLGETPERFQUERYIDBYNAMEINTELPROC)loadEglProc("glGetPerfQueryIdByNameINTEL");
  1101. fnptr_ci_glGetPerfQueryInfoINTEL = (PFNGLGETPERFQUERYINFOINTELPROC)loadEglProc("glGetPerfQueryInfoINTEL");
  1102. fnptr_ci_glGetTextureHandleNV = (PFNGLGETTEXTUREHANDLENVPROC)loadEglProc("glGetTextureHandleNV");
  1103. fnptr_ci_glGetTextureSamplerHandleNV = (PFNGLGETTEXTURESAMPLERHANDLENVPROC)loadEglProc("glGetTextureSamplerHandleNV");
  1104. fnptr_ci_glMakeTextureHandleResidentNV = (PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)loadEglProc("glMakeTextureHandleResidentNV");
  1105. fnptr_ci_glMakeTextureHandleNonResidentNV = (PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)loadEglProc("glMakeTextureHandleNonResidentNV");
  1106. fnptr_ci_glGetImageHandleNV = (PFNGLGETIMAGEHANDLENVPROC)loadEglProc("glGetImageHandleNV");
  1107. fnptr_ci_glMakeImageHandleResidentNV = (PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)loadEglProc("glMakeImageHandleResidentNV");
  1108. fnptr_ci_glMakeImageHandleNonResidentNV = (PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)loadEglProc("glMakeImageHandleNonResidentNV");
  1109. fnptr_ci_glUniformHandleui64NV = (PFNGLUNIFORMHANDLEUI64NVPROC)loadEglProc("glUniformHandleui64NV");
  1110. fnptr_ci_glUniformHandleui64vNV = (PFNGLUNIFORMHANDLEUI64VNVPROC)loadEglProc("glUniformHandleui64vNV");
  1111. fnptr_ci_glProgramUniformHandleui64NV = (PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)loadEglProc("glProgramUniformHandleui64NV");
  1112. fnptr_ci_glProgramUniformHandleui64vNV = (PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)loadEglProc("glProgramUniformHandleui64vNV");
  1113. fnptr_ci_glIsTextureHandleResidentNV = (PFNGLISTEXTUREHANDLERESIDENTNVPROC)loadEglProc("glIsTextureHandleResidentNV");
  1114. fnptr_ci_glIsImageHandleResidentNV = (PFNGLISIMAGEHANDLERESIDENTNVPROC)loadEglProc("glIsImageHandleResidentNV");
  1115. fnptr_ci_glBlendParameteriNV = (PFNGLBLENDPARAMETERINVPROC)loadEglProc("glBlendParameteriNV");
  1116. fnptr_ci_glBlendBarrierNV = (PFNGLBLENDBARRIERNVPROC)loadEglProc("glBlendBarrierNV");
  1117. fnptr_ci_glBeginConditionalRenderNV = (PFNGLBEGINCONDITIONALRENDERNVPROC)loadEglProc("glBeginConditionalRenderNV");
  1118. fnptr_ci_glEndConditionalRenderNV = (PFNGLENDCONDITIONALRENDERNVPROC)loadEglProc("glEndConditionalRenderNV");
  1119. fnptr_ci_glSubpixelPrecisionBiasNV = (PFNGLSUBPIXELPRECISIONBIASNVPROC)loadEglProc("glSubpixelPrecisionBiasNV");
  1120. fnptr_ci_glCopyBufferSubDataNV = (PFNGLCOPYBUFFERSUBDATANVPROC)loadEglProc("glCopyBufferSubDataNV");
  1121. fnptr_ci_glCoverageMaskNV = (PFNGLCOVERAGEMASKNVPROC)loadEglProc("glCoverageMaskNV");
  1122. fnptr_ci_glCoverageOperationNV = (PFNGLCOVERAGEOPERATIONNVPROC)loadEglProc("glCoverageOperationNV");
  1123. fnptr_ci_glDrawBuffersNV = (PFNGLDRAWBUFFERSNVPROC)loadEglProc("glDrawBuffersNV");
  1124. fnptr_ci_glDeleteFencesNV = (PFNGLDELETEFENCESNVPROC)loadEglProc("glDeleteFencesNV");
  1125. fnptr_ci_glGenFencesNV = (PFNGLGENFENCESNVPROC)loadEglProc("glGenFencesNV");
  1126. fnptr_ci_glIsFenceNV = (PFNGLISFENCENVPROC)loadEglProc("glIsFenceNV");
  1127. fnptr_ci_glTestFenceNV = (PFNGLTESTFENCENVPROC)loadEglProc("glTestFenceNV");
  1128. fnptr_ci_glGetFenceivNV = (PFNGLGETFENCEIVNVPROC)loadEglProc("glGetFenceivNV");
  1129. fnptr_ci_glFinishFenceNV = (PFNGLFINISHFENCENVPROC)loadEglProc("glFinishFenceNV");
  1130. fnptr_ci_glSetFenceNV = (PFNGLSETFENCENVPROC)loadEglProc("glSetFenceNV");
  1131. fnptr_ci_glFragmentCoverageColorNV = (PFNGLFRAGMENTCOVERAGECOLORNVPROC)loadEglProc("glFragmentCoverageColorNV");
  1132. fnptr_ci_glCoverageModulationTableNV = (PFNGLCOVERAGEMODULATIONTABLENVPROC)loadEglProc("glCoverageModulationTableNV");
  1133. fnptr_ci_glGetCoverageModulationTableNV = (PFNGLGETCOVERAGEMODULATIONTABLENVPROC)loadEglProc("glGetCoverageModulationTableNV");
  1134. fnptr_ci_glCoverageModulationNV = (PFNGLCOVERAGEMODULATIONNVPROC)loadEglProc("glCoverageModulationNV");
  1135. fnptr_ci_glGetInternalformatSampleivNV = (PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)loadEglProc("glGetInternalformatSampleivNV");
  1136. fnptr_ci_glUniformMatrix2x3fvNV = (PFNGLUNIFORMMATRIX2X3FVNVPROC)loadEglProc("glUniformMatrix2x3fvNV");
  1137. fnptr_ci_glUniformMatrix3x2fvNV = (PFNGLUNIFORMMATRIX3X2FVNVPROC)loadEglProc("glUniformMatrix3x2fvNV");
  1138. fnptr_ci_glUniformMatrix2x4fvNV = (PFNGLUNIFORMMATRIX2X4FVNVPROC)loadEglProc("glUniformMatrix2x4fvNV");
  1139. fnptr_ci_glUniformMatrix4x2fvNV = (PFNGLUNIFORMMATRIX4X2FVNVPROC)loadEglProc("glUniformMatrix4x2fvNV");
  1140. fnptr_ci_glUniformMatrix3x4fvNV = (PFNGLUNIFORMMATRIX3X4FVNVPROC)loadEglProc("glUniformMatrix3x4fvNV");
  1141. fnptr_ci_glUniformMatrix4x3fvNV = (PFNGLUNIFORMMATRIX4X3FVNVPROC)loadEglProc("glUniformMatrix4x3fvNV");
  1142. fnptr_ci_glGenPathsNV = (PFNGLGENPATHSNVPROC)loadEglProc("glGenPathsNV");
  1143. fnptr_ci_glDeletePathsNV = (PFNGLDELETEPATHSNVPROC)loadEglProc("glDeletePathsNV");
  1144. fnptr_ci_glIsPathNV = (PFNGLISPATHNVPROC)loadEglProc("glIsPathNV");
  1145. fnptr_ci_glPathCommandsNV = (PFNGLPATHCOMMANDSNVPROC)loadEglProc("glPathCommandsNV");
  1146. fnptr_ci_glPathCoordsNV = (PFNGLPATHCOORDSNVPROC)loadEglProc("glPathCoordsNV");
  1147. fnptr_ci_glPathSubCommandsNV = (PFNGLPATHSUBCOMMANDSNVPROC)loadEglProc("glPathSubCommandsNV");
  1148. fnptr_ci_glPathSubCoordsNV = (PFNGLPATHSUBCOORDSNVPROC)loadEglProc("glPathSubCoordsNV");
  1149. fnptr_ci_glPathStringNV = (PFNGLPATHSTRINGNVPROC)loadEglProc("glPathStringNV");
  1150. fnptr_ci_glPathGlyphsNV = (PFNGLPATHGLYPHSNVPROC)loadEglProc("glPathGlyphsNV");
  1151. fnptr_ci_glPathGlyphRangeNV = (PFNGLPATHGLYPHRANGENVPROC)loadEglProc("glPathGlyphRangeNV");
  1152. fnptr_ci_glWeightPathsNV = (PFNGLWEIGHTPATHSNVPROC)loadEglProc("glWeightPathsNV");
  1153. fnptr_ci_glCopyPathNV = (PFNGLCOPYPATHNVPROC)loadEglProc("glCopyPathNV");
  1154. fnptr_ci_glInterpolatePathsNV = (PFNGLINTERPOLATEPATHSNVPROC)loadEglProc("glInterpolatePathsNV");
  1155. fnptr_ci_glTransformPathNV = (PFNGLTRANSFORMPATHNVPROC)loadEglProc("glTransformPathNV");
  1156. fnptr_ci_glPathParameterivNV = (PFNGLPATHPARAMETERIVNVPROC)loadEglProc("glPathParameterivNV");
  1157. fnptr_ci_glPathParameteriNV = (PFNGLPATHPARAMETERINVPROC)loadEglProc("glPathParameteriNV");
  1158. fnptr_ci_glPathParameterfvNV = (PFNGLPATHPARAMETERFVNVPROC)loadEglProc("glPathParameterfvNV");
  1159. fnptr_ci_glPathParameterfNV = (PFNGLPATHPARAMETERFNVPROC)loadEglProc("glPathParameterfNV");
  1160. fnptr_ci_glPathDashArrayNV = (PFNGLPATHDASHARRAYNVPROC)loadEglProc("glPathDashArrayNV");
  1161. fnptr_ci_glPathStencilFuncNV = (PFNGLPATHSTENCILFUNCNVPROC)loadEglProc("glPathStencilFuncNV");
  1162. fnptr_ci_glPathStencilDepthOffsetNV = (PFNGLPATHSTENCILDEPTHOFFSETNVPROC)loadEglProc("glPathStencilDepthOffsetNV");
  1163. fnptr_ci_glStencilFillPathNV = (PFNGLSTENCILFILLPATHNVPROC)loadEglProc("glStencilFillPathNV");
  1164. fnptr_ci_glStencilStrokePathNV = (PFNGLSTENCILSTROKEPATHNVPROC)loadEglProc("glStencilStrokePathNV");
  1165. fnptr_ci_glStencilFillPathInstancedNV = (PFNGLSTENCILFILLPATHINSTANCEDNVPROC)loadEglProc("glStencilFillPathInstancedNV");
  1166. fnptr_ci_glStencilStrokePathInstancedNV = (PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)loadEglProc("glStencilStrokePathInstancedNV");
  1167. fnptr_ci_glPathCoverDepthFuncNV = (PFNGLPATHCOVERDEPTHFUNCNVPROC)loadEglProc("glPathCoverDepthFuncNV");
  1168. fnptr_ci_glCoverFillPathNV = (PFNGLCOVERFILLPATHNVPROC)loadEglProc("glCoverFillPathNV");
  1169. fnptr_ci_glCoverStrokePathNV = (PFNGLCOVERSTROKEPATHNVPROC)loadEglProc("glCoverStrokePathNV");
  1170. fnptr_ci_glCoverFillPathInstancedNV = (PFNGLCOVERFILLPATHINSTANCEDNVPROC)loadEglProc("glCoverFillPathInstancedNV");
  1171. fnptr_ci_glCoverStrokePathInstancedNV = (PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)loadEglProc("glCoverStrokePathInstancedNV");
  1172. fnptr_ci_glGetPathParameterivNV = (PFNGLGETPATHPARAMETERIVNVPROC)loadEglProc("glGetPathParameterivNV");
  1173. fnptr_ci_glGetPathParameterfvNV = (PFNGLGETPATHPARAMETERFVNVPROC)loadEglProc("glGetPathParameterfvNV");
  1174. fnptr_ci_glGetPathCommandsNV = (PFNGLGETPATHCOMMANDSNVPROC)loadEglProc("glGetPathCommandsNV");
  1175. fnptr_ci_glGetPathCoordsNV = (PFNGLGETPATHCOORDSNVPROC)loadEglProc("glGetPathCoordsNV");
  1176. fnptr_ci_glGetPathDashArrayNV = (PFNGLGETPATHDASHARRAYNVPROC)loadEglProc("glGetPathDashArrayNV");
  1177. fnptr_ci_glGetPathMetricsNV = (PFNGLGETPATHMETRICSNVPROC)loadEglProc("glGetPathMetricsNV");
  1178. fnptr_ci_glGetPathMetricRangeNV = (PFNGLGETPATHMETRICRANGENVPROC)loadEglProc("glGetPathMetricRangeNV");
  1179. fnptr_ci_glGetPathSpacingNV = (PFNGLGETPATHSPACINGNVPROC)loadEglProc("glGetPathSpacingNV");
  1180. fnptr_ci_glIsPointInFillPathNV = (PFNGLISPOINTINFILLPATHNVPROC)loadEglProc("glIsPointInFillPathNV");
  1181. fnptr_ci_glIsPointInStrokePathNV = (PFNGLISPOINTINSTROKEPATHNVPROC)loadEglProc("glIsPointInStrokePathNV");
  1182. fnptr_ci_glGetPathLengthNV = (PFNGLGETPATHLENGTHNVPROC)loadEglProc("glGetPathLengthNV");
  1183. fnptr_ci_glPointAlongPathNV = (PFNGLPOINTALONGPATHNVPROC)loadEglProc("glPointAlongPathNV");
  1184. fnptr_ci_glMatrixLoad3x2fNV = (PFNGLMATRIXLOAD3X2FNVPROC)loadEglProc("glMatrixLoad3x2fNV");
  1185. fnptr_ci_glMatrixLoad3x3fNV = (PFNGLMATRIXLOAD3X3FNVPROC)loadEglProc("glMatrixLoad3x3fNV");
  1186. fnptr_ci_glMatrixLoadTranspose3x3fNV = (PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC)loadEglProc("glMatrixLoadTranspose3x3fNV");
  1187. fnptr_ci_glMatrixMult3x2fNV = (PFNGLMATRIXMULT3X2FNVPROC)loadEglProc("glMatrixMult3x2fNV");
  1188. fnptr_ci_glMatrixMult3x3fNV = (PFNGLMATRIXMULT3X3FNVPROC)loadEglProc("glMatrixMult3x3fNV");
  1189. fnptr_ci_glMatrixMultTranspose3x3fNV = (PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC)loadEglProc("glMatrixMultTranspose3x3fNV");
  1190. fnptr_ci_glStencilThenCoverFillPathNV = (PFNGLSTENCILTHENCOVERFILLPATHNVPROC)loadEglProc("glStencilThenCoverFillPathNV");
  1191. fnptr_ci_glStencilThenCoverStrokePathNV = (PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC)loadEglProc("glStencilThenCoverStrokePathNV");
  1192. fnptr_ci_glStencilThenCoverFillPathInstancedNV = (PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC)loadEglProc("glStencilThenCoverFillPathInstancedNV");
  1193. fnptr_ci_glStencilThenCoverStrokePathInstancedNV = (PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC)loadEglProc("glStencilThenCoverStrokePathInstancedNV");
  1194. fnptr_ci_glPathGlyphIndexRangeNV = (PFNGLPATHGLYPHINDEXRANGENVPROC)loadEglProc("glPathGlyphIndexRangeNV");
  1195. fnptr_ci_glPathGlyphIndexArrayNV = (PFNGLPATHGLYPHINDEXARRAYNVPROC)loadEglProc("glPathGlyphIndexArrayNV");
  1196. fnptr_ci_glPathMemoryGlyphIndexArrayNV = (PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC)loadEglProc("glPathMemoryGlyphIndexArrayNV");
  1197. fnptr_ci_glProgramPathFragmentInputGenNV = (PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC)loadEglProc("glProgramPathFragmentInputGenNV");
  1198. fnptr_ci_glGetProgramResourcefvNV = (PFNGLGETPROGRAMRESOURCEFVNVPROC)loadEglProc("glGetProgramResourcefvNV");
  1199. fnptr_ci_glPolygonModeNV = (PFNGLPOLYGONMODENVPROC)loadEglProc("glPolygonModeNV");
  1200. if( hasExtension( extstr_GL_NV_read_buffer ) ) {
  1201. fnptr_ci_glReadBufferNV = (PFNGLREADBUFFERNVPROC)loadEglProc("glReadBufferNV");
  1202. }
  1203. fnptr_ci_glFramebufferSampleLocationsfvNV = (PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)loadEglProc("glFramebufferSampleLocationsfvNV");
  1204. fnptr_ci_glNamedFramebufferSampleLocationsfvNV = (PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)loadEglProc("glNamedFramebufferSampleLocationsfvNV");
  1205. fnptr_ci_glResolveDepthValuesNV = (PFNGLRESOLVEDEPTHVALUESNVPROC)loadEglProc("glResolveDepthValuesNV");
  1206. fnptr_ci_glViewportArrayvNV = (PFNGLVIEWPORTARRAYVNVPROC)loadEglProc("glViewportArrayvNV");
  1207. fnptr_ci_glViewportIndexedfNV = (PFNGLVIEWPORTINDEXEDFNVPROC)loadEglProc("glViewportIndexedfNV");
  1208. fnptr_ci_glViewportIndexedfvNV = (PFNGLVIEWPORTINDEXEDFVNVPROC)loadEglProc("glViewportIndexedfvNV");
  1209. fnptr_ci_glScissorArrayvNV = (PFNGLSCISSORARRAYVNVPROC)loadEglProc("glScissorArrayvNV");
  1210. fnptr_ci_glScissorIndexedNV = (PFNGLSCISSORINDEXEDNVPROC)loadEglProc("glScissorIndexedNV");
  1211. fnptr_ci_glScissorIndexedvNV = (PFNGLSCISSORINDEXEDVNVPROC)loadEglProc("glScissorIndexedvNV");
  1212. fnptr_ci_glDepthRangeArrayfvNV = (PFNGLDEPTHRANGEARRAYFVNVPROC)loadEglProc("glDepthRangeArrayfvNV");
  1213. fnptr_ci_glDepthRangeIndexedfNV = (PFNGLDEPTHRANGEINDEXEDFNVPROC)loadEglProc("glDepthRangeIndexedfNV");
  1214. fnptr_ci_glGetFloati_vNV = (PFNGLGETFLOATI_VNVPROC)loadEglProc("glGetFloati_vNV");
  1215. fnptr_ci_glEnableiNV = (PFNGLENABLEINVPROC)loadEglProc("glEnableiNV");
  1216. fnptr_ci_glDisableiNV = (PFNGLDISABLEINVPROC)loadEglProc("glDisableiNV");
  1217. fnptr_ci_glIsEnablediNV = (PFNGLISENABLEDINVPROC)loadEglProc("glIsEnablediNV");
  1218. fnptr_ci_glFramebufferTextureMultiviewOVR = (PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)loadEglProc("glFramebufferTextureMultiviewOVR");
  1219. fnptr_ci_glAlphaFuncQCOM = (PFNGLALPHAFUNCQCOMPROC)loadEglProc("glAlphaFuncQCOM");
  1220. fnptr_ci_glGetDriverControlsQCOM = (PFNGLGETDRIVERCONTROLSQCOMPROC)loadEglProc("glGetDriverControlsQCOM");
  1221. fnptr_ci_glGetDriverControlStringQCOM = (PFNGLGETDRIVERCONTROLSTRINGQCOMPROC)loadEglProc("glGetDriverControlStringQCOM");
  1222. fnptr_ci_glEnableDriverControlQCOM = (PFNGLENABLEDRIVERCONTROLQCOMPROC)loadEglProc("glEnableDriverControlQCOM");
  1223. fnptr_ci_glDisableDriverControlQCOM = (PFNGLDISABLEDRIVERCONTROLQCOMPROC)loadEglProc("glDisableDriverControlQCOM");
  1224. fnptr_ci_glExtGetTexturesQCOM = (PFNGLEXTGETTEXTURESQCOMPROC)loadEglProc("glExtGetTexturesQCOM");
  1225. fnptr_ci_glExtGetBuffersQCOM = (PFNGLEXTGETBUFFERSQCOMPROC)loadEglProc("glExtGetBuffersQCOM");
  1226. fnptr_ci_glExtGetRenderbuffersQCOM = (PFNGLEXTGETRENDERBUFFERSQCOMPROC)loadEglProc("glExtGetRenderbuffersQCOM");
  1227. fnptr_ci_glExtGetFramebuffersQCOM = (PFNGLEXTGETFRAMEBUFFERSQCOMPROC)loadEglProc("glExtGetFramebuffersQCOM");
  1228. fnptr_ci_glExtGetTexLevelParameterivQCOM = (PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC)loadEglProc("glExtGetTexLevelParameterivQCOM");
  1229. fnptr_ci_glExtTexObjectStateOverrideiQCOM = (PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC)loadEglProc("glExtTexObjectStateOverrideiQCOM");
  1230. fnptr_ci_glExtGetTexSubImageQCOM = (PFNGLEXTGETTEXSUBIMAGEQCOMPROC)loadEglProc("glExtGetTexSubImageQCOM");
  1231. fnptr_ci_glExtGetBufferPointervQCOM = (PFNGLEXTGETBUFFERPOINTERVQCOMPROC)loadEglProc("glExtGetBufferPointervQCOM");
  1232. fnptr_ci_glExtGetShadersQCOM = (PFNGLEXTGETSHADERSQCOMPROC)loadEglProc("glExtGetShadersQCOM");
  1233. fnptr_ci_glExtGetProgramsQCOM = (PFNGLEXTGETPROGRAMSQCOMPROC)loadEglProc("glExtGetProgramsQCOM");
  1234. fnptr_ci_glExtIsProgramBinaryQCOM = (PFNGLEXTISPROGRAMBINARYQCOMPROC)loadEglProc("glExtIsProgramBinaryQCOM");
  1235. fnptr_ci_glExtGetProgramBinarySourceQCOM = (PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC)loadEglProc("glExtGetProgramBinarySourceQCOM");
  1236. fnptr_ci_glStartTilingQCOM = (PFNGLSTARTTILINGQCOMPROC)loadEglProc("glStartTilingQCOM");
  1237. fnptr_ci_glEndTilingQCOM = (PFNGLENDTILINGQCOMPROC)loadEglProc("glEndTilingQCOM");
  1238. #if ( CINDER_GL_ES_VERSION == CINDER_GL_ES_VERSION_2 )
  1239. // GL_OES_vertex_array_object
  1240. if( hasExtension( extstr_GL_OES_vertex_array_object ) || hasExtension( "GL_ARB_vertex_array_object" ) ) {
  1241. fnptr_ci_glBindVertexArrayOES = (PFNGLBINDVERTEXARRAYOESPROC)loadEglProc("glBindVertexArrayOES");
  1242. fnptr_ci_glDeleteVertexArraysOES = (PFNGLDELETEVERTEXARRAYSOESPROC)loadEglProc("glDeleteVertexArraysOES");
  1243. fnptr_ci_glGenVertexArraysOES = (PFNGLGENVERTEXARRAYSOESPROC)loadEglProc("glGenVertexArraysOES");
  1244. fnptr_ci_glIsVertexArrayOES = (PFNGLISVERTEXARRAYOESPROC)loadEglProc("glIsVertexArrayOES");
  1245. }
  1246. // GL_OES_mapbuffer
  1247. if( hasExtension( "GL_OES_mapbuffer" ) ) {
  1248. fnptr_ci_glMapBufferOES = (PFNGLMAPBUFFEROESPROC)loadEglProc("glMapBufferOES");
  1249. fnptr_ci_glUnmapBufferOES = (PFNGLUNMAPBUFFEROESPROC)loadEglProc("glUnmapBufferOES");
  1250. }
  1251. // GL_EXT_map_buffer_range
  1252. if( hasExtension( "GL_EXT_map_buffer_range" ) ) {
  1253. fnptr_ci_glMapBufferRangeEXT = (PFNGLMAPBUFFERRANGEEXTPROC)loadEglProc("glMapBufferRangeEXT");
  1254. fnptr_ci_glFlushMappedBufferRangeEXT = (PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC)loadEglProc("glFlushMappedBufferRangeEXT");
  1255. }
  1256. // GL_EXT_multisampled_render_to_texture and the like
  1257. if( hasExtension( "GL_ANGLE_framebuffer_multisample" ) ) {
  1258. fnptr_ci_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)loadEglProc("glRenderbufferStorageMultisampleANGLE");
  1259. }
  1260. else if( hasExtension( "GL_APPLE_framebuffer_multisample" ) ) {
  1261. fnptr_ci_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)loadEglProc("glRenderbufferStorageMultisampleAPPLE");
  1262. }
  1263. else if( hasExtension( "GL_EXT_multisampled_render_to_texture" ) ) {
  1264. fnptr_ci_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)loadEglProc("glRenderbufferStorageMultisampleEXT");
  1265. }
  1266. else if( hasExtension( "GL_IMG_multisampled_render_to_texture" ) ) {
  1267. fnptr_ci_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)loadEglProc("glRenderbufferStorageMultisampleIMG");
  1268. }
  1269. else if( hasExtension( "GL_NV_framebuffer_multisample" ) ) {
  1270. fnptr_ci_glRenderbufferStorageMultisample = (PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)loadEglProc("glRenderbufferStorageMultisampleNV");
  1271. }
  1272. // // GL_NV_framebuffer_blit, GL_ANGLE_framebuffer_blit
  1273. if( hasExtension( "GL_NV_framebuffer_blit" ) ) {
  1274. fnptr_ci_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)loadEglProc("glBlitFramebufferNV");
  1275. }
  1276. else if( hasExtension( "GL_ANGLE_framebuffer_blit" ) ) {
  1277. fnptr_ci_glBlitFramebuffer = (PFNGLBLITFRAMEBUFFERPROC)loadEglProc("glBlitFramebufferANGLE");
  1278. }
  1279. // GL_ANGLE_instanced_arrays, GL_EXT_draw_instanced, GL_NV_draw_instanced
  1280. if( hasExtension( "GL_ANGLE_instanced_arrays" ) ) {
  1281. fnptr_ci_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)loadEglProc("glDrawArraysInstancedANGLE");
  1282. fnptr_ci_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)loadEglProc("glDrawElementsInstancedANGLE");
  1283. }
  1284. else if( hasExtension( "GL_EXT_draw_instanced" ) ) {
  1285. fnptr_ci_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)loadEglProc("glDrawArraysInstancedEXT");
  1286. fnptr_ci_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)loadEglProc("glDrawElementsInstancedEXT");
  1287. }
  1288. else if( hasExtension( "GL_NV_draw_instanced" ) ) {
  1289. fnptr_ci_glDrawArraysInstanced = (PFNGLDRAWARRAYSINSTANCEDPROC)loadEglProc("glDrawArraysInstancedNV");
  1290. fnptr_ci_glDrawElementsInstanced = (PFNGLDRAWELEMENTSINSTANCEDPROC)loadEglProc("glDrawElementsInstancedNV");
  1291. }
  1292. // GL_ANGLE_instanced_arrays, GL_EXT_instanced_arrays, GL_NV_instanced_arrays
  1293. if( hasExtension( "GL_ANGLE_instanced_arrays" ) ) {
  1294. fnptr_ci_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)loadEglProc("glVertexAttribDivisorANGLE");
  1295. }
  1296. else if( hasExtension( "GL_EXT_instanced_arrays" ) ) {
  1297. fnptr_ci_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)loadEglProc("glVertexAttribDivisorEXT");
  1298. }
  1299. else if( hasExtension( "GL_NV_instanced_arrays" ) ) {
  1300. fnptr_ci_glVertexAttribDivisor = (PFNGLVERTEXATTRIBDIVISORPROC)loadEglProc("glVertexAttribDivisorNV");
  1301. }
  1302. #endif // ( CINDER_GL_ES_VERSION == CINDER_GL_ES_VERSION_2 )
  1303. #if ( CINDER_GL_ES_VERSION == CINDER_GL_ES_VERSION_2 )
  1304. fnptr_ci_glBufferStorage = (PFNGLBUFFERSTORAGEPROC)loadEglProc("glBufferStorageEXT");
  1305. #endif // ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_2 )
  1306. DEBUG( "gl_es_2_0_ext_load: SUCCESSFUL! | " << getLoadCount() << " procs loaded");
  1307. }
  1308. #endif // ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_2 )
  1309. // ----------------------------------------------------------------------------
  1310. // Android Extension Pack
  1311. // ----------------------------------------------------------------------------
  1312. #if ( CINDER_GL_ES_VERSION == CINDER_GL_ES_VERSION_3_1 )
  1313. PFNGLFRAMEBUFFERTEXTUREPROC fnptr_ci_glFramebufferTexture = nullptr;
  1314. PFNGLPATCHPARAMETERIPROC fnptr_ci_glPatchParameteri = nullptr;
  1315. void gl_es_aep_load()
  1316. {
  1317. //DEBUG( "gl_es_aep_load entered..." );
  1318. if( hasExtension( "GL_EXT_geometry_shader" ) ) {
  1319. fnptr_ci_glFramebufferTexture = (PFNGLFRAMEBUFFERTEXTUREPROC)loadEglProc("glFramebufferTextureEXT");
  1320. }
  1321. // GL_EXT_tessellation_shader, GL_OES_tessellation_shader
  1322. if( hasExtension( "GL_EXT_tessellation_shader" ) ) {
  1323. fnptr_ci_glPatchParameteri = (PFNGLPATCHPARAMETERIOESPROC)loadEglProc("glPatchParameteriEXT");
  1324. }
  1325. else if( hasExtension( "GL_OES_tessellation_shader" ) ) {
  1326. fnptr_ci_glPatchParameteri = (PFNGLPATCHPARAMETERIOESPROC)loadEglProc("glPatchParameteriOES");
  1327. }
  1328. DEBUG( "gl_es_2_0_ext_load: SUCCESSFUL! | " << getLoadCount() << " procs loaded");
  1329. }
  1330. #endif
  1331. #endif // defined( CINDER_ANDROID ) || defined( CINDER_LINUX )
  1332. // ----------------------------------------------------------------------------
  1333. // gl_es_load
  1334. // ----------------------------------------------------------------------------
  1335. #if defined( CINDER_ANDROID ) || defined( CINDER_LINUX )
  1336. static bool sInitialized = false;
  1337. static uint32_t sLoadCount = 0;
  1338. void gl_es_load()
  1339. {
  1340. if( sInitialized ) {
  1341. return;
  1342. }
  1343. DEBUG( "gl_es_load entered..." );
  1344. #if ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_2 )
  1345. gl_es_2_0_ext_load();
  1346. #endif
  1347. #if defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3 )
  1348. gl_es_3_0_load();
  1349. #endif
  1350. #if defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3_1 )
  1351. gl_es_3_1_load();
  1352. #endif
  1353. #if defined( CINDER_LINUX ) && ( CINDER_GL_ES_VERSION >= CINDER_GL_ES_VERSION_3_2 )
  1354. gl_es_3_2_load();
  1355. #endif
  1356. #if ( CINDER_GL_ES_VERSION == CINDER_GL_ES_VERSION_3_1 )
  1357. gl_es_aep_load();
  1358. #endif
  1359. sInitialized = true;
  1360. DEBUG( "gl_es_load: SUCCESSFUL" );
  1361. }
  1362. static bool hasExtension( const std::string& extName )
  1363. {
  1364. static std::string sExtensions;
  1365. if( sExtensions.empty() ) {
  1366. const char *buf = reinterpret_cast<const char*>( glGetString( GL_EXTENSIONS ) );
  1367. if( nullptr != buf ) {
  1368. sExtensions = std::string( reinterpret_cast<const char*>( buf ) );
  1369. std::transform( sExtensions.begin(), sExtensions.end(), sExtensions.begin(), ::tolower );
  1370. std::string extsStr = std::string( buf );
  1371. size_t startPos = 0;
  1372. size_t endPos = extsStr.find( ' ' );
  1373. bool done = ( std::string::npos == endPos );
  1374. while( ! done ) {
  1375. size_t len = endPos - startPos;
  1376. std::string s = extsStr.substr( startPos, len );
  1377. DEBUG( "Extension: " << s );
  1378. startPos = endPos + 1;
  1379. endPos = extsStr.find( ' ', startPos );
  1380. if( std::string::npos == endPos ) {
  1381. endPos = extsStr.length();
  1382. }
  1383. done = ( startPos >= endPos );
  1384. }
  1385. }
  1386. }
  1387. std::string extension = extName;
  1388. std::transform( extension.begin(), extension.end(), extension.begin(), ::tolower );
  1389. return ( std::string::npos != sExtensions.find( extension ) );
  1390. }
  1391. static void* loadEglProc( const std::string& procName )
  1392. {
  1393. uint8_t* result = (uint8_t *)eglGetProcAddress( procName.c_str() );
  1394. if( nullptr != result ) {
  1395. ++sLoadCount;
  1396. //DEBUG( " " << "loaded EGL proc: " << procName );
  1397. }
  1398. return reinterpret_cast<void*>( result );
  1399. }
  1400. static void clearLoadCount()
  1401. {
  1402. sLoadCount = 0;
  1403. }
  1404. static uint32_t getLoadCount()
  1405. {
  1406. return sLoadCount;
  1407. }
  1408. #endif // defined( CINDER_ANDROID ) || defined( CINDER_LINUX )