PageRenderTime 124ms CodeModel.GetById 30ms RepoModel.GetById 0ms app.codeStats 3ms

/ui/gl/gl_bindings_autogen_gl.cc

https://gitlab.com/hkratz/chromium
C++ | 11784 lines | 10474 code | 1301 blank | 9 comment | 834 complexity | 6392ba2b469dabcbd5013216828f5520 MD5 | raw file
  1. // Copyright 2014 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. //
  5. // This file is auto-generated from
  6. // ui/gl/generate_bindings.py
  7. // It's formatted by clang-format using chromium coding style:
  8. // clang-format -i -style=chromium filename
  9. // DO NOT EDIT!
  10. #include <string>
  11. #include "base/trace_event/trace_event.h"
  12. #include "ui/gl/gl_bindings.h"
  13. #include "ui/gl/gl_context.h"
  14. #include "ui/gl/gl_enums.h"
  15. #include "ui/gl/gl_gl_api_implementation.h"
  16. #include "ui/gl/gl_implementation.h"
  17. #include "ui/gl/gl_version_info.h"
  18. namespace gfx {
  19. static bool g_debugBindingsInitialized;
  20. DriverGL g_driver_gl;
  21. void DriverGL::InitializeStaticBindings() {
  22. fn.glActiveTextureFn = reinterpret_cast<glActiveTextureProc>(
  23. GetGLProcAddress("glActiveTexture"));
  24. fn.glApplyFramebufferAttachmentCMAAINTELFn = 0;
  25. fn.glAttachShaderFn =
  26. reinterpret_cast<glAttachShaderProc>(GetGLProcAddress("glAttachShader"));
  27. fn.glBeginQueryFn = 0;
  28. fn.glBeginTransformFeedbackFn = 0;
  29. fn.glBindAttribLocationFn = reinterpret_cast<glBindAttribLocationProc>(
  30. GetGLProcAddress("glBindAttribLocation"));
  31. fn.glBindBufferFn =
  32. reinterpret_cast<glBindBufferProc>(GetGLProcAddress("glBindBuffer"));
  33. fn.glBindBufferBaseFn = 0;
  34. fn.glBindBufferRangeFn = 0;
  35. fn.glBindFragDataLocationFn = 0;
  36. fn.glBindFragDataLocationIndexedFn = 0;
  37. fn.glBindFramebufferEXTFn = 0;
  38. fn.glBindImageTextureEXTFn = 0;
  39. fn.glBindRenderbufferEXTFn = 0;
  40. fn.glBindSamplerFn = 0;
  41. fn.glBindTextureFn =
  42. reinterpret_cast<glBindTextureProc>(GetGLProcAddress("glBindTexture"));
  43. fn.glBindTransformFeedbackFn = 0;
  44. fn.glBindVertexArrayOESFn = 0;
  45. fn.glBlendBarrierKHRFn = 0;
  46. fn.glBlendColorFn =
  47. reinterpret_cast<glBlendColorProc>(GetGLProcAddress("glBlendColor"));
  48. fn.glBlendEquationFn = reinterpret_cast<glBlendEquationProc>(
  49. GetGLProcAddress("glBlendEquation"));
  50. fn.glBlendEquationSeparateFn = reinterpret_cast<glBlendEquationSeparateProc>(
  51. GetGLProcAddress("glBlendEquationSeparate"));
  52. fn.glBlendFuncFn =
  53. reinterpret_cast<glBlendFuncProc>(GetGLProcAddress("glBlendFunc"));
  54. fn.glBlendFuncSeparateFn = reinterpret_cast<glBlendFuncSeparateProc>(
  55. GetGLProcAddress("glBlendFuncSeparate"));
  56. fn.glBlitFramebufferFn = 0;
  57. fn.glBlitFramebufferANGLEFn = 0;
  58. fn.glBlitFramebufferEXTFn = 0;
  59. fn.glBufferDataFn =
  60. reinterpret_cast<glBufferDataProc>(GetGLProcAddress("glBufferData"));
  61. fn.glBufferSubDataFn = reinterpret_cast<glBufferSubDataProc>(
  62. GetGLProcAddress("glBufferSubData"));
  63. fn.glCheckFramebufferStatusEXTFn = 0;
  64. fn.glClearFn = reinterpret_cast<glClearProc>(GetGLProcAddress("glClear"));
  65. fn.glClearBufferfiFn = 0;
  66. fn.glClearBufferfvFn = 0;
  67. fn.glClearBufferivFn = 0;
  68. fn.glClearBufferuivFn = 0;
  69. fn.glClearColorFn =
  70. reinterpret_cast<glClearColorProc>(GetGLProcAddress("glClearColor"));
  71. fn.glClearDepthFn =
  72. reinterpret_cast<glClearDepthProc>(GetGLProcAddress("glClearDepth"));
  73. fn.glClearDepthfFn = 0;
  74. fn.glClearStencilFn =
  75. reinterpret_cast<glClearStencilProc>(GetGLProcAddress("glClearStencil"));
  76. fn.glClientWaitSyncFn = 0;
  77. fn.glColorMaskFn =
  78. reinterpret_cast<glColorMaskProc>(GetGLProcAddress("glColorMask"));
  79. fn.glCompileShaderFn = reinterpret_cast<glCompileShaderProc>(
  80. GetGLProcAddress("glCompileShader"));
  81. fn.glCompressedTexImage2DFn = reinterpret_cast<glCompressedTexImage2DProc>(
  82. GetGLProcAddress("glCompressedTexImage2D"));
  83. fn.glCompressedTexImage3DFn = 0;
  84. fn.glCompressedTexSubImage2DFn =
  85. reinterpret_cast<glCompressedTexSubImage2DProc>(
  86. GetGLProcAddress("glCompressedTexSubImage2D"));
  87. fn.glCompressedTexSubImage3DFn = 0;
  88. fn.glCopyBufferSubDataFn = 0;
  89. fn.glCopyTexImage2DFn = reinterpret_cast<glCopyTexImage2DProc>(
  90. GetGLProcAddress("glCopyTexImage2D"));
  91. fn.glCopyTexSubImage2DFn = reinterpret_cast<glCopyTexSubImage2DProc>(
  92. GetGLProcAddress("glCopyTexSubImage2D"));
  93. fn.glCopyTexSubImage3DFn = 0;
  94. fn.glCoverageModulationNVFn = 0;
  95. fn.glCoverFillPathInstancedNVFn = 0;
  96. fn.glCoverFillPathNVFn = 0;
  97. fn.glCoverStrokePathInstancedNVFn = 0;
  98. fn.glCoverStrokePathNVFn = 0;
  99. fn.glCreateProgramFn = reinterpret_cast<glCreateProgramProc>(
  100. GetGLProcAddress("glCreateProgram"));
  101. fn.glCreateShaderFn =
  102. reinterpret_cast<glCreateShaderProc>(GetGLProcAddress("glCreateShader"));
  103. fn.glCullFaceFn =
  104. reinterpret_cast<glCullFaceProc>(GetGLProcAddress("glCullFace"));
  105. fn.glDeleteBuffersARBFn = reinterpret_cast<glDeleteBuffersARBProc>(
  106. GetGLProcAddress("glDeleteBuffers"));
  107. fn.glDeleteFencesAPPLEFn = 0;
  108. fn.glDeleteFencesNVFn = 0;
  109. fn.glDeleteFramebuffersEXTFn = 0;
  110. fn.glDeletePathsNVFn = 0;
  111. fn.glDeleteProgramFn = reinterpret_cast<glDeleteProgramProc>(
  112. GetGLProcAddress("glDeleteProgram"));
  113. fn.glDeleteQueriesFn = 0;
  114. fn.glDeleteRenderbuffersEXTFn = 0;
  115. fn.glDeleteSamplersFn = 0;
  116. fn.glDeleteShaderFn =
  117. reinterpret_cast<glDeleteShaderProc>(GetGLProcAddress("glDeleteShader"));
  118. fn.glDeleteSyncFn = 0;
  119. fn.glDeleteTexturesFn = reinterpret_cast<glDeleteTexturesProc>(
  120. GetGLProcAddress("glDeleteTextures"));
  121. fn.glDeleteTransformFeedbacksFn = 0;
  122. fn.glDeleteVertexArraysOESFn = 0;
  123. fn.glDepthFuncFn =
  124. reinterpret_cast<glDepthFuncProc>(GetGLProcAddress("glDepthFunc"));
  125. fn.glDepthMaskFn =
  126. reinterpret_cast<glDepthMaskProc>(GetGLProcAddress("glDepthMask"));
  127. fn.glDepthRangeFn =
  128. reinterpret_cast<glDepthRangeProc>(GetGLProcAddress("glDepthRange"));
  129. fn.glDepthRangefFn = 0;
  130. fn.glDetachShaderFn =
  131. reinterpret_cast<glDetachShaderProc>(GetGLProcAddress("glDetachShader"));
  132. fn.glDisableFn =
  133. reinterpret_cast<glDisableProc>(GetGLProcAddress("glDisable"));
  134. fn.glDisableVertexAttribArrayFn =
  135. reinterpret_cast<glDisableVertexAttribArrayProc>(
  136. GetGLProcAddress("glDisableVertexAttribArray"));
  137. fn.glDiscardFramebufferEXTFn = 0;
  138. fn.glDrawArraysFn =
  139. reinterpret_cast<glDrawArraysProc>(GetGLProcAddress("glDrawArrays"));
  140. fn.glDrawArraysInstancedANGLEFn = 0;
  141. fn.glDrawBufferFn = 0;
  142. fn.glDrawBuffersARBFn = 0;
  143. fn.glDrawElementsFn =
  144. reinterpret_cast<glDrawElementsProc>(GetGLProcAddress("glDrawElements"));
  145. fn.glDrawElementsInstancedANGLEFn = 0;
  146. fn.glDrawRangeElementsFn = 0;
  147. fn.glEGLImageTargetRenderbufferStorageOESFn = 0;
  148. fn.glEGLImageTargetTexture2DOESFn = 0;
  149. fn.glEnableFn = reinterpret_cast<glEnableProc>(GetGLProcAddress("glEnable"));
  150. fn.glEnableVertexAttribArrayFn =
  151. reinterpret_cast<glEnableVertexAttribArrayProc>(
  152. GetGLProcAddress("glEnableVertexAttribArray"));
  153. fn.glEndQueryFn = 0;
  154. fn.glEndTransformFeedbackFn = 0;
  155. fn.glFenceSyncFn = 0;
  156. fn.glFinishFn = reinterpret_cast<glFinishProc>(GetGLProcAddress("glFinish"));
  157. fn.glFinishFenceAPPLEFn = 0;
  158. fn.glFinishFenceNVFn = 0;
  159. fn.glFlushFn = reinterpret_cast<glFlushProc>(GetGLProcAddress("glFlush"));
  160. fn.glFlushMappedBufferRangeFn = 0;
  161. fn.glFramebufferRenderbufferEXTFn = 0;
  162. fn.glFramebufferTexture2DEXTFn = 0;
  163. fn.glFramebufferTexture2DMultisampleEXTFn = 0;
  164. fn.glFramebufferTexture2DMultisampleIMGFn = 0;
  165. fn.glFramebufferTextureLayerFn = 0;
  166. fn.glFrontFaceFn =
  167. reinterpret_cast<glFrontFaceProc>(GetGLProcAddress("glFrontFace"));
  168. fn.glGenBuffersARBFn =
  169. reinterpret_cast<glGenBuffersARBProc>(GetGLProcAddress("glGenBuffers"));
  170. fn.glGenerateMipmapEXTFn = 0;
  171. fn.glGenFencesAPPLEFn = 0;
  172. fn.glGenFencesNVFn = 0;
  173. fn.glGenFramebuffersEXTFn = 0;
  174. fn.glGenPathsNVFn = 0;
  175. fn.glGenQueriesFn = 0;
  176. fn.glGenRenderbuffersEXTFn = 0;
  177. fn.glGenSamplersFn = 0;
  178. fn.glGenTexturesFn =
  179. reinterpret_cast<glGenTexturesProc>(GetGLProcAddress("glGenTextures"));
  180. fn.glGenTransformFeedbacksFn = 0;
  181. fn.glGenVertexArraysOESFn = 0;
  182. fn.glGetActiveAttribFn = reinterpret_cast<glGetActiveAttribProc>(
  183. GetGLProcAddress("glGetActiveAttrib"));
  184. fn.glGetActiveUniformFn = reinterpret_cast<glGetActiveUniformProc>(
  185. GetGLProcAddress("glGetActiveUniform"));
  186. fn.glGetActiveUniformBlockivFn = 0;
  187. fn.glGetActiveUniformBlockNameFn = 0;
  188. fn.glGetActiveUniformsivFn = 0;
  189. fn.glGetAttachedShadersFn = reinterpret_cast<glGetAttachedShadersProc>(
  190. GetGLProcAddress("glGetAttachedShaders"));
  191. fn.glGetAttribLocationFn = reinterpret_cast<glGetAttribLocationProc>(
  192. GetGLProcAddress("glGetAttribLocation"));
  193. fn.glGetBooleanvFn =
  194. reinterpret_cast<glGetBooleanvProc>(GetGLProcAddress("glGetBooleanv"));
  195. fn.glGetBufferParameterivFn = reinterpret_cast<glGetBufferParameterivProc>(
  196. GetGLProcAddress("glGetBufferParameteriv"));
  197. fn.glGetErrorFn =
  198. reinterpret_cast<glGetErrorProc>(GetGLProcAddress("glGetError"));
  199. fn.glGetFenceivNVFn = 0;
  200. fn.glGetFloatvFn =
  201. reinterpret_cast<glGetFloatvProc>(GetGLProcAddress("glGetFloatv"));
  202. fn.glGetFragDataIndexFn = 0;
  203. fn.glGetFragDataLocationFn = 0;
  204. fn.glGetFramebufferAttachmentParameterivEXTFn = 0;
  205. fn.glGetGraphicsResetStatusARBFn = 0;
  206. fn.glGetInteger64i_vFn = 0;
  207. fn.glGetInteger64vFn = 0;
  208. fn.glGetIntegeri_vFn = 0;
  209. fn.glGetIntegervFn =
  210. reinterpret_cast<glGetIntegervProc>(GetGLProcAddress("glGetIntegerv"));
  211. fn.glGetInternalformativFn = 0;
  212. fn.glGetProgramBinaryFn = 0;
  213. fn.glGetProgramInfoLogFn = reinterpret_cast<glGetProgramInfoLogProc>(
  214. GetGLProcAddress("glGetProgramInfoLog"));
  215. fn.glGetProgramInterfaceivFn = 0;
  216. fn.glGetProgramivFn =
  217. reinterpret_cast<glGetProgramivProc>(GetGLProcAddress("glGetProgramiv"));
  218. fn.glGetProgramResourceivFn = 0;
  219. fn.glGetProgramResourceLocationFn = 0;
  220. fn.glGetProgramResourceNameFn = 0;
  221. fn.glGetQueryivFn = 0;
  222. fn.glGetQueryObjecti64vFn = 0;
  223. fn.glGetQueryObjectivFn = 0;
  224. fn.glGetQueryObjectui64vFn = 0;
  225. fn.glGetQueryObjectuivFn = 0;
  226. fn.glGetRenderbufferParameterivEXTFn = 0;
  227. fn.glGetSamplerParameterfvFn = 0;
  228. fn.glGetSamplerParameterivFn = 0;
  229. fn.glGetShaderInfoLogFn = reinterpret_cast<glGetShaderInfoLogProc>(
  230. GetGLProcAddress("glGetShaderInfoLog"));
  231. fn.glGetShaderivFn =
  232. reinterpret_cast<glGetShaderivProc>(GetGLProcAddress("glGetShaderiv"));
  233. fn.glGetShaderPrecisionFormatFn = 0;
  234. fn.glGetShaderSourceFn = reinterpret_cast<glGetShaderSourceProc>(
  235. GetGLProcAddress("glGetShaderSource"));
  236. fn.glGetStringFn =
  237. reinterpret_cast<glGetStringProc>(GetGLProcAddress("glGetString"));
  238. fn.glGetStringiFn =
  239. reinterpret_cast<glGetStringiProc>(GetGLProcAddress("glGetStringi"));
  240. fn.glGetSyncivFn = 0;
  241. fn.glGetTexLevelParameterfvFn = 0;
  242. fn.glGetTexLevelParameterivFn = 0;
  243. fn.glGetTexParameterfvFn = reinterpret_cast<glGetTexParameterfvProc>(
  244. GetGLProcAddress("glGetTexParameterfv"));
  245. fn.glGetTexParameterivFn = reinterpret_cast<glGetTexParameterivProc>(
  246. GetGLProcAddress("glGetTexParameteriv"));
  247. fn.glGetTransformFeedbackVaryingFn = 0;
  248. fn.glGetTranslatedShaderSourceANGLEFn = 0;
  249. fn.glGetUniformBlockIndexFn = 0;
  250. fn.glGetUniformfvFn =
  251. reinterpret_cast<glGetUniformfvProc>(GetGLProcAddress("glGetUniformfv"));
  252. fn.glGetUniformIndicesFn = 0;
  253. fn.glGetUniformivFn =
  254. reinterpret_cast<glGetUniformivProc>(GetGLProcAddress("glGetUniformiv"));
  255. fn.glGetUniformLocationFn = reinterpret_cast<glGetUniformLocationProc>(
  256. GetGLProcAddress("glGetUniformLocation"));
  257. fn.glGetUniformuivFn = 0;
  258. fn.glGetVertexAttribfvFn = reinterpret_cast<glGetVertexAttribfvProc>(
  259. GetGLProcAddress("glGetVertexAttribfv"));
  260. fn.glGetVertexAttribivFn = reinterpret_cast<glGetVertexAttribivProc>(
  261. GetGLProcAddress("glGetVertexAttribiv"));
  262. fn.glGetVertexAttribPointervFn =
  263. reinterpret_cast<glGetVertexAttribPointervProc>(
  264. GetGLProcAddress("glGetVertexAttribPointerv"));
  265. fn.glHintFn = reinterpret_cast<glHintProc>(GetGLProcAddress("glHint"));
  266. fn.glInsertEventMarkerEXTFn = 0;
  267. fn.glInvalidateFramebufferFn = 0;
  268. fn.glInvalidateSubFramebufferFn = 0;
  269. fn.glIsBufferFn =
  270. reinterpret_cast<glIsBufferProc>(GetGLProcAddress("glIsBuffer"));
  271. fn.glIsEnabledFn =
  272. reinterpret_cast<glIsEnabledProc>(GetGLProcAddress("glIsEnabled"));
  273. fn.glIsFenceAPPLEFn = 0;
  274. fn.glIsFenceNVFn = 0;
  275. fn.glIsFramebufferEXTFn = 0;
  276. fn.glIsPathNVFn = 0;
  277. fn.glIsProgramFn =
  278. reinterpret_cast<glIsProgramProc>(GetGLProcAddress("glIsProgram"));
  279. fn.glIsQueryFn = 0;
  280. fn.glIsRenderbufferEXTFn = 0;
  281. fn.glIsSamplerFn = 0;
  282. fn.glIsShaderFn =
  283. reinterpret_cast<glIsShaderProc>(GetGLProcAddress("glIsShader"));
  284. fn.glIsSyncFn = 0;
  285. fn.glIsTextureFn =
  286. reinterpret_cast<glIsTextureProc>(GetGLProcAddress("glIsTexture"));
  287. fn.glIsTransformFeedbackFn = 0;
  288. fn.glIsVertexArrayOESFn = 0;
  289. fn.glLineWidthFn =
  290. reinterpret_cast<glLineWidthProc>(GetGLProcAddress("glLineWidth"));
  291. fn.glLinkProgramFn =
  292. reinterpret_cast<glLinkProgramProc>(GetGLProcAddress("glLinkProgram"));
  293. fn.glMapBufferFn = 0;
  294. fn.glMapBufferRangeFn = 0;
  295. fn.glMatrixLoadfEXTFn = 0;
  296. fn.glMatrixLoadIdentityEXTFn = 0;
  297. fn.glMemoryBarrierEXTFn = 0;
  298. fn.glPathCommandsNVFn = 0;
  299. fn.glPathParameterfNVFn = 0;
  300. fn.glPathParameteriNVFn = 0;
  301. fn.glPathStencilFuncNVFn = 0;
  302. fn.glPauseTransformFeedbackFn = 0;
  303. fn.glPixelStoreiFn =
  304. reinterpret_cast<glPixelStoreiProc>(GetGLProcAddress("glPixelStorei"));
  305. fn.glPointParameteriFn = 0;
  306. fn.glPolygonOffsetFn = reinterpret_cast<glPolygonOffsetProc>(
  307. GetGLProcAddress("glPolygonOffset"));
  308. fn.glPopGroupMarkerEXTFn = 0;
  309. fn.glProgramBinaryFn = 0;
  310. fn.glProgramParameteriFn = 0;
  311. fn.glProgramPathFragmentInputGenNVFn = 0;
  312. fn.glPushGroupMarkerEXTFn = 0;
  313. fn.glQueryCounterFn = 0;
  314. fn.glReadBufferFn = 0;
  315. fn.glReadPixelsFn =
  316. reinterpret_cast<glReadPixelsProc>(GetGLProcAddress("glReadPixels"));
  317. fn.glReleaseShaderCompilerFn = 0;
  318. fn.glRenderbufferStorageEXTFn = 0;
  319. fn.glRenderbufferStorageMultisampleFn = 0;
  320. fn.glRenderbufferStorageMultisampleANGLEFn = 0;
  321. fn.glRenderbufferStorageMultisampleEXTFn = 0;
  322. fn.glRenderbufferStorageMultisampleIMGFn = 0;
  323. fn.glResumeTransformFeedbackFn = 0;
  324. fn.glSampleCoverageFn = reinterpret_cast<glSampleCoverageProc>(
  325. GetGLProcAddress("glSampleCoverage"));
  326. fn.glSamplerParameterfFn = 0;
  327. fn.glSamplerParameterfvFn = 0;
  328. fn.glSamplerParameteriFn = 0;
  329. fn.glSamplerParameterivFn = 0;
  330. fn.glScissorFn =
  331. reinterpret_cast<glScissorProc>(GetGLProcAddress("glScissor"));
  332. fn.glSetFenceAPPLEFn = 0;
  333. fn.glSetFenceNVFn = 0;
  334. fn.glShaderBinaryFn = 0;
  335. fn.glShaderSourceFn =
  336. reinterpret_cast<glShaderSourceProc>(GetGLProcAddress("glShaderSource"));
  337. fn.glStencilFillPathInstancedNVFn = 0;
  338. fn.glStencilFillPathNVFn = 0;
  339. fn.glStencilFuncFn =
  340. reinterpret_cast<glStencilFuncProc>(GetGLProcAddress("glStencilFunc"));
  341. fn.glStencilFuncSeparateFn = reinterpret_cast<glStencilFuncSeparateProc>(
  342. GetGLProcAddress("glStencilFuncSeparate"));
  343. fn.glStencilMaskFn =
  344. reinterpret_cast<glStencilMaskProc>(GetGLProcAddress("glStencilMask"));
  345. fn.glStencilMaskSeparateFn = reinterpret_cast<glStencilMaskSeparateProc>(
  346. GetGLProcAddress("glStencilMaskSeparate"));
  347. fn.glStencilOpFn =
  348. reinterpret_cast<glStencilOpProc>(GetGLProcAddress("glStencilOp"));
  349. fn.glStencilOpSeparateFn = reinterpret_cast<glStencilOpSeparateProc>(
  350. GetGLProcAddress("glStencilOpSeparate"));
  351. fn.glStencilStrokePathInstancedNVFn = 0;
  352. fn.glStencilStrokePathNVFn = 0;
  353. fn.glStencilThenCoverFillPathInstancedNVFn = 0;
  354. fn.glStencilThenCoverFillPathNVFn = 0;
  355. fn.glStencilThenCoverStrokePathInstancedNVFn = 0;
  356. fn.glStencilThenCoverStrokePathNVFn = 0;
  357. fn.glTestFenceAPPLEFn = 0;
  358. fn.glTestFenceNVFn = 0;
  359. fn.glTexImage2DFn =
  360. reinterpret_cast<glTexImage2DProc>(GetGLProcAddress("glTexImage2D"));
  361. fn.glTexImage3DFn = 0;
  362. fn.glTexParameterfFn = reinterpret_cast<glTexParameterfProc>(
  363. GetGLProcAddress("glTexParameterf"));
  364. fn.glTexParameterfvFn = reinterpret_cast<glTexParameterfvProc>(
  365. GetGLProcAddress("glTexParameterfv"));
  366. fn.glTexParameteriFn = reinterpret_cast<glTexParameteriProc>(
  367. GetGLProcAddress("glTexParameteri"));
  368. fn.glTexParameterivFn = reinterpret_cast<glTexParameterivProc>(
  369. GetGLProcAddress("glTexParameteriv"));
  370. fn.glTexStorage2DEXTFn = 0;
  371. fn.glTexStorage3DFn = 0;
  372. fn.glTexSubImage2DFn = reinterpret_cast<glTexSubImage2DProc>(
  373. GetGLProcAddress("glTexSubImage2D"));
  374. fn.glTexSubImage3DFn = 0;
  375. fn.glTransformFeedbackVaryingsFn = 0;
  376. fn.glUniform1fFn =
  377. reinterpret_cast<glUniform1fProc>(GetGLProcAddress("glUniform1f"));
  378. fn.glUniform1fvFn =
  379. reinterpret_cast<glUniform1fvProc>(GetGLProcAddress("glUniform1fv"));
  380. fn.glUniform1iFn =
  381. reinterpret_cast<glUniform1iProc>(GetGLProcAddress("glUniform1i"));
  382. fn.glUniform1ivFn =
  383. reinterpret_cast<glUniform1ivProc>(GetGLProcAddress("glUniform1iv"));
  384. fn.glUniform1uiFn = 0;
  385. fn.glUniform1uivFn = 0;
  386. fn.glUniform2fFn =
  387. reinterpret_cast<glUniform2fProc>(GetGLProcAddress("glUniform2f"));
  388. fn.glUniform2fvFn =
  389. reinterpret_cast<glUniform2fvProc>(GetGLProcAddress("glUniform2fv"));
  390. fn.glUniform2iFn =
  391. reinterpret_cast<glUniform2iProc>(GetGLProcAddress("glUniform2i"));
  392. fn.glUniform2ivFn =
  393. reinterpret_cast<glUniform2ivProc>(GetGLProcAddress("glUniform2iv"));
  394. fn.glUniform2uiFn = 0;
  395. fn.glUniform2uivFn = 0;
  396. fn.glUniform3fFn =
  397. reinterpret_cast<glUniform3fProc>(GetGLProcAddress("glUniform3f"));
  398. fn.glUniform3fvFn =
  399. reinterpret_cast<glUniform3fvProc>(GetGLProcAddress("glUniform3fv"));
  400. fn.glUniform3iFn =
  401. reinterpret_cast<glUniform3iProc>(GetGLProcAddress("glUniform3i"));
  402. fn.glUniform3ivFn =
  403. reinterpret_cast<glUniform3ivProc>(GetGLProcAddress("glUniform3iv"));
  404. fn.glUniform3uiFn = 0;
  405. fn.glUniform3uivFn = 0;
  406. fn.glUniform4fFn =
  407. reinterpret_cast<glUniform4fProc>(GetGLProcAddress("glUniform4f"));
  408. fn.glUniform4fvFn =
  409. reinterpret_cast<glUniform4fvProc>(GetGLProcAddress("glUniform4fv"));
  410. fn.glUniform4iFn =
  411. reinterpret_cast<glUniform4iProc>(GetGLProcAddress("glUniform4i"));
  412. fn.glUniform4ivFn =
  413. reinterpret_cast<glUniform4ivProc>(GetGLProcAddress("glUniform4iv"));
  414. fn.glUniform4uiFn = 0;
  415. fn.glUniform4uivFn = 0;
  416. fn.glUniformBlockBindingFn = 0;
  417. fn.glUniformMatrix2fvFn = reinterpret_cast<glUniformMatrix2fvProc>(
  418. GetGLProcAddress("glUniformMatrix2fv"));
  419. fn.glUniformMatrix2x3fvFn = 0;
  420. fn.glUniformMatrix2x4fvFn = 0;
  421. fn.glUniformMatrix3fvFn = reinterpret_cast<glUniformMatrix3fvProc>(
  422. GetGLProcAddress("glUniformMatrix3fv"));
  423. fn.glUniformMatrix3x2fvFn = 0;
  424. fn.glUniformMatrix3x4fvFn = 0;
  425. fn.glUniformMatrix4fvFn = reinterpret_cast<glUniformMatrix4fvProc>(
  426. GetGLProcAddress("glUniformMatrix4fv"));
  427. fn.glUniformMatrix4x2fvFn = 0;
  428. fn.glUniformMatrix4x3fvFn = 0;
  429. fn.glUnmapBufferFn = 0;
  430. fn.glUseProgramFn =
  431. reinterpret_cast<glUseProgramProc>(GetGLProcAddress("glUseProgram"));
  432. fn.glValidateProgramFn = reinterpret_cast<glValidateProgramProc>(
  433. GetGLProcAddress("glValidateProgram"));
  434. fn.glVertexAttrib1fFn = reinterpret_cast<glVertexAttrib1fProc>(
  435. GetGLProcAddress("glVertexAttrib1f"));
  436. fn.glVertexAttrib1fvFn = reinterpret_cast<glVertexAttrib1fvProc>(
  437. GetGLProcAddress("glVertexAttrib1fv"));
  438. fn.glVertexAttrib2fFn = reinterpret_cast<glVertexAttrib2fProc>(
  439. GetGLProcAddress("glVertexAttrib2f"));
  440. fn.glVertexAttrib2fvFn = reinterpret_cast<glVertexAttrib2fvProc>(
  441. GetGLProcAddress("glVertexAttrib2fv"));
  442. fn.glVertexAttrib3fFn = reinterpret_cast<glVertexAttrib3fProc>(
  443. GetGLProcAddress("glVertexAttrib3f"));
  444. fn.glVertexAttrib3fvFn = reinterpret_cast<glVertexAttrib3fvProc>(
  445. GetGLProcAddress("glVertexAttrib3fv"));
  446. fn.glVertexAttrib4fFn = reinterpret_cast<glVertexAttrib4fProc>(
  447. GetGLProcAddress("glVertexAttrib4f"));
  448. fn.glVertexAttrib4fvFn = reinterpret_cast<glVertexAttrib4fvProc>(
  449. GetGLProcAddress("glVertexAttrib4fv"));
  450. fn.glVertexAttribDivisorANGLEFn = 0;
  451. fn.glVertexAttribI4iFn = 0;
  452. fn.glVertexAttribI4ivFn = 0;
  453. fn.glVertexAttribI4uiFn = 0;
  454. fn.glVertexAttribI4uivFn = 0;
  455. fn.glVertexAttribIPointerFn = 0;
  456. fn.glVertexAttribPointerFn = reinterpret_cast<glVertexAttribPointerProc>(
  457. GetGLProcAddress("glVertexAttribPointer"));
  458. fn.glViewportFn =
  459. reinterpret_cast<glViewportProc>(GetGLProcAddress("glViewport"));
  460. fn.glWaitSyncFn = 0;
  461. }
  462. void DriverGL::InitializeDynamicBindings(GLContext* context) {
  463. DCHECK(context && context->IsCurrent(NULL));
  464. const GLVersionInfo* ver = context->GetVersionInfo();
  465. ALLOW_UNUSED_LOCAL(ver);
  466. std::string extensions = context->GetExtensions() + " ";
  467. ALLOW_UNUSED_LOCAL(extensions);
  468. ext.b_GL_ANGLE_framebuffer_blit =
  469. extensions.find("GL_ANGLE_framebuffer_blit ") != std::string::npos;
  470. ext.b_GL_ANGLE_framebuffer_multisample =
  471. extensions.find("GL_ANGLE_framebuffer_multisample ") != std::string::npos;
  472. ext.b_GL_ANGLE_instanced_arrays =
  473. extensions.find("GL_ANGLE_instanced_arrays ") != std::string::npos;
  474. ext.b_GL_ANGLE_translated_shader_source =
  475. extensions.find("GL_ANGLE_translated_shader_source ") !=
  476. std::string::npos;
  477. ext.b_GL_APPLE_fence =
  478. extensions.find("GL_APPLE_fence ") != std::string::npos;
  479. ext.b_GL_APPLE_vertex_array_object =
  480. extensions.find("GL_APPLE_vertex_array_object ") != std::string::npos;
  481. ext.b_GL_ARB_blend_func_extended =
  482. extensions.find("GL_ARB_blend_func_extended ") != std::string::npos;
  483. ext.b_GL_ARB_draw_buffers =
  484. extensions.find("GL_ARB_draw_buffers ") != std::string::npos;
  485. ext.b_GL_ARB_draw_instanced =
  486. extensions.find("GL_ARB_draw_instanced ") != std::string::npos;
  487. ext.b_GL_ARB_get_program_binary =
  488. extensions.find("GL_ARB_get_program_binary ") != std::string::npos;
  489. ext.b_GL_ARB_instanced_arrays =
  490. extensions.find("GL_ARB_instanced_arrays ") != std::string::npos;
  491. ext.b_GL_ARB_map_buffer_range =
  492. extensions.find("GL_ARB_map_buffer_range ") != std::string::npos;
  493. ext.b_GL_ARB_occlusion_query =
  494. extensions.find("GL_ARB_occlusion_query ") != std::string::npos;
  495. ext.b_GL_ARB_program_interface_query =
  496. extensions.find("GL_ARB_program_interface_query ") != std::string::npos;
  497. ext.b_GL_ARB_robustness =
  498. extensions.find("GL_ARB_robustness ") != std::string::npos;
  499. ext.b_GL_ARB_shader_image_load_store =
  500. extensions.find("GL_ARB_shader_image_load_store ") != std::string::npos;
  501. ext.b_GL_ARB_sync = extensions.find("GL_ARB_sync ") != std::string::npos;
  502. ext.b_GL_ARB_texture_storage =
  503. extensions.find("GL_ARB_texture_storage ") != std::string::npos;
  504. ext.b_GL_ARB_timer_query =
  505. extensions.find("GL_ARB_timer_query ") != std::string::npos;
  506. ext.b_GL_ARB_vertex_array_object =
  507. extensions.find("GL_ARB_vertex_array_object ") != std::string::npos;
  508. ext.b_GL_CHROMIUM_gles_depth_binding_hack =
  509. extensions.find("GL_CHROMIUM_gles_depth_binding_hack ") !=
  510. std::string::npos;
  511. ext.b_GL_CHROMIUM_glgetstringi_hack =
  512. extensions.find("GL_CHROMIUM_glgetstringi_hack ") != std::string::npos;
  513. ext.b_GL_EXT_blend_func_extended =
  514. extensions.find("GL_EXT_blend_func_extended ") != std::string::npos;
  515. ext.b_GL_EXT_debug_marker =
  516. extensions.find("GL_EXT_debug_marker ") != std::string::npos;
  517. ext.b_GL_EXT_direct_state_access =
  518. extensions.find("GL_EXT_direct_state_access ") != std::string::npos;
  519. ext.b_GL_EXT_discard_framebuffer =
  520. extensions.find("GL_EXT_discard_framebuffer ") != std::string::npos;
  521. ext.b_GL_EXT_disjoint_timer_query =
  522. extensions.find("GL_EXT_disjoint_timer_query ") != std::string::npos;
  523. ext.b_GL_EXT_draw_buffers =
  524. extensions.find("GL_EXT_draw_buffers ") != std::string::npos;
  525. ext.b_GL_EXT_framebuffer_blit =
  526. extensions.find("GL_EXT_framebuffer_blit ") != std::string::npos;
  527. ext.b_GL_EXT_framebuffer_multisample =
  528. extensions.find("GL_EXT_framebuffer_multisample ") != std::string::npos;
  529. ext.b_GL_EXT_framebuffer_object =
  530. extensions.find("GL_EXT_framebuffer_object ") != std::string::npos;
  531. ext.b_GL_EXT_gpu_shader4 =
  532. extensions.find("GL_EXT_gpu_shader4 ") != std::string::npos;
  533. ext.b_GL_EXT_map_buffer_range =
  534. extensions.find("GL_EXT_map_buffer_range ") != std::string::npos;
  535. ext.b_GL_EXT_multisampled_render_to_texture =
  536. extensions.find("GL_EXT_multisampled_render_to_texture ") !=
  537. std::string::npos;
  538. ext.b_GL_EXT_occlusion_query_boolean =
  539. extensions.find("GL_EXT_occlusion_query_boolean ") != std::string::npos;
  540. ext.b_GL_EXT_robustness =
  541. extensions.find("GL_EXT_robustness ") != std::string::npos;
  542. ext.b_GL_EXT_shader_image_load_store =
  543. extensions.find("GL_EXT_shader_image_load_store ") != std::string::npos;
  544. ext.b_GL_EXT_texture_storage =
  545. extensions.find("GL_EXT_texture_storage ") != std::string::npos;
  546. ext.b_GL_EXT_timer_query =
  547. extensions.find("GL_EXT_timer_query ") != std::string::npos;
  548. ext.b_GL_IMG_multisampled_render_to_texture =
  549. extensions.find("GL_IMG_multisampled_render_to_texture ") !=
  550. std::string::npos;
  551. ext.b_GL_INTEL_framebuffer_CMAA =
  552. extensions.find("GL_INTEL_framebuffer_CMAA ") != std::string::npos;
  553. ext.b_GL_KHR_blend_equation_advanced =
  554. extensions.find("GL_KHR_blend_equation_advanced ") != std::string::npos;
  555. ext.b_GL_KHR_robustness =
  556. extensions.find("GL_KHR_robustness ") != std::string::npos;
  557. ext.b_GL_NV_blend_equation_advanced =
  558. extensions.find("GL_NV_blend_equation_advanced ") != std::string::npos;
  559. ext.b_GL_NV_fence = extensions.find("GL_NV_fence ") != std::string::npos;
  560. ext.b_GL_NV_framebuffer_mixed_samples =
  561. extensions.find("GL_NV_framebuffer_mixed_samples ") != std::string::npos;
  562. ext.b_GL_NV_path_rendering =
  563. extensions.find("GL_NV_path_rendering ") != std::string::npos;
  564. ext.b_GL_OES_EGL_image =
  565. extensions.find("GL_OES_EGL_image ") != std::string::npos;
  566. ext.b_GL_OES_get_program_binary =
  567. extensions.find("GL_OES_get_program_binary ") != std::string::npos;
  568. ext.b_GL_OES_mapbuffer =
  569. extensions.find("GL_OES_mapbuffer ") != std::string::npos;
  570. ext.b_GL_OES_vertex_array_object =
  571. extensions.find("GL_OES_vertex_array_object ") != std::string::npos;
  572. debug_fn.glApplyFramebufferAttachmentCMAAINTELFn = 0;
  573. if (ext.b_GL_INTEL_framebuffer_CMAA) {
  574. fn.glApplyFramebufferAttachmentCMAAINTELFn =
  575. reinterpret_cast<glApplyFramebufferAttachmentCMAAINTELProc>(
  576. GetGLProcAddress("glApplyFramebufferAttachmentCMAAINTEL"));
  577. }
  578. debug_fn.glBeginQueryFn = 0;
  579. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  580. fn.glBeginQueryFn =
  581. reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQuery"));
  582. } else if (ext.b_GL_ARB_occlusion_query) {
  583. fn.glBeginQueryFn =
  584. reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQueryARB"));
  585. } else if (ext.b_GL_EXT_disjoint_timer_query ||
  586. ext.b_GL_EXT_occlusion_query_boolean) {
  587. fn.glBeginQueryFn =
  588. reinterpret_cast<glBeginQueryProc>(GetGLProcAddress("glBeginQueryEXT"));
  589. }
  590. debug_fn.glBeginTransformFeedbackFn = 0;
  591. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  592. fn.glBeginTransformFeedbackFn =
  593. reinterpret_cast<glBeginTransformFeedbackProc>(
  594. GetGLProcAddress("glBeginTransformFeedback"));
  595. }
  596. debug_fn.glBindBufferBaseFn = 0;
  597. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  598. fn.glBindBufferBaseFn = reinterpret_cast<glBindBufferBaseProc>(
  599. GetGLProcAddress("glBindBufferBase"));
  600. }
  601. debug_fn.glBindBufferRangeFn = 0;
  602. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  603. fn.glBindBufferRangeFn = reinterpret_cast<glBindBufferRangeProc>(
  604. GetGLProcAddress("glBindBufferRange"));
  605. }
  606. debug_fn.glBindFragDataLocationFn = 0;
  607. if (ver->IsAtLeastGL(3u, 0u) || ext.b_GL_ARB_blend_func_extended) {
  608. fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
  609. GetGLProcAddress("glBindFragDataLocation"));
  610. } else if (ext.b_GL_EXT_gpu_shader4 || ext.b_GL_EXT_blend_func_extended) {
  611. fn.glBindFragDataLocationFn = reinterpret_cast<glBindFragDataLocationProc>(
  612. GetGLProcAddress("glBindFragDataLocationEXT"));
  613. }
  614. debug_fn.glBindFragDataLocationIndexedFn = 0;
  615. if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_blend_func_extended) {
  616. fn.glBindFragDataLocationIndexedFn =
  617. reinterpret_cast<glBindFragDataLocationIndexedProc>(
  618. GetGLProcAddress("glBindFragDataLocationIndexed"));
  619. } else if (ext.b_GL_EXT_blend_func_extended) {
  620. fn.glBindFragDataLocationIndexedFn =
  621. reinterpret_cast<glBindFragDataLocationIndexedProc>(
  622. GetGLProcAddress("glBindFragDataLocationIndexedEXT"));
  623. }
  624. debug_fn.glBindFramebufferEXTFn = 0;
  625. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  626. fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>(
  627. GetGLProcAddress("glBindFramebuffer"));
  628. } else if (ext.b_GL_EXT_framebuffer_object) {
  629. fn.glBindFramebufferEXTFn = reinterpret_cast<glBindFramebufferEXTProc>(
  630. GetGLProcAddress("glBindFramebufferEXT"));
  631. }
  632. debug_fn.glBindImageTextureEXTFn = 0;
  633. if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 1u) ||
  634. ext.b_GL_ARB_shader_image_load_store) {
  635. fn.glBindImageTextureEXTFn = reinterpret_cast<glBindImageTextureEXTProc>(
  636. GetGLProcAddress("glBindImageTexture"));
  637. } else if (ext.b_GL_EXT_shader_image_load_store) {
  638. fn.glBindImageTextureEXTFn = reinterpret_cast<glBindImageTextureEXTProc>(
  639. GetGLProcAddress("glBindImageTextureEXT"));
  640. }
  641. debug_fn.glBindRenderbufferEXTFn = 0;
  642. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  643. fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>(
  644. GetGLProcAddress("glBindRenderbuffer"));
  645. } else if (ext.b_GL_EXT_framebuffer_object) {
  646. fn.glBindRenderbufferEXTFn = reinterpret_cast<glBindRenderbufferEXTProc>(
  647. GetGLProcAddress("glBindRenderbufferEXT"));
  648. }
  649. debug_fn.glBindSamplerFn = 0;
  650. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  651. fn.glBindSamplerFn =
  652. reinterpret_cast<glBindSamplerProc>(GetGLProcAddress("glBindSampler"));
  653. }
  654. debug_fn.glBindTransformFeedbackFn = 0;
  655. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
  656. fn.glBindTransformFeedbackFn =
  657. reinterpret_cast<glBindTransformFeedbackProc>(
  658. GetGLProcAddress("glBindTransformFeedback"));
  659. }
  660. debug_fn.glBindVertexArrayOESFn = 0;
  661. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
  662. ext.b_GL_ARB_vertex_array_object) {
  663. fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
  664. GetGLProcAddress("glBindVertexArray"));
  665. } else if (ext.b_GL_OES_vertex_array_object) {
  666. fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
  667. GetGLProcAddress("glBindVertexArrayOES"));
  668. } else if (ext.b_GL_APPLE_vertex_array_object) {
  669. fn.glBindVertexArrayOESFn = reinterpret_cast<glBindVertexArrayOESProc>(
  670. GetGLProcAddress("glBindVertexArrayAPPLE"));
  671. }
  672. debug_fn.glBlendBarrierKHRFn = 0;
  673. if (ext.b_GL_NV_blend_equation_advanced) {
  674. fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
  675. GetGLProcAddress("glBlendBarrierNV"));
  676. } else if (ext.b_GL_KHR_blend_equation_advanced) {
  677. fn.glBlendBarrierKHRFn = reinterpret_cast<glBlendBarrierKHRProc>(
  678. GetGLProcAddress("glBlendBarrierKHR"));
  679. }
  680. debug_fn.glBlitFramebufferFn = 0;
  681. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  682. fn.glBlitFramebufferFn = reinterpret_cast<glBlitFramebufferProc>(
  683. GetGLProcAddress("glBlitFramebuffer"));
  684. }
  685. debug_fn.glBlitFramebufferANGLEFn = 0;
  686. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  687. fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
  688. GetGLProcAddress("glBlitFramebuffer"));
  689. } else if (ext.b_GL_ANGLE_framebuffer_blit) {
  690. fn.glBlitFramebufferANGLEFn = reinterpret_cast<glBlitFramebufferANGLEProc>(
  691. GetGLProcAddress("glBlitFramebufferANGLE"));
  692. }
  693. debug_fn.glBlitFramebufferEXTFn = 0;
  694. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  695. fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
  696. GetGLProcAddress("glBlitFramebuffer"));
  697. } else if (ext.b_GL_EXT_framebuffer_blit) {
  698. fn.glBlitFramebufferEXTFn = reinterpret_cast<glBlitFramebufferEXTProc>(
  699. GetGLProcAddress("glBlitFramebufferEXT"));
  700. }
  701. debug_fn.glCheckFramebufferStatusEXTFn = 0;
  702. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  703. fn.glCheckFramebufferStatusEXTFn =
  704. reinterpret_cast<glCheckFramebufferStatusEXTProc>(
  705. GetGLProcAddress("glCheckFramebufferStatus"));
  706. } else if (ext.b_GL_EXT_framebuffer_object) {
  707. fn.glCheckFramebufferStatusEXTFn =
  708. reinterpret_cast<glCheckFramebufferStatusEXTProc>(
  709. GetGLProcAddress("glCheckFramebufferStatusEXT"));
  710. }
  711. debug_fn.glClearBufferfiFn = 0;
  712. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  713. fn.glClearBufferfiFn = reinterpret_cast<glClearBufferfiProc>(
  714. GetGLProcAddress("glClearBufferfi"));
  715. }
  716. debug_fn.glClearBufferfvFn = 0;
  717. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  718. fn.glClearBufferfvFn = reinterpret_cast<glClearBufferfvProc>(
  719. GetGLProcAddress("glClearBufferfv"));
  720. }
  721. debug_fn.glClearBufferivFn = 0;
  722. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  723. fn.glClearBufferivFn = reinterpret_cast<glClearBufferivProc>(
  724. GetGLProcAddress("glClearBufferiv"));
  725. }
  726. debug_fn.glClearBufferuivFn = 0;
  727. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  728. fn.glClearBufferuivFn = reinterpret_cast<glClearBufferuivProc>(
  729. GetGLProcAddress("glClearBufferuiv"));
  730. }
  731. debug_fn.glClearDepthfFn = 0;
  732. if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
  733. fn.glClearDepthfFn =
  734. reinterpret_cast<glClearDepthfProc>(GetGLProcAddress("glClearDepthf"));
  735. }
  736. debug_fn.glClientWaitSyncFn = 0;
  737. if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
  738. ext.b_GL_ARB_sync) {
  739. fn.glClientWaitSyncFn = reinterpret_cast<glClientWaitSyncProc>(
  740. GetGLProcAddress("glClientWaitSync"));
  741. }
  742. debug_fn.glCompressedTexImage3DFn = 0;
  743. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  744. fn.glCompressedTexImage3DFn = reinterpret_cast<glCompressedTexImage3DProc>(
  745. GetGLProcAddress("glCompressedTexImage3D"));
  746. }
  747. debug_fn.glCompressedTexSubImage3DFn = 0;
  748. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  749. fn.glCompressedTexSubImage3DFn =
  750. reinterpret_cast<glCompressedTexSubImage3DProc>(
  751. GetGLProcAddress("glCompressedTexSubImage3D"));
  752. }
  753. debug_fn.glCopyBufferSubDataFn = 0;
  754. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  755. fn.glCopyBufferSubDataFn = reinterpret_cast<glCopyBufferSubDataProc>(
  756. GetGLProcAddress("glCopyBufferSubData"));
  757. }
  758. debug_fn.glCopyTexSubImage3DFn = 0;
  759. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  760. fn.glCopyTexSubImage3DFn = reinterpret_cast<glCopyTexSubImage3DProc>(
  761. GetGLProcAddress("glCopyTexSubImage3D"));
  762. }
  763. debug_fn.glCoverageModulationNVFn = 0;
  764. if (ext.b_GL_NV_framebuffer_mixed_samples) {
  765. fn.glCoverageModulationNVFn = reinterpret_cast<glCoverageModulationNVProc>(
  766. GetGLProcAddress("glCoverageModulationNV"));
  767. }
  768. debug_fn.glCoverFillPathInstancedNVFn = 0;
  769. if (ext.b_GL_NV_path_rendering) {
  770. fn.glCoverFillPathInstancedNVFn =
  771. reinterpret_cast<glCoverFillPathInstancedNVProc>(
  772. GetGLProcAddress("glCoverFillPathInstancedNV"));
  773. }
  774. debug_fn.glCoverFillPathNVFn = 0;
  775. if (ext.b_GL_NV_path_rendering) {
  776. fn.glCoverFillPathNVFn = reinterpret_cast<glCoverFillPathNVProc>(
  777. GetGLProcAddress("glCoverFillPathNV"));
  778. }
  779. debug_fn.glCoverStrokePathInstancedNVFn = 0;
  780. if (ext.b_GL_NV_path_rendering) {
  781. fn.glCoverStrokePathInstancedNVFn =
  782. reinterpret_cast<glCoverStrokePathInstancedNVProc>(
  783. GetGLProcAddress("glCoverStrokePathInstancedNV"));
  784. }
  785. debug_fn.glCoverStrokePathNVFn = 0;
  786. if (ext.b_GL_NV_path_rendering) {
  787. fn.glCoverStrokePathNVFn = reinterpret_cast<glCoverStrokePathNVProc>(
  788. GetGLProcAddress("glCoverStrokePathNV"));
  789. }
  790. debug_fn.glDeleteFencesAPPLEFn = 0;
  791. if (ext.b_GL_APPLE_fence) {
  792. fn.glDeleteFencesAPPLEFn = reinterpret_cast<glDeleteFencesAPPLEProc>(
  793. GetGLProcAddress("glDeleteFencesAPPLE"));
  794. }
  795. debug_fn.glDeleteFencesNVFn = 0;
  796. if (ext.b_GL_NV_fence) {
  797. fn.glDeleteFencesNVFn = reinterpret_cast<glDeleteFencesNVProc>(
  798. GetGLProcAddress("glDeleteFencesNV"));
  799. }
  800. debug_fn.glDeleteFramebuffersEXTFn = 0;
  801. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  802. fn.glDeleteFramebuffersEXTFn =
  803. reinterpret_cast<glDeleteFramebuffersEXTProc>(
  804. GetGLProcAddress("glDeleteFramebuffers"));
  805. } else if (ext.b_GL_EXT_framebuffer_object) {
  806. fn.glDeleteFramebuffersEXTFn =
  807. reinterpret_cast<glDeleteFramebuffersEXTProc>(
  808. GetGLProcAddress("glDeleteFramebuffersEXT"));
  809. }
  810. debug_fn.glDeletePathsNVFn = 0;
  811. if (ext.b_GL_NV_path_rendering) {
  812. fn.glDeletePathsNVFn = reinterpret_cast<glDeletePathsNVProc>(
  813. GetGLProcAddress("glDeletePathsNV"));
  814. }
  815. debug_fn.glDeleteQueriesFn = 0;
  816. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  817. fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>(
  818. GetGLProcAddress("glDeleteQueries"));
  819. } else if (ext.b_GL_ARB_occlusion_query) {
  820. fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>(
  821. GetGLProcAddress("glDeleteQueriesARB"));
  822. } else if (ext.b_GL_EXT_disjoint_timer_query ||
  823. ext.b_GL_EXT_occlusion_query_boolean) {
  824. fn.glDeleteQueriesFn = reinterpret_cast<glDeleteQueriesProc>(
  825. GetGLProcAddress("glDeleteQueriesEXT"));
  826. }
  827. debug_fn.glDeleteRenderbuffersEXTFn = 0;
  828. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  829. fn.glDeleteRenderbuffersEXTFn =
  830. reinterpret_cast<glDeleteRenderbuffersEXTProc>(
  831. GetGLProcAddress("glDeleteRenderbuffers"));
  832. } else if (ext.b_GL_EXT_framebuffer_object) {
  833. fn.glDeleteRenderbuffersEXTFn =
  834. reinterpret_cast<glDeleteRenderbuffersEXTProc>(
  835. GetGLProcAddress("glDeleteRenderbuffersEXT"));
  836. }
  837. debug_fn.glDeleteSamplersFn = 0;
  838. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  839. fn.glDeleteSamplersFn = reinterpret_cast<glDeleteSamplersProc>(
  840. GetGLProcAddress("glDeleteSamplers"));
  841. }
  842. debug_fn.glDeleteSyncFn = 0;
  843. if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
  844. ext.b_GL_ARB_sync) {
  845. fn.glDeleteSyncFn =
  846. reinterpret_cast<glDeleteSyncProc>(GetGLProcAddress("glDeleteSync"));
  847. }
  848. debug_fn.glDeleteTransformFeedbacksFn = 0;
  849. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
  850. fn.glDeleteTransformFeedbacksFn =
  851. reinterpret_cast<glDeleteTransformFeedbacksProc>(
  852. GetGLProcAddress("glDeleteTransformFeedbacks"));
  853. }
  854. debug_fn.glDeleteVertexArraysOESFn = 0;
  855. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
  856. ext.b_GL_ARB_vertex_array_object) {
  857. fn.glDeleteVertexArraysOESFn =
  858. reinterpret_cast<glDeleteVertexArraysOESProc>(
  859. GetGLProcAddress("glDeleteVertexArrays"));
  860. } else if (ext.b_GL_OES_vertex_array_object) {
  861. fn.glDeleteVertexArraysOESFn =
  862. reinterpret_cast<glDeleteVertexArraysOESProc>(
  863. GetGLProcAddress("glDeleteVertexArraysOES"));
  864. } else if (ext.b_GL_APPLE_vertex_array_object) {
  865. fn.glDeleteVertexArraysOESFn =
  866. reinterpret_cast<glDeleteVertexArraysOESProc>(
  867. GetGLProcAddress("glDeleteVertexArraysAPPLE"));
  868. }
  869. debug_fn.glDepthRangefFn = 0;
  870. if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
  871. fn.glDepthRangefFn =
  872. reinterpret_cast<glDepthRangefProc>(GetGLProcAddress("glDepthRangef"));
  873. }
  874. debug_fn.glDiscardFramebufferEXTFn = 0;
  875. if (ext.b_GL_EXT_discard_framebuffer) {
  876. fn.glDiscardFramebufferEXTFn =
  877. reinterpret_cast<glDiscardFramebufferEXTProc>(
  878. GetGLProcAddress("glDiscardFramebufferEXT"));
  879. }
  880. debug_fn.glDrawArraysInstancedANGLEFn = 0;
  881. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  882. fn.glDrawArraysInstancedANGLEFn =
  883. reinterpret_cast<glDrawArraysInstancedANGLEProc>(
  884. GetGLProcAddress("glDrawArraysInstanced"));
  885. } else if (ext.b_GL_ARB_draw_instanced) {
  886. fn.glDrawArraysInstancedANGLEFn =
  887. reinterpret_cast<glDrawArraysInstancedANGLEProc>(
  888. GetGLProcAddress("glDrawArraysInstancedARB"));
  889. } else if (ext.b_GL_ANGLE_instanced_arrays) {
  890. fn.glDrawArraysInstancedANGLEFn =
  891. reinterpret_cast<glDrawArraysInstancedANGLEProc>(
  892. GetGLProcAddress("glDrawArraysInstancedANGLE"));
  893. }
  894. debug_fn.glDrawBufferFn = 0;
  895. if (!ver->is_es) {
  896. fn.glDrawBufferFn =
  897. reinterpret_cast<glDrawBufferProc>(GetGLProcAddress("glDrawBuffer"));
  898. }
  899. debug_fn.glDrawBuffersARBFn = 0;
  900. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  901. fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
  902. GetGLProcAddress("glDrawBuffers"));
  903. } else if (ext.b_GL_ARB_draw_buffers) {
  904. fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
  905. GetGLProcAddress("glDrawBuffersARB"));
  906. } else if (ext.b_GL_EXT_draw_buffers) {
  907. fn.glDrawBuffersARBFn = reinterpret_cast<glDrawBuffersARBProc>(
  908. GetGLProcAddress("glDrawBuffersEXT"));
  909. }
  910. debug_fn.glDrawElementsInstancedANGLEFn = 0;
  911. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  912. fn.glDrawElementsInstancedANGLEFn =
  913. reinterpret_cast<glDrawElementsInstancedANGLEProc>(
  914. GetGLProcAddress("glDrawElementsInstanced"));
  915. } else if (ext.b_GL_ARB_draw_instanced) {
  916. fn.glDrawElementsInstancedANGLEFn =
  917. reinterpret_cast<glDrawElementsInstancedANGLEProc>(
  918. GetGLProcAddress("glDrawElementsInstancedARB"));
  919. } else if (ext.b_GL_ANGLE_instanced_arrays) {
  920. fn.glDrawElementsInstancedANGLEFn =
  921. reinterpret_cast<glDrawElementsInstancedANGLEProc>(
  922. GetGLProcAddress("glDrawElementsInstancedANGLE"));
  923. }
  924. debug_fn.glDrawRangeElementsFn = 0;
  925. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  926. fn.glDrawRangeElementsFn = reinterpret_cast<glDrawRangeElementsProc>(
  927. GetGLProcAddress("glDrawRangeElements"));
  928. }
  929. debug_fn.glEGLImageTargetRenderbufferStorageOESFn = 0;
  930. if (ext.b_GL_OES_EGL_image) {
  931. fn.glEGLImageTargetRenderbufferStorageOESFn =
  932. reinterpret_cast<glEGLImageTargetRenderbufferStorageOESProc>(
  933. GetGLProcAddress("glEGLImageTargetRenderbufferStorageOES"));
  934. }
  935. debug_fn.glEGLImageTargetTexture2DOESFn = 0;
  936. if (ext.b_GL_OES_EGL_image) {
  937. fn.glEGLImageTargetTexture2DOESFn =
  938. reinterpret_cast<glEGLImageTargetTexture2DOESProc>(
  939. GetGLProcAddress("glEGLImageTargetTexture2DOES"));
  940. }
  941. debug_fn.glEndQueryFn = 0;
  942. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  943. fn.glEndQueryFn =
  944. reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQuery"));
  945. } else if (ext.b_GL_ARB_occlusion_query) {
  946. fn.glEndQueryFn =
  947. reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQueryARB"));
  948. } else if (ext.b_GL_EXT_disjoint_timer_query ||
  949. ext.b_GL_EXT_occlusion_query_boolean) {
  950. fn.glEndQueryFn =
  951. reinterpret_cast<glEndQueryProc>(GetGLProcAddress("glEndQueryEXT"));
  952. }
  953. debug_fn.glEndTransformFeedbackFn = 0;
  954. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  955. fn.glEndTransformFeedbackFn = reinterpret_cast<glEndTransformFeedbackProc>(
  956. GetGLProcAddress("glEndTransformFeedback"));
  957. }
  958. debug_fn.glFenceSyncFn = 0;
  959. if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
  960. ext.b_GL_ARB_sync) {
  961. fn.glFenceSyncFn =
  962. reinterpret_cast<glFenceSyncProc>(GetGLProcAddress("glFenceSync"));
  963. }
  964. debug_fn.glFinishFenceAPPLEFn = 0;
  965. if (ext.b_GL_APPLE_fence) {
  966. fn.glFinishFenceAPPLEFn = reinterpret_cast<glFinishFenceAPPLEProc>(
  967. GetGLProcAddress("glFinishFenceAPPLE"));
  968. }
  969. debug_fn.glFinishFenceNVFn = 0;
  970. if (ext.b_GL_NV_fence) {
  971. fn.glFinishFenceNVFn = reinterpret_cast<glFinishFenceNVProc>(
  972. GetGLProcAddress("glFinishFenceNV"));
  973. }
  974. debug_fn.glFlushMappedBufferRangeFn = 0;
  975. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  976. fn.glFlushMappedBufferRangeFn =
  977. reinterpret_cast<glFlushMappedBufferRangeProc>(
  978. GetGLProcAddress("glFlushMappedBufferRange"));
  979. }
  980. debug_fn.glFramebufferRenderbufferEXTFn = 0;
  981. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  982. fn.glFramebufferRenderbufferEXTFn =
  983. reinterpret_cast<glFramebufferRenderbufferEXTProc>(
  984. GetGLProcAddress("glFramebufferRenderbuffer"));
  985. } else if (ext.b_GL_EXT_framebuffer_object) {
  986. fn.glFramebufferRenderbufferEXTFn =
  987. reinterpret_cast<glFramebufferRenderbufferEXTProc>(
  988. GetGLProcAddress("glFramebufferRenderbufferEXT"));
  989. }
  990. debug_fn.glFramebufferTexture2DEXTFn = 0;
  991. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  992. fn.glFramebufferTexture2DEXTFn =
  993. reinterpret_cast<glFramebufferTexture2DEXTProc>(
  994. GetGLProcAddress("glFramebufferTexture2D"));
  995. } else if (ext.b_GL_EXT_framebuffer_object) {
  996. fn.glFramebufferTexture2DEXTFn =
  997. reinterpret_cast<glFramebufferTexture2DEXTProc>(
  998. GetGLProcAddress("glFramebufferTexture2DEXT"));
  999. }
  1000. debug_fn.glFramebufferTexture2DMultisampleEXTFn = 0;
  1001. if (ext.b_GL_EXT_multisampled_render_to_texture) {
  1002. fn.glFramebufferTexture2DMultisampleEXTFn =
  1003. reinterpret_cast<glFramebufferTexture2DMultisampleEXTProc>(
  1004. GetGLProcAddress("glFramebufferTexture2DMultisampleEXT"));
  1005. }
  1006. debug_fn.glFramebufferTexture2DMultisampleIMGFn = 0;
  1007. if (ext.b_GL_IMG_multisampled_render_to_texture) {
  1008. fn.glFramebufferTexture2DMultisampleIMGFn =
  1009. reinterpret_cast<glFramebufferTexture2DMultisampleIMGProc>(
  1010. GetGLProcAddress("glFramebufferTexture2DMultisampleIMG"));
  1011. }
  1012. debug_fn.glFramebufferTextureLayerFn = 0;
  1013. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1014. fn.glFramebufferTextureLayerFn =
  1015. reinterpret_cast<glFramebufferTextureLayerProc>(
  1016. GetGLProcAddress("glFramebufferTextureLayer"));
  1017. }
  1018. debug_fn.glGenerateMipmapEXTFn = 0;
  1019. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  1020. fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>(
  1021. GetGLProcAddress("glGenerateMipmap"));
  1022. } else if (ext.b_GL_EXT_framebuffer_object) {
  1023. fn.glGenerateMipmapEXTFn = reinterpret_cast<glGenerateMipmapEXTProc>(
  1024. GetGLProcAddress("glGenerateMipmapEXT"));
  1025. }
  1026. debug_fn.glGenFencesAPPLEFn = 0;
  1027. if (ext.b_GL_APPLE_fence) {
  1028. fn.glGenFencesAPPLEFn = reinterpret_cast<glGenFencesAPPLEProc>(
  1029. GetGLProcAddress("glGenFencesAPPLE"));
  1030. }
  1031. debug_fn.glGenFencesNVFn = 0;
  1032. if (ext.b_GL_NV_fence) {
  1033. fn.glGenFencesNVFn =
  1034. reinterpret_cast<glGenFencesNVProc>(GetGLProcAddress("glGenFencesNV"));
  1035. }
  1036. debug_fn.glGenFramebuffersEXTFn = 0;
  1037. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  1038. fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>(
  1039. GetGLProcAddress("glGenFramebuffers"));
  1040. } else if (ext.b_GL_EXT_framebuffer_object) {
  1041. fn.glGenFramebuffersEXTFn = reinterpret_cast<glGenFramebuffersEXTProc>(
  1042. GetGLProcAddress("glGenFramebuffersEXT"));
  1043. }
  1044. debug_fn.glGenPathsNVFn = 0;
  1045. if (ext.b_GL_NV_path_rendering) {
  1046. fn.glGenPathsNVFn =
  1047. reinterpret_cast<glGenPathsNVProc>(GetGLProcAddress("glGenPathsNV"));
  1048. }
  1049. debug_fn.glGenQueriesFn = 0;
  1050. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1051. fn.glGenQueriesFn =
  1052. reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueries"));
  1053. } else if (ext.b_GL_ARB_occlusion_query) {
  1054. fn.glGenQueriesFn =
  1055. reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueriesARB"));
  1056. } else if (ext.b_GL_EXT_disjoint_timer_query ||
  1057. ext.b_GL_EXT_occlusion_query_boolean) {
  1058. fn.glGenQueriesFn =
  1059. reinterpret_cast<glGenQueriesProc>(GetGLProcAddress("glGenQueriesEXT"));
  1060. }
  1061. debug_fn.glGenRenderbuffersEXTFn = 0;
  1062. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  1063. fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>(
  1064. GetGLProcAddress("glGenRenderbuffers"));
  1065. } else if (ext.b_GL_EXT_framebuffer_object) {
  1066. fn.glGenRenderbuffersEXTFn = reinterpret_cast<glGenRenderbuffersEXTProc>(
  1067. GetGLProcAddress("glGenRenderbuffersEXT"));
  1068. }
  1069. debug_fn.glGenSamplersFn = 0;
  1070. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1071. fn.glGenSamplersFn =
  1072. reinterpret_cast<glGenSamplersProc>(GetGLProcAddress("glGenSamplers"));
  1073. }
  1074. debug_fn.glGenTransformFeedbacksFn = 0;
  1075. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
  1076. fn.glGenTransformFeedbacksFn =
  1077. reinterpret_cast<glGenTransformFeedbacksProc>(
  1078. GetGLProcAddress("glGenTransformFeedbacks"));
  1079. }
  1080. debug_fn.glGenVertexArraysOESFn = 0;
  1081. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
  1082. ext.b_GL_ARB_vertex_array_object) {
  1083. fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
  1084. GetGLProcAddress("glGenVertexArrays"));
  1085. } else if (ext.b_GL_OES_vertex_array_object) {
  1086. fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
  1087. GetGLProcAddress("glGenVertexArraysOES"));
  1088. } else if (ext.b_GL_APPLE_vertex_array_object) {
  1089. fn.glGenVertexArraysOESFn = reinterpret_cast<glGenVertexArraysOESProc>(
  1090. GetGLProcAddress("glGenVertexArraysAPPLE"));
  1091. }
  1092. debug_fn.glGetActiveUniformBlockivFn = 0;
  1093. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  1094. fn.glGetActiveUniformBlockivFn =
  1095. reinterpret_cast<glGetActiveUniformBlockivProc>(
  1096. GetGLProcAddress("glGetActiveUniformBlockiv"));
  1097. }
  1098. debug_fn.glGetActiveUniformBlockNameFn = 0;
  1099. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  1100. fn.glGetActiveUniformBlockNameFn =
  1101. reinterpret_cast<glGetActiveUniformBlockNameProc>(
  1102. GetGLProcAddress("glGetActiveUniformBlockName"));
  1103. }
  1104. debug_fn.glGetActiveUniformsivFn = 0;
  1105. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  1106. fn.glGetActiveUniformsivFn = reinterpret_cast<glGetActiveUniformsivProc>(
  1107. GetGLProcAddress("glGetActiveUniformsiv"));
  1108. }
  1109. debug_fn.glGetFenceivNVFn = 0;
  1110. if (ext.b_GL_NV_fence) {
  1111. fn.glGetFenceivNVFn = reinterpret_cast<glGetFenceivNVProc>(
  1112. GetGLProcAddress("glGetFenceivNV"));
  1113. }
  1114. debug_fn.glGetFragDataIndexFn = 0;
  1115. if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_blend_func_extended) {
  1116. fn.glGetFragDataIndexFn = reinterpret_cast<glGetFragDataIndexProc>(
  1117. GetGLProcAddress("glGetFragDataIndex"));
  1118. } else if (ext.b_GL_EXT_blend_func_extended) {
  1119. fn.glGetFragDataIndexFn = reinterpret_cast<glGetFragDataIndexProc>(
  1120. GetGLProcAddress("glGetFragDataIndexEXT"));
  1121. }
  1122. debug_fn.glGetFragDataLocationFn = 0;
  1123. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1124. fn.glGetFragDataLocationFn = reinterpret_cast<glGetFragDataLocationProc>(
  1125. GetGLProcAddress("glGetFragDataLocation"));
  1126. }
  1127. debug_fn.glGetFramebufferAttachmentParameterivEXTFn = 0;
  1128. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  1129. fn.glGetFramebufferAttachmentParameterivEXTFn =
  1130. reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>(
  1131. GetGLProcAddress("glGetFramebufferAttachmentParameteriv"));
  1132. } else if (ext.b_GL_EXT_framebuffer_object) {
  1133. fn.glGetFramebufferAttachmentParameterivEXTFn =
  1134. reinterpret_cast<glGetFramebufferAttachmentParameterivEXTProc>(
  1135. GetGLProcAddress("glGetFramebufferAttachmentParameterivEXT"));
  1136. }
  1137. debug_fn.glGetGraphicsResetStatusARBFn = 0;
  1138. if (ver->IsAtLeastGL(4u, 5u)) {
  1139. fn.glGetGraphicsResetStatusARBFn =
  1140. reinterpret_cast<glGetGraphicsResetStatusARBProc>(
  1141. GetGLProcAddress("glGetGraphicsResetStatus"));
  1142. } else if (ext.b_GL_ARB_robustness) {
  1143. fn.glGetGraphicsResetStatusARBFn =
  1144. reinterpret_cast<glGetGraphicsResetStatusARBProc>(
  1145. GetGLProcAddress("glGetGraphicsResetStatusARB"));
  1146. } else if (ext.b_GL_KHR_robustness) {
  1147. fn.glGetGraphicsResetStatusARBFn =
  1148. reinterpret_cast<glGetGraphicsResetStatusARBProc>(
  1149. GetGLProcAddress("glGetGraphicsResetStatusKHR"));
  1150. } else if (ext.b_GL_EXT_robustness) {
  1151. fn.glGetGraphicsResetStatusARBFn =
  1152. reinterpret_cast<glGetGraphicsResetStatusARBProc>(
  1153. GetGLProcAddress("glGetGraphicsResetStatusEXT"));
  1154. }
  1155. debug_fn.glGetInteger64i_vFn = 0;
  1156. if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
  1157. fn.glGetInteger64i_vFn = reinterpret_cast<glGetInteger64i_vProc>(
  1158. GetGLProcAddress("glGetInteger64i_v"));
  1159. }
  1160. debug_fn.glGetInteger64vFn = 0;
  1161. if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
  1162. fn.glGetInteger64vFn = reinterpret_cast<glGetInteger64vProc>(
  1163. GetGLProcAddress("glGetInteger64v"));
  1164. }
  1165. debug_fn.glGetIntegeri_vFn = 0;
  1166. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1167. fn.glGetIntegeri_vFn = reinterpret_cast<glGetIntegeri_vProc>(
  1168. GetGLProcAddress("glGetIntegeri_v"));
  1169. }
  1170. debug_fn.glGetInternalformativFn = 0;
  1171. if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
  1172. fn.glGetInternalformativFn = reinterpret_cast<glGetInternalformativProc>(
  1173. GetGLProcAddress("glGetInternalformativ"));
  1174. }
  1175. debug_fn.glGetProgramBinaryFn = 0;
  1176. if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
  1177. ext.b_GL_ARB_get_program_binary) {
  1178. fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
  1179. GetGLProcAddress("glGetProgramBinary"));
  1180. } else if (ext.b_GL_OES_get_program_binary) {
  1181. fn.glGetProgramBinaryFn = reinterpret_cast<glGetProgramBinaryProc>(
  1182. GetGLProcAddress("glGetProgramBinaryOES"));
  1183. }
  1184. debug_fn.glGetProgramInterfaceivFn = 0;
  1185. if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 1u) ||
  1186. ext.b_GL_ARB_program_interface_query) {
  1187. fn.glGetProgramInterfaceivFn =
  1188. reinterpret_cast<glGetProgramInterfaceivProc>(
  1189. GetGLProcAddress("glGetProgramInterfaceiv"));
  1190. }
  1191. debug_fn.glGetProgramResourceivFn = 0;
  1192. if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 1u) ||
  1193. ext.b_GL_ARB_program_interface_query) {
  1194. fn.glGetProgramResourceivFn = reinterpret_cast<glGetProgramResourceivProc>(
  1195. GetGLProcAddress("glGetProgramResourceiv"));
  1196. }
  1197. debug_fn.glGetProgramResourceLocationFn = 0;
  1198. if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 1u)) {
  1199. fn.glGetProgramResourceLocationFn =
  1200. reinterpret_cast<glGetProgramResourceLocationProc>(
  1201. GetGLProcAddress("glGetProgramResourceLocation"));
  1202. }
  1203. debug_fn.glGetProgramResourceNameFn = 0;
  1204. if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 1u) ||
  1205. ext.b_GL_ARB_program_interface_query) {
  1206. fn.glGetProgramResourceNameFn =
  1207. reinterpret_cast<glGetProgramResourceNameProc>(
  1208. GetGLProcAddress("glGetProgramResourceName"));
  1209. }
  1210. debug_fn.glGetQueryivFn = 0;
  1211. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1212. fn.glGetQueryivFn =
  1213. reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryiv"));
  1214. } else if (ext.b_GL_ARB_occlusion_query) {
  1215. fn.glGetQueryivFn =
  1216. reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryivARB"));
  1217. } else if (ext.b_GL_EXT_disjoint_timer_query ||
  1218. ext.b_GL_EXT_occlusion_query_boolean) {
  1219. fn.glGetQueryivFn =
  1220. reinterpret_cast<glGetQueryivProc>(GetGLProcAddress("glGetQueryivEXT"));
  1221. }
  1222. debug_fn.glGetQueryObjecti64vFn = 0;
  1223. if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
  1224. fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
  1225. GetGLProcAddress("glGetQueryObjecti64v"));
  1226. } else if (ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query) {
  1227. fn.glGetQueryObjecti64vFn = reinterpret_cast<glGetQueryObjecti64vProc>(
  1228. GetGLProcAddress("glGetQueryObjecti64vEXT"));
  1229. }
  1230. debug_fn.glGetQueryObjectivFn = 0;
  1231. if (!ver->is_es) {
  1232. fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>(
  1233. GetGLProcAddress("glGetQueryObjectiv"));
  1234. } else if (ext.b_GL_ARB_occlusion_query) {
  1235. fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>(
  1236. GetGLProcAddress("glGetQueryObjectivARB"));
  1237. } else if (ext.b_GL_EXT_disjoint_timer_query) {
  1238. fn.glGetQueryObjectivFn = reinterpret_cast<glGetQueryObjectivProc>(
  1239. GetGLProcAddress("glGetQueryObjectivEXT"));
  1240. }
  1241. debug_fn.glGetQueryObjectui64vFn = 0;
  1242. if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
  1243. fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
  1244. GetGLProcAddress("glGetQueryObjectui64v"));
  1245. } else if (ext.b_GL_EXT_timer_query || ext.b_GL_EXT_disjoint_timer_query) {
  1246. fn.glGetQueryObjectui64vFn = reinterpret_cast<glGetQueryObjectui64vProc>(
  1247. GetGLProcAddress("glGetQueryObjectui64vEXT"));
  1248. }
  1249. debug_fn.glGetQueryObjectuivFn = 0;
  1250. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1251. fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>(
  1252. GetGLProcAddress("glGetQueryObjectuiv"));
  1253. } else if (ext.b_GL_ARB_occlusion_query) {
  1254. fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>(
  1255. GetGLProcAddress("glGetQueryObjectuivARB"));
  1256. } else if (ext.b_GL_EXT_disjoint_timer_query ||
  1257. ext.b_GL_EXT_occlusion_query_boolean) {
  1258. fn.glGetQueryObjectuivFn = reinterpret_cast<glGetQueryObjectuivProc>(
  1259. GetGLProcAddress("glGetQueryObjectuivEXT"));
  1260. }
  1261. debug_fn.glGetRenderbufferParameterivEXTFn = 0;
  1262. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  1263. fn.glGetRenderbufferParameterivEXTFn =
  1264. reinterpret_cast<glGetRenderbufferParameterivEXTProc>(
  1265. GetGLProcAddress("glGetRenderbufferParameteriv"));
  1266. } else if (ext.b_GL_EXT_framebuffer_object) {
  1267. fn.glGetRenderbufferParameterivEXTFn =
  1268. reinterpret_cast<glGetRenderbufferParameterivEXTProc>(
  1269. GetGLProcAddress("glGetRenderbufferParameterivEXT"));
  1270. }
  1271. debug_fn.glGetSamplerParameterfvFn = 0;
  1272. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1273. fn.glGetSamplerParameterfvFn =
  1274. reinterpret_cast<glGetSamplerParameterfvProc>(
  1275. GetGLProcAddress("glGetSamplerParameterfv"));
  1276. }
  1277. debug_fn.glGetSamplerParameterivFn = 0;
  1278. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1279. fn.glGetSamplerParameterivFn =
  1280. reinterpret_cast<glGetSamplerParameterivProc>(
  1281. GetGLProcAddress("glGetSamplerParameteriv"));
  1282. }
  1283. debug_fn.glGetShaderPrecisionFormatFn = 0;
  1284. if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
  1285. fn.glGetShaderPrecisionFormatFn =
  1286. reinterpret_cast<glGetShaderPrecisionFormatProc>(
  1287. GetGLProcAddress("glGetShaderPrecisionFormat"));
  1288. }
  1289. debug_fn.glGetSyncivFn = 0;
  1290. if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
  1291. ext.b_GL_ARB_sync) {
  1292. fn.glGetSyncivFn =
  1293. reinterpret_cast<glGetSyncivProc>(GetGLProcAddress("glGetSynciv"));
  1294. }
  1295. debug_fn.glGetTexLevelParameterfvFn = 0;
  1296. if (!ver->is_es || ver->IsAtLeastGLES(3u, 1u)) {
  1297. fn.glGetTexLevelParameterfvFn =
  1298. reinterpret_cast<glGetTexLevelParameterfvProc>(
  1299. GetGLProcAddress("glGetTexLevelParameterfv"));
  1300. }
  1301. debug_fn.glGetTexLevelParameterivFn = 0;
  1302. if (!ver->is_es || ver->IsAtLeastGLES(3u, 1u)) {
  1303. fn.glGetTexLevelParameterivFn =
  1304. reinterpret_cast<glGetTexLevelParameterivProc>(
  1305. GetGLProcAddress("glGetTexLevelParameteriv"));
  1306. }
  1307. debug_fn.glGetTransformFeedbackVaryingFn = 0;
  1308. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1309. fn.glGetTransformFeedbackVaryingFn =
  1310. reinterpret_cast<glGetTransformFeedbackVaryingProc>(
  1311. GetGLProcAddress("glGetTransformFeedbackVarying"));
  1312. }
  1313. debug_fn.glGetTranslatedShaderSourceANGLEFn = 0;
  1314. if (ext.b_GL_ANGLE_translated_shader_source) {
  1315. fn.glGetTranslatedShaderSourceANGLEFn =
  1316. reinterpret_cast<glGetTranslatedShaderSourceANGLEProc>(
  1317. GetGLProcAddress("glGetTranslatedShaderSourceANGLE"));
  1318. }
  1319. debug_fn.glGetUniformBlockIndexFn = 0;
  1320. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  1321. fn.glGetUniformBlockIndexFn = reinterpret_cast<glGetUniformBlockIndexProc>(
  1322. GetGLProcAddress("glGetUniformBlockIndex"));
  1323. }
  1324. debug_fn.glGetUniformIndicesFn = 0;
  1325. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  1326. fn.glGetUniformIndicesFn = reinterpret_cast<glGetUniformIndicesProc>(
  1327. GetGLProcAddress("glGetUniformIndices"));
  1328. }
  1329. debug_fn.glGetUniformuivFn = 0;
  1330. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1331. fn.glGetUniformuivFn = reinterpret_cast<glGetUniformuivProc>(
  1332. GetGLProcAddress("glGetUniformuiv"));
  1333. }
  1334. debug_fn.glInsertEventMarkerEXTFn = 0;
  1335. if (ext.b_GL_EXT_debug_marker) {
  1336. fn.glInsertEventMarkerEXTFn = reinterpret_cast<glInsertEventMarkerEXTProc>(
  1337. GetGLProcAddress("glInsertEventMarkerEXT"));
  1338. }
  1339. debug_fn.glInvalidateFramebufferFn = 0;
  1340. if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1341. fn.glInvalidateFramebufferFn =
  1342. reinterpret_cast<glInvalidateFramebufferProc>(
  1343. GetGLProcAddress("glInvalidateFramebuffer"));
  1344. }
  1345. debug_fn.glInvalidateSubFramebufferFn = 0;
  1346. if (ver->IsAtLeastGL(4u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1347. fn.glInvalidateSubFramebufferFn =
  1348. reinterpret_cast<glInvalidateSubFramebufferProc>(
  1349. GetGLProcAddress("glInvalidateSubFramebuffer"));
  1350. }
  1351. debug_fn.glIsFenceAPPLEFn = 0;
  1352. if (ext.b_GL_APPLE_fence) {
  1353. fn.glIsFenceAPPLEFn = reinterpret_cast<glIsFenceAPPLEProc>(
  1354. GetGLProcAddress("glIsFenceAPPLE"));
  1355. }
  1356. debug_fn.glIsFenceNVFn = 0;
  1357. if (ext.b_GL_NV_fence) {
  1358. fn.glIsFenceNVFn =
  1359. reinterpret_cast<glIsFenceNVProc>(GetGLProcAddress("glIsFenceNV"));
  1360. }
  1361. debug_fn.glIsFramebufferEXTFn = 0;
  1362. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  1363. fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>(
  1364. GetGLProcAddress("glIsFramebuffer"));
  1365. } else if (ext.b_GL_EXT_framebuffer_object) {
  1366. fn.glIsFramebufferEXTFn = reinterpret_cast<glIsFramebufferEXTProc>(
  1367. GetGLProcAddress("glIsFramebufferEXT"));
  1368. }
  1369. debug_fn.glIsPathNVFn = 0;
  1370. if (ext.b_GL_NV_path_rendering) {
  1371. fn.glIsPathNVFn =
  1372. reinterpret_cast<glIsPathNVProc>(GetGLProcAddress("glIsPathNV"));
  1373. }
  1374. debug_fn.glIsQueryFn = 0;
  1375. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1376. fn.glIsQueryFn =
  1377. reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQuery"));
  1378. } else if (ext.b_GL_ARB_occlusion_query) {
  1379. fn.glIsQueryFn =
  1380. reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQueryARB"));
  1381. } else if (ext.b_GL_EXT_disjoint_timer_query ||
  1382. ext.b_GL_EXT_occlusion_query_boolean) {
  1383. fn.glIsQueryFn =
  1384. reinterpret_cast<glIsQueryProc>(GetGLProcAddress("glIsQueryEXT"));
  1385. }
  1386. debug_fn.glIsRenderbufferEXTFn = 0;
  1387. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  1388. fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>(
  1389. GetGLProcAddress("glIsRenderbuffer"));
  1390. } else if (ext.b_GL_EXT_framebuffer_object) {
  1391. fn.glIsRenderbufferEXTFn = reinterpret_cast<glIsRenderbufferEXTProc>(
  1392. GetGLProcAddress("glIsRenderbufferEXT"));
  1393. }
  1394. debug_fn.glIsSamplerFn = 0;
  1395. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1396. fn.glIsSamplerFn =
  1397. reinterpret_cast<glIsSamplerProc>(GetGLProcAddress("glIsSampler"));
  1398. }
  1399. debug_fn.glIsSyncFn = 0;
  1400. if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
  1401. ext.b_GL_ARB_sync) {
  1402. fn.glIsSyncFn =
  1403. reinterpret_cast<glIsSyncProc>(GetGLProcAddress("glIsSync"));
  1404. }
  1405. debug_fn.glIsTransformFeedbackFn = 0;
  1406. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
  1407. fn.glIsTransformFeedbackFn = reinterpret_cast<glIsTransformFeedbackProc>(
  1408. GetGLProcAddress("glIsTransformFeedback"));
  1409. }
  1410. debug_fn.glIsVertexArrayOESFn = 0;
  1411. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
  1412. ext.b_GL_ARB_vertex_array_object) {
  1413. fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
  1414. GetGLProcAddress("glIsVertexArray"));
  1415. } else if (ext.b_GL_OES_vertex_array_object) {
  1416. fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
  1417. GetGLProcAddress("glIsVertexArrayOES"));
  1418. } else if (ext.b_GL_APPLE_vertex_array_object) {
  1419. fn.glIsVertexArrayOESFn = reinterpret_cast<glIsVertexArrayOESProc>(
  1420. GetGLProcAddress("glIsVertexArrayAPPLE"));
  1421. }
  1422. debug_fn.glMapBufferFn = 0;
  1423. if (!ver->is_es) {
  1424. fn.glMapBufferFn =
  1425. reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBuffer"));
  1426. } else if (ext.b_GL_OES_mapbuffer) {
  1427. fn.glMapBufferFn =
  1428. reinterpret_cast<glMapBufferProc>(GetGLProcAddress("glMapBufferOES"));
  1429. }
  1430. debug_fn.glMapBufferRangeFn = 0;
  1431. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u) ||
  1432. ext.b_GL_ARB_map_buffer_range) {
  1433. fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
  1434. GetGLProcAddress("glMapBufferRange"));
  1435. } else if (ext.b_GL_EXT_map_buffer_range) {
  1436. fn.glMapBufferRangeFn = reinterpret_cast<glMapBufferRangeProc>(
  1437. GetGLProcAddress("glMapBufferRangeEXT"));
  1438. }
  1439. debug_fn.glMatrixLoadfEXTFn = 0;
  1440. if (ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering) {
  1441. fn.glMatrixLoadfEXTFn = reinterpret_cast<glMatrixLoadfEXTProc>(
  1442. GetGLProcAddress("glMatrixLoadfEXT"));
  1443. }
  1444. debug_fn.glMatrixLoadIdentityEXTFn = 0;
  1445. if (ext.b_GL_EXT_direct_state_access || ext.b_GL_NV_path_rendering) {
  1446. fn.glMatrixLoadIdentityEXTFn =
  1447. reinterpret_cast<glMatrixLoadIdentityEXTProc>(
  1448. GetGLProcAddress("glMatrixLoadIdentityEXT"));
  1449. }
  1450. debug_fn.glMemoryBarrierEXTFn = 0;
  1451. if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 1u) ||
  1452. ext.b_GL_ARB_shader_image_load_store) {
  1453. fn.glMemoryBarrierEXTFn = reinterpret_cast<glMemoryBarrierEXTProc>(
  1454. GetGLProcAddress("glMemoryBarrier"));
  1455. } else if (ext.b_GL_EXT_shader_image_load_store) {
  1456. fn.glMemoryBarrierEXTFn = reinterpret_cast<glMemoryBarrierEXTProc>(
  1457. GetGLProcAddress("glMemoryBarrierEXT"));
  1458. }
  1459. debug_fn.glPathCommandsNVFn = 0;
  1460. if (ext.b_GL_NV_path_rendering) {
  1461. fn.glPathCommandsNVFn = reinterpret_cast<glPathCommandsNVProc>(
  1462. GetGLProcAddress("glPathCommandsNV"));
  1463. }
  1464. debug_fn.glPathParameterfNVFn = 0;
  1465. if (ext.b_GL_NV_path_rendering) {
  1466. fn.glPathParameterfNVFn = reinterpret_cast<glPathParameterfNVProc>(
  1467. GetGLProcAddress("glPathParameterfNV"));
  1468. }
  1469. debug_fn.glPathParameteriNVFn = 0;
  1470. if (ext.b_GL_NV_path_rendering) {
  1471. fn.glPathParameteriNVFn = reinterpret_cast<glPathParameteriNVProc>(
  1472. GetGLProcAddress("glPathParameteriNV"));
  1473. }
  1474. debug_fn.glPathStencilFuncNVFn = 0;
  1475. if (ext.b_GL_NV_path_rendering) {
  1476. fn.glPathStencilFuncNVFn = reinterpret_cast<glPathStencilFuncNVProc>(
  1477. GetGLProcAddress("glPathStencilFuncNV"));
  1478. }
  1479. debug_fn.glPauseTransformFeedbackFn = 0;
  1480. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
  1481. fn.glPauseTransformFeedbackFn =
  1482. reinterpret_cast<glPauseTransformFeedbackProc>(
  1483. GetGLProcAddress("glPauseTransformFeedback"));
  1484. }
  1485. debug_fn.glPointParameteriFn = 0;
  1486. if (!ver->is_es) {
  1487. fn.glPointParameteriFn = reinterpret_cast<glPointParameteriProc>(
  1488. GetGLProcAddress("glPointParameteri"));
  1489. }
  1490. debug_fn.glPopGroupMarkerEXTFn = 0;
  1491. if (ext.b_GL_EXT_debug_marker) {
  1492. fn.glPopGroupMarkerEXTFn = reinterpret_cast<glPopGroupMarkerEXTProc>(
  1493. GetGLProcAddress("glPopGroupMarkerEXT"));
  1494. }
  1495. debug_fn.glProgramBinaryFn = 0;
  1496. if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
  1497. ext.b_GL_ARB_get_program_binary) {
  1498. fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
  1499. GetGLProcAddress("glProgramBinary"));
  1500. } else if (ext.b_GL_OES_get_program_binary) {
  1501. fn.glProgramBinaryFn = reinterpret_cast<glProgramBinaryProc>(
  1502. GetGLProcAddress("glProgramBinaryOES"));
  1503. }
  1504. debug_fn.glProgramParameteriFn = 0;
  1505. if (ver->IsAtLeastGL(4u, 1u) || ver->IsAtLeastGLES(3u, 0u) ||
  1506. ext.b_GL_ARB_get_program_binary) {
  1507. fn.glProgramParameteriFn = reinterpret_cast<glProgramParameteriProc>(
  1508. GetGLProcAddress("glProgramParameteri"));
  1509. }
  1510. debug_fn.glProgramPathFragmentInputGenNVFn = 0;
  1511. if (ext.b_GL_NV_path_rendering) {
  1512. fn.glProgramPathFragmentInputGenNVFn =
  1513. reinterpret_cast<glProgramPathFragmentInputGenNVProc>(
  1514. GetGLProcAddress("glProgramPathFragmentInputGenNV"));
  1515. }
  1516. debug_fn.glPushGroupMarkerEXTFn = 0;
  1517. if (ext.b_GL_EXT_debug_marker) {
  1518. fn.glPushGroupMarkerEXTFn = reinterpret_cast<glPushGroupMarkerEXTProc>(
  1519. GetGLProcAddress("glPushGroupMarkerEXT"));
  1520. }
  1521. debug_fn.glQueryCounterFn = 0;
  1522. if (ver->IsAtLeastGL(3u, 3u) || ext.b_GL_ARB_timer_query) {
  1523. fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
  1524. GetGLProcAddress("glQueryCounter"));
  1525. } else if (ext.b_GL_EXT_disjoint_timer_query) {
  1526. fn.glQueryCounterFn = reinterpret_cast<glQueryCounterProc>(
  1527. GetGLProcAddress("glQueryCounterEXT"));
  1528. }
  1529. debug_fn.glReadBufferFn = 0;
  1530. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1531. fn.glReadBufferFn =
  1532. reinterpret_cast<glReadBufferProc>(GetGLProcAddress("glReadBuffer"));
  1533. }
  1534. debug_fn.glReleaseShaderCompilerFn = 0;
  1535. if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
  1536. fn.glReleaseShaderCompilerFn =
  1537. reinterpret_cast<glReleaseShaderCompilerProc>(
  1538. GetGLProcAddress("glReleaseShaderCompiler"));
  1539. }
  1540. debug_fn.glRenderbufferStorageEXTFn = 0;
  1541. if (ver->IsAtLeastGL(3u, 0u) || ver->is_es) {
  1542. fn.glRenderbufferStorageEXTFn =
  1543. reinterpret_cast<glRenderbufferStorageEXTProc>(
  1544. GetGLProcAddress("glRenderbufferStorage"));
  1545. } else if (ext.b_GL_EXT_framebuffer_object) {
  1546. fn.glRenderbufferStorageEXTFn =
  1547. reinterpret_cast<glRenderbufferStorageEXTProc>(
  1548. GetGLProcAddress("glRenderbufferStorageEXT"));
  1549. }
  1550. debug_fn.glRenderbufferStorageMultisampleFn = 0;
  1551. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1552. fn.glRenderbufferStorageMultisampleFn =
  1553. reinterpret_cast<glRenderbufferStorageMultisampleProc>(
  1554. GetGLProcAddress("glRenderbufferStorageMultisample"));
  1555. }
  1556. debug_fn.glRenderbufferStorageMultisampleANGLEFn = 0;
  1557. if (ext.b_GL_ANGLE_framebuffer_multisample) {
  1558. fn.glRenderbufferStorageMultisampleANGLEFn =
  1559. reinterpret_cast<glRenderbufferStorageMultisampleANGLEProc>(
  1560. GetGLProcAddress("glRenderbufferStorageMultisampleANGLE"));
  1561. }
  1562. debug_fn.glRenderbufferStorageMultisampleEXTFn = 0;
  1563. if (ext.b_GL_EXT_multisampled_render_to_texture ||
  1564. ext.b_GL_EXT_framebuffer_multisample) {
  1565. fn.glRenderbufferStorageMultisampleEXTFn =
  1566. reinterpret_cast<glRenderbufferStorageMultisampleEXTProc>(
  1567. GetGLProcAddress("glRenderbufferStorageMultisampleEXT"));
  1568. }
  1569. debug_fn.glRenderbufferStorageMultisampleIMGFn = 0;
  1570. if (ext.b_GL_IMG_multisampled_render_to_texture) {
  1571. fn.glRenderbufferStorageMultisampleIMGFn =
  1572. reinterpret_cast<glRenderbufferStorageMultisampleIMGProc>(
  1573. GetGLProcAddress("glRenderbufferStorageMultisampleIMG"));
  1574. }
  1575. debug_fn.glResumeTransformFeedbackFn = 0;
  1576. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(4u, 0u)) {
  1577. fn.glResumeTransformFeedbackFn =
  1578. reinterpret_cast<glResumeTransformFeedbackProc>(
  1579. GetGLProcAddress("glResumeTransformFeedback"));
  1580. }
  1581. debug_fn.glSamplerParameterfFn = 0;
  1582. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1583. fn.glSamplerParameterfFn = reinterpret_cast<glSamplerParameterfProc>(
  1584. GetGLProcAddress("glSamplerParameterf"));
  1585. }
  1586. debug_fn.glSamplerParameterfvFn = 0;
  1587. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1588. fn.glSamplerParameterfvFn = reinterpret_cast<glSamplerParameterfvProc>(
  1589. GetGLProcAddress("glSamplerParameterfv"));
  1590. }
  1591. debug_fn.glSamplerParameteriFn = 0;
  1592. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1593. fn.glSamplerParameteriFn = reinterpret_cast<glSamplerParameteriProc>(
  1594. GetGLProcAddress("glSamplerParameteri"));
  1595. }
  1596. debug_fn.glSamplerParameterivFn = 0;
  1597. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1598. fn.glSamplerParameterivFn = reinterpret_cast<glSamplerParameterivProc>(
  1599. GetGLProcAddress("glSamplerParameteriv"));
  1600. }
  1601. debug_fn.glSetFenceAPPLEFn = 0;
  1602. if (ext.b_GL_APPLE_fence) {
  1603. fn.glSetFenceAPPLEFn = reinterpret_cast<glSetFenceAPPLEProc>(
  1604. GetGLProcAddress("glSetFenceAPPLE"));
  1605. }
  1606. debug_fn.glSetFenceNVFn = 0;
  1607. if (ext.b_GL_NV_fence) {
  1608. fn.glSetFenceNVFn =
  1609. reinterpret_cast<glSetFenceNVProc>(GetGLProcAddress("glSetFenceNV"));
  1610. }
  1611. debug_fn.glShaderBinaryFn = 0;
  1612. if (ver->IsAtLeastGL(4u, 1u) || ver->is_es) {
  1613. fn.glShaderBinaryFn = reinterpret_cast<glShaderBinaryProc>(
  1614. GetGLProcAddress("glShaderBinary"));
  1615. }
  1616. debug_fn.glStencilFillPathInstancedNVFn = 0;
  1617. if (ext.b_GL_NV_path_rendering) {
  1618. fn.glStencilFillPathInstancedNVFn =
  1619. reinterpret_cast<glStencilFillPathInstancedNVProc>(
  1620. GetGLProcAddress("glStencilFillPathInstancedNV"));
  1621. }
  1622. debug_fn.glStencilFillPathNVFn = 0;
  1623. if (ext.b_GL_NV_path_rendering) {
  1624. fn.glStencilFillPathNVFn = reinterpret_cast<glStencilFillPathNVProc>(
  1625. GetGLProcAddress("glStencilFillPathNV"));
  1626. }
  1627. debug_fn.glStencilStrokePathInstancedNVFn = 0;
  1628. if (ext.b_GL_NV_path_rendering) {
  1629. fn.glStencilStrokePathInstancedNVFn =
  1630. reinterpret_cast<glStencilStrokePathInstancedNVProc>(
  1631. GetGLProcAddress("glStencilStrokePathInstancedNV"));
  1632. }
  1633. debug_fn.glStencilStrokePathNVFn = 0;
  1634. if (ext.b_GL_NV_path_rendering) {
  1635. fn.glStencilStrokePathNVFn = reinterpret_cast<glStencilStrokePathNVProc>(
  1636. GetGLProcAddress("glStencilStrokePathNV"));
  1637. }
  1638. debug_fn.glStencilThenCoverFillPathInstancedNVFn = 0;
  1639. if (ext.b_GL_NV_path_rendering) {
  1640. fn.glStencilThenCoverFillPathInstancedNVFn =
  1641. reinterpret_cast<glStencilThenCoverFillPathInstancedNVProc>(
  1642. GetGLProcAddress("glStencilThenCoverFillPathInstancedNV"));
  1643. }
  1644. debug_fn.glStencilThenCoverFillPathNVFn = 0;
  1645. if (ext.b_GL_NV_path_rendering) {
  1646. fn.glStencilThenCoverFillPathNVFn =
  1647. reinterpret_cast<glStencilThenCoverFillPathNVProc>(
  1648. GetGLProcAddress("glStencilThenCoverFillPathNV"));
  1649. }
  1650. debug_fn.glStencilThenCoverStrokePathInstancedNVFn = 0;
  1651. if (ext.b_GL_NV_path_rendering) {
  1652. fn.glStencilThenCoverStrokePathInstancedNVFn =
  1653. reinterpret_cast<glStencilThenCoverStrokePathInstancedNVProc>(
  1654. GetGLProcAddress("glStencilThenCoverStrokePathInstancedNV"));
  1655. }
  1656. debug_fn.glStencilThenCoverStrokePathNVFn = 0;
  1657. if (ext.b_GL_NV_path_rendering) {
  1658. fn.glStencilThenCoverStrokePathNVFn =
  1659. reinterpret_cast<glStencilThenCoverStrokePathNVProc>(
  1660. GetGLProcAddress("glStencilThenCoverStrokePathNV"));
  1661. }
  1662. debug_fn.glTestFenceAPPLEFn = 0;
  1663. if (ext.b_GL_APPLE_fence) {
  1664. fn.glTestFenceAPPLEFn = reinterpret_cast<glTestFenceAPPLEProc>(
  1665. GetGLProcAddress("glTestFenceAPPLE"));
  1666. }
  1667. debug_fn.glTestFenceNVFn = 0;
  1668. if (ext.b_GL_NV_fence) {
  1669. fn.glTestFenceNVFn =
  1670. reinterpret_cast<glTestFenceNVProc>(GetGLProcAddress("glTestFenceNV"));
  1671. }
  1672. debug_fn.glTexImage3DFn = 0;
  1673. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1674. fn.glTexImage3DFn =
  1675. reinterpret_cast<glTexImage3DProc>(GetGLProcAddress("glTexImage3D"));
  1676. }
  1677. debug_fn.glTexStorage2DEXTFn = 0;
  1678. if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
  1679. ext.b_GL_ARB_texture_storage) {
  1680. fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
  1681. GetGLProcAddress("glTexStorage2D"));
  1682. } else if (ext.b_GL_EXT_texture_storage) {
  1683. fn.glTexStorage2DEXTFn = reinterpret_cast<glTexStorage2DEXTProc>(
  1684. GetGLProcAddress("glTexStorage2DEXT"));
  1685. }
  1686. debug_fn.glTexStorage3DFn = 0;
  1687. if (ver->IsAtLeastGL(4u, 2u) || ver->IsAtLeastGLES(3u, 0u)) {
  1688. fn.glTexStorage3DFn = reinterpret_cast<glTexStorage3DProc>(
  1689. GetGLProcAddress("glTexStorage3D"));
  1690. }
  1691. debug_fn.glTexSubImage3DFn = 0;
  1692. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1693. fn.glTexSubImage3DFn = reinterpret_cast<glTexSubImage3DProc>(
  1694. GetGLProcAddress("glTexSubImage3D"));
  1695. }
  1696. debug_fn.glTransformFeedbackVaryingsFn = 0;
  1697. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1698. fn.glTransformFeedbackVaryingsFn =
  1699. reinterpret_cast<glTransformFeedbackVaryingsProc>(
  1700. GetGLProcAddress("glTransformFeedbackVaryings"));
  1701. }
  1702. debug_fn.glUniform1uiFn = 0;
  1703. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1704. fn.glUniform1uiFn =
  1705. reinterpret_cast<glUniform1uiProc>(GetGLProcAddress("glUniform1ui"));
  1706. }
  1707. debug_fn.glUniform1uivFn = 0;
  1708. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1709. fn.glUniform1uivFn =
  1710. reinterpret_cast<glUniform1uivProc>(GetGLProcAddress("glUniform1uiv"));
  1711. }
  1712. debug_fn.glUniform2uiFn = 0;
  1713. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1714. fn.glUniform2uiFn =
  1715. reinterpret_cast<glUniform2uiProc>(GetGLProcAddress("glUniform2ui"));
  1716. }
  1717. debug_fn.glUniform2uivFn = 0;
  1718. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1719. fn.glUniform2uivFn =
  1720. reinterpret_cast<glUniform2uivProc>(GetGLProcAddress("glUniform2uiv"));
  1721. }
  1722. debug_fn.glUniform3uiFn = 0;
  1723. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1724. fn.glUniform3uiFn =
  1725. reinterpret_cast<glUniform3uiProc>(GetGLProcAddress("glUniform3ui"));
  1726. }
  1727. debug_fn.glUniform3uivFn = 0;
  1728. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1729. fn.glUniform3uivFn =
  1730. reinterpret_cast<glUniform3uivProc>(GetGLProcAddress("glUniform3uiv"));
  1731. }
  1732. debug_fn.glUniform4uiFn = 0;
  1733. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1734. fn.glUniform4uiFn =
  1735. reinterpret_cast<glUniform4uiProc>(GetGLProcAddress("glUniform4ui"));
  1736. }
  1737. debug_fn.glUniform4uivFn = 0;
  1738. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1739. fn.glUniform4uivFn =
  1740. reinterpret_cast<glUniform4uivProc>(GetGLProcAddress("glUniform4uiv"));
  1741. }
  1742. debug_fn.glUniformBlockBindingFn = 0;
  1743. if (ver->IsAtLeastGLES(3u, 0u) || ver->IsAtLeastGL(3u, 1u)) {
  1744. fn.glUniformBlockBindingFn = reinterpret_cast<glUniformBlockBindingProc>(
  1745. GetGLProcAddress("glUniformBlockBinding"));
  1746. }
  1747. debug_fn.glUniformMatrix2x3fvFn = 0;
  1748. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1749. fn.glUniformMatrix2x3fvFn = reinterpret_cast<glUniformMatrix2x3fvProc>(
  1750. GetGLProcAddress("glUniformMatrix2x3fv"));
  1751. }
  1752. debug_fn.glUniformMatrix2x4fvFn = 0;
  1753. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1754. fn.glUniformMatrix2x4fvFn = reinterpret_cast<glUniformMatrix2x4fvProc>(
  1755. GetGLProcAddress("glUniformMatrix2x4fv"));
  1756. }
  1757. debug_fn.glUniformMatrix3x2fvFn = 0;
  1758. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1759. fn.glUniformMatrix3x2fvFn = reinterpret_cast<glUniformMatrix3x2fvProc>(
  1760. GetGLProcAddress("glUniformMatrix3x2fv"));
  1761. }
  1762. debug_fn.glUniformMatrix3x4fvFn = 0;
  1763. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1764. fn.glUniformMatrix3x4fvFn = reinterpret_cast<glUniformMatrix3x4fvProc>(
  1765. GetGLProcAddress("glUniformMatrix3x4fv"));
  1766. }
  1767. debug_fn.glUniformMatrix4x2fvFn = 0;
  1768. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1769. fn.glUniformMatrix4x2fvFn = reinterpret_cast<glUniformMatrix4x2fvProc>(
  1770. GetGLProcAddress("glUniformMatrix4x2fv"));
  1771. }
  1772. debug_fn.glUniformMatrix4x3fvFn = 0;
  1773. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1774. fn.glUniformMatrix4x3fvFn = reinterpret_cast<glUniformMatrix4x3fvProc>(
  1775. GetGLProcAddress("glUniformMatrix4x3fv"));
  1776. }
  1777. debug_fn.glUnmapBufferFn = 0;
  1778. if (!ver->is_es || ver->IsAtLeastGLES(3u, 0u)) {
  1779. fn.glUnmapBufferFn =
  1780. reinterpret_cast<glUnmapBufferProc>(GetGLProcAddress("glUnmapBuffer"));
  1781. } else if (ext.b_GL_OES_mapbuffer) {
  1782. fn.glUnmapBufferFn = reinterpret_cast<glUnmapBufferProc>(
  1783. GetGLProcAddress("glUnmapBufferOES"));
  1784. }
  1785. debug_fn.glVertexAttribDivisorANGLEFn = 0;
  1786. if (ver->IsAtLeastGL(3u, 3u) || ver->IsAtLeastGLES(3u, 0u)) {
  1787. fn.glVertexAttribDivisorANGLEFn =
  1788. reinterpret_cast<glVertexAttribDivisorANGLEProc>(
  1789. GetGLProcAddress("glVertexAttribDivisor"));
  1790. } else if (ext.b_GL_ARB_instanced_arrays) {
  1791. fn.glVertexAttribDivisorANGLEFn =
  1792. reinterpret_cast<glVertexAttribDivisorANGLEProc>(
  1793. GetGLProcAddress("glVertexAttribDivisorARB"));
  1794. } else if (ext.b_GL_ANGLE_instanced_arrays) {
  1795. fn.glVertexAttribDivisorANGLEFn =
  1796. reinterpret_cast<glVertexAttribDivisorANGLEProc>(
  1797. GetGLProcAddress("glVertexAttribDivisorANGLE"));
  1798. }
  1799. debug_fn.glVertexAttribI4iFn = 0;
  1800. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1801. fn.glVertexAttribI4iFn = reinterpret_cast<glVertexAttribI4iProc>(
  1802. GetGLProcAddress("glVertexAttribI4i"));
  1803. }
  1804. debug_fn.glVertexAttribI4ivFn = 0;
  1805. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1806. fn.glVertexAttribI4ivFn = reinterpret_cast<glVertexAttribI4ivProc>(
  1807. GetGLProcAddress("glVertexAttribI4iv"));
  1808. }
  1809. debug_fn.glVertexAttribI4uiFn = 0;
  1810. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1811. fn.glVertexAttribI4uiFn = reinterpret_cast<glVertexAttribI4uiProc>(
  1812. GetGLProcAddress("glVertexAttribI4ui"));
  1813. }
  1814. debug_fn.glVertexAttribI4uivFn = 0;
  1815. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1816. fn.glVertexAttribI4uivFn = reinterpret_cast<glVertexAttribI4uivProc>(
  1817. GetGLProcAddress("glVertexAttribI4uiv"));
  1818. }
  1819. debug_fn.glVertexAttribIPointerFn = 0;
  1820. if (ver->IsAtLeastGL(3u, 0u) || ver->IsAtLeastGLES(3u, 0u)) {
  1821. fn.glVertexAttribIPointerFn = reinterpret_cast<glVertexAttribIPointerProc>(
  1822. GetGLProcAddress("glVertexAttribIPointer"));
  1823. }
  1824. debug_fn.glWaitSyncFn = 0;
  1825. if (ver->IsAtLeastGL(3u, 2u) || ver->IsAtLeastGLES(3u, 0u) ||
  1826. ext.b_GL_ARB_sync) {
  1827. fn.glWaitSyncFn =
  1828. reinterpret_cast<glWaitSyncProc>(GetGLProcAddress("glWaitSync"));
  1829. }
  1830. if (g_debugBindingsInitialized)
  1831. InitializeDebugBindings();
  1832. }
  1833. extern "C" {
  1834. static void GL_BINDING_CALL Debug_glActiveTexture(GLenum texture) {
  1835. GL_SERVICE_LOG("glActiveTexture"
  1836. << "(" << GLEnums::GetStringEnum(texture) << ")");
  1837. g_driver_gl.debug_fn.glActiveTextureFn(texture);
  1838. }
  1839. static void GL_BINDING_CALL Debug_glApplyFramebufferAttachmentCMAAINTEL(void) {
  1840. GL_SERVICE_LOG("glApplyFramebufferAttachmentCMAAINTEL"
  1841. << "("
  1842. << ")");
  1843. g_driver_gl.debug_fn.glApplyFramebufferAttachmentCMAAINTELFn();
  1844. }
  1845. static void GL_BINDING_CALL Debug_glAttachShader(GLuint program,
  1846. GLuint shader) {
  1847. GL_SERVICE_LOG("glAttachShader"
  1848. << "(" << program << ", " << shader << ")");
  1849. g_driver_gl.debug_fn.glAttachShaderFn(program, shader);
  1850. }
  1851. static void GL_BINDING_CALL Debug_glBeginQuery(GLenum target, GLuint id) {
  1852. GL_SERVICE_LOG("glBeginQuery"
  1853. << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")");
  1854. g_driver_gl.debug_fn.glBeginQueryFn(target, id);
  1855. }
  1856. static void GL_BINDING_CALL
  1857. Debug_glBeginTransformFeedback(GLenum primitiveMode) {
  1858. GL_SERVICE_LOG("glBeginTransformFeedback"
  1859. << "(" << GLEnums::GetStringEnum(primitiveMode) << ")");
  1860. g_driver_gl.debug_fn.glBeginTransformFeedbackFn(primitiveMode);
  1861. }
  1862. static void GL_BINDING_CALL Debug_glBindAttribLocation(GLuint program,
  1863. GLuint index,
  1864. const char* name) {
  1865. GL_SERVICE_LOG("glBindAttribLocation"
  1866. << "(" << program << ", " << index << ", " << name << ")");
  1867. g_driver_gl.debug_fn.glBindAttribLocationFn(program, index, name);
  1868. }
  1869. static void GL_BINDING_CALL Debug_glBindBuffer(GLenum target, GLuint buffer) {
  1870. GL_SERVICE_LOG("glBindBuffer"
  1871. << "(" << GLEnums::GetStringEnum(target) << ", " << buffer
  1872. << ")");
  1873. g_driver_gl.debug_fn.glBindBufferFn(target, buffer);
  1874. }
  1875. static void GL_BINDING_CALL Debug_glBindBufferBase(GLenum target,
  1876. GLuint index,
  1877. GLuint buffer) {
  1878. GL_SERVICE_LOG("glBindBufferBase"
  1879. << "(" << GLEnums::GetStringEnum(target) << ", " << index
  1880. << ", " << buffer << ")");
  1881. g_driver_gl.debug_fn.glBindBufferBaseFn(target, index, buffer);
  1882. }
  1883. static void GL_BINDING_CALL Debug_glBindBufferRange(GLenum target,
  1884. GLuint index,
  1885. GLuint buffer,
  1886. GLintptr offset,
  1887. GLsizeiptr size) {
  1888. GL_SERVICE_LOG("glBindBufferRange"
  1889. << "(" << GLEnums::GetStringEnum(target) << ", " << index
  1890. << ", " << buffer << ", " << offset << ", " << size << ")");
  1891. g_driver_gl.debug_fn.glBindBufferRangeFn(target, index, buffer, offset, size);
  1892. }
  1893. static void GL_BINDING_CALL Debug_glBindFragDataLocation(GLuint program,
  1894. GLuint colorNumber,
  1895. const char* name) {
  1896. GL_SERVICE_LOG("glBindFragDataLocation"
  1897. << "(" << program << ", " << colorNumber << ", " << name
  1898. << ")");
  1899. g_driver_gl.debug_fn.glBindFragDataLocationFn(program, colorNumber, name);
  1900. }
  1901. static void GL_BINDING_CALL
  1902. Debug_glBindFragDataLocationIndexed(GLuint program,
  1903. GLuint colorNumber,
  1904. GLuint index,
  1905. const char* name) {
  1906. GL_SERVICE_LOG("glBindFragDataLocationIndexed"
  1907. << "(" << program << ", " << colorNumber << ", " << index
  1908. << ", " << name << ")");
  1909. g_driver_gl.debug_fn.glBindFragDataLocationIndexedFn(program, colorNumber,
  1910. index, name);
  1911. }
  1912. static void GL_BINDING_CALL Debug_glBindFramebufferEXT(GLenum target,
  1913. GLuint framebuffer) {
  1914. GL_SERVICE_LOG("glBindFramebufferEXT"
  1915. << "(" << GLEnums::GetStringEnum(target) << ", " << framebuffer
  1916. << ")");
  1917. g_driver_gl.debug_fn.glBindFramebufferEXTFn(target, framebuffer);
  1918. }
  1919. static void GL_BINDING_CALL Debug_glBindImageTextureEXT(GLuint index,
  1920. GLuint texture,
  1921. GLint level,
  1922. GLboolean layered,
  1923. GLint layer,
  1924. GLenum access,
  1925. GLint format) {
  1926. GL_SERVICE_LOG("glBindImageTextureEXT"
  1927. << "(" << index << ", " << texture << ", " << level << ", "
  1928. << GLEnums::GetStringBool(layered) << ", " << layer << ", "
  1929. << GLEnums::GetStringEnum(access) << ", " << format << ")");
  1930. g_driver_gl.debug_fn.glBindImageTextureEXTFn(index, texture, level, layered,
  1931. layer, access, format);
  1932. }
  1933. static void GL_BINDING_CALL Debug_glBindRenderbufferEXT(GLenum target,
  1934. GLuint renderbuffer) {
  1935. GL_SERVICE_LOG("glBindRenderbufferEXT"
  1936. << "(" << GLEnums::GetStringEnum(target) << ", "
  1937. << renderbuffer << ")");
  1938. g_driver_gl.debug_fn.glBindRenderbufferEXTFn(target, renderbuffer);
  1939. }
  1940. static void GL_BINDING_CALL Debug_glBindSampler(GLuint unit, GLuint sampler) {
  1941. GL_SERVICE_LOG("glBindSampler"
  1942. << "(" << unit << ", " << sampler << ")");
  1943. g_driver_gl.debug_fn.glBindSamplerFn(unit, sampler);
  1944. }
  1945. static void GL_BINDING_CALL Debug_glBindTexture(GLenum target, GLuint texture) {
  1946. GL_SERVICE_LOG("glBindTexture"
  1947. << "(" << GLEnums::GetStringEnum(target) << ", " << texture
  1948. << ")");
  1949. g_driver_gl.debug_fn.glBindTextureFn(target, texture);
  1950. }
  1951. static void GL_BINDING_CALL Debug_glBindTransformFeedback(GLenum target,
  1952. GLuint id) {
  1953. GL_SERVICE_LOG("glBindTransformFeedback"
  1954. << "(" << GLEnums::GetStringEnum(target) << ", " << id << ")");
  1955. g_driver_gl.debug_fn.glBindTransformFeedbackFn(target, id);
  1956. }
  1957. static void GL_BINDING_CALL Debug_glBindVertexArrayOES(GLuint array) {
  1958. GL_SERVICE_LOG("glBindVertexArrayOES"
  1959. << "(" << array << ")");
  1960. g_driver_gl.debug_fn.glBindVertexArrayOESFn(array);
  1961. }
  1962. static void GL_BINDING_CALL Debug_glBlendBarrierKHR(void) {
  1963. GL_SERVICE_LOG("glBlendBarrierKHR"
  1964. << "("
  1965. << ")");
  1966. g_driver_gl.debug_fn.glBlendBarrierKHRFn();
  1967. }
  1968. static void GL_BINDING_CALL Debug_glBlendColor(GLclampf red,
  1969. GLclampf green,
  1970. GLclampf blue,
  1971. GLclampf alpha) {
  1972. GL_SERVICE_LOG("glBlendColor"
  1973. << "(" << red << ", " << green << ", " << blue << ", " << alpha
  1974. << ")");
  1975. g_driver_gl.debug_fn.glBlendColorFn(red, green, blue, alpha);
  1976. }
  1977. static void GL_BINDING_CALL Debug_glBlendEquation(GLenum mode) {
  1978. GL_SERVICE_LOG("glBlendEquation"
  1979. << "(" << GLEnums::GetStringEnum(mode) << ")");
  1980. g_driver_gl.debug_fn.glBlendEquationFn(mode);
  1981. }
  1982. static void GL_BINDING_CALL Debug_glBlendEquationSeparate(GLenum modeRGB,
  1983. GLenum modeAlpha) {
  1984. GL_SERVICE_LOG("glBlendEquationSeparate"
  1985. << "(" << GLEnums::GetStringEnum(modeRGB) << ", "
  1986. << GLEnums::GetStringEnum(modeAlpha) << ")");
  1987. g_driver_gl.debug_fn.glBlendEquationSeparateFn(modeRGB, modeAlpha);
  1988. }
  1989. static void GL_BINDING_CALL Debug_glBlendFunc(GLenum sfactor, GLenum dfactor) {
  1990. GL_SERVICE_LOG("glBlendFunc"
  1991. << "(" << GLEnums::GetStringEnum(sfactor) << ", "
  1992. << GLEnums::GetStringEnum(dfactor) << ")");
  1993. g_driver_gl.debug_fn.glBlendFuncFn(sfactor, dfactor);
  1994. }
  1995. static void GL_BINDING_CALL Debug_glBlendFuncSeparate(GLenum srcRGB,
  1996. GLenum dstRGB,
  1997. GLenum srcAlpha,
  1998. GLenum dstAlpha) {
  1999. GL_SERVICE_LOG("glBlendFuncSeparate"
  2000. << "(" << GLEnums::GetStringEnum(srcRGB) << ", "
  2001. << GLEnums::GetStringEnum(dstRGB) << ", "
  2002. << GLEnums::GetStringEnum(srcAlpha) << ", "
  2003. << GLEnums::GetStringEnum(dstAlpha) << ")");
  2004. g_driver_gl.debug_fn.glBlendFuncSeparateFn(srcRGB, dstRGB, srcAlpha,
  2005. dstAlpha);
  2006. }
  2007. static void GL_BINDING_CALL Debug_glBlitFramebuffer(GLint srcX0,
  2008. GLint srcY0,
  2009. GLint srcX1,
  2010. GLint srcY1,
  2011. GLint dstX0,
  2012. GLint dstY0,
  2013. GLint dstX1,
  2014. GLint dstY1,
  2015. GLbitfield mask,
  2016. GLenum filter) {
  2017. GL_SERVICE_LOG("glBlitFramebuffer"
  2018. << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
  2019. << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
  2020. << ", " << dstY1 << ", " << mask << ", "
  2021. << GLEnums::GetStringEnum(filter) << ")");
  2022. g_driver_gl.debug_fn.glBlitFramebufferFn(srcX0, srcY0, srcX1, srcY1, dstX0,
  2023. dstY0, dstX1, dstY1, mask, filter);
  2024. }
  2025. static void GL_BINDING_CALL Debug_glBlitFramebufferANGLE(GLint srcX0,
  2026. GLint srcY0,
  2027. GLint srcX1,
  2028. GLint srcY1,
  2029. GLint dstX0,
  2030. GLint dstY0,
  2031. GLint dstX1,
  2032. GLint dstY1,
  2033. GLbitfield mask,
  2034. GLenum filter) {
  2035. GL_SERVICE_LOG("glBlitFramebufferANGLE"
  2036. << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
  2037. << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
  2038. << ", " << dstY1 << ", " << mask << ", "
  2039. << GLEnums::GetStringEnum(filter) << ")");
  2040. g_driver_gl.debug_fn.glBlitFramebufferANGLEFn(
  2041. srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
  2042. }
  2043. static void GL_BINDING_CALL Debug_glBlitFramebufferEXT(GLint srcX0,
  2044. GLint srcY0,
  2045. GLint srcX1,
  2046. GLint srcY1,
  2047. GLint dstX0,
  2048. GLint dstY0,
  2049. GLint dstX1,
  2050. GLint dstY1,
  2051. GLbitfield mask,
  2052. GLenum filter) {
  2053. GL_SERVICE_LOG("glBlitFramebufferEXT"
  2054. << "(" << srcX0 << ", " << srcY0 << ", " << srcX1 << ", "
  2055. << srcY1 << ", " << dstX0 << ", " << dstY0 << ", " << dstX1
  2056. << ", " << dstY1 << ", " << mask << ", "
  2057. << GLEnums::GetStringEnum(filter) << ")");
  2058. g_driver_gl.debug_fn.glBlitFramebufferEXTFn(
  2059. srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
  2060. }
  2061. static void GL_BINDING_CALL Debug_glBufferData(GLenum target,
  2062. GLsizeiptr size,
  2063. const void* data,
  2064. GLenum usage) {
  2065. GL_SERVICE_LOG("glBufferData"
  2066. << "(" << GLEnums::GetStringEnum(target) << ", " << size
  2067. << ", " << static_cast<const void*>(data) << ", "
  2068. << GLEnums::GetStringEnum(usage) << ")");
  2069. g_driver_gl.debug_fn.glBufferDataFn(target, size, data, usage);
  2070. }
  2071. static void GL_BINDING_CALL Debug_glBufferSubData(GLenum target,
  2072. GLintptr offset,
  2073. GLsizeiptr size,
  2074. const void* data) {
  2075. GL_SERVICE_LOG("glBufferSubData"
  2076. << "(" << GLEnums::GetStringEnum(target) << ", " << offset
  2077. << ", " << size << ", " << static_cast<const void*>(data)
  2078. << ")");
  2079. g_driver_gl.debug_fn.glBufferSubDataFn(target, offset, size, data);
  2080. }
  2081. static GLenum GL_BINDING_CALL Debug_glCheckFramebufferStatusEXT(GLenum target) {
  2082. GL_SERVICE_LOG("glCheckFramebufferStatusEXT"
  2083. << "(" << GLEnums::GetStringEnum(target) << ")");
  2084. GLenum result = g_driver_gl.debug_fn.glCheckFramebufferStatusEXTFn(target);
  2085. GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringEnum(result));
  2086. return result;
  2087. }
  2088. static void GL_BINDING_CALL Debug_glClear(GLbitfield mask) {
  2089. GL_SERVICE_LOG("glClear"
  2090. << "(" << mask << ")");
  2091. g_driver_gl.debug_fn.glClearFn(mask);
  2092. }
  2093. static void GL_BINDING_CALL Debug_glClearBufferfi(GLenum buffer,
  2094. GLint drawbuffer,
  2095. const GLfloat depth,
  2096. GLint stencil) {
  2097. GL_SERVICE_LOG("glClearBufferfi"
  2098. << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
  2099. << ", " << depth << ", " << stencil << ")");
  2100. g_driver_gl.debug_fn.glClearBufferfiFn(buffer, drawbuffer, depth, stencil);
  2101. }
  2102. static void GL_BINDING_CALL Debug_glClearBufferfv(GLenum buffer,
  2103. GLint drawbuffer,
  2104. const GLfloat* value) {
  2105. GL_SERVICE_LOG("glClearBufferfv"
  2106. << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
  2107. << ", " << static_cast<const void*>(value) << ")");
  2108. g_driver_gl.debug_fn.glClearBufferfvFn(buffer, drawbuffer, value);
  2109. }
  2110. static void GL_BINDING_CALL Debug_glClearBufferiv(GLenum buffer,
  2111. GLint drawbuffer,
  2112. const GLint* value) {
  2113. GL_SERVICE_LOG("glClearBufferiv"
  2114. << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
  2115. << ", " << static_cast<const void*>(value) << ")");
  2116. g_driver_gl.debug_fn.glClearBufferivFn(buffer, drawbuffer, value);
  2117. }
  2118. static void GL_BINDING_CALL Debug_glClearBufferuiv(GLenum buffer,
  2119. GLint drawbuffer,
  2120. const GLuint* value) {
  2121. GL_SERVICE_LOG("glClearBufferuiv"
  2122. << "(" << GLEnums::GetStringEnum(buffer) << ", " << drawbuffer
  2123. << ", " << static_cast<const void*>(value) << ")");
  2124. g_driver_gl.debug_fn.glClearBufferuivFn(buffer, drawbuffer, value);
  2125. }
  2126. static void GL_BINDING_CALL Debug_glClearColor(GLclampf red,
  2127. GLclampf green,
  2128. GLclampf blue,
  2129. GLclampf alpha) {
  2130. GL_SERVICE_LOG("glClearColor"
  2131. << "(" << red << ", " << green << ", " << blue << ", " << alpha
  2132. << ")");
  2133. g_driver_gl.debug_fn.glClearColorFn(red, green, blue, alpha);
  2134. }
  2135. static void GL_BINDING_CALL Debug_glClearDepth(GLclampd depth) {
  2136. GL_SERVICE_LOG("glClearDepth"
  2137. << "(" << depth << ")");
  2138. g_driver_gl.debug_fn.glClearDepthFn(depth);
  2139. }
  2140. static void GL_BINDING_CALL Debug_glClearDepthf(GLclampf depth) {
  2141. GL_SERVICE_LOG("glClearDepthf"
  2142. << "(" << depth << ")");
  2143. g_driver_gl.debug_fn.glClearDepthfFn(depth);
  2144. }
  2145. static void GL_BINDING_CALL Debug_glClearStencil(GLint s) {
  2146. GL_SERVICE_LOG("glClearStencil"
  2147. << "(" << s << ")");
  2148. g_driver_gl.debug_fn.glClearStencilFn(s);
  2149. }
  2150. static GLenum GL_BINDING_CALL Debug_glClientWaitSync(GLsync sync,
  2151. GLbitfield flags,
  2152. GLuint64 timeout) {
  2153. GL_SERVICE_LOG("glClientWaitSync"
  2154. << "(" << sync << ", " << flags << ", " << timeout << ")");
  2155. GLenum result = g_driver_gl.debug_fn.glClientWaitSyncFn(sync, flags, timeout);
  2156. GL_SERVICE_LOG("GL_RESULT: " << result);
  2157. return result;
  2158. }
  2159. static void GL_BINDING_CALL Debug_glColorMask(GLboolean red,
  2160. GLboolean green,
  2161. GLboolean blue,
  2162. GLboolean alpha) {
  2163. GL_SERVICE_LOG("glColorMask"
  2164. << "(" << GLEnums::GetStringBool(red) << ", "
  2165. << GLEnums::GetStringBool(green) << ", "
  2166. << GLEnums::GetStringBool(blue) << ", "
  2167. << GLEnums::GetStringBool(alpha) << ")");
  2168. g_driver_gl.debug_fn.glColorMaskFn(red, green, blue, alpha);
  2169. }
  2170. static void GL_BINDING_CALL Debug_glCompileShader(GLuint shader) {
  2171. GL_SERVICE_LOG("glCompileShader"
  2172. << "(" << shader << ")");
  2173. g_driver_gl.debug_fn.glCompileShaderFn(shader);
  2174. }
  2175. static void GL_BINDING_CALL Debug_glCompressedTexImage2D(GLenum target,
  2176. GLint level,
  2177. GLenum internalformat,
  2178. GLsizei width,
  2179. GLsizei height,
  2180. GLint border,
  2181. GLsizei imageSize,
  2182. const void* data) {
  2183. GL_SERVICE_LOG("glCompressedTexImage2D"
  2184. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  2185. << ", " << GLEnums::GetStringEnum(internalformat) << ", "
  2186. << width << ", " << height << ", " << border << ", "
  2187. << imageSize << ", " << static_cast<const void*>(data) << ")");
  2188. g_driver_gl.debug_fn.glCompressedTexImage2DFn(
  2189. target, level, internalformat, width, height, border, imageSize, data);
  2190. }
  2191. static void GL_BINDING_CALL Debug_glCompressedTexImage3D(GLenum target,
  2192. GLint level,
  2193. GLenum internalformat,
  2194. GLsizei width,
  2195. GLsizei height,
  2196. GLsizei depth,
  2197. GLint border,
  2198. GLsizei imageSize,
  2199. const void* data) {
  2200. GL_SERVICE_LOG("glCompressedTexImage3D"
  2201. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  2202. << ", " << GLEnums::GetStringEnum(internalformat) << ", "
  2203. << width << ", " << height << ", " << depth << ", " << border
  2204. << ", " << imageSize << ", " << static_cast<const void*>(data)
  2205. << ")");
  2206. g_driver_gl.debug_fn.glCompressedTexImage3DFn(target, level, internalformat,
  2207. width, height, depth, border,
  2208. imageSize, data);
  2209. }
  2210. static void GL_BINDING_CALL Debug_glCompressedTexSubImage2D(GLenum target,
  2211. GLint level,
  2212. GLint xoffset,
  2213. GLint yoffset,
  2214. GLsizei width,
  2215. GLsizei height,
  2216. GLenum format,
  2217. GLsizei imageSize,
  2218. const void* data) {
  2219. GL_SERVICE_LOG("glCompressedTexSubImage2D"
  2220. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  2221. << ", " << xoffset << ", " << yoffset << ", " << width << ", "
  2222. << height << ", " << GLEnums::GetStringEnum(format) << ", "
  2223. << imageSize << ", " << static_cast<const void*>(data) << ")");
  2224. g_driver_gl.debug_fn.glCompressedTexSubImage2DFn(
  2225. target, level, xoffset, yoffset, width, height, format, imageSize, data);
  2226. }
  2227. static void GL_BINDING_CALL Debug_glCompressedTexSubImage3D(GLenum target,
  2228. GLint level,
  2229. GLint xoffset,
  2230. GLint yoffset,
  2231. GLint zoffset,
  2232. GLsizei width,
  2233. GLsizei height,
  2234. GLsizei depth,
  2235. GLenum format,
  2236. GLsizei imageSize,
  2237. const void* data) {
  2238. GL_SERVICE_LOG("glCompressedTexSubImage3D"
  2239. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  2240. << ", " << xoffset << ", " << yoffset << ", " << zoffset
  2241. << ", " << width << ", " << height << ", " << depth << ", "
  2242. << GLEnums::GetStringEnum(format) << ", " << imageSize << ", "
  2243. << static_cast<const void*>(data) << ")");
  2244. g_driver_gl.debug_fn.glCompressedTexSubImage3DFn(
  2245. target, level, xoffset, yoffset, zoffset, width, height, depth, format,
  2246. imageSize, data);
  2247. }
  2248. static void GL_BINDING_CALL Debug_glCopyBufferSubData(GLenum readTarget,
  2249. GLenum writeTarget,
  2250. GLintptr readOffset,
  2251. GLintptr writeOffset,
  2252. GLsizeiptr size) {
  2253. GL_SERVICE_LOG("glCopyBufferSubData"
  2254. << "(" << GLEnums::GetStringEnum(readTarget) << ", "
  2255. << GLEnums::GetStringEnum(writeTarget) << ", " << readOffset
  2256. << ", " << writeOffset << ", " << size << ")");
  2257. g_driver_gl.debug_fn.glCopyBufferSubDataFn(readTarget, writeTarget,
  2258. readOffset, writeOffset, size);
  2259. }
  2260. static void GL_BINDING_CALL Debug_glCopyTexImage2D(GLenum target,
  2261. GLint level,
  2262. GLenum internalformat,
  2263. GLint x,
  2264. GLint y,
  2265. GLsizei width,
  2266. GLsizei height,
  2267. GLint border) {
  2268. GL_SERVICE_LOG("glCopyTexImage2D"
  2269. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  2270. << ", " << GLEnums::GetStringEnum(internalformat) << ", " << x
  2271. << ", " << y << ", " << width << ", " << height << ", "
  2272. << border << ")");
  2273. g_driver_gl.debug_fn.glCopyTexImage2DFn(target, level, internalformat, x, y,
  2274. width, height, border);
  2275. }
  2276. static void GL_BINDING_CALL Debug_glCopyTexSubImage2D(GLenum target,
  2277. GLint level,
  2278. GLint xoffset,
  2279. GLint yoffset,
  2280. GLint x,
  2281. GLint y,
  2282. GLsizei width,
  2283. GLsizei height) {
  2284. GL_SERVICE_LOG("glCopyTexSubImage2D"
  2285. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  2286. << ", " << xoffset << ", " << yoffset << ", " << x << ", " << y
  2287. << ", " << width << ", " << height << ")");
  2288. g_driver_gl.debug_fn.glCopyTexSubImage2DFn(target, level, xoffset, yoffset, x,
  2289. y, width, height);
  2290. }
  2291. static void GL_BINDING_CALL Debug_glCopyTexSubImage3D(GLenum target,
  2292. GLint level,
  2293. GLint xoffset,
  2294. GLint yoffset,
  2295. GLint zoffset,
  2296. GLint x,
  2297. GLint y,
  2298. GLsizei width,
  2299. GLsizei height) {
  2300. GL_SERVICE_LOG("glCopyTexSubImage3D"
  2301. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  2302. << ", " << xoffset << ", " << yoffset << ", " << zoffset
  2303. << ", " << x << ", " << y << ", " << width << ", " << height
  2304. << ")");
  2305. g_driver_gl.debug_fn.glCopyTexSubImage3DFn(target, level, xoffset, yoffset,
  2306. zoffset, x, y, width, height);
  2307. }
  2308. static void GL_BINDING_CALL Debug_glCoverageModulationNV(GLenum components) {
  2309. GL_SERVICE_LOG("glCoverageModulationNV"
  2310. << "(" << GLEnums::GetStringEnum(components) << ")");
  2311. g_driver_gl.debug_fn.glCoverageModulationNVFn(components);
  2312. }
  2313. static void GL_BINDING_CALL
  2314. Debug_glCoverFillPathInstancedNV(GLsizei numPaths,
  2315. GLenum pathNameType,
  2316. const void* paths,
  2317. GLuint pathBase,
  2318. GLenum coverMode,
  2319. GLenum transformType,
  2320. const GLfloat* transformValues) {
  2321. GL_SERVICE_LOG("glCoverFillPathInstancedNV"
  2322. << "(" << numPaths << ", "
  2323. << GLEnums::GetStringEnum(pathNameType) << ", "
  2324. << static_cast<const void*>(paths) << ", " << pathBase << ", "
  2325. << GLEnums::GetStringEnum(coverMode) << ", "
  2326. << GLEnums::GetStringEnum(transformType) << ", "
  2327. << static_cast<const void*>(transformValues) << ")");
  2328. g_driver_gl.debug_fn.glCoverFillPathInstancedNVFn(
  2329. numPaths, pathNameType, paths, pathBase, coverMode, transformType,
  2330. transformValues);
  2331. }
  2332. static void GL_BINDING_CALL Debug_glCoverFillPathNV(GLuint path,
  2333. GLenum coverMode) {
  2334. GL_SERVICE_LOG("glCoverFillPathNV"
  2335. << "(" << path << ", " << GLEnums::GetStringEnum(coverMode)
  2336. << ")");
  2337. g_driver_gl.debug_fn.glCoverFillPathNVFn(path, coverMode);
  2338. }
  2339. static void GL_BINDING_CALL
  2340. Debug_glCoverStrokePathInstancedNV(GLsizei numPaths,
  2341. GLenum pathNameType,
  2342. const void* paths,
  2343. GLuint pathBase,
  2344. GLenum coverMode,
  2345. GLenum transformType,
  2346. const GLfloat* transformValues) {
  2347. GL_SERVICE_LOG("glCoverStrokePathInstancedNV"
  2348. << "(" << numPaths << ", "
  2349. << GLEnums::GetStringEnum(pathNameType) << ", "
  2350. << static_cast<const void*>(paths) << ", " << pathBase << ", "
  2351. << GLEnums::GetStringEnum(coverMode) << ", "
  2352. << GLEnums::GetStringEnum(transformType) << ", "
  2353. << static_cast<const void*>(transformValues) << ")");
  2354. g_driver_gl.debug_fn.glCoverStrokePathInstancedNVFn(
  2355. numPaths, pathNameType, paths, pathBase, coverMode, transformType,
  2356. transformValues);
  2357. }
  2358. static void GL_BINDING_CALL Debug_glCoverStrokePathNV(GLuint name,
  2359. GLenum coverMode) {
  2360. GL_SERVICE_LOG("glCoverStrokePathNV"
  2361. << "(" << name << ", " << GLEnums::GetStringEnum(coverMode)
  2362. << ")");
  2363. g_driver_gl.debug_fn.glCoverStrokePathNVFn(name, coverMode);
  2364. }
  2365. static GLuint GL_BINDING_CALL Debug_glCreateProgram(void) {
  2366. GL_SERVICE_LOG("glCreateProgram"
  2367. << "("
  2368. << ")");
  2369. GLuint result = g_driver_gl.debug_fn.glCreateProgramFn();
  2370. GL_SERVICE_LOG("GL_RESULT: " << result);
  2371. return result;
  2372. }
  2373. static GLuint GL_BINDING_CALL Debug_glCreateShader(GLenum type) {
  2374. GL_SERVICE_LOG("glCreateShader"
  2375. << "(" << GLEnums::GetStringEnum(type) << ")");
  2376. GLuint result = g_driver_gl.debug_fn.glCreateShaderFn(type);
  2377. GL_SERVICE_LOG("GL_RESULT: " << result);
  2378. return result;
  2379. }
  2380. static void GL_BINDING_CALL Debug_glCullFace(GLenum mode) {
  2381. GL_SERVICE_LOG("glCullFace"
  2382. << "(" << GLEnums::GetStringEnum(mode) << ")");
  2383. g_driver_gl.debug_fn.glCullFaceFn(mode);
  2384. }
  2385. static void GL_BINDING_CALL Debug_glDeleteBuffersARB(GLsizei n,
  2386. const GLuint* buffers) {
  2387. GL_SERVICE_LOG("glDeleteBuffersARB"
  2388. << "(" << n << ", " << static_cast<const void*>(buffers)
  2389. << ")");
  2390. g_driver_gl.debug_fn.glDeleteBuffersARBFn(n, buffers);
  2391. }
  2392. static void GL_BINDING_CALL Debug_glDeleteFencesAPPLE(GLsizei n,
  2393. const GLuint* fences) {
  2394. GL_SERVICE_LOG("glDeleteFencesAPPLE"
  2395. << "(" << n << ", " << static_cast<const void*>(fences)
  2396. << ")");
  2397. g_driver_gl.debug_fn.glDeleteFencesAPPLEFn(n, fences);
  2398. }
  2399. static void GL_BINDING_CALL Debug_glDeleteFencesNV(GLsizei n,
  2400. const GLuint* fences) {
  2401. GL_SERVICE_LOG("glDeleteFencesNV"
  2402. << "(" << n << ", " << static_cast<const void*>(fences)
  2403. << ")");
  2404. g_driver_gl.debug_fn.glDeleteFencesNVFn(n, fences);
  2405. }
  2406. static void GL_BINDING_CALL
  2407. Debug_glDeleteFramebuffersEXT(GLsizei n, const GLuint* framebuffers) {
  2408. GL_SERVICE_LOG("glDeleteFramebuffersEXT"
  2409. << "(" << n << ", " << static_cast<const void*>(framebuffers)
  2410. << ")");
  2411. g_driver_gl.debug_fn.glDeleteFramebuffersEXTFn(n, framebuffers);
  2412. }
  2413. static void GL_BINDING_CALL Debug_glDeletePathsNV(GLuint path, GLsizei range) {
  2414. GL_SERVICE_LOG("glDeletePathsNV"
  2415. << "(" << path << ", " << range << ")");
  2416. g_driver_gl.debug_fn.glDeletePathsNVFn(path, range);
  2417. }
  2418. static void GL_BINDING_CALL Debug_glDeleteProgram(GLuint program) {
  2419. GL_SERVICE_LOG("glDeleteProgram"
  2420. << "(" << program << ")");
  2421. g_driver_gl.debug_fn.glDeleteProgramFn(program);
  2422. }
  2423. static void GL_BINDING_CALL Debug_glDeleteQueries(GLsizei n,
  2424. const GLuint* ids) {
  2425. GL_SERVICE_LOG("glDeleteQueries"
  2426. << "(" << n << ", " << static_cast<const void*>(ids) << ")");
  2427. g_driver_gl.debug_fn.glDeleteQueriesFn(n, ids);
  2428. }
  2429. static void GL_BINDING_CALL
  2430. Debug_glDeleteRenderbuffersEXT(GLsizei n, const GLuint* renderbuffers) {
  2431. GL_SERVICE_LOG("glDeleteRenderbuffersEXT"
  2432. << "(" << n << ", " << static_cast<const void*>(renderbuffers)
  2433. << ")");
  2434. g_driver_gl.debug_fn.glDeleteRenderbuffersEXTFn(n, renderbuffers);
  2435. }
  2436. static void GL_BINDING_CALL Debug_glDeleteSamplers(GLsizei n,
  2437. const GLuint* samplers) {
  2438. GL_SERVICE_LOG("glDeleteSamplers"
  2439. << "(" << n << ", " << static_cast<const void*>(samplers)
  2440. << ")");
  2441. g_driver_gl.debug_fn.glDeleteSamplersFn(n, samplers);
  2442. }
  2443. static void GL_BINDING_CALL Debug_glDeleteShader(GLuint shader) {
  2444. GL_SERVICE_LOG("glDeleteShader"
  2445. << "(" << shader << ")");
  2446. g_driver_gl.debug_fn.glDeleteShaderFn(shader);
  2447. }
  2448. static void GL_BINDING_CALL Debug_glDeleteSync(GLsync sync) {
  2449. GL_SERVICE_LOG("glDeleteSync"
  2450. << "(" << sync << ")");
  2451. g_driver_gl.debug_fn.glDeleteSyncFn(sync);
  2452. }
  2453. static void GL_BINDING_CALL Debug_glDeleteTextures(GLsizei n,
  2454. const GLuint* textures) {
  2455. GL_SERVICE_LOG("glDeleteTextures"
  2456. << "(" << n << ", " << static_cast<const void*>(textures)
  2457. << ")");
  2458. g_driver_gl.debug_fn.glDeleteTexturesFn(n, textures);
  2459. }
  2460. static void GL_BINDING_CALL
  2461. Debug_glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids) {
  2462. GL_SERVICE_LOG("glDeleteTransformFeedbacks"
  2463. << "(" << n << ", " << static_cast<const void*>(ids) << ")");
  2464. g_driver_gl.debug_fn.glDeleteTransformFeedbacksFn(n, ids);
  2465. }
  2466. static void GL_BINDING_CALL
  2467. Debug_glDeleteVertexArraysOES(GLsizei n, const GLuint* arrays) {
  2468. GL_SERVICE_LOG("glDeleteVertexArraysOES"
  2469. << "(" << n << ", " << static_cast<const void*>(arrays)
  2470. << ")");
  2471. g_driver_gl.debug_fn.glDeleteVertexArraysOESFn(n, arrays);
  2472. }
  2473. static void GL_BINDING_CALL Debug_glDepthFunc(GLenum func) {
  2474. GL_SERVICE_LOG("glDepthFunc"
  2475. << "(" << GLEnums::GetStringEnum(func) << ")");
  2476. g_driver_gl.debug_fn.glDepthFuncFn(func);
  2477. }
  2478. static void GL_BINDING_CALL Debug_glDepthMask(GLboolean flag) {
  2479. GL_SERVICE_LOG("glDepthMask"
  2480. << "(" << GLEnums::GetStringBool(flag) << ")");
  2481. g_driver_gl.debug_fn.glDepthMaskFn(flag);
  2482. }
  2483. static void GL_BINDING_CALL Debug_glDepthRange(GLclampd zNear, GLclampd zFar) {
  2484. GL_SERVICE_LOG("glDepthRange"
  2485. << "(" << zNear << ", " << zFar << ")");
  2486. g_driver_gl.debug_fn.glDepthRangeFn(zNear, zFar);
  2487. }
  2488. static void GL_BINDING_CALL Debug_glDepthRangef(GLclampf zNear, GLclampf zFar) {
  2489. GL_SERVICE_LOG("glDepthRangef"
  2490. << "(" << zNear << ", " << zFar << ")");
  2491. g_driver_gl.debug_fn.glDepthRangefFn(zNear, zFar);
  2492. }
  2493. static void GL_BINDING_CALL Debug_glDetachShader(GLuint program,
  2494. GLuint shader) {
  2495. GL_SERVICE_LOG("glDetachShader"
  2496. << "(" << program << ", " << shader << ")");
  2497. g_driver_gl.debug_fn.glDetachShaderFn(program, shader);
  2498. }
  2499. static void GL_BINDING_CALL Debug_glDisable(GLenum cap) {
  2500. GL_SERVICE_LOG("glDisable"
  2501. << "(" << GLEnums::GetStringEnum(cap) << ")");
  2502. g_driver_gl.debug_fn.glDisableFn(cap);
  2503. }
  2504. static void GL_BINDING_CALL Debug_glDisableVertexAttribArray(GLuint index) {
  2505. GL_SERVICE_LOG("glDisableVertexAttribArray"
  2506. << "(" << index << ")");
  2507. g_driver_gl.debug_fn.glDisableVertexAttribArrayFn(index);
  2508. }
  2509. static void GL_BINDING_CALL
  2510. Debug_glDiscardFramebufferEXT(GLenum target,
  2511. GLsizei numAttachments,
  2512. const GLenum* attachments) {
  2513. GL_SERVICE_LOG("glDiscardFramebufferEXT"
  2514. << "(" << GLEnums::GetStringEnum(target) << ", "
  2515. << numAttachments << ", "
  2516. << static_cast<const void*>(attachments) << ")");
  2517. g_driver_gl.debug_fn.glDiscardFramebufferEXTFn(target, numAttachments,
  2518. attachments);
  2519. }
  2520. static void GL_BINDING_CALL Debug_glDrawArrays(GLenum mode,
  2521. GLint first,
  2522. GLsizei count) {
  2523. GL_SERVICE_LOG("glDrawArrays"
  2524. << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", "
  2525. << count << ")");
  2526. g_driver_gl.debug_fn.glDrawArraysFn(mode, first, count);
  2527. }
  2528. static void GL_BINDING_CALL
  2529. Debug_glDrawArraysInstancedANGLE(GLenum mode,
  2530. GLint first,
  2531. GLsizei count,
  2532. GLsizei primcount) {
  2533. GL_SERVICE_LOG("glDrawArraysInstancedANGLE"
  2534. << "(" << GLEnums::GetStringEnum(mode) << ", " << first << ", "
  2535. << count << ", " << primcount << ")");
  2536. g_driver_gl.debug_fn.glDrawArraysInstancedANGLEFn(mode, first, count,
  2537. primcount);
  2538. }
  2539. static void GL_BINDING_CALL Debug_glDrawBuffer(GLenum mode) {
  2540. GL_SERVICE_LOG("glDrawBuffer"
  2541. << "(" << GLEnums::GetStringEnum(mode) << ")");
  2542. g_driver_gl.debug_fn.glDrawBufferFn(mode);
  2543. }
  2544. static void GL_BINDING_CALL Debug_glDrawBuffersARB(GLsizei n,
  2545. const GLenum* bufs) {
  2546. GL_SERVICE_LOG("glDrawBuffersARB"
  2547. << "(" << n << ", " << static_cast<const void*>(bufs) << ")");
  2548. g_driver_gl.debug_fn.glDrawBuffersARBFn(n, bufs);
  2549. }
  2550. static void GL_BINDING_CALL Debug_glDrawElements(GLenum mode,
  2551. GLsizei count,
  2552. GLenum type,
  2553. const void* indices) {
  2554. GL_SERVICE_LOG("glDrawElements"
  2555. << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", "
  2556. << GLEnums::GetStringEnum(type) << ", "
  2557. << static_cast<const void*>(indices) << ")");
  2558. g_driver_gl.debug_fn.glDrawElementsFn(mode, count, type, indices);
  2559. }
  2560. static void GL_BINDING_CALL
  2561. Debug_glDrawElementsInstancedANGLE(GLenum mode,
  2562. GLsizei count,
  2563. GLenum type,
  2564. const void* indices,
  2565. GLsizei primcount) {
  2566. GL_SERVICE_LOG("glDrawElementsInstancedANGLE"
  2567. << "(" << GLEnums::GetStringEnum(mode) << ", " << count << ", "
  2568. << GLEnums::GetStringEnum(type) << ", "
  2569. << static_cast<const void*>(indices) << ", " << primcount
  2570. << ")");
  2571. g_driver_gl.debug_fn.glDrawElementsInstancedANGLEFn(mode, count, type,
  2572. indices, primcount);
  2573. }
  2574. static void GL_BINDING_CALL Debug_glDrawRangeElements(GLenum mode,
  2575. GLuint start,
  2576. GLuint end,
  2577. GLsizei count,
  2578. GLenum type,
  2579. const void* indices) {
  2580. GL_SERVICE_LOG("glDrawRangeElements"
  2581. << "(" << GLEnums::GetStringEnum(mode) << ", " << start << ", "
  2582. << end << ", " << count << ", " << GLEnums::GetStringEnum(type)
  2583. << ", " << static_cast<const void*>(indices) << ")");
  2584. g_driver_gl.debug_fn.glDrawRangeElementsFn(mode, start, end, count, type,
  2585. indices);
  2586. }
  2587. static void GL_BINDING_CALL
  2588. Debug_glEGLImageTargetRenderbufferStorageOES(GLenum target,
  2589. GLeglImageOES image) {
  2590. GL_SERVICE_LOG("glEGLImageTargetRenderbufferStorageOES"
  2591. << "(" << GLEnums::GetStringEnum(target) << ", " << image
  2592. << ")");
  2593. g_driver_gl.debug_fn.glEGLImageTargetRenderbufferStorageOESFn(target, image);
  2594. }
  2595. static void GL_BINDING_CALL
  2596. Debug_glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) {
  2597. GL_SERVICE_LOG("glEGLImageTargetTexture2DOES"
  2598. << "(" << GLEnums::GetStringEnum(target) << ", " << image
  2599. << ")");
  2600. g_driver_gl.debug_fn.glEGLImageTargetTexture2DOESFn(target, image);
  2601. }
  2602. static void GL_BINDING_CALL Debug_glEnable(GLenum cap) {
  2603. GL_SERVICE_LOG("glEnable"
  2604. << "(" << GLEnums::GetStringEnum(cap) << ")");
  2605. g_driver_gl.debug_fn.glEnableFn(cap);
  2606. }
  2607. static void GL_BINDING_CALL Debug_glEnableVertexAttribArray(GLuint index) {
  2608. GL_SERVICE_LOG("glEnableVertexAttribArray"
  2609. << "(" << index << ")");
  2610. g_driver_gl.debug_fn.glEnableVertexAttribArrayFn(index);
  2611. }
  2612. static void GL_BINDING_CALL Debug_glEndQuery(GLenum target) {
  2613. GL_SERVICE_LOG("glEndQuery"
  2614. << "(" << GLEnums::GetStringEnum(target) << ")");
  2615. g_driver_gl.debug_fn.glEndQueryFn(target);
  2616. }
  2617. static void GL_BINDING_CALL Debug_glEndTransformFeedback(void) {
  2618. GL_SERVICE_LOG("glEndTransformFeedback"
  2619. << "("
  2620. << ")");
  2621. g_driver_gl.debug_fn.glEndTransformFeedbackFn();
  2622. }
  2623. static GLsync GL_BINDING_CALL Debug_glFenceSync(GLenum condition,
  2624. GLbitfield flags) {
  2625. GL_SERVICE_LOG("glFenceSync"
  2626. << "(" << GLEnums::GetStringEnum(condition) << ", " << flags
  2627. << ")");
  2628. GLsync result = g_driver_gl.debug_fn.glFenceSyncFn(condition, flags);
  2629. GL_SERVICE_LOG("GL_RESULT: " << result);
  2630. return result;
  2631. }
  2632. static void GL_BINDING_CALL Debug_glFinish(void) {
  2633. GL_SERVICE_LOG("glFinish"
  2634. << "("
  2635. << ")");
  2636. g_driver_gl.debug_fn.glFinishFn();
  2637. }
  2638. static void GL_BINDING_CALL Debug_glFinishFenceAPPLE(GLuint fence) {
  2639. GL_SERVICE_LOG("glFinishFenceAPPLE"
  2640. << "(" << fence << ")");
  2641. g_driver_gl.debug_fn.glFinishFenceAPPLEFn(fence);
  2642. }
  2643. static void GL_BINDING_CALL Debug_glFinishFenceNV(GLuint fence) {
  2644. GL_SERVICE_LOG("glFinishFenceNV"
  2645. << "(" << fence << ")");
  2646. g_driver_gl.debug_fn.glFinishFenceNVFn(fence);
  2647. }
  2648. static void GL_BINDING_CALL Debug_glFlush(void) {
  2649. GL_SERVICE_LOG("glFlush"
  2650. << "("
  2651. << ")");
  2652. g_driver_gl.debug_fn.glFlushFn();
  2653. }
  2654. static void GL_BINDING_CALL Debug_glFlushMappedBufferRange(GLenum target,
  2655. GLintptr offset,
  2656. GLsizeiptr length) {
  2657. GL_SERVICE_LOG("glFlushMappedBufferRange"
  2658. << "(" << GLEnums::GetStringEnum(target) << ", " << offset
  2659. << ", " << length << ")");
  2660. g_driver_gl.debug_fn.glFlushMappedBufferRangeFn(target, offset, length);
  2661. }
  2662. static void GL_BINDING_CALL
  2663. Debug_glFramebufferRenderbufferEXT(GLenum target,
  2664. GLenum attachment,
  2665. GLenum renderbuffertarget,
  2666. GLuint renderbuffer) {
  2667. GL_SERVICE_LOG("glFramebufferRenderbufferEXT"
  2668. << "(" << GLEnums::GetStringEnum(target) << ", "
  2669. << GLEnums::GetStringEnum(attachment) << ", "
  2670. << GLEnums::GetStringEnum(renderbuffertarget) << ", "
  2671. << renderbuffer << ")");
  2672. g_driver_gl.debug_fn.glFramebufferRenderbufferEXTFn(
  2673. target, attachment, renderbuffertarget, renderbuffer);
  2674. }
  2675. static void GL_BINDING_CALL Debug_glFramebufferTexture2DEXT(GLenum target,
  2676. GLenum attachment,
  2677. GLenum textarget,
  2678. GLuint texture,
  2679. GLint level) {
  2680. GL_SERVICE_LOG("glFramebufferTexture2DEXT"
  2681. << "(" << GLEnums::GetStringEnum(target) << ", "
  2682. << GLEnums::GetStringEnum(attachment) << ", "
  2683. << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
  2684. << level << ")");
  2685. g_driver_gl.debug_fn.glFramebufferTexture2DEXTFn(target, attachment,
  2686. textarget, texture, level);
  2687. }
  2688. static void GL_BINDING_CALL
  2689. Debug_glFramebufferTexture2DMultisampleEXT(GLenum target,
  2690. GLenum attachment,
  2691. GLenum textarget,
  2692. GLuint texture,
  2693. GLint level,
  2694. GLsizei samples) {
  2695. GL_SERVICE_LOG("glFramebufferTexture2DMultisampleEXT"
  2696. << "(" << GLEnums::GetStringEnum(target) << ", "
  2697. << GLEnums::GetStringEnum(attachment) << ", "
  2698. << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
  2699. << level << ", " << samples << ")");
  2700. g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleEXTFn(
  2701. target, attachment, textarget, texture, level, samples);
  2702. }
  2703. static void GL_BINDING_CALL
  2704. Debug_glFramebufferTexture2DMultisampleIMG(GLenum target,
  2705. GLenum attachment,
  2706. GLenum textarget,
  2707. GLuint texture,
  2708. GLint level,
  2709. GLsizei samples) {
  2710. GL_SERVICE_LOG("glFramebufferTexture2DMultisampleIMG"
  2711. << "(" << GLEnums::GetStringEnum(target) << ", "
  2712. << GLEnums::GetStringEnum(attachment) << ", "
  2713. << GLEnums::GetStringEnum(textarget) << ", " << texture << ", "
  2714. << level << ", " << samples << ")");
  2715. g_driver_gl.debug_fn.glFramebufferTexture2DMultisampleIMGFn(
  2716. target, attachment, textarget, texture, level, samples);
  2717. }
  2718. static void GL_BINDING_CALL Debug_glFramebufferTextureLayer(GLenum target,
  2719. GLenum attachment,
  2720. GLuint texture,
  2721. GLint level,
  2722. GLint layer) {
  2723. GL_SERVICE_LOG("glFramebufferTextureLayer"
  2724. << "(" << GLEnums::GetStringEnum(target) << ", "
  2725. << GLEnums::GetStringEnum(attachment) << ", " << texture
  2726. << ", " << level << ", " << layer << ")");
  2727. g_driver_gl.debug_fn.glFramebufferTextureLayerFn(target, attachment, texture,
  2728. level, layer);
  2729. }
  2730. static void GL_BINDING_CALL Debug_glFrontFace(GLenum mode) {
  2731. GL_SERVICE_LOG("glFrontFace"
  2732. << "(" << GLEnums::GetStringEnum(mode) << ")");
  2733. g_driver_gl.debug_fn.glFrontFaceFn(mode);
  2734. }
  2735. static void GL_BINDING_CALL Debug_glGenBuffersARB(GLsizei n, GLuint* buffers) {
  2736. GL_SERVICE_LOG("glGenBuffersARB"
  2737. << "(" << n << ", " << static_cast<const void*>(buffers)
  2738. << ")");
  2739. g_driver_gl.debug_fn.glGenBuffersARBFn(n, buffers);
  2740. }
  2741. static void GL_BINDING_CALL Debug_glGenerateMipmapEXT(GLenum target) {
  2742. GL_SERVICE_LOG("glGenerateMipmapEXT"
  2743. << "(" << GLEnums::GetStringEnum(target) << ")");
  2744. g_driver_gl.debug_fn.glGenerateMipmapEXTFn(target);
  2745. }
  2746. static void GL_BINDING_CALL Debug_glGenFencesAPPLE(GLsizei n, GLuint* fences) {
  2747. GL_SERVICE_LOG("glGenFencesAPPLE"
  2748. << "(" << n << ", " << static_cast<const void*>(fences)
  2749. << ")");
  2750. g_driver_gl.debug_fn.glGenFencesAPPLEFn(n, fences);
  2751. }
  2752. static void GL_BINDING_CALL Debug_glGenFencesNV(GLsizei n, GLuint* fences) {
  2753. GL_SERVICE_LOG("glGenFencesNV"
  2754. << "(" << n << ", " << static_cast<const void*>(fences)
  2755. << ")");
  2756. g_driver_gl.debug_fn.glGenFencesNVFn(n, fences);
  2757. }
  2758. static void GL_BINDING_CALL Debug_glGenFramebuffersEXT(GLsizei n,
  2759. GLuint* framebuffers) {
  2760. GL_SERVICE_LOG("glGenFramebuffersEXT"
  2761. << "(" << n << ", " << static_cast<const void*>(framebuffers)
  2762. << ")");
  2763. g_driver_gl.debug_fn.glGenFramebuffersEXTFn(n, framebuffers);
  2764. }
  2765. static GLuint GL_BINDING_CALL Debug_glGenPathsNV(GLsizei range) {
  2766. GL_SERVICE_LOG("glGenPathsNV"
  2767. << "(" << range << ")");
  2768. GLuint result = g_driver_gl.debug_fn.glGenPathsNVFn(range);
  2769. GL_SERVICE_LOG("GL_RESULT: " << result);
  2770. return result;
  2771. }
  2772. static void GL_BINDING_CALL Debug_glGenQueries(GLsizei n, GLuint* ids) {
  2773. GL_SERVICE_LOG("glGenQueries"
  2774. << "(" << n << ", " << static_cast<const void*>(ids) << ")");
  2775. g_driver_gl.debug_fn.glGenQueriesFn(n, ids);
  2776. }
  2777. static void GL_BINDING_CALL Debug_glGenRenderbuffersEXT(GLsizei n,
  2778. GLuint* renderbuffers) {
  2779. GL_SERVICE_LOG("glGenRenderbuffersEXT"
  2780. << "(" << n << ", " << static_cast<const void*>(renderbuffers)
  2781. << ")");
  2782. g_driver_gl.debug_fn.glGenRenderbuffersEXTFn(n, renderbuffers);
  2783. }
  2784. static void GL_BINDING_CALL Debug_glGenSamplers(GLsizei n, GLuint* samplers) {
  2785. GL_SERVICE_LOG("glGenSamplers"
  2786. << "(" << n << ", " << static_cast<const void*>(samplers)
  2787. << ")");
  2788. g_driver_gl.debug_fn.glGenSamplersFn(n, samplers);
  2789. }
  2790. static void GL_BINDING_CALL Debug_glGenTextures(GLsizei n, GLuint* textures) {
  2791. GL_SERVICE_LOG("glGenTextures"
  2792. << "(" << n << ", " << static_cast<const void*>(textures)
  2793. << ")");
  2794. g_driver_gl.debug_fn.glGenTexturesFn(n, textures);
  2795. }
  2796. static void GL_BINDING_CALL Debug_glGenTransformFeedbacks(GLsizei n,
  2797. GLuint* ids) {
  2798. GL_SERVICE_LOG("glGenTransformFeedbacks"
  2799. << "(" << n << ", " << static_cast<const void*>(ids) << ")");
  2800. g_driver_gl.debug_fn.glGenTransformFeedbacksFn(n, ids);
  2801. }
  2802. static void GL_BINDING_CALL Debug_glGenVertexArraysOES(GLsizei n,
  2803. GLuint* arrays) {
  2804. GL_SERVICE_LOG("glGenVertexArraysOES"
  2805. << "(" << n << ", " << static_cast<const void*>(arrays)
  2806. << ")");
  2807. g_driver_gl.debug_fn.glGenVertexArraysOESFn(n, arrays);
  2808. }
  2809. static void GL_BINDING_CALL Debug_glGetActiveAttrib(GLuint program,
  2810. GLuint index,
  2811. GLsizei bufsize,
  2812. GLsizei* length,
  2813. GLint* size,
  2814. GLenum* type,
  2815. char* name) {
  2816. GL_SERVICE_LOG("glGetActiveAttrib"
  2817. << "(" << program << ", " << index << ", " << bufsize << ", "
  2818. << static_cast<const void*>(length) << ", "
  2819. << static_cast<const void*>(size) << ", "
  2820. << static_cast<const void*>(type) << ", "
  2821. << static_cast<const void*>(name) << ")");
  2822. g_driver_gl.debug_fn.glGetActiveAttribFn(program, index, bufsize, length,
  2823. size, type, name);
  2824. }
  2825. static void GL_BINDING_CALL Debug_glGetActiveUniform(GLuint program,
  2826. GLuint index,
  2827. GLsizei bufsize,
  2828. GLsizei* length,
  2829. GLint* size,
  2830. GLenum* type,
  2831. char* name) {
  2832. GL_SERVICE_LOG("glGetActiveUniform"
  2833. << "(" << program << ", " << index << ", " << bufsize << ", "
  2834. << static_cast<const void*>(length) << ", "
  2835. << static_cast<const void*>(size) << ", "
  2836. << static_cast<const void*>(type) << ", "
  2837. << static_cast<const void*>(name) << ")");
  2838. g_driver_gl.debug_fn.glGetActiveUniformFn(program, index, bufsize, length,
  2839. size, type, name);
  2840. }
  2841. static void GL_BINDING_CALL
  2842. Debug_glGetActiveUniformBlockiv(GLuint program,
  2843. GLuint uniformBlockIndex,
  2844. GLenum pname,
  2845. GLint* params) {
  2846. GL_SERVICE_LOG("glGetActiveUniformBlockiv"
  2847. << "(" << program << ", " << uniformBlockIndex << ", "
  2848. << GLEnums::GetStringEnum(pname) << ", "
  2849. << static_cast<const void*>(params) << ")");
  2850. g_driver_gl.debug_fn.glGetActiveUniformBlockivFn(program, uniformBlockIndex,
  2851. pname, params);
  2852. }
  2853. static void GL_BINDING_CALL
  2854. Debug_glGetActiveUniformBlockName(GLuint program,
  2855. GLuint uniformBlockIndex,
  2856. GLsizei bufSize,
  2857. GLsizei* length,
  2858. char* uniformBlockName) {
  2859. GL_SERVICE_LOG("glGetActiveUniformBlockName"
  2860. << "(" << program << ", " << uniformBlockIndex << ", "
  2861. << bufSize << ", " << static_cast<const void*>(length) << ", "
  2862. << static_cast<const void*>(uniformBlockName) << ")");
  2863. g_driver_gl.debug_fn.glGetActiveUniformBlockNameFn(
  2864. program, uniformBlockIndex, bufSize, length, uniformBlockName);
  2865. }
  2866. static void GL_BINDING_CALL
  2867. Debug_glGetActiveUniformsiv(GLuint program,
  2868. GLsizei uniformCount,
  2869. const GLuint* uniformIndices,
  2870. GLenum pname,
  2871. GLint* params) {
  2872. GL_SERVICE_LOG("glGetActiveUniformsiv"
  2873. << "(" << program << ", " << uniformCount << ", "
  2874. << static_cast<const void*>(uniformIndices) << ", "
  2875. << GLEnums::GetStringEnum(pname) << ", "
  2876. << static_cast<const void*>(params) << ")");
  2877. g_driver_gl.debug_fn.glGetActiveUniformsivFn(program, uniformCount,
  2878. uniformIndices, pname, params);
  2879. }
  2880. static void GL_BINDING_CALL Debug_glGetAttachedShaders(GLuint program,
  2881. GLsizei maxcount,
  2882. GLsizei* count,
  2883. GLuint* shaders) {
  2884. GL_SERVICE_LOG("glGetAttachedShaders"
  2885. << "(" << program << ", " << maxcount << ", "
  2886. << static_cast<const void*>(count) << ", "
  2887. << static_cast<const void*>(shaders) << ")");
  2888. g_driver_gl.debug_fn.glGetAttachedShadersFn(program, maxcount, count,
  2889. shaders);
  2890. }
  2891. static GLint GL_BINDING_CALL Debug_glGetAttribLocation(GLuint program,
  2892. const char* name) {
  2893. GL_SERVICE_LOG("glGetAttribLocation"
  2894. << "(" << program << ", " << name << ")");
  2895. GLint result = g_driver_gl.debug_fn.glGetAttribLocationFn(program, name);
  2896. GL_SERVICE_LOG("GL_RESULT: " << result);
  2897. return result;
  2898. }
  2899. static void GL_BINDING_CALL Debug_glGetBooleanv(GLenum pname,
  2900. GLboolean* params) {
  2901. GL_SERVICE_LOG("glGetBooleanv"
  2902. << "(" << GLEnums::GetStringEnum(pname) << ", "
  2903. << static_cast<const void*>(params) << ")");
  2904. g_driver_gl.debug_fn.glGetBooleanvFn(pname, params);
  2905. }
  2906. static void GL_BINDING_CALL Debug_glGetBufferParameteriv(GLenum target,
  2907. GLenum pname,
  2908. GLint* params) {
  2909. GL_SERVICE_LOG("glGetBufferParameteriv"
  2910. << "(" << GLEnums::GetStringEnum(target) << ", "
  2911. << GLEnums::GetStringEnum(pname) << ", "
  2912. << static_cast<const void*>(params) << ")");
  2913. g_driver_gl.debug_fn.glGetBufferParameterivFn(target, pname, params);
  2914. }
  2915. static GLenum GL_BINDING_CALL Debug_glGetError(void) {
  2916. GL_SERVICE_LOG("glGetError"
  2917. << "("
  2918. << ")");
  2919. GLenum result = g_driver_gl.debug_fn.glGetErrorFn();
  2920. GL_SERVICE_LOG("GL_RESULT: " << GLEnums::GetStringError(result));
  2921. return result;
  2922. }
  2923. static void GL_BINDING_CALL Debug_glGetFenceivNV(GLuint fence,
  2924. GLenum pname,
  2925. GLint* params) {
  2926. GL_SERVICE_LOG("glGetFenceivNV"
  2927. << "(" << fence << ", " << GLEnums::GetStringEnum(pname)
  2928. << ", " << static_cast<const void*>(params) << ")");
  2929. g_driver_gl.debug_fn.glGetFenceivNVFn(fence, pname, params);
  2930. }
  2931. static void GL_BINDING_CALL Debug_glGetFloatv(GLenum pname, GLfloat* params) {
  2932. GL_SERVICE_LOG("glGetFloatv"
  2933. << "(" << GLEnums::GetStringEnum(pname) << ", "
  2934. << static_cast<const void*>(params) << ")");
  2935. g_driver_gl.debug_fn.glGetFloatvFn(pname, params);
  2936. }
  2937. static GLint GL_BINDING_CALL Debug_glGetFragDataIndex(GLuint program,
  2938. const char* name) {
  2939. GL_SERVICE_LOG("glGetFragDataIndex"
  2940. << "(" << program << ", " << name << ")");
  2941. GLint result = g_driver_gl.debug_fn.glGetFragDataIndexFn(program, name);
  2942. GL_SERVICE_LOG("GL_RESULT: " << result);
  2943. return result;
  2944. }
  2945. static GLint GL_BINDING_CALL Debug_glGetFragDataLocation(GLuint program,
  2946. const char* name) {
  2947. GL_SERVICE_LOG("glGetFragDataLocation"
  2948. << "(" << program << ", " << name << ")");
  2949. GLint result = g_driver_gl.debug_fn.glGetFragDataLocationFn(program, name);
  2950. GL_SERVICE_LOG("GL_RESULT: " << result);
  2951. return result;
  2952. }
  2953. static void GL_BINDING_CALL
  2954. Debug_glGetFramebufferAttachmentParameterivEXT(GLenum target,
  2955. GLenum attachment,
  2956. GLenum pname,
  2957. GLint* params) {
  2958. GL_SERVICE_LOG("glGetFramebufferAttachmentParameterivEXT"
  2959. << "(" << GLEnums::GetStringEnum(target) << ", "
  2960. << GLEnums::GetStringEnum(attachment) << ", "
  2961. << GLEnums::GetStringEnum(pname) << ", "
  2962. << static_cast<const void*>(params) << ")");
  2963. g_driver_gl.debug_fn.glGetFramebufferAttachmentParameterivEXTFn(
  2964. target, attachment, pname, params);
  2965. }
  2966. static GLenum GL_BINDING_CALL Debug_glGetGraphicsResetStatusARB(void) {
  2967. GL_SERVICE_LOG("glGetGraphicsResetStatusARB"
  2968. << "("
  2969. << ")");
  2970. GLenum result = g_driver_gl.debug_fn.glGetGraphicsResetStatusARBFn();
  2971. GL_SERVICE_LOG("GL_RESULT: " << result);
  2972. return result;
  2973. }
  2974. static void GL_BINDING_CALL Debug_glGetInteger64i_v(GLenum target,
  2975. GLuint index,
  2976. GLint64* data) {
  2977. GL_SERVICE_LOG("glGetInteger64i_v"
  2978. << "(" << GLEnums::GetStringEnum(target) << ", " << index
  2979. << ", " << static_cast<const void*>(data) << ")");
  2980. g_driver_gl.debug_fn.glGetInteger64i_vFn(target, index, data);
  2981. }
  2982. static void GL_BINDING_CALL Debug_glGetInteger64v(GLenum pname,
  2983. GLint64* params) {
  2984. GL_SERVICE_LOG("glGetInteger64v"
  2985. << "(" << GLEnums::GetStringEnum(pname) << ", "
  2986. << static_cast<const void*>(params) << ")");
  2987. g_driver_gl.debug_fn.glGetInteger64vFn(pname, params);
  2988. }
  2989. static void GL_BINDING_CALL Debug_glGetIntegeri_v(GLenum target,
  2990. GLuint index,
  2991. GLint* data) {
  2992. GL_SERVICE_LOG("glGetIntegeri_v"
  2993. << "(" << GLEnums::GetStringEnum(target) << ", " << index
  2994. << ", " << static_cast<const void*>(data) << ")");
  2995. g_driver_gl.debug_fn.glGetIntegeri_vFn(target, index, data);
  2996. }
  2997. static void GL_BINDING_CALL Debug_glGetIntegerv(GLenum pname, GLint* params) {
  2998. GL_SERVICE_LOG("glGetIntegerv"
  2999. << "(" << GLEnums::GetStringEnum(pname) << ", "
  3000. << static_cast<const void*>(params) << ")");
  3001. g_driver_gl.debug_fn.glGetIntegervFn(pname, params);
  3002. }
  3003. static void GL_BINDING_CALL Debug_glGetInternalformativ(GLenum target,
  3004. GLenum internalformat,
  3005. GLenum pname,
  3006. GLsizei bufSize,
  3007. GLint* params) {
  3008. GL_SERVICE_LOG("glGetInternalformativ"
  3009. << "(" << GLEnums::GetStringEnum(target) << ", "
  3010. << GLEnums::GetStringEnum(internalformat) << ", "
  3011. << GLEnums::GetStringEnum(pname) << ", " << bufSize << ", "
  3012. << static_cast<const void*>(params) << ")");
  3013. g_driver_gl.debug_fn.glGetInternalformativFn(target, internalformat, pname,
  3014. bufSize, params);
  3015. }
  3016. static void GL_BINDING_CALL Debug_glGetProgramBinary(GLuint program,
  3017. GLsizei bufSize,
  3018. GLsizei* length,
  3019. GLenum* binaryFormat,
  3020. GLvoid* binary) {
  3021. GL_SERVICE_LOG("glGetProgramBinary"
  3022. << "(" << program << ", " << bufSize << ", "
  3023. << static_cast<const void*>(length) << ", "
  3024. << static_cast<const void*>(binaryFormat) << ", "
  3025. << static_cast<const void*>(binary) << ")");
  3026. g_driver_gl.debug_fn.glGetProgramBinaryFn(program, bufSize, length,
  3027. binaryFormat, binary);
  3028. }
  3029. static void GL_BINDING_CALL Debug_glGetProgramInfoLog(GLuint program,
  3030. GLsizei bufsize,
  3031. GLsizei* length,
  3032. char* infolog) {
  3033. GL_SERVICE_LOG("glGetProgramInfoLog"
  3034. << "(" << program << ", " << bufsize << ", "
  3035. << static_cast<const void*>(length) << ", "
  3036. << static_cast<const void*>(infolog) << ")");
  3037. g_driver_gl.debug_fn.glGetProgramInfoLogFn(program, bufsize, length, infolog);
  3038. }
  3039. static void GL_BINDING_CALL
  3040. Debug_glGetProgramInterfaceiv(GLuint program,
  3041. GLenum programInterface,
  3042. GLenum pname,
  3043. GLint* params) {
  3044. GL_SERVICE_LOG("glGetProgramInterfaceiv"
  3045. << "(" << program << ", "
  3046. << GLEnums::GetStringEnum(programInterface) << ", "
  3047. << GLEnums::GetStringEnum(pname) << ", "
  3048. << static_cast<const void*>(params) << ")");
  3049. g_driver_gl.debug_fn.glGetProgramInterfaceivFn(program, programInterface,
  3050. pname, params);
  3051. }
  3052. static void GL_BINDING_CALL Debug_glGetProgramiv(GLuint program,
  3053. GLenum pname,
  3054. GLint* params) {
  3055. GL_SERVICE_LOG("glGetProgramiv"
  3056. << "(" << program << ", " << GLEnums::GetStringEnum(pname)
  3057. << ", " << static_cast<const void*>(params) << ")");
  3058. g_driver_gl.debug_fn.glGetProgramivFn(program, pname, params);
  3059. }
  3060. static void GL_BINDING_CALL
  3061. Debug_glGetProgramResourceiv(GLuint program,
  3062. GLenum programInterface,
  3063. GLuint index,
  3064. GLsizei propCount,
  3065. const GLenum* props,
  3066. GLsizei bufSize,
  3067. GLsizei* length,
  3068. GLint* params) {
  3069. GL_SERVICE_LOG("glGetProgramResourceiv"
  3070. << "(" << program << ", "
  3071. << GLEnums::GetStringEnum(programInterface) << ", " << index
  3072. << ", " << propCount << ", " << static_cast<const void*>(props)
  3073. << ", " << bufSize << ", " << static_cast<const void*>(length)
  3074. << ", " << static_cast<const void*>(params) << ")");
  3075. g_driver_gl.debug_fn.glGetProgramResourceivFn(program, programInterface,
  3076. index, propCount, props,
  3077. bufSize, length, params);
  3078. }
  3079. static GLint GL_BINDING_CALL
  3080. Debug_glGetProgramResourceLocation(GLuint program,
  3081. GLenum programInterface,
  3082. const char* name) {
  3083. GL_SERVICE_LOG("glGetProgramResourceLocation"
  3084. << "(" << program << ", "
  3085. << GLEnums::GetStringEnum(programInterface) << ", " << name
  3086. << ")");
  3087. GLint result = g_driver_gl.debug_fn.glGetProgramResourceLocationFn(
  3088. program, programInterface, name);
  3089. GL_SERVICE_LOG("GL_RESULT: " << result);
  3090. return result;
  3091. }
  3092. static void GL_BINDING_CALL
  3093. Debug_glGetProgramResourceName(GLuint program,
  3094. GLenum programInterface,
  3095. GLuint index,
  3096. GLsizei bufSize,
  3097. GLsizei* length,
  3098. GLchar* name) {
  3099. GL_SERVICE_LOG("glGetProgramResourceName"
  3100. << "(" << program << ", "
  3101. << GLEnums::GetStringEnum(programInterface) << ", " << index
  3102. << ", " << bufSize << ", " << static_cast<const void*>(length)
  3103. << ", " << static_cast<const void*>(name) << ")");
  3104. g_driver_gl.debug_fn.glGetProgramResourceNameFn(program, programInterface,
  3105. index, bufSize, length, name);
  3106. }
  3107. static void GL_BINDING_CALL Debug_glGetQueryiv(GLenum target,
  3108. GLenum pname,
  3109. GLint* params) {
  3110. GL_SERVICE_LOG("glGetQueryiv"
  3111. << "(" << GLEnums::GetStringEnum(target) << ", "
  3112. << GLEnums::GetStringEnum(pname) << ", "
  3113. << static_cast<const void*>(params) << ")");
  3114. g_driver_gl.debug_fn.glGetQueryivFn(target, pname, params);
  3115. }
  3116. static void GL_BINDING_CALL Debug_glGetQueryObjecti64v(GLuint id,
  3117. GLenum pname,
  3118. GLint64* params) {
  3119. GL_SERVICE_LOG("glGetQueryObjecti64v"
  3120. << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
  3121. << static_cast<const void*>(params) << ")");
  3122. g_driver_gl.debug_fn.glGetQueryObjecti64vFn(id, pname, params);
  3123. }
  3124. static void GL_BINDING_CALL Debug_glGetQueryObjectiv(GLuint id,
  3125. GLenum pname,
  3126. GLint* params) {
  3127. GL_SERVICE_LOG("glGetQueryObjectiv"
  3128. << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
  3129. << static_cast<const void*>(params) << ")");
  3130. g_driver_gl.debug_fn.glGetQueryObjectivFn(id, pname, params);
  3131. }
  3132. static void GL_BINDING_CALL Debug_glGetQueryObjectui64v(GLuint id,
  3133. GLenum pname,
  3134. GLuint64* params) {
  3135. GL_SERVICE_LOG("glGetQueryObjectui64v"
  3136. << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
  3137. << static_cast<const void*>(params) << ")");
  3138. g_driver_gl.debug_fn.glGetQueryObjectui64vFn(id, pname, params);
  3139. }
  3140. static void GL_BINDING_CALL Debug_glGetQueryObjectuiv(GLuint id,
  3141. GLenum pname,
  3142. GLuint* params) {
  3143. GL_SERVICE_LOG("glGetQueryObjectuiv"
  3144. << "(" << id << ", " << GLEnums::GetStringEnum(pname) << ", "
  3145. << static_cast<const void*>(params) << ")");
  3146. g_driver_gl.debug_fn.glGetQueryObjectuivFn(id, pname, params);
  3147. }
  3148. static void GL_BINDING_CALL
  3149. Debug_glGetRenderbufferParameterivEXT(GLenum target,
  3150. GLenum pname,
  3151. GLint* params) {
  3152. GL_SERVICE_LOG("glGetRenderbufferParameterivEXT"
  3153. << "(" << GLEnums::GetStringEnum(target) << ", "
  3154. << GLEnums::GetStringEnum(pname) << ", "
  3155. << static_cast<const void*>(params) << ")");
  3156. g_driver_gl.debug_fn.glGetRenderbufferParameterivEXTFn(target, pname, params);
  3157. }
  3158. static void GL_BINDING_CALL Debug_glGetSamplerParameterfv(GLuint sampler,
  3159. GLenum pname,
  3160. GLfloat* params) {
  3161. GL_SERVICE_LOG("glGetSamplerParameterfv"
  3162. << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
  3163. << ", " << static_cast<const void*>(params) << ")");
  3164. g_driver_gl.debug_fn.glGetSamplerParameterfvFn(sampler, pname, params);
  3165. }
  3166. static void GL_BINDING_CALL Debug_glGetSamplerParameteriv(GLuint sampler,
  3167. GLenum pname,
  3168. GLint* params) {
  3169. GL_SERVICE_LOG("glGetSamplerParameteriv"
  3170. << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
  3171. << ", " << static_cast<const void*>(params) << ")");
  3172. g_driver_gl.debug_fn.glGetSamplerParameterivFn(sampler, pname, params);
  3173. }
  3174. static void GL_BINDING_CALL Debug_glGetShaderInfoLog(GLuint shader,
  3175. GLsizei bufsize,
  3176. GLsizei* length,
  3177. char* infolog) {
  3178. GL_SERVICE_LOG("glGetShaderInfoLog"
  3179. << "(" << shader << ", " << bufsize << ", "
  3180. << static_cast<const void*>(length) << ", "
  3181. << static_cast<const void*>(infolog) << ")");
  3182. g_driver_gl.debug_fn.glGetShaderInfoLogFn(shader, bufsize, length, infolog);
  3183. }
  3184. static void GL_BINDING_CALL Debug_glGetShaderiv(GLuint shader,
  3185. GLenum pname,
  3186. GLint* params) {
  3187. GL_SERVICE_LOG("glGetShaderiv"
  3188. << "(" << shader << ", " << GLEnums::GetStringEnum(pname)
  3189. << ", " << static_cast<const void*>(params) << ")");
  3190. g_driver_gl.debug_fn.glGetShaderivFn(shader, pname, params);
  3191. }
  3192. static void GL_BINDING_CALL
  3193. Debug_glGetShaderPrecisionFormat(GLenum shadertype,
  3194. GLenum precisiontype,
  3195. GLint* range,
  3196. GLint* precision) {
  3197. GL_SERVICE_LOG("glGetShaderPrecisionFormat"
  3198. << "(" << GLEnums::GetStringEnum(shadertype) << ", "
  3199. << GLEnums::GetStringEnum(precisiontype) << ", "
  3200. << static_cast<const void*>(range) << ", "
  3201. << static_cast<const void*>(precision) << ")");
  3202. g_driver_gl.debug_fn.glGetShaderPrecisionFormatFn(shadertype, precisiontype,
  3203. range, precision);
  3204. }
  3205. static void GL_BINDING_CALL Debug_glGetShaderSource(GLuint shader,
  3206. GLsizei bufsize,
  3207. GLsizei* length,
  3208. char* source) {
  3209. GL_SERVICE_LOG("glGetShaderSource"
  3210. << "(" << shader << ", " << bufsize << ", "
  3211. << static_cast<const void*>(length) << ", "
  3212. << static_cast<const void*>(source) << ")");
  3213. g_driver_gl.debug_fn.glGetShaderSourceFn(shader, bufsize, length, source);
  3214. }
  3215. static const GLubyte* GL_BINDING_CALL Debug_glGetString(GLenum name) {
  3216. GL_SERVICE_LOG("glGetString"
  3217. << "(" << GLEnums::GetStringEnum(name) << ")");
  3218. const GLubyte* result = g_driver_gl.debug_fn.glGetStringFn(name);
  3219. GL_SERVICE_LOG("GL_RESULT: " << result);
  3220. return result;
  3221. }
  3222. static const GLubyte* GL_BINDING_CALL Debug_glGetStringi(GLenum name,
  3223. GLuint index) {
  3224. GL_SERVICE_LOG("glGetStringi"
  3225. << "(" << GLEnums::GetStringEnum(name) << ", " << index
  3226. << ")");
  3227. const GLubyte* result = g_driver_gl.debug_fn.glGetStringiFn(name, index);
  3228. GL_SERVICE_LOG("GL_RESULT: " << result);
  3229. return result;
  3230. }
  3231. static void GL_BINDING_CALL Debug_glGetSynciv(GLsync sync,
  3232. GLenum pname,
  3233. GLsizei bufSize,
  3234. GLsizei* length,
  3235. GLint* values) {
  3236. GL_SERVICE_LOG("glGetSynciv"
  3237. << "(" << sync << ", " << GLEnums::GetStringEnum(pname) << ", "
  3238. << bufSize << ", " << static_cast<const void*>(length) << ", "
  3239. << static_cast<const void*>(values) << ")");
  3240. g_driver_gl.debug_fn.glGetSyncivFn(sync, pname, bufSize, length, values);
  3241. }
  3242. static void GL_BINDING_CALL Debug_glGetTexLevelParameterfv(GLenum target,
  3243. GLint level,
  3244. GLenum pname,
  3245. GLfloat* params) {
  3246. GL_SERVICE_LOG("glGetTexLevelParameterfv"
  3247. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  3248. << ", " << GLEnums::GetStringEnum(pname) << ", "
  3249. << static_cast<const void*>(params) << ")");
  3250. g_driver_gl.debug_fn.glGetTexLevelParameterfvFn(target, level, pname, params);
  3251. }
  3252. static void GL_BINDING_CALL Debug_glGetTexLevelParameteriv(GLenum target,
  3253. GLint level,
  3254. GLenum pname,
  3255. GLint* params) {
  3256. GL_SERVICE_LOG("glGetTexLevelParameteriv"
  3257. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  3258. << ", " << GLEnums::GetStringEnum(pname) << ", "
  3259. << static_cast<const void*>(params) << ")");
  3260. g_driver_gl.debug_fn.glGetTexLevelParameterivFn(target, level, pname, params);
  3261. }
  3262. static void GL_BINDING_CALL Debug_glGetTexParameterfv(GLenum target,
  3263. GLenum pname,
  3264. GLfloat* params) {
  3265. GL_SERVICE_LOG("glGetTexParameterfv"
  3266. << "(" << GLEnums::GetStringEnum(target) << ", "
  3267. << GLEnums::GetStringEnum(pname) << ", "
  3268. << static_cast<const void*>(params) << ")");
  3269. g_driver_gl.debug_fn.glGetTexParameterfvFn(target, pname, params);
  3270. }
  3271. static void GL_BINDING_CALL Debug_glGetTexParameteriv(GLenum target,
  3272. GLenum pname,
  3273. GLint* params) {
  3274. GL_SERVICE_LOG("glGetTexParameteriv"
  3275. << "(" << GLEnums::GetStringEnum(target) << ", "
  3276. << GLEnums::GetStringEnum(pname) << ", "
  3277. << static_cast<const void*>(params) << ")");
  3278. g_driver_gl.debug_fn.glGetTexParameterivFn(target, pname, params);
  3279. }
  3280. static void GL_BINDING_CALL Debug_glGetTransformFeedbackVarying(GLuint program,
  3281. GLuint index,
  3282. GLsizei bufSize,
  3283. GLsizei* length,
  3284. GLsizei* size,
  3285. GLenum* type,
  3286. char* name) {
  3287. GL_SERVICE_LOG("glGetTransformFeedbackVarying"
  3288. << "(" << program << ", " << index << ", " << bufSize << ", "
  3289. << static_cast<const void*>(length) << ", "
  3290. << static_cast<const void*>(size) << ", "
  3291. << static_cast<const void*>(type) << ", "
  3292. << static_cast<const void*>(name) << ")");
  3293. g_driver_gl.debug_fn.glGetTransformFeedbackVaryingFn(
  3294. program, index, bufSize, length, size, type, name);
  3295. }
  3296. static void GL_BINDING_CALL
  3297. Debug_glGetTranslatedShaderSourceANGLE(GLuint shader,
  3298. GLsizei bufsize,
  3299. GLsizei* length,
  3300. char* source) {
  3301. GL_SERVICE_LOG("glGetTranslatedShaderSourceANGLE"
  3302. << "(" << shader << ", " << bufsize << ", "
  3303. << static_cast<const void*>(length) << ", "
  3304. << static_cast<const void*>(source) << ")");
  3305. g_driver_gl.debug_fn.glGetTranslatedShaderSourceANGLEFn(shader, bufsize,
  3306. length, source);
  3307. }
  3308. static GLuint GL_BINDING_CALL
  3309. Debug_glGetUniformBlockIndex(GLuint program, const char* uniformBlockName) {
  3310. GL_SERVICE_LOG("glGetUniformBlockIndex"
  3311. << "(" << program << ", " << uniformBlockName << ")");
  3312. GLuint result =
  3313. g_driver_gl.debug_fn.glGetUniformBlockIndexFn(program, uniformBlockName);
  3314. GL_SERVICE_LOG("GL_RESULT: " << result);
  3315. return result;
  3316. }
  3317. static void GL_BINDING_CALL Debug_glGetUniformfv(GLuint program,
  3318. GLint location,
  3319. GLfloat* params) {
  3320. GL_SERVICE_LOG("glGetUniformfv"
  3321. << "(" << program << ", " << location << ", "
  3322. << static_cast<const void*>(params) << ")");
  3323. g_driver_gl.debug_fn.glGetUniformfvFn(program, location, params);
  3324. }
  3325. static void GL_BINDING_CALL
  3326. Debug_glGetUniformIndices(GLuint program,
  3327. GLsizei uniformCount,
  3328. const char* const* uniformNames,
  3329. GLuint* uniformIndices) {
  3330. GL_SERVICE_LOG("glGetUniformIndices"
  3331. << "(" << program << ", " << uniformCount << ", "
  3332. << static_cast<const void*>(uniformNames) << ", "
  3333. << static_cast<const void*>(uniformIndices) << ")");
  3334. g_driver_gl.debug_fn.glGetUniformIndicesFn(program, uniformCount,
  3335. uniformNames, uniformIndices);
  3336. }
  3337. static void GL_BINDING_CALL Debug_glGetUniformiv(GLuint program,
  3338. GLint location,
  3339. GLint* params) {
  3340. GL_SERVICE_LOG("glGetUniformiv"
  3341. << "(" << program << ", " << location << ", "
  3342. << static_cast<const void*>(params) << ")");
  3343. g_driver_gl.debug_fn.glGetUniformivFn(program, location, params);
  3344. }
  3345. static GLint GL_BINDING_CALL Debug_glGetUniformLocation(GLuint program,
  3346. const char* name) {
  3347. GL_SERVICE_LOG("glGetUniformLocation"
  3348. << "(" << program << ", " << name << ")");
  3349. GLint result = g_driver_gl.debug_fn.glGetUniformLocationFn(program, name);
  3350. GL_SERVICE_LOG("GL_RESULT: " << result);
  3351. return result;
  3352. }
  3353. static void GL_BINDING_CALL Debug_glGetUniformuiv(GLuint program,
  3354. GLint location,
  3355. GLuint* params) {
  3356. GL_SERVICE_LOG("glGetUniformuiv"
  3357. << "(" << program << ", " << location << ", "
  3358. << static_cast<const void*>(params) << ")");
  3359. g_driver_gl.debug_fn.glGetUniformuivFn(program, location, params);
  3360. }
  3361. static void GL_BINDING_CALL Debug_glGetVertexAttribfv(GLuint index,
  3362. GLenum pname,
  3363. GLfloat* params) {
  3364. GL_SERVICE_LOG("glGetVertexAttribfv"
  3365. << "(" << index << ", " << GLEnums::GetStringEnum(pname)
  3366. << ", " << static_cast<const void*>(params) << ")");
  3367. g_driver_gl.debug_fn.glGetVertexAttribfvFn(index, pname, params);
  3368. }
  3369. static void GL_BINDING_CALL Debug_glGetVertexAttribiv(GLuint index,
  3370. GLenum pname,
  3371. GLint* params) {
  3372. GL_SERVICE_LOG("glGetVertexAttribiv"
  3373. << "(" << index << ", " << GLEnums::GetStringEnum(pname)
  3374. << ", " << static_cast<const void*>(params) << ")");
  3375. g_driver_gl.debug_fn.glGetVertexAttribivFn(index, pname, params);
  3376. }
  3377. static void GL_BINDING_CALL Debug_glGetVertexAttribPointerv(GLuint index,
  3378. GLenum pname,
  3379. void** pointer) {
  3380. GL_SERVICE_LOG("glGetVertexAttribPointerv"
  3381. << "(" << index << ", " << GLEnums::GetStringEnum(pname)
  3382. << ", " << pointer << ")");
  3383. g_driver_gl.debug_fn.glGetVertexAttribPointervFn(index, pname, pointer);
  3384. }
  3385. static void GL_BINDING_CALL Debug_glHint(GLenum target, GLenum mode) {
  3386. GL_SERVICE_LOG("glHint"
  3387. << "(" << GLEnums::GetStringEnum(target) << ", "
  3388. << GLEnums::GetStringEnum(mode) << ")");
  3389. g_driver_gl.debug_fn.glHintFn(target, mode);
  3390. }
  3391. static void GL_BINDING_CALL Debug_glInsertEventMarkerEXT(GLsizei length,
  3392. const char* marker) {
  3393. GL_SERVICE_LOG("glInsertEventMarkerEXT"
  3394. << "(" << length << ", " << marker << ")");
  3395. g_driver_gl.debug_fn.glInsertEventMarkerEXTFn(length, marker);
  3396. }
  3397. static void GL_BINDING_CALL
  3398. Debug_glInvalidateFramebuffer(GLenum target,
  3399. GLsizei numAttachments,
  3400. const GLenum* attachments) {
  3401. GL_SERVICE_LOG("glInvalidateFramebuffer"
  3402. << "(" << GLEnums::GetStringEnum(target) << ", "
  3403. << numAttachments << ", "
  3404. << static_cast<const void*>(attachments) << ")");
  3405. g_driver_gl.debug_fn.glInvalidateFramebufferFn(target, numAttachments,
  3406. attachments);
  3407. }
  3408. static void GL_BINDING_CALL
  3409. Debug_glInvalidateSubFramebuffer(GLenum target,
  3410. GLsizei numAttachments,
  3411. const GLenum* attachments,
  3412. GLint x,
  3413. GLint y,
  3414. GLint width,
  3415. GLint height) {
  3416. GL_SERVICE_LOG("glInvalidateSubFramebuffer"
  3417. << "(" << GLEnums::GetStringEnum(target) << ", "
  3418. << numAttachments << ", "
  3419. << static_cast<const void*>(attachments) << ", " << x << ", "
  3420. << y << ", " << width << ", " << height << ")");
  3421. g_driver_gl.debug_fn.glInvalidateSubFramebufferFn(
  3422. target, numAttachments, attachments, x, y, width, height);
  3423. }
  3424. static GLboolean GL_BINDING_CALL Debug_glIsBuffer(GLuint buffer) {
  3425. GL_SERVICE_LOG("glIsBuffer"
  3426. << "(" << buffer << ")");
  3427. GLboolean result = g_driver_gl.debug_fn.glIsBufferFn(buffer);
  3428. GL_SERVICE_LOG("GL_RESULT: " << result);
  3429. return result;
  3430. }
  3431. static GLboolean GL_BINDING_CALL Debug_glIsEnabled(GLenum cap) {
  3432. GL_SERVICE_LOG("glIsEnabled"
  3433. << "(" << GLEnums::GetStringEnum(cap) << ")");
  3434. GLboolean result = g_driver_gl.debug_fn.glIsEnabledFn(cap);
  3435. GL_SERVICE_LOG("GL_RESULT: " << result);
  3436. return result;
  3437. }
  3438. static GLboolean GL_BINDING_CALL Debug_glIsFenceAPPLE(GLuint fence) {
  3439. GL_SERVICE_LOG("glIsFenceAPPLE"
  3440. << "(" << fence << ")");
  3441. GLboolean result = g_driver_gl.debug_fn.glIsFenceAPPLEFn(fence);
  3442. GL_SERVICE_LOG("GL_RESULT: " << result);
  3443. return result;
  3444. }
  3445. static GLboolean GL_BINDING_CALL Debug_glIsFenceNV(GLuint fence) {
  3446. GL_SERVICE_LOG("glIsFenceNV"
  3447. << "(" << fence << ")");
  3448. GLboolean result = g_driver_gl.debug_fn.glIsFenceNVFn(fence);
  3449. GL_SERVICE_LOG("GL_RESULT: " << result);
  3450. return result;
  3451. }
  3452. static GLboolean GL_BINDING_CALL Debug_glIsFramebufferEXT(GLuint framebuffer) {
  3453. GL_SERVICE_LOG("glIsFramebufferEXT"
  3454. << "(" << framebuffer << ")");
  3455. GLboolean result = g_driver_gl.debug_fn.glIsFramebufferEXTFn(framebuffer);
  3456. GL_SERVICE_LOG("GL_RESULT: " << result);
  3457. return result;
  3458. }
  3459. static GLboolean GL_BINDING_CALL Debug_glIsPathNV(GLuint path) {
  3460. GL_SERVICE_LOG("glIsPathNV"
  3461. << "(" << path << ")");
  3462. GLboolean result = g_driver_gl.debug_fn.glIsPathNVFn(path);
  3463. GL_SERVICE_LOG("GL_RESULT: " << result);
  3464. return result;
  3465. }
  3466. static GLboolean GL_BINDING_CALL Debug_glIsProgram(GLuint program) {
  3467. GL_SERVICE_LOG("glIsProgram"
  3468. << "(" << program << ")");
  3469. GLboolean result = g_driver_gl.debug_fn.glIsProgramFn(program);
  3470. GL_SERVICE_LOG("GL_RESULT: " << result);
  3471. return result;
  3472. }
  3473. static GLboolean GL_BINDING_CALL Debug_glIsQuery(GLuint query) {
  3474. GL_SERVICE_LOG("glIsQuery"
  3475. << "(" << query << ")");
  3476. GLboolean result = g_driver_gl.debug_fn.glIsQueryFn(query);
  3477. GL_SERVICE_LOG("GL_RESULT: " << result);
  3478. return result;
  3479. }
  3480. static GLboolean GL_BINDING_CALL
  3481. Debug_glIsRenderbufferEXT(GLuint renderbuffer) {
  3482. GL_SERVICE_LOG("glIsRenderbufferEXT"
  3483. << "(" << renderbuffer << ")");
  3484. GLboolean result = g_driver_gl.debug_fn.glIsRenderbufferEXTFn(renderbuffer);
  3485. GL_SERVICE_LOG("GL_RESULT: " << result);
  3486. return result;
  3487. }
  3488. static GLboolean GL_BINDING_CALL Debug_glIsSampler(GLuint sampler) {
  3489. GL_SERVICE_LOG("glIsSampler"
  3490. << "(" << sampler << ")");
  3491. GLboolean result = g_driver_gl.debug_fn.glIsSamplerFn(sampler);
  3492. GL_SERVICE_LOG("GL_RESULT: " << result);
  3493. return result;
  3494. }
  3495. static GLboolean GL_BINDING_CALL Debug_glIsShader(GLuint shader) {
  3496. GL_SERVICE_LOG("glIsShader"
  3497. << "(" << shader << ")");
  3498. GLboolean result = g_driver_gl.debug_fn.glIsShaderFn(shader);
  3499. GL_SERVICE_LOG("GL_RESULT: " << result);
  3500. return result;
  3501. }
  3502. static GLboolean GL_BINDING_CALL Debug_glIsSync(GLsync sync) {
  3503. GL_SERVICE_LOG("glIsSync"
  3504. << "(" << sync << ")");
  3505. GLboolean result = g_driver_gl.debug_fn.glIsSyncFn(sync);
  3506. GL_SERVICE_LOG("GL_RESULT: " << result);
  3507. return result;
  3508. }
  3509. static GLboolean GL_BINDING_CALL Debug_glIsTexture(GLuint texture) {
  3510. GL_SERVICE_LOG("glIsTexture"
  3511. << "(" << texture << ")");
  3512. GLboolean result = g_driver_gl.debug_fn.glIsTextureFn(texture);
  3513. GL_SERVICE_LOG("GL_RESULT: " << result);
  3514. return result;
  3515. }
  3516. static GLboolean GL_BINDING_CALL Debug_glIsTransformFeedback(GLuint id) {
  3517. GL_SERVICE_LOG("glIsTransformFeedback"
  3518. << "(" << id << ")");
  3519. GLboolean result = g_driver_gl.debug_fn.glIsTransformFeedbackFn(id);
  3520. GL_SERVICE_LOG("GL_RESULT: " << result);
  3521. return result;
  3522. }
  3523. static GLboolean GL_BINDING_CALL Debug_glIsVertexArrayOES(GLuint array) {
  3524. GL_SERVICE_LOG("glIsVertexArrayOES"
  3525. << "(" << array << ")");
  3526. GLboolean result = g_driver_gl.debug_fn.glIsVertexArrayOESFn(array);
  3527. GL_SERVICE_LOG("GL_RESULT: " << result);
  3528. return result;
  3529. }
  3530. static void GL_BINDING_CALL Debug_glLineWidth(GLfloat width) {
  3531. GL_SERVICE_LOG("glLineWidth"
  3532. << "(" << width << ")");
  3533. g_driver_gl.debug_fn.glLineWidthFn(width);
  3534. }
  3535. static void GL_BINDING_CALL Debug_glLinkProgram(GLuint program) {
  3536. GL_SERVICE_LOG("glLinkProgram"
  3537. << "(" << program << ")");
  3538. g_driver_gl.debug_fn.glLinkProgramFn(program);
  3539. }
  3540. static void* GL_BINDING_CALL Debug_glMapBuffer(GLenum target, GLenum access) {
  3541. GL_SERVICE_LOG("glMapBuffer"
  3542. << "(" << GLEnums::GetStringEnum(target) << ", "
  3543. << GLEnums::GetStringEnum(access) << ")");
  3544. void* result = g_driver_gl.debug_fn.glMapBufferFn(target, access);
  3545. GL_SERVICE_LOG("GL_RESULT: " << result);
  3546. return result;
  3547. }
  3548. static void* GL_BINDING_CALL Debug_glMapBufferRange(GLenum target,
  3549. GLintptr offset,
  3550. GLsizeiptr length,
  3551. GLbitfield access) {
  3552. GL_SERVICE_LOG("glMapBufferRange"
  3553. << "(" << GLEnums::GetStringEnum(target) << ", " << offset
  3554. << ", " << length << ", " << access << ")");
  3555. void* result =
  3556. g_driver_gl.debug_fn.glMapBufferRangeFn(target, offset, length, access);
  3557. GL_SERVICE_LOG("GL_RESULT: " << result);
  3558. return result;
  3559. }
  3560. static void GL_BINDING_CALL Debug_glMatrixLoadfEXT(GLenum matrixMode,
  3561. const GLfloat* m) {
  3562. GL_SERVICE_LOG("glMatrixLoadfEXT"
  3563. << "(" << GLEnums::GetStringEnum(matrixMode) << ", "
  3564. << static_cast<const void*>(m) << ")");
  3565. g_driver_gl.debug_fn.glMatrixLoadfEXTFn(matrixMode, m);
  3566. }
  3567. static void GL_BINDING_CALL Debug_glMatrixLoadIdentityEXT(GLenum matrixMode) {
  3568. GL_SERVICE_LOG("glMatrixLoadIdentityEXT"
  3569. << "(" << GLEnums::GetStringEnum(matrixMode) << ")");
  3570. g_driver_gl.debug_fn.glMatrixLoadIdentityEXTFn(matrixMode);
  3571. }
  3572. static void GL_BINDING_CALL Debug_glMemoryBarrierEXT(GLbitfield barriers) {
  3573. GL_SERVICE_LOG("glMemoryBarrierEXT"
  3574. << "(" << barriers << ")");
  3575. g_driver_gl.debug_fn.glMemoryBarrierEXTFn(barriers);
  3576. }
  3577. static void GL_BINDING_CALL Debug_glPathCommandsNV(GLuint path,
  3578. GLsizei numCommands,
  3579. const GLubyte* commands,
  3580. GLsizei numCoords,
  3581. GLenum coordType,
  3582. const GLvoid* coords) {
  3583. GL_SERVICE_LOG("glPathCommandsNV"
  3584. << "(" << path << ", " << numCommands << ", "
  3585. << static_cast<const void*>(commands) << ", " << numCoords
  3586. << ", " << GLEnums::GetStringEnum(coordType) << ", "
  3587. << static_cast<const void*>(coords) << ")");
  3588. g_driver_gl.debug_fn.glPathCommandsNVFn(path, numCommands, commands,
  3589. numCoords, coordType, coords);
  3590. }
  3591. static void GL_BINDING_CALL Debug_glPathParameterfNV(GLuint path,
  3592. GLenum pname,
  3593. GLfloat value) {
  3594. GL_SERVICE_LOG("glPathParameterfNV"
  3595. << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", "
  3596. << value << ")");
  3597. g_driver_gl.debug_fn.glPathParameterfNVFn(path, pname, value);
  3598. }
  3599. static void GL_BINDING_CALL Debug_glPathParameteriNV(GLuint path,
  3600. GLenum pname,
  3601. GLint value) {
  3602. GL_SERVICE_LOG("glPathParameteriNV"
  3603. << "(" << path << ", " << GLEnums::GetStringEnum(pname) << ", "
  3604. << value << ")");
  3605. g_driver_gl.debug_fn.glPathParameteriNVFn(path, pname, value);
  3606. }
  3607. static void GL_BINDING_CALL Debug_glPathStencilFuncNV(GLenum func,
  3608. GLint ref,
  3609. GLuint mask) {
  3610. GL_SERVICE_LOG("glPathStencilFuncNV"
  3611. << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", "
  3612. << mask << ")");
  3613. g_driver_gl.debug_fn.glPathStencilFuncNVFn(func, ref, mask);
  3614. }
  3615. static void GL_BINDING_CALL Debug_glPauseTransformFeedback(void) {
  3616. GL_SERVICE_LOG("glPauseTransformFeedback"
  3617. << "("
  3618. << ")");
  3619. g_driver_gl.debug_fn.glPauseTransformFeedbackFn();
  3620. }
  3621. static void GL_BINDING_CALL Debug_glPixelStorei(GLenum pname, GLint param) {
  3622. GL_SERVICE_LOG("glPixelStorei"
  3623. << "(" << GLEnums::GetStringEnum(pname) << ", " << param
  3624. << ")");
  3625. g_driver_gl.debug_fn.glPixelStoreiFn(pname, param);
  3626. }
  3627. static void GL_BINDING_CALL Debug_glPointParameteri(GLenum pname, GLint param) {
  3628. GL_SERVICE_LOG("glPointParameteri"
  3629. << "(" << GLEnums::GetStringEnum(pname) << ", " << param
  3630. << ")");
  3631. g_driver_gl.debug_fn.glPointParameteriFn(pname, param);
  3632. }
  3633. static void GL_BINDING_CALL Debug_glPolygonOffset(GLfloat factor,
  3634. GLfloat units) {
  3635. GL_SERVICE_LOG("glPolygonOffset"
  3636. << "(" << factor << ", " << units << ")");
  3637. g_driver_gl.debug_fn.glPolygonOffsetFn(factor, units);
  3638. }
  3639. static void GL_BINDING_CALL Debug_glPopGroupMarkerEXT(void) {
  3640. GL_SERVICE_LOG("glPopGroupMarkerEXT"
  3641. << "("
  3642. << ")");
  3643. g_driver_gl.debug_fn.glPopGroupMarkerEXTFn();
  3644. }
  3645. static void GL_BINDING_CALL Debug_glProgramBinary(GLuint program,
  3646. GLenum binaryFormat,
  3647. const GLvoid* binary,
  3648. GLsizei length) {
  3649. GL_SERVICE_LOG("glProgramBinary"
  3650. << "(" << program << ", "
  3651. << GLEnums::GetStringEnum(binaryFormat) << ", "
  3652. << static_cast<const void*>(binary) << ", " << length << ")");
  3653. g_driver_gl.debug_fn.glProgramBinaryFn(program, binaryFormat, binary, length);
  3654. }
  3655. static void GL_BINDING_CALL Debug_glProgramParameteri(GLuint program,
  3656. GLenum pname,
  3657. GLint value) {
  3658. GL_SERVICE_LOG("glProgramParameteri"
  3659. << "(" << program << ", " << GLEnums::GetStringEnum(pname)
  3660. << ", " << value << ")");
  3661. g_driver_gl.debug_fn.glProgramParameteriFn(program, pname, value);
  3662. }
  3663. static void GL_BINDING_CALL
  3664. Debug_glProgramPathFragmentInputGenNV(GLuint program,
  3665. GLint location,
  3666. GLenum genMode,
  3667. GLint components,
  3668. const GLfloat* coeffs) {
  3669. GL_SERVICE_LOG("glProgramPathFragmentInputGenNV"
  3670. << "(" << program << ", " << location << ", "
  3671. << GLEnums::GetStringEnum(genMode) << ", " << components
  3672. << ", " << static_cast<const void*>(coeffs) << ")");
  3673. g_driver_gl.debug_fn.glProgramPathFragmentInputGenNVFn(
  3674. program, location, genMode, components, coeffs);
  3675. }
  3676. static void GL_BINDING_CALL Debug_glPushGroupMarkerEXT(GLsizei length,
  3677. const char* marker) {
  3678. GL_SERVICE_LOG("glPushGroupMarkerEXT"
  3679. << "(" << length << ", " << marker << ")");
  3680. g_driver_gl.debug_fn.glPushGroupMarkerEXTFn(length, marker);
  3681. }
  3682. static void GL_BINDING_CALL Debug_glQueryCounter(GLuint id, GLenum target) {
  3683. GL_SERVICE_LOG("glQueryCounter"
  3684. << "(" << id << ", " << GLEnums::GetStringEnum(target) << ")");
  3685. g_driver_gl.debug_fn.glQueryCounterFn(id, target);
  3686. }
  3687. static void GL_BINDING_CALL Debug_glReadBuffer(GLenum src) {
  3688. GL_SERVICE_LOG("glReadBuffer"
  3689. << "(" << GLEnums::GetStringEnum(src) << ")");
  3690. g_driver_gl.debug_fn.glReadBufferFn(src);
  3691. }
  3692. static void GL_BINDING_CALL Debug_glReadPixels(GLint x,
  3693. GLint y,
  3694. GLsizei width,
  3695. GLsizei height,
  3696. GLenum format,
  3697. GLenum type,
  3698. void* pixels) {
  3699. GL_SERVICE_LOG("glReadPixels"
  3700. << "(" << x << ", " << y << ", " << width << ", " << height
  3701. << ", " << GLEnums::GetStringEnum(format) << ", "
  3702. << GLEnums::GetStringEnum(type) << ", "
  3703. << static_cast<const void*>(pixels) << ")");
  3704. g_driver_gl.debug_fn.glReadPixelsFn(x, y, width, height, format, type,
  3705. pixels);
  3706. }
  3707. static void GL_BINDING_CALL Debug_glReleaseShaderCompiler(void) {
  3708. GL_SERVICE_LOG("glReleaseShaderCompiler"
  3709. << "("
  3710. << ")");
  3711. g_driver_gl.debug_fn.glReleaseShaderCompilerFn();
  3712. }
  3713. static void GL_BINDING_CALL
  3714. Debug_glRenderbufferStorageEXT(GLenum target,
  3715. GLenum internalformat,
  3716. GLsizei width,
  3717. GLsizei height) {
  3718. GL_SERVICE_LOG("glRenderbufferStorageEXT"
  3719. << "(" << GLEnums::GetStringEnum(target) << ", "
  3720. << GLEnums::GetStringEnum(internalformat) << ", " << width
  3721. << ", " << height << ")");
  3722. g_driver_gl.debug_fn.glRenderbufferStorageEXTFn(target, internalformat, width,
  3723. height);
  3724. }
  3725. static void GL_BINDING_CALL
  3726. Debug_glRenderbufferStorageMultisample(GLenum target,
  3727. GLsizei samples,
  3728. GLenum internalformat,
  3729. GLsizei width,
  3730. GLsizei height) {
  3731. GL_SERVICE_LOG("glRenderbufferStorageMultisample"
  3732. << "(" << GLEnums::GetStringEnum(target) << ", " << samples
  3733. << ", " << GLEnums::GetStringEnum(internalformat) << ", "
  3734. << width << ", " << height << ")");
  3735. g_driver_gl.debug_fn.glRenderbufferStorageMultisampleFn(
  3736. target, samples, internalformat, width, height);
  3737. }
  3738. static void GL_BINDING_CALL
  3739. Debug_glRenderbufferStorageMultisampleANGLE(GLenum target,
  3740. GLsizei samples,
  3741. GLenum internalformat,
  3742. GLsizei width,
  3743. GLsizei height) {
  3744. GL_SERVICE_LOG("glRenderbufferStorageMultisampleANGLE"
  3745. << "(" << GLEnums::GetStringEnum(target) << ", " << samples
  3746. << ", " << GLEnums::GetStringEnum(internalformat) << ", "
  3747. << width << ", " << height << ")");
  3748. g_driver_gl.debug_fn.glRenderbufferStorageMultisampleANGLEFn(
  3749. target, samples, internalformat, width, height);
  3750. }
  3751. static void GL_BINDING_CALL
  3752. Debug_glRenderbufferStorageMultisampleEXT(GLenum target,
  3753. GLsizei samples,
  3754. GLenum internalformat,
  3755. GLsizei width,
  3756. GLsizei height) {
  3757. GL_SERVICE_LOG("glRenderbufferStorageMultisampleEXT"
  3758. << "(" << GLEnums::GetStringEnum(target) << ", " << samples
  3759. << ", " << GLEnums::GetStringEnum(internalformat) << ", "
  3760. << width << ", " << height << ")");
  3761. g_driver_gl.debug_fn.glRenderbufferStorageMultisampleEXTFn(
  3762. target, samples, internalformat, width, height);
  3763. }
  3764. static void GL_BINDING_CALL
  3765. Debug_glRenderbufferStorageMultisampleIMG(GLenum target,
  3766. GLsizei samples,
  3767. GLenum internalformat,
  3768. GLsizei width,
  3769. GLsizei height) {
  3770. GL_SERVICE_LOG("glRenderbufferStorageMultisampleIMG"
  3771. << "(" << GLEnums::GetStringEnum(target) << ", " << samples
  3772. << ", " << GLEnums::GetStringEnum(internalformat) << ", "
  3773. << width << ", " << height << ")");
  3774. g_driver_gl.debug_fn.glRenderbufferStorageMultisampleIMGFn(
  3775. target, samples, internalformat, width, height);
  3776. }
  3777. static void GL_BINDING_CALL Debug_glResumeTransformFeedback(void) {
  3778. GL_SERVICE_LOG("glResumeTransformFeedback"
  3779. << "("
  3780. << ")");
  3781. g_driver_gl.debug_fn.glResumeTransformFeedbackFn();
  3782. }
  3783. static void GL_BINDING_CALL Debug_glSampleCoverage(GLclampf value,
  3784. GLboolean invert) {
  3785. GL_SERVICE_LOG("glSampleCoverage"
  3786. << "(" << value << ", " << GLEnums::GetStringBool(invert)
  3787. << ")");
  3788. g_driver_gl.debug_fn.glSampleCoverageFn(value, invert);
  3789. }
  3790. static void GL_BINDING_CALL Debug_glSamplerParameterf(GLuint sampler,
  3791. GLenum pname,
  3792. GLfloat param) {
  3793. GL_SERVICE_LOG("glSamplerParameterf"
  3794. << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
  3795. << ", " << param << ")");
  3796. g_driver_gl.debug_fn.glSamplerParameterfFn(sampler, pname, param);
  3797. }
  3798. static void GL_BINDING_CALL Debug_glSamplerParameterfv(GLuint sampler,
  3799. GLenum pname,
  3800. const GLfloat* params) {
  3801. GL_SERVICE_LOG("glSamplerParameterfv"
  3802. << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
  3803. << ", " << static_cast<const void*>(params) << ")");
  3804. g_driver_gl.debug_fn.glSamplerParameterfvFn(sampler, pname, params);
  3805. }
  3806. static void GL_BINDING_CALL Debug_glSamplerParameteri(GLuint sampler,
  3807. GLenum pname,
  3808. GLint param) {
  3809. GL_SERVICE_LOG("glSamplerParameteri"
  3810. << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
  3811. << ", " << param << ")");
  3812. g_driver_gl.debug_fn.glSamplerParameteriFn(sampler, pname, param);
  3813. }
  3814. static void GL_BINDING_CALL Debug_glSamplerParameteriv(GLuint sampler,
  3815. GLenum pname,
  3816. const GLint* params) {
  3817. GL_SERVICE_LOG("glSamplerParameteriv"
  3818. << "(" << sampler << ", " << GLEnums::GetStringEnum(pname)
  3819. << ", " << static_cast<const void*>(params) << ")");
  3820. g_driver_gl.debug_fn.glSamplerParameterivFn(sampler, pname, params);
  3821. }
  3822. static void GL_BINDING_CALL Debug_glScissor(GLint x,
  3823. GLint y,
  3824. GLsizei width,
  3825. GLsizei height) {
  3826. GL_SERVICE_LOG("glScissor"
  3827. << "(" << x << ", " << y << ", " << width << ", " << height
  3828. << ")");
  3829. g_driver_gl.debug_fn.glScissorFn(x, y, width, height);
  3830. }
  3831. static void GL_BINDING_CALL Debug_glSetFenceAPPLE(GLuint fence) {
  3832. GL_SERVICE_LOG("glSetFenceAPPLE"
  3833. << "(" << fence << ")");
  3834. g_driver_gl.debug_fn.glSetFenceAPPLEFn(fence);
  3835. }
  3836. static void GL_BINDING_CALL Debug_glSetFenceNV(GLuint fence, GLenum condition) {
  3837. GL_SERVICE_LOG("glSetFenceNV"
  3838. << "(" << fence << ", " << GLEnums::GetStringEnum(condition)
  3839. << ")");
  3840. g_driver_gl.debug_fn.glSetFenceNVFn(fence, condition);
  3841. }
  3842. static void GL_BINDING_CALL Debug_glShaderBinary(GLsizei n,
  3843. const GLuint* shaders,
  3844. GLenum binaryformat,
  3845. const void* binary,
  3846. GLsizei length) {
  3847. GL_SERVICE_LOG("glShaderBinary"
  3848. << "(" << n << ", " << static_cast<const void*>(shaders)
  3849. << ", " << GLEnums::GetStringEnum(binaryformat) << ", "
  3850. << static_cast<const void*>(binary) << ", " << length << ")");
  3851. g_driver_gl.debug_fn.glShaderBinaryFn(n, shaders, binaryformat, binary,
  3852. length);
  3853. }
  3854. static void GL_BINDING_CALL Debug_glShaderSource(GLuint shader,
  3855. GLsizei count,
  3856. const char* const* str,
  3857. const GLint* length) {
  3858. GL_SERVICE_LOG("glShaderSource"
  3859. << "(" << shader << ", " << count << ", "
  3860. << static_cast<const void*>(str) << ", "
  3861. << static_cast<const void*>(length) << ")");
  3862. g_driver_gl.debug_fn.glShaderSourceFn(shader, count, str, length);
  3863. GL_SERVICE_LOG_CODE_BLOCK({
  3864. for (GLsizei ii = 0; ii < count; ++ii) {
  3865. if (str[ii]) {
  3866. if (length && length[ii] >= 0) {
  3867. std::string source(str[ii], length[ii]);
  3868. GL_SERVICE_LOG(" " << ii << ": ---\n" << source << "\n---");
  3869. } else {
  3870. GL_SERVICE_LOG(" " << ii << ": ---\n" << str[ii] << "\n---");
  3871. }
  3872. } else {
  3873. GL_SERVICE_LOG(" " << ii << ": NULL");
  3874. }
  3875. }
  3876. });
  3877. }
  3878. static void GL_BINDING_CALL
  3879. Debug_glStencilFillPathInstancedNV(GLsizei numPaths,
  3880. GLenum pathNameType,
  3881. const void* paths,
  3882. GLuint pathBase,
  3883. GLenum fillMode,
  3884. GLuint mask,
  3885. GLenum transformType,
  3886. const GLfloat* transformValues) {
  3887. GL_SERVICE_LOG("glStencilFillPathInstancedNV"
  3888. << "(" << numPaths << ", "
  3889. << GLEnums::GetStringEnum(pathNameType) << ", "
  3890. << static_cast<const void*>(paths) << ", " << pathBase << ", "
  3891. << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", "
  3892. << GLEnums::GetStringEnum(transformType) << ", "
  3893. << static_cast<const void*>(transformValues) << ")");
  3894. g_driver_gl.debug_fn.glStencilFillPathInstancedNVFn(
  3895. numPaths, pathNameType, paths, pathBase, fillMode, mask, transformType,
  3896. transformValues);
  3897. }
  3898. static void GL_BINDING_CALL Debug_glStencilFillPathNV(GLuint path,
  3899. GLenum fillMode,
  3900. GLuint mask) {
  3901. GL_SERVICE_LOG("glStencilFillPathNV"
  3902. << "(" << path << ", " << GLEnums::GetStringEnum(fillMode)
  3903. << ", " << mask << ")");
  3904. g_driver_gl.debug_fn.glStencilFillPathNVFn(path, fillMode, mask);
  3905. }
  3906. static void GL_BINDING_CALL Debug_glStencilFunc(GLenum func,
  3907. GLint ref,
  3908. GLuint mask) {
  3909. GL_SERVICE_LOG("glStencilFunc"
  3910. << "(" << GLEnums::GetStringEnum(func) << ", " << ref << ", "
  3911. << mask << ")");
  3912. g_driver_gl.debug_fn.glStencilFuncFn(func, ref, mask);
  3913. }
  3914. static void GL_BINDING_CALL Debug_glStencilFuncSeparate(GLenum face,
  3915. GLenum func,
  3916. GLint ref,
  3917. GLuint mask) {
  3918. GL_SERVICE_LOG("glStencilFuncSeparate"
  3919. << "(" << GLEnums::GetStringEnum(face) << ", "
  3920. << GLEnums::GetStringEnum(func) << ", " << ref << ", " << mask
  3921. << ")");
  3922. g_driver_gl.debug_fn.glStencilFuncSeparateFn(face, func, ref, mask);
  3923. }
  3924. static void GL_BINDING_CALL Debug_glStencilMask(GLuint mask) {
  3925. GL_SERVICE_LOG("glStencilMask"
  3926. << "(" << mask << ")");
  3927. g_driver_gl.debug_fn.glStencilMaskFn(mask);
  3928. }
  3929. static void GL_BINDING_CALL Debug_glStencilMaskSeparate(GLenum face,
  3930. GLuint mask) {
  3931. GL_SERVICE_LOG("glStencilMaskSeparate"
  3932. << "(" << GLEnums::GetStringEnum(face) << ", " << mask << ")");
  3933. g_driver_gl.debug_fn.glStencilMaskSeparateFn(face, mask);
  3934. }
  3935. static void GL_BINDING_CALL Debug_glStencilOp(GLenum fail,
  3936. GLenum zfail,
  3937. GLenum zpass) {
  3938. GL_SERVICE_LOG("glStencilOp"
  3939. << "(" << GLEnums::GetStringEnum(fail) << ", "
  3940. << GLEnums::GetStringEnum(zfail) << ", "
  3941. << GLEnums::GetStringEnum(zpass) << ")");
  3942. g_driver_gl.debug_fn.glStencilOpFn(fail, zfail, zpass);
  3943. }
  3944. static void GL_BINDING_CALL Debug_glStencilOpSeparate(GLenum face,
  3945. GLenum fail,
  3946. GLenum zfail,
  3947. GLenum zpass) {
  3948. GL_SERVICE_LOG("glStencilOpSeparate"
  3949. << "(" << GLEnums::GetStringEnum(face) << ", "
  3950. << GLEnums::GetStringEnum(fail) << ", "
  3951. << GLEnums::GetStringEnum(zfail) << ", "
  3952. << GLEnums::GetStringEnum(zpass) << ")");
  3953. g_driver_gl.debug_fn.glStencilOpSeparateFn(face, fail, zfail, zpass);
  3954. }
  3955. static void GL_BINDING_CALL
  3956. Debug_glStencilStrokePathInstancedNV(GLsizei numPaths,
  3957. GLenum pathNameType,
  3958. const void* paths,
  3959. GLuint pathBase,
  3960. GLint ref,
  3961. GLuint mask,
  3962. GLenum transformType,
  3963. const GLfloat* transformValues) {
  3964. GL_SERVICE_LOG(
  3965. "glStencilStrokePathInstancedNV"
  3966. << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", "
  3967. << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref
  3968. << ", " << mask << ", " << GLEnums::GetStringEnum(transformType) << ", "
  3969. << static_cast<const void*>(transformValues) << ")");
  3970. g_driver_gl.debug_fn.glStencilStrokePathInstancedNVFn(
  3971. numPaths, pathNameType, paths, pathBase, ref, mask, transformType,
  3972. transformValues);
  3973. }
  3974. static void GL_BINDING_CALL Debug_glStencilStrokePathNV(GLuint path,
  3975. GLint reference,
  3976. GLuint mask) {
  3977. GL_SERVICE_LOG("glStencilStrokePathNV"
  3978. << "(" << path << ", " << reference << ", " << mask << ")");
  3979. g_driver_gl.debug_fn.glStencilStrokePathNVFn(path, reference, mask);
  3980. }
  3981. static void GL_BINDING_CALL
  3982. Debug_glStencilThenCoverFillPathInstancedNV(GLsizei numPaths,
  3983. GLenum pathNameType,
  3984. const void* paths,
  3985. GLuint pathBase,
  3986. GLenum fillMode,
  3987. GLuint mask,
  3988. GLenum coverMode,
  3989. GLenum transformType,
  3990. const GLfloat* transformValues) {
  3991. GL_SERVICE_LOG("glStencilThenCoverFillPathInstancedNV"
  3992. << "(" << numPaths << ", "
  3993. << GLEnums::GetStringEnum(pathNameType) << ", "
  3994. << static_cast<const void*>(paths) << ", " << pathBase << ", "
  3995. << GLEnums::GetStringEnum(fillMode) << ", " << mask << ", "
  3996. << GLEnums::GetStringEnum(coverMode) << ", "
  3997. << GLEnums::GetStringEnum(transformType) << ", "
  3998. << static_cast<const void*>(transformValues) << ")");
  3999. g_driver_gl.debug_fn.glStencilThenCoverFillPathInstancedNVFn(
  4000. numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode,
  4001. transformType, transformValues);
  4002. }
  4003. static void GL_BINDING_CALL
  4004. Debug_glStencilThenCoverFillPathNV(GLuint path,
  4005. GLenum fillMode,
  4006. GLuint mask,
  4007. GLenum coverMode) {
  4008. GL_SERVICE_LOG("glStencilThenCoverFillPathNV"
  4009. << "(" << path << ", " << GLEnums::GetStringEnum(fillMode)
  4010. << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode)
  4011. << ")");
  4012. g_driver_gl.debug_fn.glStencilThenCoverFillPathNVFn(path, fillMode, mask,
  4013. coverMode);
  4014. }
  4015. static void GL_BINDING_CALL
  4016. Debug_glStencilThenCoverStrokePathInstancedNV(GLsizei numPaths,
  4017. GLenum pathNameType,
  4018. const void* paths,
  4019. GLuint pathBase,
  4020. GLint ref,
  4021. GLuint mask,
  4022. GLenum coverMode,
  4023. GLenum transformType,
  4024. const GLfloat* transformValues) {
  4025. GL_SERVICE_LOG(
  4026. "glStencilThenCoverStrokePathInstancedNV"
  4027. << "(" << numPaths << ", " << GLEnums::GetStringEnum(pathNameType) << ", "
  4028. << static_cast<const void*>(paths) << ", " << pathBase << ", " << ref
  4029. << ", " << mask << ", " << GLEnums::GetStringEnum(coverMode) << ", "
  4030. << GLEnums::GetStringEnum(transformType) << ", "
  4031. << static_cast<const void*>(transformValues) << ")");
  4032. g_driver_gl.debug_fn.glStencilThenCoverStrokePathInstancedNVFn(
  4033. numPaths, pathNameType, paths, pathBase, ref, mask, coverMode,
  4034. transformType, transformValues);
  4035. }
  4036. static void GL_BINDING_CALL
  4037. Debug_glStencilThenCoverStrokePathNV(GLuint path,
  4038. GLint reference,
  4039. GLuint mask,
  4040. GLenum coverMode) {
  4041. GL_SERVICE_LOG("glStencilThenCoverStrokePathNV"
  4042. << "(" << path << ", " << reference << ", " << mask << ", "
  4043. << GLEnums::GetStringEnum(coverMode) << ")");
  4044. g_driver_gl.debug_fn.glStencilThenCoverStrokePathNVFn(path, reference, mask,
  4045. coverMode);
  4046. }
  4047. static GLboolean GL_BINDING_CALL Debug_glTestFenceAPPLE(GLuint fence) {
  4048. GL_SERVICE_LOG("glTestFenceAPPLE"
  4049. << "(" << fence << ")");
  4050. GLboolean result = g_driver_gl.debug_fn.glTestFenceAPPLEFn(fence);
  4051. GL_SERVICE_LOG("GL_RESULT: " << result);
  4052. return result;
  4053. }
  4054. static GLboolean GL_BINDING_CALL Debug_glTestFenceNV(GLuint fence) {
  4055. GL_SERVICE_LOG("glTestFenceNV"
  4056. << "(" << fence << ")");
  4057. GLboolean result = g_driver_gl.debug_fn.glTestFenceNVFn(fence);
  4058. GL_SERVICE_LOG("GL_RESULT: " << result);
  4059. return result;
  4060. }
  4061. static void GL_BINDING_CALL Debug_glTexImage2D(GLenum target,
  4062. GLint level,
  4063. GLint internalformat,
  4064. GLsizei width,
  4065. GLsizei height,
  4066. GLint border,
  4067. GLenum format,
  4068. GLenum type,
  4069. const void* pixels) {
  4070. GL_SERVICE_LOG("glTexImage2D"
  4071. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  4072. << ", " << internalformat << ", " << width << ", " << height
  4073. << ", " << border << ", " << GLEnums::GetStringEnum(format)
  4074. << ", " << GLEnums::GetStringEnum(type) << ", "
  4075. << static_cast<const void*>(pixels) << ")");
  4076. g_driver_gl.debug_fn.glTexImage2DFn(target, level, internalformat, width,
  4077. height, border, format, type, pixels);
  4078. }
  4079. static void GL_BINDING_CALL Debug_glTexImage3D(GLenum target,
  4080. GLint level,
  4081. GLint internalformat,
  4082. GLsizei width,
  4083. GLsizei height,
  4084. GLsizei depth,
  4085. GLint border,
  4086. GLenum format,
  4087. GLenum type,
  4088. const void* pixels) {
  4089. GL_SERVICE_LOG("glTexImage3D"
  4090. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  4091. << ", " << internalformat << ", " << width << ", " << height
  4092. << ", " << depth << ", " << border << ", "
  4093. << GLEnums::GetStringEnum(format) << ", "
  4094. << GLEnums::GetStringEnum(type) << ", "
  4095. << static_cast<const void*>(pixels) << ")");
  4096. g_driver_gl.debug_fn.glTexImage3DFn(target, level, internalformat, width,
  4097. height, depth, border, format, type,
  4098. pixels);
  4099. }
  4100. static void GL_BINDING_CALL Debug_glTexParameterf(GLenum target,
  4101. GLenum pname,
  4102. GLfloat param) {
  4103. GL_SERVICE_LOG("glTexParameterf"
  4104. << "(" << GLEnums::GetStringEnum(target) << ", "
  4105. << GLEnums::GetStringEnum(pname) << ", " << param << ")");
  4106. g_driver_gl.debug_fn.glTexParameterfFn(target, pname, param);
  4107. }
  4108. static void GL_BINDING_CALL Debug_glTexParameterfv(GLenum target,
  4109. GLenum pname,
  4110. const GLfloat* params) {
  4111. GL_SERVICE_LOG("glTexParameterfv"
  4112. << "(" << GLEnums::GetStringEnum(target) << ", "
  4113. << GLEnums::GetStringEnum(pname) << ", "
  4114. << static_cast<const void*>(params) << ")");
  4115. g_driver_gl.debug_fn.glTexParameterfvFn(target, pname, params);
  4116. }
  4117. static void GL_BINDING_CALL Debug_glTexParameteri(GLenum target,
  4118. GLenum pname,
  4119. GLint param) {
  4120. GL_SERVICE_LOG("glTexParameteri"
  4121. << "(" << GLEnums::GetStringEnum(target) << ", "
  4122. << GLEnums::GetStringEnum(pname) << ", " << param << ")");
  4123. g_driver_gl.debug_fn.glTexParameteriFn(target, pname, param);
  4124. }
  4125. static void GL_BINDING_CALL Debug_glTexParameteriv(GLenum target,
  4126. GLenum pname,
  4127. const GLint* params) {
  4128. GL_SERVICE_LOG("glTexParameteriv"
  4129. << "(" << GLEnums::GetStringEnum(target) << ", "
  4130. << GLEnums::GetStringEnum(pname) << ", "
  4131. << static_cast<const void*>(params) << ")");
  4132. g_driver_gl.debug_fn.glTexParameterivFn(target, pname, params);
  4133. }
  4134. static void GL_BINDING_CALL Debug_glTexStorage2DEXT(GLenum target,
  4135. GLsizei levels,
  4136. GLenum internalformat,
  4137. GLsizei width,
  4138. GLsizei height) {
  4139. GL_SERVICE_LOG("glTexStorage2DEXT"
  4140. << "(" << GLEnums::GetStringEnum(target) << ", " << levels
  4141. << ", " << GLEnums::GetStringEnum(internalformat) << ", "
  4142. << width << ", " << height << ")");
  4143. g_driver_gl.debug_fn.glTexStorage2DEXTFn(target, levels, internalformat,
  4144. width, height);
  4145. }
  4146. static void GL_BINDING_CALL Debug_glTexStorage3D(GLenum target,
  4147. GLsizei levels,
  4148. GLenum internalformat,
  4149. GLsizei width,
  4150. GLsizei height,
  4151. GLsizei depth) {
  4152. GL_SERVICE_LOG("glTexStorage3D"
  4153. << "(" << GLEnums::GetStringEnum(target) << ", " << levels
  4154. << ", " << GLEnums::GetStringEnum(internalformat) << ", "
  4155. << width << ", " << height << ", " << depth << ")");
  4156. g_driver_gl.debug_fn.glTexStorage3DFn(target, levels, internalformat, width,
  4157. height, depth);
  4158. }
  4159. static void GL_BINDING_CALL Debug_glTexSubImage2D(GLenum target,
  4160. GLint level,
  4161. GLint xoffset,
  4162. GLint yoffset,
  4163. GLsizei width,
  4164. GLsizei height,
  4165. GLenum format,
  4166. GLenum type,
  4167. const void* pixels) {
  4168. GL_SERVICE_LOG("glTexSubImage2D"
  4169. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  4170. << ", " << xoffset << ", " << yoffset << ", " << width << ", "
  4171. << height << ", " << GLEnums::GetStringEnum(format) << ", "
  4172. << GLEnums::GetStringEnum(type) << ", "
  4173. << static_cast<const void*>(pixels) << ")");
  4174. g_driver_gl.debug_fn.glTexSubImage2DFn(target, level, xoffset, yoffset, width,
  4175. height, format, type, pixels);
  4176. }
  4177. static void GL_BINDING_CALL Debug_glTexSubImage3D(GLenum target,
  4178. GLint level,
  4179. GLint xoffset,
  4180. GLint yoffset,
  4181. GLint zoffset,
  4182. GLsizei width,
  4183. GLsizei height,
  4184. GLsizei depth,
  4185. GLenum format,
  4186. GLenum type,
  4187. const void* pixels) {
  4188. GL_SERVICE_LOG("glTexSubImage3D"
  4189. << "(" << GLEnums::GetStringEnum(target) << ", " << level
  4190. << ", " << xoffset << ", " << yoffset << ", " << zoffset
  4191. << ", " << width << ", " << height << ", " << depth << ", "
  4192. << GLEnums::GetStringEnum(format) << ", "
  4193. << GLEnums::GetStringEnum(type) << ", "
  4194. << static_cast<const void*>(pixels) << ")");
  4195. g_driver_gl.debug_fn.glTexSubImage3DFn(target, level, xoffset, yoffset,
  4196. zoffset, width, height, depth, format,
  4197. type, pixels);
  4198. }
  4199. static void GL_BINDING_CALL
  4200. Debug_glTransformFeedbackVaryings(GLuint program,
  4201. GLsizei count,
  4202. const char* const* varyings,
  4203. GLenum bufferMode) {
  4204. GL_SERVICE_LOG("glTransformFeedbackVaryings"
  4205. << "(" << program << ", " << count << ", "
  4206. << static_cast<const void*>(varyings) << ", "
  4207. << GLEnums::GetStringEnum(bufferMode) << ")");
  4208. g_driver_gl.debug_fn.glTransformFeedbackVaryingsFn(program, count, varyings,
  4209. bufferMode);
  4210. }
  4211. static void GL_BINDING_CALL Debug_glUniform1f(GLint location, GLfloat x) {
  4212. GL_SERVICE_LOG("glUniform1f"
  4213. << "(" << location << ", " << x << ")");
  4214. g_driver_gl.debug_fn.glUniform1fFn(location, x);
  4215. }
  4216. static void GL_BINDING_CALL Debug_glUniform1fv(GLint location,
  4217. GLsizei count,
  4218. const GLfloat* v) {
  4219. GL_SERVICE_LOG("glUniform1fv"
  4220. << "(" << location << ", " << count << ", "
  4221. << static_cast<const void*>(v) << ")");
  4222. g_driver_gl.debug_fn.glUniform1fvFn(location, count, v);
  4223. }
  4224. static void GL_BINDING_CALL Debug_glUniform1i(GLint location, GLint x) {
  4225. GL_SERVICE_LOG("glUniform1i"
  4226. << "(" << location << ", " << x << ")");
  4227. g_driver_gl.debug_fn.glUniform1iFn(location, x);
  4228. }
  4229. static void GL_BINDING_CALL Debug_glUniform1iv(GLint location,
  4230. GLsizei count,
  4231. const GLint* v) {
  4232. GL_SERVICE_LOG("glUniform1iv"
  4233. << "(" << location << ", " << count << ", "
  4234. << static_cast<const void*>(v) << ")");
  4235. g_driver_gl.debug_fn.glUniform1ivFn(location, count, v);
  4236. }
  4237. static void GL_BINDING_CALL Debug_glUniform1ui(GLint location, GLuint v0) {
  4238. GL_SERVICE_LOG("glUniform1ui"
  4239. << "(" << location << ", " << v0 << ")");
  4240. g_driver_gl.debug_fn.glUniform1uiFn(location, v0);
  4241. }
  4242. static void GL_BINDING_CALL Debug_glUniform1uiv(GLint location,
  4243. GLsizei count,
  4244. const GLuint* v) {
  4245. GL_SERVICE_LOG("glUniform1uiv"
  4246. << "(" << location << ", " << count << ", "
  4247. << static_cast<const void*>(v) << ")");
  4248. g_driver_gl.debug_fn.glUniform1uivFn(location, count, v);
  4249. }
  4250. static void GL_BINDING_CALL Debug_glUniform2f(GLint location,
  4251. GLfloat x,
  4252. GLfloat y) {
  4253. GL_SERVICE_LOG("glUniform2f"
  4254. << "(" << location << ", " << x << ", " << y << ")");
  4255. g_driver_gl.debug_fn.glUniform2fFn(location, x, y);
  4256. }
  4257. static void GL_BINDING_CALL Debug_glUniform2fv(GLint location,
  4258. GLsizei count,
  4259. const GLfloat* v) {
  4260. GL_SERVICE_LOG("glUniform2fv"
  4261. << "(" << location << ", " << count << ", "
  4262. << static_cast<const void*>(v) << ")");
  4263. g_driver_gl.debug_fn.glUniform2fvFn(location, count, v);
  4264. }
  4265. static void GL_BINDING_CALL Debug_glUniform2i(GLint location,
  4266. GLint x,
  4267. GLint y) {
  4268. GL_SERVICE_LOG("glUniform2i"
  4269. << "(" << location << ", " << x << ", " << y << ")");
  4270. g_driver_gl.debug_fn.glUniform2iFn(location, x, y);
  4271. }
  4272. static void GL_BINDING_CALL Debug_glUniform2iv(GLint location,
  4273. GLsizei count,
  4274. const GLint* v) {
  4275. GL_SERVICE_LOG("glUniform2iv"
  4276. << "(" << location << ", " << count << ", "
  4277. << static_cast<const void*>(v) << ")");
  4278. g_driver_gl.debug_fn.glUniform2ivFn(location, count, v);
  4279. }
  4280. static void GL_BINDING_CALL Debug_glUniform2ui(GLint location,
  4281. GLuint v0,
  4282. GLuint v1) {
  4283. GL_SERVICE_LOG("glUniform2ui"
  4284. << "(" << location << ", " << v0 << ", " << v1 << ")");
  4285. g_driver_gl.debug_fn.glUniform2uiFn(location, v0, v1);
  4286. }
  4287. static void GL_BINDING_CALL Debug_glUniform2uiv(GLint location,
  4288. GLsizei count,
  4289. const GLuint* v) {
  4290. GL_SERVICE_LOG("glUniform2uiv"
  4291. << "(" << location << ", " << count << ", "
  4292. << static_cast<const void*>(v) << ")");
  4293. g_driver_gl.debug_fn.glUniform2uivFn(location, count, v);
  4294. }
  4295. static void GL_BINDING_CALL Debug_glUniform3f(GLint location,
  4296. GLfloat x,
  4297. GLfloat y,
  4298. GLfloat z) {
  4299. GL_SERVICE_LOG("glUniform3f"
  4300. << "(" << location << ", " << x << ", " << y << ", " << z
  4301. << ")");
  4302. g_driver_gl.debug_fn.glUniform3fFn(location, x, y, z);
  4303. }
  4304. static void GL_BINDING_CALL Debug_glUniform3fv(GLint location,
  4305. GLsizei count,
  4306. const GLfloat* v) {
  4307. GL_SERVICE_LOG("glUniform3fv"
  4308. << "(" << location << ", " << count << ", "
  4309. << static_cast<const void*>(v) << ")");
  4310. g_driver_gl.debug_fn.glUniform3fvFn(location, count, v);
  4311. }
  4312. static void GL_BINDING_CALL Debug_glUniform3i(GLint location,
  4313. GLint x,
  4314. GLint y,
  4315. GLint z) {
  4316. GL_SERVICE_LOG("glUniform3i"
  4317. << "(" << location << ", " << x << ", " << y << ", " << z
  4318. << ")");
  4319. g_driver_gl.debug_fn.glUniform3iFn(location, x, y, z);
  4320. }
  4321. static void GL_BINDING_CALL Debug_glUniform3iv(GLint location,
  4322. GLsizei count,
  4323. const GLint* v) {
  4324. GL_SERVICE_LOG("glUniform3iv"
  4325. << "(" << location << ", " << count << ", "
  4326. << static_cast<const void*>(v) << ")");
  4327. g_driver_gl.debug_fn.glUniform3ivFn(location, count, v);
  4328. }
  4329. static void GL_BINDING_CALL Debug_glUniform3ui(GLint location,
  4330. GLuint v0,
  4331. GLuint v1,
  4332. GLuint v2) {
  4333. GL_SERVICE_LOG("glUniform3ui"
  4334. << "(" << location << ", " << v0 << ", " << v1 << ", " << v2
  4335. << ")");
  4336. g_driver_gl.debug_fn.glUniform3uiFn(location, v0, v1, v2);
  4337. }
  4338. static void GL_BINDING_CALL Debug_glUniform3uiv(GLint location,
  4339. GLsizei count,
  4340. const GLuint* v) {
  4341. GL_SERVICE_LOG("glUniform3uiv"
  4342. << "(" << location << ", " << count << ", "
  4343. << static_cast<const void*>(v) << ")");
  4344. g_driver_gl.debug_fn.glUniform3uivFn(location, count, v);
  4345. }
  4346. static void GL_BINDING_CALL
  4347. Debug_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
  4348. GL_SERVICE_LOG("glUniform4f"
  4349. << "(" << location << ", " << x << ", " << y << ", " << z
  4350. << ", " << w << ")");
  4351. g_driver_gl.debug_fn.glUniform4fFn(location, x, y, z, w);
  4352. }
  4353. static void GL_BINDING_CALL Debug_glUniform4fv(GLint location,
  4354. GLsizei count,
  4355. const GLfloat* v) {
  4356. GL_SERVICE_LOG("glUniform4fv"
  4357. << "(" << location << ", " << count << ", "
  4358. << static_cast<const void*>(v) << ")");
  4359. g_driver_gl.debug_fn.glUniform4fvFn(location, count, v);
  4360. }
  4361. static void GL_BINDING_CALL
  4362. Debug_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) {
  4363. GL_SERVICE_LOG("glUniform4i"
  4364. << "(" << location << ", " << x << ", " << y << ", " << z
  4365. << ", " << w << ")");
  4366. g_driver_gl.debug_fn.glUniform4iFn(location, x, y, z, w);
  4367. }
  4368. static void GL_BINDING_CALL Debug_glUniform4iv(GLint location,
  4369. GLsizei count,
  4370. const GLint* v) {
  4371. GL_SERVICE_LOG("glUniform4iv"
  4372. << "(" << location << ", " << count << ", "
  4373. << static_cast<const void*>(v) << ")");
  4374. g_driver_gl.debug_fn.glUniform4ivFn(location, count, v);
  4375. }
  4376. static void GL_BINDING_CALL
  4377. Debug_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
  4378. GL_SERVICE_LOG("glUniform4ui"
  4379. << "(" << location << ", " << v0 << ", " << v1 << ", " << v2
  4380. << ", " << v3 << ")");
  4381. g_driver_gl.debug_fn.glUniform4uiFn(location, v0, v1, v2, v3);
  4382. }
  4383. static void GL_BINDING_CALL Debug_glUniform4uiv(GLint location,
  4384. GLsizei count,
  4385. const GLuint* v) {
  4386. GL_SERVICE_LOG("glUniform4uiv"
  4387. << "(" << location << ", " << count << ", "
  4388. << static_cast<const void*>(v) << ")");
  4389. g_driver_gl.debug_fn.glUniform4uivFn(location, count, v);
  4390. }
  4391. static void GL_BINDING_CALL
  4392. Debug_glUniformBlockBinding(GLuint program,
  4393. GLuint uniformBlockIndex,
  4394. GLuint uniformBlockBinding) {
  4395. GL_SERVICE_LOG("glUniformBlockBinding"
  4396. << "(" << program << ", " << uniformBlockIndex << ", "
  4397. << uniformBlockBinding << ")");
  4398. g_driver_gl.debug_fn.glUniformBlockBindingFn(program, uniformBlockIndex,
  4399. uniformBlockBinding);
  4400. }
  4401. static void GL_BINDING_CALL Debug_glUniformMatrix2fv(GLint location,
  4402. GLsizei count,
  4403. GLboolean transpose,
  4404. const GLfloat* value) {
  4405. GL_SERVICE_LOG("glUniformMatrix2fv"
  4406. << "(" << location << ", " << count << ", "
  4407. << GLEnums::GetStringBool(transpose) << ", "
  4408. << static_cast<const void*>(value) << ")");
  4409. g_driver_gl.debug_fn.glUniformMatrix2fvFn(location, count, transpose, value);
  4410. }
  4411. static void GL_BINDING_CALL Debug_glUniformMatrix2x3fv(GLint location,
  4412. GLsizei count,
  4413. GLboolean transpose,
  4414. const GLfloat* value) {
  4415. GL_SERVICE_LOG("glUniformMatrix2x3fv"
  4416. << "(" << location << ", " << count << ", "
  4417. << GLEnums::GetStringBool(transpose) << ", "
  4418. << static_cast<const void*>(value) << ")");
  4419. g_driver_gl.debug_fn.glUniformMatrix2x3fvFn(location, count, transpose,
  4420. value);
  4421. }
  4422. static void GL_BINDING_CALL Debug_glUniformMatrix2x4fv(GLint location,
  4423. GLsizei count,
  4424. GLboolean transpose,
  4425. const GLfloat* value) {
  4426. GL_SERVICE_LOG("glUniformMatrix2x4fv"
  4427. << "(" << location << ", " << count << ", "
  4428. << GLEnums::GetStringBool(transpose) << ", "
  4429. << static_cast<const void*>(value) << ")");
  4430. g_driver_gl.debug_fn.glUniformMatrix2x4fvFn(location, count, transpose,
  4431. value);
  4432. }
  4433. static void GL_BINDING_CALL Debug_glUniformMatrix3fv(GLint location,
  4434. GLsizei count,
  4435. GLboolean transpose,
  4436. const GLfloat* value) {
  4437. GL_SERVICE_LOG("glUniformMatrix3fv"
  4438. << "(" << location << ", " << count << ", "
  4439. << GLEnums::GetStringBool(transpose) << ", "
  4440. << static_cast<const void*>(value) << ")");
  4441. g_driver_gl.debug_fn.glUniformMatrix3fvFn(location, count, transpose, value);
  4442. }
  4443. static void GL_BINDING_CALL Debug_glUniformMatrix3x2fv(GLint location,
  4444. GLsizei count,
  4445. GLboolean transpose,
  4446. const GLfloat* value) {
  4447. GL_SERVICE_LOG("glUniformMatrix3x2fv"
  4448. << "(" << location << ", " << count << ", "
  4449. << GLEnums::GetStringBool(transpose) << ", "
  4450. << static_cast<const void*>(value) << ")");
  4451. g_driver_gl.debug_fn.glUniformMatrix3x2fvFn(location, count, transpose,
  4452. value);
  4453. }
  4454. static void GL_BINDING_CALL Debug_glUniformMatrix3x4fv(GLint location,
  4455. GLsizei count,
  4456. GLboolean transpose,
  4457. const GLfloat* value) {
  4458. GL_SERVICE_LOG("glUniformMatrix3x4fv"
  4459. << "(" << location << ", " << count << ", "
  4460. << GLEnums::GetStringBool(transpose) << ", "
  4461. << static_cast<const void*>(value) << ")");
  4462. g_driver_gl.debug_fn.glUniformMatrix3x4fvFn(location, count, transpose,
  4463. value);
  4464. }
  4465. static void GL_BINDING_CALL Debug_glUniformMatrix4fv(GLint location,
  4466. GLsizei count,
  4467. GLboolean transpose,
  4468. const GLfloat* value) {
  4469. GL_SERVICE_LOG("glUniformMatrix4fv"
  4470. << "(" << location << ", " << count << ", "
  4471. << GLEnums::GetStringBool(transpose) << ", "
  4472. << static_cast<const void*>(value) << ")");
  4473. g_driver_gl.debug_fn.glUniformMatrix4fvFn(location, count, transpose, value);
  4474. }
  4475. static void GL_BINDING_CALL Debug_glUniformMatrix4x2fv(GLint location,
  4476. GLsizei count,
  4477. GLboolean transpose,
  4478. const GLfloat* value) {
  4479. GL_SERVICE_LOG("glUniformMatrix4x2fv"
  4480. << "(" << location << ", " << count << ", "
  4481. << GLEnums::GetStringBool(transpose) << ", "
  4482. << static_cast<const void*>(value) << ")");
  4483. g_driver_gl.debug_fn.glUniformMatrix4x2fvFn(location, count, transpose,
  4484. value);
  4485. }
  4486. static void GL_BINDING_CALL Debug_glUniformMatrix4x3fv(GLint location,
  4487. GLsizei count,
  4488. GLboolean transpose,
  4489. const GLfloat* value) {
  4490. GL_SERVICE_LOG("glUniformMatrix4x3fv"
  4491. << "(" << location << ", " << count << ", "
  4492. << GLEnums::GetStringBool(transpose) << ", "
  4493. << static_cast<const void*>(value) << ")");
  4494. g_driver_gl.debug_fn.glUniformMatrix4x3fvFn(location, count, transpose,
  4495. value);
  4496. }
  4497. static GLboolean GL_BINDING_CALL Debug_glUnmapBuffer(GLenum target) {
  4498. GL_SERVICE_LOG("glUnmapBuffer"
  4499. << "(" << GLEnums::GetStringEnum(target) << ")");
  4500. GLboolean result = g_driver_gl.debug_fn.glUnmapBufferFn(target);
  4501. GL_SERVICE_LOG("GL_RESULT: " << result);
  4502. return result;
  4503. }
  4504. static void GL_BINDING_CALL Debug_glUseProgram(GLuint program) {
  4505. GL_SERVICE_LOG("glUseProgram"
  4506. << "(" << program << ")");
  4507. g_driver_gl.debug_fn.glUseProgramFn(program);
  4508. }
  4509. static void GL_BINDING_CALL Debug_glValidateProgram(GLuint program) {
  4510. GL_SERVICE_LOG("glValidateProgram"
  4511. << "(" << program << ")");
  4512. g_driver_gl.debug_fn.glValidateProgramFn(program);
  4513. }
  4514. static void GL_BINDING_CALL Debug_glVertexAttrib1f(GLuint indx, GLfloat x) {
  4515. GL_SERVICE_LOG("glVertexAttrib1f"
  4516. << "(" << indx << ", " << x << ")");
  4517. g_driver_gl.debug_fn.glVertexAttrib1fFn(indx, x);
  4518. }
  4519. static void GL_BINDING_CALL Debug_glVertexAttrib1fv(GLuint indx,
  4520. const GLfloat* values) {
  4521. GL_SERVICE_LOG("glVertexAttrib1fv"
  4522. << "(" << indx << ", " << static_cast<const void*>(values)
  4523. << ")");
  4524. g_driver_gl.debug_fn.glVertexAttrib1fvFn(indx, values);
  4525. }
  4526. static void GL_BINDING_CALL Debug_glVertexAttrib2f(GLuint indx,
  4527. GLfloat x,
  4528. GLfloat y) {
  4529. GL_SERVICE_LOG("glVertexAttrib2f"
  4530. << "(" << indx << ", " << x << ", " << y << ")");
  4531. g_driver_gl.debug_fn.glVertexAttrib2fFn(indx, x, y);
  4532. }
  4533. static void GL_BINDING_CALL Debug_glVertexAttrib2fv(GLuint indx,
  4534. const GLfloat* values) {
  4535. GL_SERVICE_LOG("glVertexAttrib2fv"
  4536. << "(" << indx << ", " << static_cast<const void*>(values)
  4537. << ")");
  4538. g_driver_gl.debug_fn.glVertexAttrib2fvFn(indx, values);
  4539. }
  4540. static void GL_BINDING_CALL Debug_glVertexAttrib3f(GLuint indx,
  4541. GLfloat x,
  4542. GLfloat y,
  4543. GLfloat z) {
  4544. GL_SERVICE_LOG("glVertexAttrib3f"
  4545. << "(" << indx << ", " << x << ", " << y << ", " << z << ")");
  4546. g_driver_gl.debug_fn.glVertexAttrib3fFn(indx, x, y, z);
  4547. }
  4548. static void GL_BINDING_CALL Debug_glVertexAttrib3fv(GLuint indx,
  4549. const GLfloat* values) {
  4550. GL_SERVICE_LOG("glVertexAttrib3fv"
  4551. << "(" << indx << ", " << static_cast<const void*>(values)
  4552. << ")");
  4553. g_driver_gl.debug_fn.glVertexAttrib3fvFn(indx, values);
  4554. }
  4555. static void GL_BINDING_CALL Debug_glVertexAttrib4f(GLuint indx,
  4556. GLfloat x,
  4557. GLfloat y,
  4558. GLfloat z,
  4559. GLfloat w) {
  4560. GL_SERVICE_LOG("glVertexAttrib4f"
  4561. << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
  4562. << w << ")");
  4563. g_driver_gl.debug_fn.glVertexAttrib4fFn(indx, x, y, z, w);
  4564. }
  4565. static void GL_BINDING_CALL Debug_glVertexAttrib4fv(GLuint indx,
  4566. const GLfloat* values) {
  4567. GL_SERVICE_LOG("glVertexAttrib4fv"
  4568. << "(" << indx << ", " << static_cast<const void*>(values)
  4569. << ")");
  4570. g_driver_gl.debug_fn.glVertexAttrib4fvFn(indx, values);
  4571. }
  4572. static void GL_BINDING_CALL Debug_glVertexAttribDivisorANGLE(GLuint index,
  4573. GLuint divisor) {
  4574. GL_SERVICE_LOG("glVertexAttribDivisorANGLE"
  4575. << "(" << index << ", " << divisor << ")");
  4576. g_driver_gl.debug_fn.glVertexAttribDivisorANGLEFn(index, divisor);
  4577. }
  4578. static void GL_BINDING_CALL
  4579. Debug_glVertexAttribI4i(GLuint indx, GLint x, GLint y, GLint z, GLint w) {
  4580. GL_SERVICE_LOG("glVertexAttribI4i"
  4581. << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
  4582. << w << ")");
  4583. g_driver_gl.debug_fn.glVertexAttribI4iFn(indx, x, y, z, w);
  4584. }
  4585. static void GL_BINDING_CALL Debug_glVertexAttribI4iv(GLuint indx,
  4586. const GLint* values) {
  4587. GL_SERVICE_LOG("glVertexAttribI4iv"
  4588. << "(" << indx << ", " << static_cast<const void*>(values)
  4589. << ")");
  4590. g_driver_gl.debug_fn.glVertexAttribI4ivFn(indx, values);
  4591. }
  4592. static void GL_BINDING_CALL
  4593. Debug_glVertexAttribI4ui(GLuint indx, GLuint x, GLuint y, GLuint z, GLuint w) {
  4594. GL_SERVICE_LOG("glVertexAttribI4ui"
  4595. << "(" << indx << ", " << x << ", " << y << ", " << z << ", "
  4596. << w << ")");
  4597. g_driver_gl.debug_fn.glVertexAttribI4uiFn(indx, x, y, z, w);
  4598. }
  4599. static void GL_BINDING_CALL Debug_glVertexAttribI4uiv(GLuint indx,
  4600. const GLuint* values) {
  4601. GL_SERVICE_LOG("glVertexAttribI4uiv"
  4602. << "(" << indx << ", " << static_cast<const void*>(values)
  4603. << ")");
  4604. g_driver_gl.debug_fn.glVertexAttribI4uivFn(indx, values);
  4605. }
  4606. static void GL_BINDING_CALL Debug_glVertexAttribIPointer(GLuint indx,
  4607. GLint size,
  4608. GLenum type,
  4609. GLsizei stride,
  4610. const void* ptr) {
  4611. GL_SERVICE_LOG("glVertexAttribIPointer"
  4612. << "(" << indx << ", " << size << ", "
  4613. << GLEnums::GetStringEnum(type) << ", " << stride << ", "
  4614. << static_cast<const void*>(ptr) << ")");
  4615. g_driver_gl.debug_fn.glVertexAttribIPointerFn(indx, size, type, stride, ptr);
  4616. }
  4617. static void GL_BINDING_CALL Debug_glVertexAttribPointer(GLuint indx,
  4618. GLint size,
  4619. GLenum type,
  4620. GLboolean normalized,
  4621. GLsizei stride,
  4622. const void* ptr) {
  4623. GL_SERVICE_LOG("glVertexAttribPointer"
  4624. << "(" << indx << ", " << size << ", "
  4625. << GLEnums::GetStringEnum(type) << ", "
  4626. << GLEnums::GetStringBool(normalized) << ", " << stride << ", "
  4627. << static_cast<const void*>(ptr) << ")");
  4628. g_driver_gl.debug_fn.glVertexAttribPointerFn(indx, size, type, normalized,
  4629. stride, ptr);
  4630. }
  4631. static void GL_BINDING_CALL Debug_glViewport(GLint x,
  4632. GLint y,
  4633. GLsizei width,
  4634. GLsizei height) {
  4635. GL_SERVICE_LOG("glViewport"
  4636. << "(" << x << ", " << y << ", " << width << ", " << height
  4637. << ")");
  4638. g_driver_gl.debug_fn.glViewportFn(x, y, width, height);
  4639. }
  4640. static GLenum GL_BINDING_CALL Debug_glWaitSync(GLsync sync,
  4641. GLbitfield flags,
  4642. GLuint64 timeout) {
  4643. GL_SERVICE_LOG("glWaitSync"
  4644. << "(" << sync << ", " << flags << ", " << timeout << ")");
  4645. GLenum result = g_driver_gl.debug_fn.glWaitSyncFn(sync, flags, timeout);
  4646. GL_SERVICE_LOG("GL_RESULT: " << result);
  4647. return result;
  4648. }
  4649. } // extern "C"
  4650. void DriverGL::InitializeDebugBindings() {
  4651. if (!debug_fn.glActiveTextureFn) {
  4652. debug_fn.glActiveTextureFn = fn.glActiveTextureFn;
  4653. fn.glActiveTextureFn = Debug_glActiveTexture;
  4654. }
  4655. if (!debug_fn.glApplyFramebufferAttachmentCMAAINTELFn) {
  4656. debug_fn.glApplyFramebufferAttachmentCMAAINTELFn =
  4657. fn.glApplyFramebufferAttachmentCMAAINTELFn;
  4658. fn.glApplyFramebufferAttachmentCMAAINTELFn =
  4659. Debug_glApplyFramebufferAttachmentCMAAINTEL;
  4660. }
  4661. if (!debug_fn.glAttachShaderFn) {
  4662. debug_fn.glAttachShaderFn = fn.glAttachShaderFn;
  4663. fn.glAttachShaderFn = Debug_glAttachShader;
  4664. }
  4665. if (!debug_fn.glBeginQueryFn) {
  4666. debug_fn.glBeginQueryFn = fn.glBeginQueryFn;
  4667. fn.glBeginQueryFn = Debug_glBeginQuery;
  4668. }
  4669. if (!debug_fn.glBeginTransformFeedbackFn) {
  4670. debug_fn.glBeginTransformFeedbackFn = fn.glBeginTransformFeedbackFn;
  4671. fn.glBeginTransformFeedbackFn = Debug_glBeginTransformFeedback;
  4672. }
  4673. if (!debug_fn.glBindAttribLocationFn) {
  4674. debug_fn.glBindAttribLocationFn = fn.glBindAttribLocationFn;
  4675. fn.glBindAttribLocationFn = Debug_glBindAttribLocation;
  4676. }
  4677. if (!debug_fn.glBindBufferFn) {
  4678. debug_fn.glBindBufferFn = fn.glBindBufferFn;
  4679. fn.glBindBufferFn = Debug_glBindBuffer;
  4680. }
  4681. if (!debug_fn.glBindBufferBaseFn) {
  4682. debug_fn.glBindBufferBaseFn = fn.glBindBufferBaseFn;
  4683. fn.glBindBufferBaseFn = Debug_glBindBufferBase;
  4684. }
  4685. if (!debug_fn.glBindBufferRangeFn) {
  4686. debug_fn.glBindBufferRangeFn = fn.glBindBufferRangeFn;
  4687. fn.glBindBufferRangeFn = Debug_glBindBufferRange;
  4688. }
  4689. if (!debug_fn.glBindFragDataLocationFn) {
  4690. debug_fn.glBindFragDataLocationFn = fn.glBindFragDataLocationFn;
  4691. fn.glBindFragDataLocationFn = Debug_glBindFragDataLocation;
  4692. }
  4693. if (!debug_fn.glBindFragDataLocationIndexedFn) {
  4694. debug_fn.glBindFragDataLocationIndexedFn =
  4695. fn.glBindFragDataLocationIndexedFn;
  4696. fn.glBindFragDataLocationIndexedFn = Debug_glBindFragDataLocationIndexed;
  4697. }
  4698. if (!debug_fn.glBindFramebufferEXTFn) {
  4699. debug_fn.glBindFramebufferEXTFn = fn.glBindFramebufferEXTFn;
  4700. fn.glBindFramebufferEXTFn = Debug_glBindFramebufferEXT;
  4701. }
  4702. if (!debug_fn.glBindImageTextureEXTFn) {
  4703. debug_fn.glBindImageTextureEXTFn = fn.glBindImageTextureEXTFn;
  4704. fn.glBindImageTextureEXTFn = Debug_glBindImageTextureEXT;
  4705. }
  4706. if (!debug_fn.glBindRenderbufferEXTFn) {
  4707. debug_fn.glBindRenderbufferEXTFn = fn.glBindRenderbufferEXTFn;
  4708. fn.glBindRenderbufferEXTFn = Debug_glBindRenderbufferEXT;
  4709. }
  4710. if (!debug_fn.glBindSamplerFn) {
  4711. debug_fn.glBindSamplerFn = fn.glBindSamplerFn;
  4712. fn.glBindSamplerFn = Debug_glBindSampler;
  4713. }
  4714. if (!debug_fn.glBindTextureFn) {
  4715. debug_fn.glBindTextureFn = fn.glBindTextureFn;
  4716. fn.glBindTextureFn = Debug_glBindTexture;
  4717. }
  4718. if (!debug_fn.glBindTransformFeedbackFn) {
  4719. debug_fn.glBindTransformFeedbackFn = fn.glBindTransformFeedbackFn;
  4720. fn.glBindTransformFeedbackFn = Debug_glBindTransformFeedback;
  4721. }
  4722. if (!debug_fn.glBindVertexArrayOESFn) {
  4723. debug_fn.glBindVertexArrayOESFn = fn.glBindVertexArrayOESFn;
  4724. fn.glBindVertexArrayOESFn = Debug_glBindVertexArrayOES;
  4725. }
  4726. if (!debug_fn.glBlendBarrierKHRFn) {
  4727. debug_fn.glBlendBarrierKHRFn = fn.glBlendBarrierKHRFn;
  4728. fn.glBlendBarrierKHRFn = Debug_glBlendBarrierKHR;
  4729. }
  4730. if (!debug_fn.glBlendColorFn) {
  4731. debug_fn.glBlendColorFn = fn.glBlendColorFn;
  4732. fn.glBlendColorFn = Debug_glBlendColor;
  4733. }
  4734. if (!debug_fn.glBlendEquationFn) {
  4735. debug_fn.glBlendEquationFn = fn.glBlendEquationFn;
  4736. fn.glBlendEquationFn = Debug_glBlendEquation;
  4737. }
  4738. if (!debug_fn.glBlendEquationSeparateFn) {
  4739. debug_fn.glBlendEquationSeparateFn = fn.glBlendEquationSeparateFn;
  4740. fn.glBlendEquationSeparateFn = Debug_glBlendEquationSeparate;
  4741. }
  4742. if (!debug_fn.glBlendFuncFn) {
  4743. debug_fn.glBlendFuncFn = fn.glBlendFuncFn;
  4744. fn.glBlendFuncFn = Debug_glBlendFunc;
  4745. }
  4746. if (!debug_fn.glBlendFuncSeparateFn) {
  4747. debug_fn.glBlendFuncSeparateFn = fn.glBlendFuncSeparateFn;
  4748. fn.glBlendFuncSeparateFn = Debug_glBlendFuncSeparate;
  4749. }
  4750. if (!debug_fn.glBlitFramebufferFn) {
  4751. debug_fn.glBlitFramebufferFn = fn.glBlitFramebufferFn;
  4752. fn.glBlitFramebufferFn = Debug_glBlitFramebuffer;
  4753. }
  4754. if (!debug_fn.glBlitFramebufferANGLEFn) {
  4755. debug_fn.glBlitFramebufferANGLEFn = fn.glBlitFramebufferANGLEFn;
  4756. fn.glBlitFramebufferANGLEFn = Debug_glBlitFramebufferANGLE;
  4757. }
  4758. if (!debug_fn.glBlitFramebufferEXTFn) {
  4759. debug_fn.glBlitFramebufferEXTFn = fn.glBlitFramebufferEXTFn;
  4760. fn.glBlitFramebufferEXTFn = Debug_glBlitFramebufferEXT;
  4761. }
  4762. if (!debug_fn.glBufferDataFn) {
  4763. debug_fn.glBufferDataFn = fn.glBufferDataFn;
  4764. fn.glBufferDataFn = Debug_glBufferData;
  4765. }
  4766. if (!debug_fn.glBufferSubDataFn) {
  4767. debug_fn.glBufferSubDataFn = fn.glBufferSubDataFn;
  4768. fn.glBufferSubDataFn = Debug_glBufferSubData;
  4769. }
  4770. if (!debug_fn.glCheckFramebufferStatusEXTFn) {
  4771. debug_fn.glCheckFramebufferStatusEXTFn = fn.glCheckFramebufferStatusEXTFn;
  4772. fn.glCheckFramebufferStatusEXTFn = Debug_glCheckFramebufferStatusEXT;
  4773. }
  4774. if (!debug_fn.glClearFn) {
  4775. debug_fn.glClearFn = fn.glClearFn;
  4776. fn.glClearFn = Debug_glClear;
  4777. }
  4778. if (!debug_fn.glClearBufferfiFn) {
  4779. debug_fn.glClearBufferfiFn = fn.glClearBufferfiFn;
  4780. fn.glClearBufferfiFn = Debug_glClearBufferfi;
  4781. }
  4782. if (!debug_fn.glClearBufferfvFn) {
  4783. debug_fn.glClearBufferfvFn = fn.glClearBufferfvFn;
  4784. fn.glClearBufferfvFn = Debug_glClearBufferfv;
  4785. }
  4786. if (!debug_fn.glClearBufferivFn) {
  4787. debug_fn.glClearBufferivFn = fn.glClearBufferivFn;
  4788. fn.glClearBufferivFn = Debug_glClearBufferiv;
  4789. }
  4790. if (!debug_fn.glClearBufferuivFn) {
  4791. debug_fn.glClearBufferuivFn = fn.glClearBufferuivFn;
  4792. fn.glClearBufferuivFn = Debug_glClearBufferuiv;
  4793. }
  4794. if (!debug_fn.glClearColorFn) {
  4795. debug_fn.glClearColorFn = fn.glClearColorFn;
  4796. fn.glClearColorFn = Debug_glClearColor;
  4797. }
  4798. if (!debug_fn.glClearDepthFn) {
  4799. debug_fn.glClearDepthFn = fn.glClearDepthFn;
  4800. fn.glClearDepthFn = Debug_glClearDepth;
  4801. }
  4802. if (!debug_fn.glClearDepthfFn) {
  4803. debug_fn.glClearDepthfFn = fn.glClearDepthfFn;
  4804. fn.glClearDepthfFn = Debug_glClearDepthf;
  4805. }
  4806. if (!debug_fn.glClearStencilFn) {
  4807. debug_fn.glClearStencilFn = fn.glClearStencilFn;
  4808. fn.glClearStencilFn = Debug_glClearStencil;
  4809. }
  4810. if (!debug_fn.glClientWaitSyncFn) {
  4811. debug_fn.glClientWaitSyncFn = fn.glClientWaitSyncFn;
  4812. fn.glClientWaitSyncFn = Debug_glClientWaitSync;
  4813. }
  4814. if (!debug_fn.glColorMaskFn) {
  4815. debug_fn.glColorMaskFn = fn.glColorMaskFn;
  4816. fn.glColorMaskFn = Debug_glColorMask;
  4817. }
  4818. if (!debug_fn.glCompileShaderFn) {
  4819. debug_fn.glCompileShaderFn = fn.glCompileShaderFn;
  4820. fn.glCompileShaderFn = Debug_glCompileShader;
  4821. }
  4822. if (!debug_fn.glCompressedTexImage2DFn) {
  4823. debug_fn.glCompressedTexImage2DFn = fn.glCompressedTexImage2DFn;
  4824. fn.glCompressedTexImage2DFn = Debug_glCompressedTexImage2D;
  4825. }
  4826. if (!debug_fn.glCompressedTexImage3DFn) {
  4827. debug_fn.glCompressedTexImage3DFn = fn.glCompressedTexImage3DFn;
  4828. fn.glCompressedTexImage3DFn = Debug_glCompressedTexImage3D;
  4829. }
  4830. if (!debug_fn.glCompressedTexSubImage2DFn) {
  4831. debug_fn.glCompressedTexSubImage2DFn = fn.glCompressedTexSubImage2DFn;
  4832. fn.glCompressedTexSubImage2DFn = Debug_glCompressedTexSubImage2D;
  4833. }
  4834. if (!debug_fn.glCompressedTexSubImage3DFn) {
  4835. debug_fn.glCompressedTexSubImage3DFn = fn.glCompressedTexSubImage3DFn;
  4836. fn.glCompressedTexSubImage3DFn = Debug_glCompressedTexSubImage3D;
  4837. }
  4838. if (!debug_fn.glCopyBufferSubDataFn) {
  4839. debug_fn.glCopyBufferSubDataFn = fn.glCopyBufferSubDataFn;
  4840. fn.glCopyBufferSubDataFn = Debug_glCopyBufferSubData;
  4841. }
  4842. if (!debug_fn.glCopyTexImage2DFn) {
  4843. debug_fn.glCopyTexImage2DFn = fn.glCopyTexImage2DFn;
  4844. fn.glCopyTexImage2DFn = Debug_glCopyTexImage2D;
  4845. }
  4846. if (!debug_fn.glCopyTexSubImage2DFn) {
  4847. debug_fn.glCopyTexSubImage2DFn = fn.glCopyTexSubImage2DFn;
  4848. fn.glCopyTexSubImage2DFn = Debug_glCopyTexSubImage2D;
  4849. }
  4850. if (!debug_fn.glCopyTexSubImage3DFn) {
  4851. debug_fn.glCopyTexSubImage3DFn = fn.glCopyTexSubImage3DFn;
  4852. fn.glCopyTexSubImage3DFn = Debug_glCopyTexSubImage3D;
  4853. }
  4854. if (!debug_fn.glCoverageModulationNVFn) {
  4855. debug_fn.glCoverageModulationNVFn = fn.glCoverageModulationNVFn;
  4856. fn.glCoverageModulationNVFn = Debug_glCoverageModulationNV;
  4857. }
  4858. if (!debug_fn.glCoverFillPathInstancedNVFn) {
  4859. debug_fn.glCoverFillPathInstancedNVFn = fn.glCoverFillPathInstancedNVFn;
  4860. fn.glCoverFillPathInstancedNVFn = Debug_glCoverFillPathInstancedNV;
  4861. }
  4862. if (!debug_fn.glCoverFillPathNVFn) {
  4863. debug_fn.glCoverFillPathNVFn = fn.glCoverFillPathNVFn;
  4864. fn.glCoverFillPathNVFn = Debug_glCoverFillPathNV;
  4865. }
  4866. if (!debug_fn.glCoverStrokePathInstancedNVFn) {
  4867. debug_fn.glCoverStrokePathInstancedNVFn = fn.glCoverStrokePathInstancedNVFn;
  4868. fn.glCoverStrokePathInstancedNVFn = Debug_glCoverStrokePathInstancedNV;
  4869. }
  4870. if (!debug_fn.glCoverStrokePathNVFn) {
  4871. debug_fn.glCoverStrokePathNVFn = fn.glCoverStrokePathNVFn;
  4872. fn.glCoverStrokePathNVFn = Debug_glCoverStrokePathNV;
  4873. }
  4874. if (!debug_fn.glCreateProgramFn) {
  4875. debug_fn.glCreateProgramFn = fn.glCreateProgramFn;
  4876. fn.glCreateProgramFn = Debug_glCreateProgram;
  4877. }
  4878. if (!debug_fn.glCreateShaderFn) {
  4879. debug_fn.glCreateShaderFn = fn.glCreateShaderFn;
  4880. fn.glCreateShaderFn = Debug_glCreateShader;
  4881. }
  4882. if (!debug_fn.glCullFaceFn) {
  4883. debug_fn.glCullFaceFn = fn.glCullFaceFn;
  4884. fn.glCullFaceFn = Debug_glCullFace;
  4885. }
  4886. if (!debug_fn.glDeleteBuffersARBFn) {
  4887. debug_fn.glDeleteBuffersARBFn = fn.glDeleteBuffersARBFn;
  4888. fn.glDeleteBuffersARBFn = Debug_glDeleteBuffersARB;
  4889. }
  4890. if (!debug_fn.glDeleteFencesAPPLEFn) {
  4891. debug_fn.glDeleteFencesAPPLEFn = fn.glDeleteFencesAPPLEFn;
  4892. fn.glDeleteFencesAPPLEFn = Debug_glDeleteFencesAPPLE;
  4893. }
  4894. if (!debug_fn.glDeleteFencesNVFn) {
  4895. debug_fn.glDeleteFencesNVFn = fn.glDeleteFencesNVFn;
  4896. fn.glDeleteFencesNVFn = Debug_glDeleteFencesNV;
  4897. }
  4898. if (!debug_fn.glDeleteFramebuffersEXTFn) {
  4899. debug_fn.glDeleteFramebuffersEXTFn = fn.glDeleteFramebuffersEXTFn;
  4900. fn.glDeleteFramebuffersEXTFn = Debug_glDeleteFramebuffersEXT;
  4901. }
  4902. if (!debug_fn.glDeletePathsNVFn) {
  4903. debug_fn.glDeletePathsNVFn = fn.glDeletePathsNVFn;
  4904. fn.glDeletePathsNVFn = Debug_glDeletePathsNV;
  4905. }
  4906. if (!debug_fn.glDeleteProgramFn) {
  4907. debug_fn.glDeleteProgramFn = fn.glDeleteProgramFn;
  4908. fn.glDeleteProgramFn = Debug_glDeleteProgram;
  4909. }
  4910. if (!debug_fn.glDeleteQueriesFn) {
  4911. debug_fn.glDeleteQueriesFn = fn.glDeleteQueriesFn;
  4912. fn.glDeleteQueriesFn = Debug_glDeleteQueries;
  4913. }
  4914. if (!debug_fn.glDeleteRenderbuffersEXTFn) {
  4915. debug_fn.glDeleteRenderbuffersEXTFn = fn.glDeleteRenderbuffersEXTFn;
  4916. fn.glDeleteRenderbuffersEXTFn = Debug_glDeleteRenderbuffersEXT;
  4917. }
  4918. if (!debug_fn.glDeleteSamplersFn) {
  4919. debug_fn.glDeleteSamplersFn = fn.glDeleteSamplersFn;
  4920. fn.glDeleteSamplersFn = Debug_glDeleteSamplers;
  4921. }
  4922. if (!debug_fn.glDeleteShaderFn) {
  4923. debug_fn.glDeleteShaderFn = fn.glDeleteShaderFn;
  4924. fn.glDeleteShaderFn = Debug_glDeleteShader;
  4925. }
  4926. if (!debug_fn.glDeleteSyncFn) {
  4927. debug_fn.glDeleteSyncFn = fn.glDeleteSyncFn;
  4928. fn.glDeleteSyncFn = Debug_glDeleteSync;
  4929. }
  4930. if (!debug_fn.glDeleteTexturesFn) {
  4931. debug_fn.glDeleteTexturesFn = fn.glDeleteTexturesFn;
  4932. fn.glDeleteTexturesFn = Debug_glDeleteTextures;
  4933. }
  4934. if (!debug_fn.glDeleteTransformFeedbacksFn) {
  4935. debug_fn.glDeleteTransformFeedbacksFn = fn.glDeleteTransformFeedbacksFn;
  4936. fn.glDeleteTransformFeedbacksFn = Debug_glDeleteTransformFeedbacks;
  4937. }
  4938. if (!debug_fn.glDeleteVertexArraysOESFn) {
  4939. debug_fn.glDeleteVertexArraysOESFn = fn.glDeleteVertexArraysOESFn;
  4940. fn.glDeleteVertexArraysOESFn = Debug_glDeleteVertexArraysOES;
  4941. }
  4942. if (!debug_fn.glDepthFuncFn) {
  4943. debug_fn.glDepthFuncFn = fn.glDepthFuncFn;
  4944. fn.glDepthFuncFn = Debug_glDepthFunc;
  4945. }
  4946. if (!debug_fn.glDepthMaskFn) {
  4947. debug_fn.glDepthMaskFn = fn.glDepthMaskFn;
  4948. fn.glDepthMaskFn = Debug_glDepthMask;
  4949. }
  4950. if (!debug_fn.glDepthRangeFn) {
  4951. debug_fn.glDepthRangeFn = fn.glDepthRangeFn;
  4952. fn.glDepthRangeFn = Debug_glDepthRange;
  4953. }
  4954. if (!debug_fn.glDepthRangefFn) {
  4955. debug_fn.glDepthRangefFn = fn.glDepthRangefFn;
  4956. fn.glDepthRangefFn = Debug_glDepthRangef;
  4957. }
  4958. if (!debug_fn.glDetachShaderFn) {
  4959. debug_fn.glDetachShaderFn = fn.glDetachShaderFn;
  4960. fn.glDetachShaderFn = Debug_glDetachShader;
  4961. }
  4962. if (!debug_fn.glDisableFn) {
  4963. debug_fn.glDisableFn = fn.glDisableFn;
  4964. fn.glDisableFn = Debug_glDisable;
  4965. }
  4966. if (!debug_fn.glDisableVertexAttribArrayFn) {
  4967. debug_fn.glDisableVertexAttribArrayFn = fn.glDisableVertexAttribArrayFn;
  4968. fn.glDisableVertexAttribArrayFn = Debug_glDisableVertexAttribArray;
  4969. }
  4970. if (!debug_fn.glDiscardFramebufferEXTFn) {
  4971. debug_fn.glDiscardFramebufferEXTFn = fn.glDiscardFramebufferEXTFn;
  4972. fn.glDiscardFramebufferEXTFn = Debug_glDiscardFramebufferEXT;
  4973. }
  4974. if (!debug_fn.glDrawArraysFn) {
  4975. debug_fn.glDrawArraysFn = fn.glDrawArraysFn;
  4976. fn.glDrawArraysFn = Debug_glDrawArrays;
  4977. }
  4978. if (!debug_fn.glDrawArraysInstancedANGLEFn) {
  4979. debug_fn.glDrawArraysInstancedANGLEFn = fn.glDrawArraysInstancedANGLEFn;
  4980. fn.glDrawArraysInstancedANGLEFn = Debug_glDrawArraysInstancedANGLE;
  4981. }
  4982. if (!debug_fn.glDrawBufferFn) {
  4983. debug_fn.glDrawBufferFn = fn.glDrawBufferFn;
  4984. fn.glDrawBufferFn = Debug_glDrawBuffer;
  4985. }
  4986. if (!debug_fn.glDrawBuffersARBFn) {
  4987. debug_fn.glDrawBuffersARBFn = fn.glDrawBuffersARBFn;
  4988. fn.glDrawBuffersARBFn = Debug_glDrawBuffersARB;
  4989. }
  4990. if (!debug_fn.glDrawElementsFn) {
  4991. debug_fn.glDrawElementsFn = fn.glDrawElementsFn;
  4992. fn.glDrawElementsFn = Debug_glDrawElements;
  4993. }
  4994. if (!debug_fn.glDrawElementsInstancedANGLEFn) {
  4995. debug_fn.glDrawElementsInstancedANGLEFn = fn.glDrawElementsInstancedANGLEFn;
  4996. fn.glDrawElementsInstancedANGLEFn = Debug_glDrawElementsInstancedANGLE;
  4997. }
  4998. if (!debug_fn.glDrawRangeElementsFn) {
  4999. debug_fn.glDrawRangeElementsFn = fn.glDrawRangeElementsFn;
  5000. fn.glDrawRangeElementsFn = Debug_glDrawRangeElements;
  5001. }
  5002. if (!debug_fn.glEGLImageTargetRenderbufferStorageOESFn) {
  5003. debug_fn.glEGLImageTargetRenderbufferStorageOESFn =
  5004. fn.glEGLImageTargetRenderbufferStorageOESFn;
  5005. fn.glEGLImageTargetRenderbufferStorageOESFn =
  5006. Debug_glEGLImageTargetRenderbufferStorageOES;
  5007. }
  5008. if (!debug_fn.glEGLImageTargetTexture2DOESFn) {
  5009. debug_fn.glEGLImageTargetTexture2DOESFn = fn.glEGLImageTargetTexture2DOESFn;
  5010. fn.glEGLImageTargetTexture2DOESFn = Debug_glEGLImageTargetTexture2DOES;
  5011. }
  5012. if (!debug_fn.glEnableFn) {
  5013. debug_fn.glEnableFn = fn.glEnableFn;
  5014. fn.glEnableFn = Debug_glEnable;
  5015. }
  5016. if (!debug_fn.glEnableVertexAttribArrayFn) {
  5017. debug_fn.glEnableVertexAttribArrayFn = fn.glEnableVertexAttribArrayFn;
  5018. fn.glEnableVertexAttribArrayFn = Debug_glEnableVertexAttribArray;
  5019. }
  5020. if (!debug_fn.glEndQueryFn) {
  5021. debug_fn.glEndQueryFn = fn.glEndQueryFn;
  5022. fn.glEndQueryFn = Debug_glEndQuery;
  5023. }
  5024. if (!debug_fn.glEndTransformFeedbackFn) {
  5025. debug_fn.glEndTransformFeedbackFn = fn.glEndTransformFeedbackFn;
  5026. fn.glEndTransformFeedbackFn = Debug_glEndTransformFeedback;
  5027. }
  5028. if (!debug_fn.glFenceSyncFn) {
  5029. debug_fn.glFenceSyncFn = fn.glFenceSyncFn;
  5030. fn.glFenceSyncFn = Debug_glFenceSync;
  5031. }
  5032. if (!debug_fn.glFinishFn) {
  5033. debug_fn.glFinishFn = fn.glFinishFn;
  5034. fn.glFinishFn = Debug_glFinish;
  5035. }
  5036. if (!debug_fn.glFinishFenceAPPLEFn) {
  5037. debug_fn.glFinishFenceAPPLEFn = fn.glFinishFenceAPPLEFn;
  5038. fn.glFinishFenceAPPLEFn = Debug_glFinishFenceAPPLE;
  5039. }
  5040. if (!debug_fn.glFinishFenceNVFn) {
  5041. debug_fn.glFinishFenceNVFn = fn.glFinishFenceNVFn;
  5042. fn.glFinishFenceNVFn = Debug_glFinishFenceNV;
  5043. }
  5044. if (!debug_fn.glFlushFn) {
  5045. debug_fn.glFlushFn = fn.glFlushFn;
  5046. fn.glFlushFn = Debug_glFlush;
  5047. }
  5048. if (!debug_fn.glFlushMappedBufferRangeFn) {
  5049. debug_fn.glFlushMappedBufferRangeFn = fn.glFlushMappedBufferRangeFn;
  5050. fn.glFlushMappedBufferRangeFn = Debug_glFlushMappedBufferRange;
  5051. }
  5052. if (!debug_fn.glFramebufferRenderbufferEXTFn) {
  5053. debug_fn.glFramebufferRenderbufferEXTFn = fn.glFramebufferRenderbufferEXTFn;
  5054. fn.glFramebufferRenderbufferEXTFn = Debug_glFramebufferRenderbufferEXT;
  5055. }
  5056. if (!debug_fn.glFramebufferTexture2DEXTFn) {
  5057. debug_fn.glFramebufferTexture2DEXTFn = fn.glFramebufferTexture2DEXTFn;
  5058. fn.glFramebufferTexture2DEXTFn = Debug_glFramebufferTexture2DEXT;
  5059. }
  5060. if (!debug_fn.glFramebufferTexture2DMultisampleEXTFn) {
  5061. debug_fn.glFramebufferTexture2DMultisampleEXTFn =
  5062. fn.glFramebufferTexture2DMultisampleEXTFn;
  5063. fn.glFramebufferTexture2DMultisampleEXTFn =
  5064. Debug_glFramebufferTexture2DMultisampleEXT;
  5065. }
  5066. if (!debug_fn.glFramebufferTexture2DMultisampleIMGFn) {
  5067. debug_fn.glFramebufferTexture2DMultisampleIMGFn =
  5068. fn.glFramebufferTexture2DMultisampleIMGFn;
  5069. fn.glFramebufferTexture2DMultisampleIMGFn =
  5070. Debug_glFramebufferTexture2DMultisampleIMG;
  5071. }
  5072. if (!debug_fn.glFramebufferTextureLayerFn) {
  5073. debug_fn.glFramebufferTextureLayerFn = fn.glFramebufferTextureLayerFn;
  5074. fn.glFramebufferTextureLayerFn = Debug_glFramebufferTextureLayer;
  5075. }
  5076. if (!debug_fn.glFrontFaceFn) {
  5077. debug_fn.glFrontFaceFn = fn.glFrontFaceFn;
  5078. fn.glFrontFaceFn = Debug_glFrontFace;
  5079. }
  5080. if (!debug_fn.glGenBuffersARBFn) {
  5081. debug_fn.glGenBuffersARBFn = fn.glGenBuffersARBFn;
  5082. fn.glGenBuffersARBFn = Debug_glGenBuffersARB;
  5083. }
  5084. if (!debug_fn.glGenerateMipmapEXTFn) {
  5085. debug_fn.glGenerateMipmapEXTFn = fn.glGenerateMipmapEXTFn;
  5086. fn.glGenerateMipmapEXTFn = Debug_glGenerateMipmapEXT;
  5087. }
  5088. if (!debug_fn.glGenFencesAPPLEFn) {
  5089. debug_fn.glGenFencesAPPLEFn = fn.glGenFencesAPPLEFn;
  5090. fn.glGenFencesAPPLEFn = Debug_glGenFencesAPPLE;
  5091. }
  5092. if (!debug_fn.glGenFencesNVFn) {
  5093. debug_fn.glGenFencesNVFn = fn.glGenFencesNVFn;
  5094. fn.glGenFencesNVFn = Debug_glGenFencesNV;
  5095. }
  5096. if (!debug_fn.glGenFramebuffersEXTFn) {
  5097. debug_fn.glGenFramebuffersEXTFn = fn.glGenFramebuffersEXTFn;
  5098. fn.glGenFramebuffersEXTFn = Debug_glGenFramebuffersEXT;
  5099. }
  5100. if (!debug_fn.glGenPathsNVFn) {
  5101. debug_fn.glGenPathsNVFn = fn.glGenPathsNVFn;
  5102. fn.glGenPathsNVFn = Debug_glGenPathsNV;
  5103. }
  5104. if (!debug_fn.glGenQueriesFn) {
  5105. debug_fn.glGenQueriesFn = fn.glGenQueriesFn;
  5106. fn.glGenQueriesFn = Debug_glGenQueries;
  5107. }
  5108. if (!debug_fn.glGenRenderbuffersEXTFn) {
  5109. debug_fn.glGenRenderbuffersEXTFn = fn.glGenRenderbuffersEXTFn;
  5110. fn.glGenRenderbuffersEXTFn = Debug_glGenRenderbuffersEXT;
  5111. }
  5112. if (!debug_fn.glGenSamplersFn) {
  5113. debug_fn.glGenSamplersFn = fn.glGenSamplersFn;
  5114. fn.glGenSamplersFn = Debug_glGenSamplers;
  5115. }
  5116. if (!debug_fn.glGenTexturesFn) {
  5117. debug_fn.glGenTexturesFn = fn.glGenTexturesFn;
  5118. fn.glGenTexturesFn = Debug_glGenTextures;
  5119. }
  5120. if (!debug_fn.glGenTransformFeedbacksFn) {
  5121. debug_fn.glGenTransformFeedbacksFn = fn.glGenTransformFeedbacksFn;
  5122. fn.glGenTransformFeedbacksFn = Debug_glGenTransformFeedbacks;
  5123. }
  5124. if (!debug_fn.glGenVertexArraysOESFn) {
  5125. debug_fn.glGenVertexArraysOESFn = fn.glGenVertexArraysOESFn;
  5126. fn.glGenVertexArraysOESFn = Debug_glGenVertexArraysOES;
  5127. }
  5128. if (!debug_fn.glGetActiveAttribFn) {
  5129. debug_fn.glGetActiveAttribFn = fn.glGetActiveAttribFn;
  5130. fn.glGetActiveAttribFn = Debug_glGetActiveAttrib;
  5131. }
  5132. if (!debug_fn.glGetActiveUniformFn) {
  5133. debug_fn.glGetActiveUniformFn = fn.glGetActiveUniformFn;
  5134. fn.glGetActiveUniformFn = Debug_glGetActiveUniform;
  5135. }
  5136. if (!debug_fn.glGetActiveUniformBlockivFn) {
  5137. debug_fn.glGetActiveUniformBlockivFn = fn.glGetActiveUniformBlockivFn;
  5138. fn.glGetActiveUniformBlockivFn = Debug_glGetActiveUniformBlockiv;
  5139. }
  5140. if (!debug_fn.glGetActiveUniformBlockNameFn) {
  5141. debug_fn.glGetActiveUniformBlockNameFn = fn.glGetActiveUniformBlockNameFn;
  5142. fn.glGetActiveUniformBlockNameFn = Debug_glGetActiveUniformBlockName;
  5143. }
  5144. if (!debug_fn.glGetActiveUniformsivFn) {
  5145. debug_fn.glGetActiveUniformsivFn = fn.glGetActiveUniformsivFn;
  5146. fn.glGetActiveUniformsivFn = Debug_glGetActiveUniformsiv;
  5147. }
  5148. if (!debug_fn.glGetAttachedShadersFn) {
  5149. debug_fn.glGetAttachedShadersFn = fn.glGetAttachedShadersFn;
  5150. fn.glGetAttachedShadersFn = Debug_glGetAttachedShaders;
  5151. }
  5152. if (!debug_fn.glGetAttribLocationFn) {
  5153. debug_fn.glGetAttribLocationFn = fn.glGetAttribLocationFn;
  5154. fn.glGetAttribLocationFn = Debug_glGetAttribLocation;
  5155. }
  5156. if (!debug_fn.glGetBooleanvFn) {
  5157. debug_fn.glGetBooleanvFn = fn.glGetBooleanvFn;
  5158. fn.glGetBooleanvFn = Debug_glGetBooleanv;
  5159. }
  5160. if (!debug_fn.glGetBufferParameterivFn) {
  5161. debug_fn.glGetBufferParameterivFn = fn.glGetBufferParameterivFn;
  5162. fn.glGetBufferParameterivFn = Debug_glGetBufferParameteriv;
  5163. }
  5164. if (!debug_fn.glGetErrorFn) {
  5165. debug_fn.glGetErrorFn = fn.glGetErrorFn;
  5166. fn.glGetErrorFn = Debug_glGetError;
  5167. }
  5168. if (!debug_fn.glGetFenceivNVFn) {
  5169. debug_fn.glGetFenceivNVFn = fn.glGetFenceivNVFn;
  5170. fn.glGetFenceivNVFn = Debug_glGetFenceivNV;
  5171. }
  5172. if (!debug_fn.glGetFloatvFn) {
  5173. debug_fn.glGetFloatvFn = fn.glGetFloatvFn;
  5174. fn.glGetFloatvFn = Debug_glGetFloatv;
  5175. }
  5176. if (!debug_fn.glGetFragDataIndexFn) {
  5177. debug_fn.glGetFragDataIndexFn = fn.glGetFragDataIndexFn;
  5178. fn.glGetFragDataIndexFn = Debug_glGetFragDataIndex;
  5179. }
  5180. if (!debug_fn.glGetFragDataLocationFn) {
  5181. debug_fn.glGetFragDataLocationFn = fn.glGetFragDataLocationFn;
  5182. fn.glGetFragDataLocationFn = Debug_glGetFragDataLocation;
  5183. }
  5184. if (!debug_fn.glGetFramebufferAttachmentParameterivEXTFn) {
  5185. debug_fn.glGetFramebufferAttachmentParameterivEXTFn =
  5186. fn.glGetFramebufferAttachmentParameterivEXTFn;
  5187. fn.glGetFramebufferAttachmentParameterivEXTFn =
  5188. Debug_glGetFramebufferAttachmentParameterivEXT;
  5189. }
  5190. if (!debug_fn.glGetGraphicsResetStatusARBFn) {
  5191. debug_fn.glGetGraphicsResetStatusARBFn = fn.glGetGraphicsResetStatusARBFn;
  5192. fn.glGetGraphicsResetStatusARBFn = Debug_glGetGraphicsResetStatusARB;
  5193. }
  5194. if (!debug_fn.glGetInteger64i_vFn) {
  5195. debug_fn.glGetInteger64i_vFn = fn.glGetInteger64i_vFn;
  5196. fn.glGetInteger64i_vFn = Debug_glGetInteger64i_v;
  5197. }
  5198. if (!debug_fn.glGetInteger64vFn) {
  5199. debug_fn.glGetInteger64vFn = fn.glGetInteger64vFn;
  5200. fn.glGetInteger64vFn = Debug_glGetInteger64v;
  5201. }
  5202. if (!debug_fn.glGetIntegeri_vFn) {
  5203. debug_fn.glGetIntegeri_vFn = fn.glGetIntegeri_vFn;
  5204. fn.glGetIntegeri_vFn = Debug_glGetIntegeri_v;
  5205. }
  5206. if (!debug_fn.glGetIntegervFn) {
  5207. debug_fn.glGetIntegervFn = fn.glGetIntegervFn;
  5208. fn.glGetIntegervFn = Debug_glGetIntegerv;
  5209. }
  5210. if (!debug_fn.glGetInternalformativFn) {
  5211. debug_fn.glGetInternalformativFn = fn.glGetInternalformativFn;
  5212. fn.glGetInternalformativFn = Debug_glGetInternalformativ;
  5213. }
  5214. if (!debug_fn.glGetProgramBinaryFn) {
  5215. debug_fn.glGetProgramBinaryFn = fn.glGetProgramBinaryFn;
  5216. fn.glGetProgramBinaryFn = Debug_glGetProgramBinary;
  5217. }
  5218. if (!debug_fn.glGetProgramInfoLogFn) {
  5219. debug_fn.glGetProgramInfoLogFn = fn.glGetProgramInfoLogFn;
  5220. fn.glGetProgramInfoLogFn = Debug_glGetProgramInfoLog;
  5221. }
  5222. if (!debug_fn.glGetProgramInterfaceivFn) {
  5223. debug_fn.glGetProgramInterfaceivFn = fn.glGetProgramInterfaceivFn;
  5224. fn.glGetProgramInterfaceivFn = Debug_glGetProgramInterfaceiv;
  5225. }
  5226. if (!debug_fn.glGetProgramivFn) {
  5227. debug_fn.glGetProgramivFn = fn.glGetProgramivFn;
  5228. fn.glGetProgramivFn = Debug_glGetProgramiv;
  5229. }
  5230. if (!debug_fn.glGetProgramResourceivFn) {
  5231. debug_fn.glGetProgramResourceivFn = fn.glGetProgramResourceivFn;
  5232. fn.glGetProgramResourceivFn = Debug_glGetProgramResourceiv;
  5233. }
  5234. if (!debug_fn.glGetProgramResourceLocationFn) {
  5235. debug_fn.glGetProgramResourceLocationFn = fn.glGetProgramResourceLocationFn;
  5236. fn.glGetProgramResourceLocationFn = Debug_glGetProgramResourceLocation;
  5237. }
  5238. if (!debug_fn.glGetProgramResourceNameFn) {
  5239. debug_fn.glGetProgramResourceNameFn = fn.glGetProgramResourceNameFn;
  5240. fn.glGetProgramResourceNameFn = Debug_glGetProgramResourceName;
  5241. }
  5242. if (!debug_fn.glGetQueryivFn) {
  5243. debug_fn.glGetQueryivFn = fn.glGetQueryivFn;
  5244. fn.glGetQueryivFn = Debug_glGetQueryiv;
  5245. }
  5246. if (!debug_fn.glGetQueryObjecti64vFn) {
  5247. debug_fn.glGetQueryObjecti64vFn = fn.glGetQueryObjecti64vFn;
  5248. fn.glGetQueryObjecti64vFn = Debug_glGetQueryObjecti64v;
  5249. }
  5250. if (!debug_fn.glGetQueryObjectivFn) {
  5251. debug_fn.glGetQueryObjectivFn = fn.glGetQueryObjectivFn;
  5252. fn.glGetQueryObjectivFn = Debug_glGetQueryObjectiv;
  5253. }
  5254. if (!debug_fn.glGetQueryObjectui64vFn) {
  5255. debug_fn.glGetQueryObjectui64vFn = fn.glGetQueryObjectui64vFn;
  5256. fn.glGetQueryObjectui64vFn = Debug_glGetQueryObjectui64v;
  5257. }
  5258. if (!debug_fn.glGetQueryObjectuivFn) {
  5259. debug_fn.glGetQueryObjectuivFn = fn.glGetQueryObjectuivFn;
  5260. fn.glGetQueryObjectuivFn = Debug_glGetQueryObjectuiv;
  5261. }
  5262. if (!debug_fn.glGetRenderbufferParameterivEXTFn) {
  5263. debug_fn.glGetRenderbufferParameterivEXTFn =
  5264. fn.glGetRenderbufferParameterivEXTFn;
  5265. fn.glGetRenderbufferParameterivEXTFn =
  5266. Debug_glGetRenderbufferParameterivEXT;
  5267. }
  5268. if (!debug_fn.glGetSamplerParameterfvFn) {
  5269. debug_fn.glGetSamplerParameterfvFn = fn.glGetSamplerParameterfvFn;
  5270. fn.glGetSamplerParameterfvFn = Debug_glGetSamplerParameterfv;
  5271. }
  5272. if (!debug_fn.glGetSamplerParameterivFn) {
  5273. debug_fn.glGetSamplerParameterivFn = fn.glGetSamplerParameterivFn;
  5274. fn.glGetSamplerParameterivFn = Debug_glGetSamplerParameteriv;
  5275. }
  5276. if (!debug_fn.glGetShaderInfoLogFn) {
  5277. debug_fn.glGetShaderInfoLogFn = fn.glGetShaderInfoLogFn;
  5278. fn.glGetShaderInfoLogFn = Debug_glGetShaderInfoLog;
  5279. }
  5280. if (!debug_fn.glGetShaderivFn) {
  5281. debug_fn.glGetShaderivFn = fn.glGetShaderivFn;
  5282. fn.glGetShaderivFn = Debug_glGetShaderiv;
  5283. }
  5284. if (!debug_fn.glGetShaderPrecisionFormatFn) {
  5285. debug_fn.glGetShaderPrecisionFormatFn = fn.glGetShaderPrecisionFormatFn;
  5286. fn.glGetShaderPrecisionFormatFn = Debug_glGetShaderPrecisionFormat;
  5287. }
  5288. if (!debug_fn.glGetShaderSourceFn) {
  5289. debug_fn.glGetShaderSourceFn = fn.glGetShaderSourceFn;
  5290. fn.glGetShaderSourceFn = Debug_glGetShaderSource;
  5291. }
  5292. if (!debug_fn.glGetStringFn) {
  5293. debug_fn.glGetStringFn = fn.glGetStringFn;
  5294. fn.glGetStringFn = Debug_glGetString;
  5295. }
  5296. if (!debug_fn.glGetStringiFn) {
  5297. debug_fn.glGetStringiFn = fn.glGetStringiFn;
  5298. fn.glGetStringiFn = Debug_glGetStringi;
  5299. }
  5300. if (!debug_fn.glGetSyncivFn) {
  5301. debug_fn.glGetSyncivFn = fn.glGetSyncivFn;
  5302. fn.glGetSyncivFn = Debug_glGetSynciv;
  5303. }
  5304. if (!debug_fn.glGetTexLevelParameterfvFn) {
  5305. debug_fn.glGetTexLevelParameterfvFn = fn.glGetTexLevelParameterfvFn;
  5306. fn.glGetTexLevelParameterfvFn = Debug_glGetTexLevelParameterfv;
  5307. }
  5308. if (!debug_fn.glGetTexLevelParameterivFn) {
  5309. debug_fn.glGetTexLevelParameterivFn = fn.glGetTexLevelParameterivFn;
  5310. fn.glGetTexLevelParameterivFn = Debug_glGetTexLevelParameteriv;
  5311. }
  5312. if (!debug_fn.glGetTexParameterfvFn) {
  5313. debug_fn.glGetTexParameterfvFn = fn.glGetTexParameterfvFn;
  5314. fn.glGetTexParameterfvFn = Debug_glGetTexParameterfv;
  5315. }
  5316. if (!debug_fn.glGetTexParameterivFn) {
  5317. debug_fn.glGetTexParameterivFn = fn.glGetTexParameterivFn;
  5318. fn.glGetTexParameterivFn = Debug_glGetTexParameteriv;
  5319. }
  5320. if (!debug_fn.glGetTransformFeedbackVaryingFn) {
  5321. debug_fn.glGetTransformFeedbackVaryingFn =
  5322. fn.glGetTransformFeedbackVaryingFn;
  5323. fn.glGetTransformFeedbackVaryingFn = Debug_glGetTransformFeedbackVarying;
  5324. }
  5325. if (!debug_fn.glGetTranslatedShaderSourceANGLEFn) {
  5326. debug_fn.glGetTranslatedShaderSourceANGLEFn =
  5327. fn.glGetTranslatedShaderSourceANGLEFn;
  5328. fn.glGetTranslatedShaderSourceANGLEFn =
  5329. Debug_glGetTranslatedShaderSourceANGLE;
  5330. }
  5331. if (!debug_fn.glGetUniformBlockIndexFn) {
  5332. debug_fn.glGetUniformBlockIndexFn = fn.glGetUniformBlockIndexFn;
  5333. fn.glGetUniformBlockIndexFn = Debug_glGetUniformBlockIndex;
  5334. }
  5335. if (!debug_fn.glGetUniformfvFn) {
  5336. debug_fn.glGetUniformfvFn = fn.glGetUniformfvFn;
  5337. fn.glGetUniformfvFn = Debug_glGetUniformfv;
  5338. }
  5339. if (!debug_fn.glGetUniformIndicesFn) {
  5340. debug_fn.glGetUniformIndicesFn = fn.glGetUniformIndicesFn;
  5341. fn.glGetUniformIndicesFn = Debug_glGetUniformIndices;
  5342. }
  5343. if (!debug_fn.glGetUniformivFn) {
  5344. debug_fn.glGetUniformivFn = fn.glGetUniformivFn;
  5345. fn.glGetUniformivFn = Debug_glGetUniformiv;
  5346. }
  5347. if (!debug_fn.glGetUniformLocationFn) {
  5348. debug_fn.glGetUniformLocationFn = fn.glGetUniformLocationFn;
  5349. fn.glGetUniformLocationFn = Debug_glGetUniformLocation;
  5350. }
  5351. if (!debug_fn.glGetUniformuivFn) {
  5352. debug_fn.glGetUniformuivFn = fn.glGetUniformuivFn;
  5353. fn.glGetUniformuivFn = Debug_glGetUniformuiv;
  5354. }
  5355. if (!debug_fn.glGetVertexAttribfvFn) {
  5356. debug_fn.glGetVertexAttribfvFn = fn.glGetVertexAttribfvFn;
  5357. fn.glGetVertexAttribfvFn = Debug_glGetVertexAttribfv;
  5358. }
  5359. if (!debug_fn.glGetVertexAttribivFn) {
  5360. debug_fn.glGetVertexAttribivFn = fn.glGetVertexAttribivFn;
  5361. fn.glGetVertexAttribivFn = Debug_glGetVertexAttribiv;
  5362. }
  5363. if (!debug_fn.glGetVertexAttribPointervFn) {
  5364. debug_fn.glGetVertexAttribPointervFn = fn.glGetVertexAttribPointervFn;
  5365. fn.glGetVertexAttribPointervFn = Debug_glGetVertexAttribPointerv;
  5366. }
  5367. if (!debug_fn.glHintFn) {
  5368. debug_fn.glHintFn = fn.glHintFn;
  5369. fn.glHintFn = Debug_glHint;
  5370. }
  5371. if (!debug_fn.glInsertEventMarkerEXTFn) {
  5372. debug_fn.glInsertEventMarkerEXTFn = fn.glInsertEventMarkerEXTFn;
  5373. fn.glInsertEventMarkerEXTFn = Debug_glInsertEventMarkerEXT;
  5374. }
  5375. if (!debug_fn.glInvalidateFramebufferFn) {
  5376. debug_fn.glInvalidateFramebufferFn = fn.glInvalidateFramebufferFn;
  5377. fn.glInvalidateFramebufferFn = Debug_glInvalidateFramebuffer;
  5378. }
  5379. if (!debug_fn.glInvalidateSubFramebufferFn) {
  5380. debug_fn.glInvalidateSubFramebufferFn = fn.glInvalidateSubFramebufferFn;
  5381. fn.glInvalidateSubFramebufferFn = Debug_glInvalidateSubFramebuffer;
  5382. }
  5383. if (!debug_fn.glIsBufferFn) {
  5384. debug_fn.glIsBufferFn = fn.glIsBufferFn;
  5385. fn.glIsBufferFn = Debug_glIsBuffer;
  5386. }
  5387. if (!debug_fn.glIsEnabledFn) {
  5388. debug_fn.glIsEnabledFn = fn.glIsEnabledFn;
  5389. fn.glIsEnabledFn = Debug_glIsEnabled;
  5390. }
  5391. if (!debug_fn.glIsFenceAPPLEFn) {
  5392. debug_fn.glIsFenceAPPLEFn = fn.glIsFenceAPPLEFn;
  5393. fn.glIsFenceAPPLEFn = Debug_glIsFenceAPPLE;
  5394. }
  5395. if (!debug_fn.glIsFenceNVFn) {
  5396. debug_fn.glIsFenceNVFn = fn.glIsFenceNVFn;
  5397. fn.glIsFenceNVFn = Debug_glIsFenceNV;
  5398. }
  5399. if (!debug_fn.glIsFramebufferEXTFn) {
  5400. debug_fn.glIsFramebufferEXTFn = fn.glIsFramebufferEXTFn;
  5401. fn.glIsFramebufferEXTFn = Debug_glIsFramebufferEXT;
  5402. }
  5403. if (!debug_fn.glIsPathNVFn) {
  5404. debug_fn.glIsPathNVFn = fn.glIsPathNVFn;
  5405. fn.glIsPathNVFn = Debug_glIsPathNV;
  5406. }
  5407. if (!debug_fn.glIsProgramFn) {
  5408. debug_fn.glIsProgramFn = fn.glIsProgramFn;
  5409. fn.glIsProgramFn = Debug_glIsProgram;
  5410. }
  5411. if (!debug_fn.glIsQueryFn) {
  5412. debug_fn.glIsQueryFn = fn.glIsQueryFn;
  5413. fn.glIsQueryFn = Debug_glIsQuery;
  5414. }
  5415. if (!debug_fn.glIsRenderbufferEXTFn) {
  5416. debug_fn.glIsRenderbufferEXTFn = fn.glIsRenderbufferEXTFn;
  5417. fn.glIsRenderbufferEXTFn = Debug_glIsRenderbufferEXT;
  5418. }
  5419. if (!debug_fn.glIsSamplerFn) {
  5420. debug_fn.glIsSamplerFn = fn.glIsSamplerFn;
  5421. fn.glIsSamplerFn = Debug_glIsSampler;
  5422. }
  5423. if (!debug_fn.glIsShaderFn) {
  5424. debug_fn.glIsShaderFn = fn.glIsShaderFn;
  5425. fn.glIsShaderFn = Debug_glIsShader;
  5426. }
  5427. if (!debug_fn.glIsSyncFn) {
  5428. debug_fn.glIsSyncFn = fn.glIsSyncFn;
  5429. fn.glIsSyncFn = Debug_glIsSync;
  5430. }
  5431. if (!debug_fn.glIsTextureFn) {
  5432. debug_fn.glIsTextureFn = fn.glIsTextureFn;
  5433. fn.glIsTextureFn = Debug_glIsTexture;
  5434. }
  5435. if (!debug_fn.glIsTransformFeedbackFn) {
  5436. debug_fn.glIsTransformFeedbackFn = fn.glIsTransformFeedbackFn;
  5437. fn.glIsTransformFeedbackFn = Debug_glIsTransformFeedback;
  5438. }
  5439. if (!debug_fn.glIsVertexArrayOESFn) {
  5440. debug_fn.glIsVertexArrayOESFn = fn.glIsVertexArrayOESFn;
  5441. fn.glIsVertexArrayOESFn = Debug_glIsVertexArrayOES;
  5442. }
  5443. if (!debug_fn.glLineWidthFn) {
  5444. debug_fn.glLineWidthFn = fn.glLineWidthFn;
  5445. fn.glLineWidthFn = Debug_glLineWidth;
  5446. }
  5447. if (!debug_fn.glLinkProgramFn) {
  5448. debug_fn.glLinkProgramFn = fn.glLinkProgramFn;
  5449. fn.glLinkProgramFn = Debug_glLinkProgram;
  5450. }
  5451. if (!debug_fn.glMapBufferFn) {
  5452. debug_fn.glMapBufferFn = fn.glMapBufferFn;
  5453. fn.glMapBufferFn = Debug_glMapBuffer;
  5454. }
  5455. if (!debug_fn.glMapBufferRangeFn) {
  5456. debug_fn.glMapBufferRangeFn = fn.glMapBufferRangeFn;
  5457. fn.glMapBufferRangeFn = Debug_glMapBufferRange;
  5458. }
  5459. if (!debug_fn.glMatrixLoadfEXTFn) {
  5460. debug_fn.glMatrixLoadfEXTFn = fn.glMatrixLoadfEXTFn;
  5461. fn.glMatrixLoadfEXTFn = Debug_glMatrixLoadfEXT;
  5462. }
  5463. if (!debug_fn.glMatrixLoadIdentityEXTFn) {
  5464. debug_fn.glMatrixLoadIdentityEXTFn = fn.glMatrixLoadIdentityEXTFn;
  5465. fn.glMatrixLoadIdentityEXTFn = Debug_glMatrixLoadIdentityEXT;
  5466. }
  5467. if (!debug_fn.glMemoryBarrierEXTFn) {
  5468. debug_fn.glMemoryBarrierEXTFn = fn.glMemoryBarrierEXTFn;
  5469. fn.glMemoryBarrierEXTFn = Debug_glMemoryBarrierEXT;
  5470. }
  5471. if (!debug_fn.glPathCommandsNVFn) {
  5472. debug_fn.glPathCommandsNVFn = fn.glPathCommandsNVFn;
  5473. fn.glPathCommandsNVFn = Debug_glPathCommandsNV;
  5474. }
  5475. if (!debug_fn.glPathParameterfNVFn) {
  5476. debug_fn.glPathParameterfNVFn = fn.glPathParameterfNVFn;
  5477. fn.glPathParameterfNVFn = Debug_glPathParameterfNV;
  5478. }
  5479. if (!debug_fn.glPathParameteriNVFn) {
  5480. debug_fn.glPathParameteriNVFn = fn.glPathParameteriNVFn;
  5481. fn.glPathParameteriNVFn = Debug_glPathParameteriNV;
  5482. }
  5483. if (!debug_fn.glPathStencilFuncNVFn) {
  5484. debug_fn.glPathStencilFuncNVFn = fn.glPathStencilFuncNVFn;
  5485. fn.glPathStencilFuncNVFn = Debug_glPathStencilFuncNV;
  5486. }
  5487. if (!debug_fn.glPauseTransformFeedbackFn) {
  5488. debug_fn.glPauseTransformFeedbackFn = fn.glPauseTransformFeedbackFn;
  5489. fn.glPauseTransformFeedbackFn = Debug_glPauseTransformFeedback;
  5490. }
  5491. if (!debug_fn.glPixelStoreiFn) {
  5492. debug_fn.glPixelStoreiFn = fn.glPixelStoreiFn;
  5493. fn.glPixelStoreiFn = Debug_glPixelStorei;
  5494. }
  5495. if (!debug_fn.glPointParameteriFn) {
  5496. debug_fn.glPointParameteriFn = fn.glPointParameteriFn;
  5497. fn.glPointParameteriFn = Debug_glPointParameteri;
  5498. }
  5499. if (!debug_fn.glPolygonOffsetFn) {
  5500. debug_fn.glPolygonOffsetFn = fn.glPolygonOffsetFn;
  5501. fn.glPolygonOffsetFn = Debug_glPolygonOffset;
  5502. }
  5503. if (!debug_fn.glPopGroupMarkerEXTFn) {
  5504. debug_fn.glPopGroupMarkerEXTFn = fn.glPopGroupMarkerEXTFn;
  5505. fn.glPopGroupMarkerEXTFn = Debug_glPopGroupMarkerEXT;
  5506. }
  5507. if (!debug_fn.glProgramBinaryFn) {
  5508. debug_fn.glProgramBinaryFn = fn.glProgramBinaryFn;
  5509. fn.glProgramBinaryFn = Debug_glProgramBinary;
  5510. }
  5511. if (!debug_fn.glProgramParameteriFn) {
  5512. debug_fn.glProgramParameteriFn = fn.glProgramParameteriFn;
  5513. fn.glProgramParameteriFn = Debug_glProgramParameteri;
  5514. }
  5515. if (!debug_fn.glProgramPathFragmentInputGenNVFn) {
  5516. debug_fn.glProgramPathFragmentInputGenNVFn =
  5517. fn.glProgramPathFragmentInputGenNVFn;
  5518. fn.glProgramPathFragmentInputGenNVFn =
  5519. Debug_glProgramPathFragmentInputGenNV;
  5520. }
  5521. if (!debug_fn.glPushGroupMarkerEXTFn) {
  5522. debug_fn.glPushGroupMarkerEXTFn = fn.glPushGroupMarkerEXTFn;
  5523. fn.glPushGroupMarkerEXTFn = Debug_glPushGroupMarkerEXT;
  5524. }
  5525. if (!debug_fn.glQueryCounterFn) {
  5526. debug_fn.glQueryCounterFn = fn.glQueryCounterFn;
  5527. fn.glQueryCounterFn = Debug_glQueryCounter;
  5528. }
  5529. if (!debug_fn.glReadBufferFn) {
  5530. debug_fn.glReadBufferFn = fn.glReadBufferFn;
  5531. fn.glReadBufferFn = Debug_glReadBuffer;
  5532. }
  5533. if (!debug_fn.glReadPixelsFn) {
  5534. debug_fn.glReadPixelsFn = fn.glReadPixelsFn;
  5535. fn.glReadPixelsFn = Debug_glReadPixels;
  5536. }
  5537. if (!debug_fn.glReleaseShaderCompilerFn) {
  5538. debug_fn.glReleaseShaderCompilerFn = fn.glReleaseShaderCompilerFn;
  5539. fn.glReleaseShaderCompilerFn = Debug_glReleaseShaderCompiler;
  5540. }
  5541. if (!debug_fn.glRenderbufferStorageEXTFn) {
  5542. debug_fn.glRenderbufferStorageEXTFn = fn.glRenderbufferStorageEXTFn;
  5543. fn.glRenderbufferStorageEXTFn = Debug_glRenderbufferStorageEXT;
  5544. }
  5545. if (!debug_fn.glRenderbufferStorageMultisampleFn) {
  5546. debug_fn.glRenderbufferStorageMultisampleFn =
  5547. fn.glRenderbufferStorageMultisampleFn;
  5548. fn.glRenderbufferStorageMultisampleFn =
  5549. Debug_glRenderbufferStorageMultisample;
  5550. }
  5551. if (!debug_fn.glRenderbufferStorageMultisampleANGLEFn) {
  5552. debug_fn.glRenderbufferStorageMultisampleANGLEFn =
  5553. fn.glRenderbufferStorageMultisampleANGLEFn;
  5554. fn.glRenderbufferStorageMultisampleANGLEFn =
  5555. Debug_glRenderbufferStorageMultisampleANGLE;
  5556. }
  5557. if (!debug_fn.glRenderbufferStorageMultisampleEXTFn) {
  5558. debug_fn.glRenderbufferStorageMultisampleEXTFn =
  5559. fn.glRenderbufferStorageMultisampleEXTFn;
  5560. fn.glRenderbufferStorageMultisampleEXTFn =
  5561. Debug_glRenderbufferStorageMultisampleEXT;
  5562. }
  5563. if (!debug_fn.glRenderbufferStorageMultisampleIMGFn) {
  5564. debug_fn.glRenderbufferStorageMultisampleIMGFn =
  5565. fn.glRenderbufferStorageMultisampleIMGFn;
  5566. fn.glRenderbufferStorageMultisampleIMGFn =
  5567. Debug_glRenderbufferStorageMultisampleIMG;
  5568. }
  5569. if (!debug_fn.glResumeTransformFeedbackFn) {
  5570. debug_fn.glResumeTransformFeedbackFn = fn.glResumeTransformFeedbackFn;
  5571. fn.glResumeTransformFeedbackFn = Debug_glResumeTransformFeedback;
  5572. }
  5573. if (!debug_fn.glSampleCoverageFn) {
  5574. debug_fn.glSampleCoverageFn = fn.glSampleCoverageFn;
  5575. fn.glSampleCoverageFn = Debug_glSampleCoverage;
  5576. }
  5577. if (!debug_fn.glSamplerParameterfFn) {
  5578. debug_fn.glSamplerParameterfFn = fn.glSamplerParameterfFn;
  5579. fn.glSamplerParameterfFn = Debug_glSamplerParameterf;
  5580. }
  5581. if (!debug_fn.glSamplerParameterfvFn) {
  5582. debug_fn.glSamplerParameterfvFn = fn.glSamplerParameterfvFn;
  5583. fn.glSamplerParameterfvFn = Debug_glSamplerParameterfv;
  5584. }
  5585. if (!debug_fn.glSamplerParameteriFn) {
  5586. debug_fn.glSamplerParameteriFn = fn.glSamplerParameteriFn;
  5587. fn.glSamplerParameteriFn = Debug_glSamplerParameteri;
  5588. }
  5589. if (!debug_fn.glSamplerParameterivFn) {
  5590. debug_fn.glSamplerParameterivFn = fn.glSamplerParameterivFn;
  5591. fn.glSamplerParameterivFn = Debug_glSamplerParameteriv;
  5592. }
  5593. if (!debug_fn.glScissorFn) {
  5594. debug_fn.glScissorFn = fn.glScissorFn;
  5595. fn.glScissorFn = Debug_glScissor;
  5596. }
  5597. if (!debug_fn.glSetFenceAPPLEFn) {
  5598. debug_fn.glSetFenceAPPLEFn = fn.glSetFenceAPPLEFn;
  5599. fn.glSetFenceAPPLEFn = Debug_glSetFenceAPPLE;
  5600. }
  5601. if (!debug_fn.glSetFenceNVFn) {
  5602. debug_fn.glSetFenceNVFn = fn.glSetFenceNVFn;
  5603. fn.glSetFenceNVFn = Debug_glSetFenceNV;
  5604. }
  5605. if (!debug_fn.glShaderBinaryFn) {
  5606. debug_fn.glShaderBinaryFn = fn.glShaderBinaryFn;
  5607. fn.glShaderBinaryFn = Debug_glShaderBinary;
  5608. }
  5609. if (!debug_fn.glShaderSourceFn) {
  5610. debug_fn.glShaderSourceFn = fn.glShaderSourceFn;
  5611. fn.glShaderSourceFn = Debug_glShaderSource;
  5612. }
  5613. if (!debug_fn.glStencilFillPathInstancedNVFn) {
  5614. debug_fn.glStencilFillPathInstancedNVFn = fn.glStencilFillPathInstancedNVFn;
  5615. fn.glStencilFillPathInstancedNVFn = Debug_glStencilFillPathInstancedNV;
  5616. }
  5617. if (!debug_fn.glStencilFillPathNVFn) {
  5618. debug_fn.glStencilFillPathNVFn = fn.glStencilFillPathNVFn;
  5619. fn.glStencilFillPathNVFn = Debug_glStencilFillPathNV;
  5620. }
  5621. if (!debug_fn.glStencilFuncFn) {
  5622. debug_fn.glStencilFuncFn = fn.glStencilFuncFn;
  5623. fn.glStencilFuncFn = Debug_glStencilFunc;
  5624. }
  5625. if (!debug_fn.glStencilFuncSeparateFn) {
  5626. debug_fn.glStencilFuncSeparateFn = fn.glStencilFuncSeparateFn;
  5627. fn.glStencilFuncSeparateFn = Debug_glStencilFuncSeparate;
  5628. }
  5629. if (!debug_fn.glStencilMaskFn) {
  5630. debug_fn.glStencilMaskFn = fn.glStencilMaskFn;
  5631. fn.glStencilMaskFn = Debug_glStencilMask;
  5632. }
  5633. if (!debug_fn.glStencilMaskSeparateFn) {
  5634. debug_fn.glStencilMaskSeparateFn = fn.glStencilMaskSeparateFn;
  5635. fn.glStencilMaskSeparateFn = Debug_glStencilMaskSeparate;
  5636. }
  5637. if (!debug_fn.glStencilOpFn) {
  5638. debug_fn.glStencilOpFn = fn.glStencilOpFn;
  5639. fn.glStencilOpFn = Debug_glStencilOp;
  5640. }
  5641. if (!debug_fn.glStencilOpSeparateFn) {
  5642. debug_fn.glStencilOpSeparateFn = fn.glStencilOpSeparateFn;
  5643. fn.glStencilOpSeparateFn = Debug_glStencilOpSeparate;
  5644. }
  5645. if (!debug_fn.glStencilStrokePathInstancedNVFn) {
  5646. debug_fn.glStencilStrokePathInstancedNVFn =
  5647. fn.glStencilStrokePathInstancedNVFn;
  5648. fn.glStencilStrokePathInstancedNVFn = Debug_glStencilStrokePathInstancedNV;
  5649. }
  5650. if (!debug_fn.glStencilStrokePathNVFn) {
  5651. debug_fn.glStencilStrokePathNVFn = fn.glStencilStrokePathNVFn;
  5652. fn.glStencilStrokePathNVFn = Debug_glStencilStrokePathNV;
  5653. }
  5654. if (!debug_fn.glStencilThenCoverFillPathInstancedNVFn) {
  5655. debug_fn.glStencilThenCoverFillPathInstancedNVFn =
  5656. fn.glStencilThenCoverFillPathInstancedNVFn;
  5657. fn.glStencilThenCoverFillPathInstancedNVFn =
  5658. Debug_glStencilThenCoverFillPathInstancedNV;
  5659. }
  5660. if (!debug_fn.glStencilThenCoverFillPathNVFn) {
  5661. debug_fn.glStencilThenCoverFillPathNVFn = fn.glStencilThenCoverFillPathNVFn;
  5662. fn.glStencilThenCoverFillPathNVFn = Debug_glStencilThenCoverFillPathNV;
  5663. }
  5664. if (!debug_fn.glStencilThenCoverStrokePathInstancedNVFn) {
  5665. debug_fn.glStencilThenCoverStrokePathInstancedNVFn =
  5666. fn.glStencilThenCoverStrokePathInstancedNVFn;
  5667. fn.glStencilThenCoverStrokePathInstancedNVFn =
  5668. Debug_glStencilThenCoverStrokePathInstancedNV;
  5669. }
  5670. if (!debug_fn.glStencilThenCoverStrokePathNVFn) {
  5671. debug_fn.glStencilThenCoverStrokePathNVFn =
  5672. fn.glStencilThenCoverStrokePathNVFn;
  5673. fn.glStencilThenCoverStrokePathNVFn = Debug_glStencilThenCoverStrokePathNV;
  5674. }
  5675. if (!debug_fn.glTestFenceAPPLEFn) {
  5676. debug_fn.glTestFenceAPPLEFn = fn.glTestFenceAPPLEFn;
  5677. fn.glTestFenceAPPLEFn = Debug_glTestFenceAPPLE;
  5678. }
  5679. if (!debug_fn.glTestFenceNVFn) {
  5680. debug_fn.glTestFenceNVFn = fn.glTestFenceNVFn;
  5681. fn.glTestFenceNVFn = Debug_glTestFenceNV;
  5682. }
  5683. if (!debug_fn.glTexImage2DFn) {
  5684. debug_fn.glTexImage2DFn = fn.glTexImage2DFn;
  5685. fn.glTexImage2DFn = Debug_glTexImage2D;
  5686. }
  5687. if (!debug_fn.glTexImage3DFn) {
  5688. debug_fn.glTexImage3DFn = fn.glTexImage3DFn;
  5689. fn.glTexImage3DFn = Debug_glTexImage3D;
  5690. }
  5691. if (!debug_fn.glTexParameterfFn) {
  5692. debug_fn.glTexParameterfFn = fn.glTexParameterfFn;
  5693. fn.glTexParameterfFn = Debug_glTexParameterf;
  5694. }
  5695. if (!debug_fn.glTexParameterfvFn) {
  5696. debug_fn.glTexParameterfvFn = fn.glTexParameterfvFn;
  5697. fn.glTexParameterfvFn = Debug_glTexParameterfv;
  5698. }
  5699. if (!debug_fn.glTexParameteriFn) {
  5700. debug_fn.glTexParameteriFn = fn.glTexParameteriFn;
  5701. fn.glTexParameteriFn = Debug_glTexParameteri;
  5702. }
  5703. if (!debug_fn.glTexParameterivFn) {
  5704. debug_fn.glTexParameterivFn = fn.glTexParameterivFn;
  5705. fn.glTexParameterivFn = Debug_glTexParameteriv;
  5706. }
  5707. if (!debug_fn.glTexStorage2DEXTFn) {
  5708. debug_fn.glTexStorage2DEXTFn = fn.glTexStorage2DEXTFn;
  5709. fn.glTexStorage2DEXTFn = Debug_glTexStorage2DEXT;
  5710. }
  5711. if (!debug_fn.glTexStorage3DFn) {
  5712. debug_fn.glTexStorage3DFn = fn.glTexStorage3DFn;
  5713. fn.glTexStorage3DFn = Debug_glTexStorage3D;
  5714. }
  5715. if (!debug_fn.glTexSubImage2DFn) {
  5716. debug_fn.glTexSubImage2DFn = fn.glTexSubImage2DFn;
  5717. fn.glTexSubImage2DFn = Debug_glTexSubImage2D;
  5718. }
  5719. if (!debug_fn.glTexSubImage3DFn) {
  5720. debug_fn.glTexSubImage3DFn = fn.glTexSubImage3DFn;
  5721. fn.glTexSubImage3DFn = Debug_glTexSubImage3D;
  5722. }
  5723. if (!debug_fn.glTransformFeedbackVaryingsFn) {
  5724. debug_fn.glTransformFeedbackVaryingsFn = fn.glTransformFeedbackVaryingsFn;
  5725. fn.glTransformFeedbackVaryingsFn = Debug_glTransformFeedbackVaryings;
  5726. }
  5727. if (!debug_fn.glUniform1fFn) {
  5728. debug_fn.glUniform1fFn = fn.glUniform1fFn;
  5729. fn.glUniform1fFn = Debug_glUniform1f;
  5730. }
  5731. if (!debug_fn.glUniform1fvFn) {
  5732. debug_fn.glUniform1fvFn = fn.glUniform1fvFn;
  5733. fn.glUniform1fvFn = Debug_glUniform1fv;
  5734. }
  5735. if (!debug_fn.glUniform1iFn) {
  5736. debug_fn.glUniform1iFn = fn.glUniform1iFn;
  5737. fn.glUniform1iFn = Debug_glUniform1i;
  5738. }
  5739. if (!debug_fn.glUniform1ivFn) {
  5740. debug_fn.glUniform1ivFn = fn.glUniform1ivFn;
  5741. fn.glUniform1ivFn = Debug_glUniform1iv;
  5742. }
  5743. if (!debug_fn.glUniform1uiFn) {
  5744. debug_fn.glUniform1uiFn = fn.glUniform1uiFn;
  5745. fn.glUniform1uiFn = Debug_glUniform1ui;
  5746. }
  5747. if (!debug_fn.glUniform1uivFn) {
  5748. debug_fn.glUniform1uivFn = fn.glUniform1uivFn;
  5749. fn.glUniform1uivFn = Debug_glUniform1uiv;
  5750. }
  5751. if (!debug_fn.glUniform2fFn) {
  5752. debug_fn.glUniform2fFn = fn.glUniform2fFn;
  5753. fn.glUniform2fFn = Debug_glUniform2f;
  5754. }
  5755. if (!debug_fn.glUniform2fvFn) {
  5756. debug_fn.glUniform2fvFn = fn.glUniform2fvFn;
  5757. fn.glUniform2fvFn = Debug_glUniform2fv;
  5758. }
  5759. if (!debug_fn.glUniform2iFn) {
  5760. debug_fn.glUniform2iFn = fn.glUniform2iFn;
  5761. fn.glUniform2iFn = Debug_glUniform2i;
  5762. }
  5763. if (!debug_fn.glUniform2ivFn) {
  5764. debug_fn.glUniform2ivFn = fn.glUniform2ivFn;
  5765. fn.glUniform2ivFn = Debug_glUniform2iv;
  5766. }
  5767. if (!debug_fn.glUniform2uiFn) {
  5768. debug_fn.glUniform2uiFn = fn.glUniform2uiFn;
  5769. fn.glUniform2uiFn = Debug_glUniform2ui;
  5770. }
  5771. if (!debug_fn.glUniform2uivFn) {
  5772. debug_fn.glUniform2uivFn = fn.glUniform2uivFn;
  5773. fn.glUniform2uivFn = Debug_glUniform2uiv;
  5774. }
  5775. if (!debug_fn.glUniform3fFn) {
  5776. debug_fn.glUniform3fFn = fn.glUniform3fFn;
  5777. fn.glUniform3fFn = Debug_glUniform3f;
  5778. }
  5779. if (!debug_fn.glUniform3fvFn) {
  5780. debug_fn.glUniform3fvFn = fn.glUniform3fvFn;
  5781. fn.glUniform3fvFn = Debug_glUniform3fv;
  5782. }
  5783. if (!debug_fn.glUniform3iFn) {
  5784. debug_fn.glUniform3iFn = fn.glUniform3iFn;
  5785. fn.glUniform3iFn = Debug_glUniform3i;
  5786. }
  5787. if (!debug_fn.glUniform3ivFn) {
  5788. debug_fn.glUniform3ivFn = fn.glUniform3ivFn;
  5789. fn.glUniform3ivFn = Debug_glUniform3iv;
  5790. }
  5791. if (!debug_fn.glUniform3uiFn) {
  5792. debug_fn.glUniform3uiFn = fn.glUniform3uiFn;
  5793. fn.glUniform3uiFn = Debug_glUniform3ui;
  5794. }
  5795. if (!debug_fn.glUniform3uivFn) {
  5796. debug_fn.glUniform3uivFn = fn.glUniform3uivFn;
  5797. fn.glUniform3uivFn = Debug_glUniform3uiv;
  5798. }
  5799. if (!debug_fn.glUniform4fFn) {
  5800. debug_fn.glUniform4fFn = fn.glUniform4fFn;
  5801. fn.glUniform4fFn = Debug_glUniform4f;
  5802. }
  5803. if (!debug_fn.glUniform4fvFn) {
  5804. debug_fn.glUniform4fvFn = fn.glUniform4fvFn;
  5805. fn.glUniform4fvFn = Debug_glUniform4fv;
  5806. }
  5807. if (!debug_fn.glUniform4iFn) {
  5808. debug_fn.glUniform4iFn = fn.glUniform4iFn;
  5809. fn.glUniform4iFn = Debug_glUniform4i;
  5810. }
  5811. if (!debug_fn.glUniform4ivFn) {
  5812. debug_fn.glUniform4ivFn = fn.glUniform4ivFn;
  5813. fn.glUniform4ivFn = Debug_glUniform4iv;
  5814. }
  5815. if (!debug_fn.glUniform4uiFn) {
  5816. debug_fn.glUniform4uiFn = fn.glUniform4uiFn;
  5817. fn.glUniform4uiFn = Debug_glUniform4ui;
  5818. }
  5819. if (!debug_fn.glUniform4uivFn) {
  5820. debug_fn.glUniform4uivFn = fn.glUniform4uivFn;
  5821. fn.glUniform4uivFn = Debug_glUniform4uiv;
  5822. }
  5823. if (!debug_fn.glUniformBlockBindingFn) {
  5824. debug_fn.glUniformBlockBindingFn = fn.glUniformBlockBindingFn;
  5825. fn.glUniformBlockBindingFn = Debug_glUniformBlockBinding;
  5826. }
  5827. if (!debug_fn.glUniformMatrix2fvFn) {
  5828. debug_fn.glUniformMatrix2fvFn = fn.glUniformMatrix2fvFn;
  5829. fn.glUniformMatrix2fvFn = Debug_glUniformMatrix2fv;
  5830. }
  5831. if (!debug_fn.glUniformMatrix2x3fvFn) {
  5832. debug_fn.glUniformMatrix2x3fvFn = fn.glUniformMatrix2x3fvFn;
  5833. fn.glUniformMatrix2x3fvFn = Debug_glUniformMatrix2x3fv;
  5834. }
  5835. if (!debug_fn.glUniformMatrix2x4fvFn) {
  5836. debug_fn.glUniformMatrix2x4fvFn = fn.glUniformMatrix2x4fvFn;
  5837. fn.glUniformMatrix2x4fvFn = Debug_glUniformMatrix2x4fv;
  5838. }
  5839. if (!debug_fn.glUniformMatrix3fvFn) {
  5840. debug_fn.glUniformMatrix3fvFn = fn.glUniformMatrix3fvFn;
  5841. fn.glUniformMatrix3fvFn = Debug_glUniformMatrix3fv;
  5842. }
  5843. if (!debug_fn.glUniformMatrix3x2fvFn) {
  5844. debug_fn.glUniformMatrix3x2fvFn = fn.glUniformMatrix3x2fvFn;
  5845. fn.glUniformMatrix3x2fvFn = Debug_glUniformMatrix3x2fv;
  5846. }
  5847. if (!debug_fn.glUniformMatrix3x4fvFn) {
  5848. debug_fn.glUniformMatrix3x4fvFn = fn.glUniformMatrix3x4fvFn;
  5849. fn.glUniformMatrix3x4fvFn = Debug_glUniformMatrix3x4fv;
  5850. }
  5851. if (!debug_fn.glUniformMatrix4fvFn) {
  5852. debug_fn.glUniformMatrix4fvFn = fn.glUniformMatrix4fvFn;
  5853. fn.glUniformMatrix4fvFn = Debug_glUniformMatrix4fv;
  5854. }
  5855. if (!debug_fn.glUniformMatrix4x2fvFn) {
  5856. debug_fn.glUniformMatrix4x2fvFn = fn.glUniformMatrix4x2fvFn;
  5857. fn.glUniformMatrix4x2fvFn = Debug_glUniformMatrix4x2fv;
  5858. }
  5859. if (!debug_fn.glUniformMatrix4x3fvFn) {
  5860. debug_fn.glUniformMatrix4x3fvFn = fn.glUniformMatrix4x3fvFn;
  5861. fn.glUniformMatrix4x3fvFn = Debug_glUniformMatrix4x3fv;
  5862. }
  5863. if (!debug_fn.glUnmapBufferFn) {
  5864. debug_fn.glUnmapBufferFn = fn.glUnmapBufferFn;
  5865. fn.glUnmapBufferFn = Debug_glUnmapBuffer;
  5866. }
  5867. if (!debug_fn.glUseProgramFn) {
  5868. debug_fn.glUseProgramFn = fn.glUseProgramFn;
  5869. fn.glUseProgramFn = Debug_glUseProgram;
  5870. }
  5871. if (!debug_fn.glValidateProgramFn) {
  5872. debug_fn.glValidateProgramFn = fn.glValidateProgramFn;
  5873. fn.glValidateProgramFn = Debug_glValidateProgram;
  5874. }
  5875. if (!debug_fn.glVertexAttrib1fFn) {
  5876. debug_fn.glVertexAttrib1fFn = fn.glVertexAttrib1fFn;
  5877. fn.glVertexAttrib1fFn = Debug_glVertexAttrib1f;
  5878. }
  5879. if (!debug_fn.glVertexAttrib1fvFn) {
  5880. debug_fn.glVertexAttrib1fvFn = fn.glVertexAttrib1fvFn;
  5881. fn.glVertexAttrib1fvFn = Debug_glVertexAttrib1fv;
  5882. }
  5883. if (!debug_fn.glVertexAttrib2fFn) {
  5884. debug_fn.glVertexAttrib2fFn = fn.glVertexAttrib2fFn;
  5885. fn.glVertexAttrib2fFn = Debug_glVertexAttrib2f;
  5886. }
  5887. if (!debug_fn.glVertexAttrib2fvFn) {
  5888. debug_fn.glVertexAttrib2fvFn = fn.glVertexAttrib2fvFn;
  5889. fn.glVertexAttrib2fvFn = Debug_glVertexAttrib2fv;
  5890. }
  5891. if (!debug_fn.glVertexAttrib3fFn) {
  5892. debug_fn.glVertexAttrib3fFn = fn.glVertexAttrib3fFn;
  5893. fn.glVertexAttrib3fFn = Debug_glVertexAttrib3f;
  5894. }
  5895. if (!debug_fn.glVertexAttrib3fvFn) {
  5896. debug_fn.glVertexAttrib3fvFn = fn.glVertexAttrib3fvFn;
  5897. fn.glVertexAttrib3fvFn = Debug_glVertexAttrib3fv;
  5898. }
  5899. if (!debug_fn.glVertexAttrib4fFn) {
  5900. debug_fn.glVertexAttrib4fFn = fn.glVertexAttrib4fFn;
  5901. fn.glVertexAttrib4fFn = Debug_glVertexAttrib4f;
  5902. }
  5903. if (!debug_fn.glVertexAttrib4fvFn) {
  5904. debug_fn.glVertexAttrib4fvFn = fn.glVertexAttrib4fvFn;
  5905. fn.glVertexAttrib4fvFn = Debug_glVertexAttrib4fv;
  5906. }
  5907. if (!debug_fn.glVertexAttribDivisorANGLEFn) {
  5908. debug_fn.glVertexAttribDivisorANGLEFn = fn.glVertexAttribDivisorANGLEFn;
  5909. fn.glVertexAttribDivisorANGLEFn = Debug_glVertexAttribDivisorANGLE;
  5910. }
  5911. if (!debug_fn.glVertexAttribI4iFn) {
  5912. debug_fn.glVertexAttribI4iFn = fn.glVertexAttribI4iFn;
  5913. fn.glVertexAttribI4iFn = Debug_glVertexAttribI4i;
  5914. }
  5915. if (!debug_fn.glVertexAttribI4ivFn) {
  5916. debug_fn.glVertexAttribI4ivFn = fn.glVertexAttribI4ivFn;
  5917. fn.glVertexAttribI4ivFn = Debug_glVertexAttribI4iv;
  5918. }
  5919. if (!debug_fn.glVertexAttribI4uiFn) {
  5920. debug_fn.glVertexAttribI4uiFn = fn.glVertexAttribI4uiFn;
  5921. fn.glVertexAttribI4uiFn = Debug_glVertexAttribI4ui;
  5922. }
  5923. if (!debug_fn.glVertexAttribI4uivFn) {
  5924. debug_fn.glVertexAttribI4uivFn = fn.glVertexAttribI4uivFn;
  5925. fn.glVertexAttribI4uivFn = Debug_glVertexAttribI4uiv;
  5926. }
  5927. if (!debug_fn.glVertexAttribIPointerFn) {
  5928. debug_fn.glVertexAttribIPointerFn = fn.glVertexAttribIPointerFn;
  5929. fn.glVertexAttribIPointerFn = Debug_glVertexAttribIPointer;
  5930. }
  5931. if (!debug_fn.glVertexAttribPointerFn) {
  5932. debug_fn.glVertexAttribPointerFn = fn.glVertexAttribPointerFn;
  5933. fn.glVertexAttribPointerFn = Debug_glVertexAttribPointer;
  5934. }
  5935. if (!debug_fn.glViewportFn) {
  5936. debug_fn.glViewportFn = fn.glViewportFn;
  5937. fn.glViewportFn = Debug_glViewport;
  5938. }
  5939. if (!debug_fn.glWaitSyncFn) {
  5940. debug_fn.glWaitSyncFn = fn.glWaitSyncFn;
  5941. fn.glWaitSyncFn = Debug_glWaitSync;
  5942. }
  5943. g_debugBindingsInitialized = true;
  5944. }
  5945. void DriverGL::ClearBindings() {
  5946. memset(this, 0, sizeof(*this));
  5947. }
  5948. void GLApiBase::glActiveTextureFn(GLenum texture) {
  5949. driver_->fn.glActiveTextureFn(texture);
  5950. }
  5951. void GLApiBase::glApplyFramebufferAttachmentCMAAINTELFn(void) {
  5952. driver_->fn.glApplyFramebufferAttachmentCMAAINTELFn();
  5953. }
  5954. void GLApiBase::glAttachShaderFn(GLuint program, GLuint shader) {
  5955. driver_->fn.glAttachShaderFn(program, shader);
  5956. }
  5957. void GLApiBase::glBeginQueryFn(GLenum target, GLuint id) {
  5958. driver_->fn.glBeginQueryFn(target, id);
  5959. }
  5960. void GLApiBase::glBeginTransformFeedbackFn(GLenum primitiveMode) {
  5961. driver_->fn.glBeginTransformFeedbackFn(primitiveMode);
  5962. }
  5963. void GLApiBase::glBindAttribLocationFn(GLuint program,
  5964. GLuint index,
  5965. const char* name) {
  5966. driver_->fn.glBindAttribLocationFn(program, index, name);
  5967. }
  5968. void GLApiBase::glBindBufferFn(GLenum target, GLuint buffer) {
  5969. driver_->fn.glBindBufferFn(target, buffer);
  5970. }
  5971. void GLApiBase::glBindBufferBaseFn(GLenum target, GLuint index, GLuint buffer) {
  5972. driver_->fn.glBindBufferBaseFn(target, index, buffer);
  5973. }
  5974. void GLApiBase::glBindBufferRangeFn(GLenum target,
  5975. GLuint index,
  5976. GLuint buffer,
  5977. GLintptr offset,
  5978. GLsizeiptr size) {
  5979. driver_->fn.glBindBufferRangeFn(target, index, buffer, offset, size);
  5980. }
  5981. void GLApiBase::glBindFragDataLocationFn(GLuint program,
  5982. GLuint colorNumber,
  5983. const char* name) {
  5984. driver_->fn.glBindFragDataLocationFn(program, colorNumber, name);
  5985. }
  5986. void GLApiBase::glBindFragDataLocationIndexedFn(GLuint program,
  5987. GLuint colorNumber,
  5988. GLuint index,
  5989. const char* name) {
  5990. driver_->fn.glBindFragDataLocationIndexedFn(program, colorNumber, index,
  5991. name);
  5992. }
  5993. void GLApiBase::glBindFramebufferEXTFn(GLenum target, GLuint framebuffer) {
  5994. driver_->fn.glBindFramebufferEXTFn(target, framebuffer);
  5995. }
  5996. void GLApiBase::glBindImageTextureEXTFn(GLuint index,
  5997. GLuint texture,
  5998. GLint level,
  5999. GLboolean layered,
  6000. GLint layer,
  6001. GLenum access,
  6002. GLint format) {
  6003. driver_->fn.glBindImageTextureEXTFn(index, texture, level, layered, layer,
  6004. access, format);
  6005. }
  6006. void GLApiBase::glBindRenderbufferEXTFn(GLenum target, GLuint renderbuffer) {
  6007. driver_->fn.glBindRenderbufferEXTFn(target, renderbuffer);
  6008. }
  6009. void GLApiBase::glBindSamplerFn(GLuint unit, GLuint sampler) {
  6010. driver_->fn.glBindSamplerFn(unit, sampler);
  6011. }
  6012. void GLApiBase::glBindTextureFn(GLenum target, GLuint texture) {
  6013. driver_->fn.glBindTextureFn(target, texture);
  6014. }
  6015. void GLApiBase::glBindTransformFeedbackFn(GLenum target, GLuint id) {
  6016. driver_->fn.glBindTransformFeedbackFn(target, id);
  6017. }
  6018. void GLApiBase::glBindVertexArrayOESFn(GLuint array) {
  6019. driver_->fn.glBindVertexArrayOESFn(array);
  6020. }
  6021. void GLApiBase::glBlendBarrierKHRFn(void) {
  6022. driver_->fn.glBlendBarrierKHRFn();
  6023. }
  6024. void GLApiBase::glBlendColorFn(GLclampf red,
  6025. GLclampf green,
  6026. GLclampf blue,
  6027. GLclampf alpha) {
  6028. driver_->fn.glBlendColorFn(red, green, blue, alpha);
  6029. }
  6030. void GLApiBase::glBlendEquationFn(GLenum mode) {
  6031. driver_->fn.glBlendEquationFn(mode);
  6032. }
  6033. void GLApiBase::glBlendEquationSeparateFn(GLenum modeRGB, GLenum modeAlpha) {
  6034. driver_->fn.glBlendEquationSeparateFn(modeRGB, modeAlpha);
  6035. }
  6036. void GLApiBase::glBlendFuncFn(GLenum sfactor, GLenum dfactor) {
  6037. driver_->fn.glBlendFuncFn(sfactor, dfactor);
  6038. }
  6039. void GLApiBase::glBlendFuncSeparateFn(GLenum srcRGB,
  6040. GLenum dstRGB,
  6041. GLenum srcAlpha,
  6042. GLenum dstAlpha) {
  6043. driver_->fn.glBlendFuncSeparateFn(srcRGB, dstRGB, srcAlpha, dstAlpha);
  6044. }
  6045. void GLApiBase::glBlitFramebufferFn(GLint srcX0,
  6046. GLint srcY0,
  6047. GLint srcX1,
  6048. GLint srcY1,
  6049. GLint dstX0,
  6050. GLint dstY0,
  6051. GLint dstX1,
  6052. GLint dstY1,
  6053. GLbitfield mask,
  6054. GLenum filter) {
  6055. driver_->fn.glBlitFramebufferFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
  6056. dstX1, dstY1, mask, filter);
  6057. }
  6058. void GLApiBase::glBlitFramebufferANGLEFn(GLint srcX0,
  6059. GLint srcY0,
  6060. GLint srcX1,
  6061. GLint srcY1,
  6062. GLint dstX0,
  6063. GLint dstY0,
  6064. GLint dstX1,
  6065. GLint dstY1,
  6066. GLbitfield mask,
  6067. GLenum filter) {
  6068. driver_->fn.glBlitFramebufferANGLEFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
  6069. dstX1, dstY1, mask, filter);
  6070. }
  6071. void GLApiBase::glBlitFramebufferEXTFn(GLint srcX0,
  6072. GLint srcY0,
  6073. GLint srcX1,
  6074. GLint srcY1,
  6075. GLint dstX0,
  6076. GLint dstY0,
  6077. GLint dstX1,
  6078. GLint dstY1,
  6079. GLbitfield mask,
  6080. GLenum filter) {
  6081. driver_->fn.glBlitFramebufferEXTFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
  6082. dstX1, dstY1, mask, filter);
  6083. }
  6084. void GLApiBase::glBufferDataFn(GLenum target,
  6085. GLsizeiptr size,
  6086. const void* data,
  6087. GLenum usage) {
  6088. driver_->fn.glBufferDataFn(target, size, data, usage);
  6089. }
  6090. void GLApiBase::glBufferSubDataFn(GLenum target,
  6091. GLintptr offset,
  6092. GLsizeiptr size,
  6093. const void* data) {
  6094. driver_->fn.glBufferSubDataFn(target, offset, size, data);
  6095. }
  6096. GLenum GLApiBase::glCheckFramebufferStatusEXTFn(GLenum target) {
  6097. return driver_->fn.glCheckFramebufferStatusEXTFn(target);
  6098. }
  6099. void GLApiBase::glClearFn(GLbitfield mask) {
  6100. driver_->fn.glClearFn(mask);
  6101. }
  6102. void GLApiBase::glClearBufferfiFn(GLenum buffer,
  6103. GLint drawbuffer,
  6104. const GLfloat depth,
  6105. GLint stencil) {
  6106. driver_->fn.glClearBufferfiFn(buffer, drawbuffer, depth, stencil);
  6107. }
  6108. void GLApiBase::glClearBufferfvFn(GLenum buffer,
  6109. GLint drawbuffer,
  6110. const GLfloat* value) {
  6111. driver_->fn.glClearBufferfvFn(buffer, drawbuffer, value);
  6112. }
  6113. void GLApiBase::glClearBufferivFn(GLenum buffer,
  6114. GLint drawbuffer,
  6115. const GLint* value) {
  6116. driver_->fn.glClearBufferivFn(buffer, drawbuffer, value);
  6117. }
  6118. void GLApiBase::glClearBufferuivFn(GLenum buffer,
  6119. GLint drawbuffer,
  6120. const GLuint* value) {
  6121. driver_->fn.glClearBufferuivFn(buffer, drawbuffer, value);
  6122. }
  6123. void GLApiBase::glClearColorFn(GLclampf red,
  6124. GLclampf green,
  6125. GLclampf blue,
  6126. GLclampf alpha) {
  6127. driver_->fn.glClearColorFn(red, green, blue, alpha);
  6128. }
  6129. void GLApiBase::glClearDepthFn(GLclampd depth) {
  6130. driver_->fn.glClearDepthFn(depth);
  6131. }
  6132. void GLApiBase::glClearDepthfFn(GLclampf depth) {
  6133. driver_->fn.glClearDepthfFn(depth);
  6134. }
  6135. void GLApiBase::glClearStencilFn(GLint s) {
  6136. driver_->fn.glClearStencilFn(s);
  6137. }
  6138. GLenum GLApiBase::glClientWaitSyncFn(GLsync sync,
  6139. GLbitfield flags,
  6140. GLuint64 timeout) {
  6141. return driver_->fn.glClientWaitSyncFn(sync, flags, timeout);
  6142. }
  6143. void GLApiBase::glColorMaskFn(GLboolean red,
  6144. GLboolean green,
  6145. GLboolean blue,
  6146. GLboolean alpha) {
  6147. driver_->fn.glColorMaskFn(red, green, blue, alpha);
  6148. }
  6149. void GLApiBase::glCompileShaderFn(GLuint shader) {
  6150. driver_->fn.glCompileShaderFn(shader);
  6151. }
  6152. void GLApiBase::glCompressedTexImage2DFn(GLenum target,
  6153. GLint level,
  6154. GLenum internalformat,
  6155. GLsizei width,
  6156. GLsizei height,
  6157. GLint border,
  6158. GLsizei imageSize,
  6159. const void* data) {
  6160. driver_->fn.glCompressedTexImage2DFn(target, level, internalformat, width,
  6161. height, border, imageSize, data);
  6162. }
  6163. void GLApiBase::glCompressedTexImage3DFn(GLenum target,
  6164. GLint level,
  6165. GLenum internalformat,
  6166. GLsizei width,
  6167. GLsizei height,
  6168. GLsizei depth,
  6169. GLint border,
  6170. GLsizei imageSize,
  6171. const void* data) {
  6172. driver_->fn.glCompressedTexImage3DFn(target, level, internalformat, width,
  6173. height, depth, border, imageSize, data);
  6174. }
  6175. void GLApiBase::glCompressedTexSubImage2DFn(GLenum target,
  6176. GLint level,
  6177. GLint xoffset,
  6178. GLint yoffset,
  6179. GLsizei width,
  6180. GLsizei height,
  6181. GLenum format,
  6182. GLsizei imageSize,
  6183. const void* data) {
  6184. driver_->fn.glCompressedTexSubImage2DFn(
  6185. target, level, xoffset, yoffset, width, height, format, imageSize, data);
  6186. }
  6187. void GLApiBase::glCompressedTexSubImage3DFn(GLenum target,
  6188. GLint level,
  6189. GLint xoffset,
  6190. GLint yoffset,
  6191. GLint zoffset,
  6192. GLsizei width,
  6193. GLsizei height,
  6194. GLsizei depth,
  6195. GLenum format,
  6196. GLsizei imageSize,
  6197. const void* data) {
  6198. driver_->fn.glCompressedTexSubImage3DFn(target, level, xoffset, yoffset,
  6199. zoffset, width, height, depth, format,
  6200. imageSize, data);
  6201. }
  6202. void GLApiBase::glCopyBufferSubDataFn(GLenum readTarget,
  6203. GLenum writeTarget,
  6204. GLintptr readOffset,
  6205. GLintptr writeOffset,
  6206. GLsizeiptr size) {
  6207. driver_->fn.glCopyBufferSubDataFn(readTarget, writeTarget, readOffset,
  6208. writeOffset, size);
  6209. }
  6210. void GLApiBase::glCopyTexImage2DFn(GLenum target,
  6211. GLint level,
  6212. GLenum internalformat,
  6213. GLint x,
  6214. GLint y,
  6215. GLsizei width,
  6216. GLsizei height,
  6217. GLint border) {
  6218. driver_->fn.glCopyTexImage2DFn(target, level, internalformat, x, y, width,
  6219. height, border);
  6220. }
  6221. void GLApiBase::glCopyTexSubImage2DFn(GLenum target,
  6222. GLint level,
  6223. GLint xoffset,
  6224. GLint yoffset,
  6225. GLint x,
  6226. GLint y,
  6227. GLsizei width,
  6228. GLsizei height) {
  6229. driver_->fn.glCopyTexSubImage2DFn(target, level, xoffset, yoffset, x, y,
  6230. width, height);
  6231. }
  6232. void GLApiBase::glCopyTexSubImage3DFn(GLenum target,
  6233. GLint level,
  6234. GLint xoffset,
  6235. GLint yoffset,
  6236. GLint zoffset,
  6237. GLint x,
  6238. GLint y,
  6239. GLsizei width,
  6240. GLsizei height) {
  6241. driver_->fn.glCopyTexSubImage3DFn(target, level, xoffset, yoffset, zoffset, x,
  6242. y, width, height);
  6243. }
  6244. void GLApiBase::glCoverageModulationNVFn(GLenum components) {
  6245. driver_->fn.glCoverageModulationNVFn(components);
  6246. }
  6247. void GLApiBase::glCoverFillPathInstancedNVFn(GLsizei numPaths,
  6248. GLenum pathNameType,
  6249. const void* paths,
  6250. GLuint pathBase,
  6251. GLenum coverMode,
  6252. GLenum transformType,
  6253. const GLfloat* transformValues) {
  6254. driver_->fn.glCoverFillPathInstancedNVFn(numPaths, pathNameType, paths,
  6255. pathBase, coverMode, transformType,
  6256. transformValues);
  6257. }
  6258. void GLApiBase::glCoverFillPathNVFn(GLuint path, GLenum coverMode) {
  6259. driver_->fn.glCoverFillPathNVFn(path, coverMode);
  6260. }
  6261. void GLApiBase::glCoverStrokePathInstancedNVFn(GLsizei numPaths,
  6262. GLenum pathNameType,
  6263. const void* paths,
  6264. GLuint pathBase,
  6265. GLenum coverMode,
  6266. GLenum transformType,
  6267. const GLfloat* transformValues) {
  6268. driver_->fn.glCoverStrokePathInstancedNVFn(numPaths, pathNameType, paths,
  6269. pathBase, coverMode, transformType,
  6270. transformValues);
  6271. }
  6272. void GLApiBase::glCoverStrokePathNVFn(GLuint name, GLenum coverMode) {
  6273. driver_->fn.glCoverStrokePathNVFn(name, coverMode);
  6274. }
  6275. GLuint GLApiBase::glCreateProgramFn(void) {
  6276. return driver_->fn.glCreateProgramFn();
  6277. }
  6278. GLuint GLApiBase::glCreateShaderFn(GLenum type) {
  6279. return driver_->fn.glCreateShaderFn(type);
  6280. }
  6281. void GLApiBase::glCullFaceFn(GLenum mode) {
  6282. driver_->fn.glCullFaceFn(mode);
  6283. }
  6284. void GLApiBase::glDeleteBuffersARBFn(GLsizei n, const GLuint* buffers) {
  6285. driver_->fn.glDeleteBuffersARBFn(n, buffers);
  6286. }
  6287. void GLApiBase::glDeleteFencesAPPLEFn(GLsizei n, const GLuint* fences) {
  6288. driver_->fn.glDeleteFencesAPPLEFn(n, fences);
  6289. }
  6290. void GLApiBase::glDeleteFencesNVFn(GLsizei n, const GLuint* fences) {
  6291. driver_->fn.glDeleteFencesNVFn(n, fences);
  6292. }
  6293. void GLApiBase::glDeleteFramebuffersEXTFn(GLsizei n,
  6294. const GLuint* framebuffers) {
  6295. driver_->fn.glDeleteFramebuffersEXTFn(n, framebuffers);
  6296. }
  6297. void GLApiBase::glDeletePathsNVFn(GLuint path, GLsizei range) {
  6298. driver_->fn.glDeletePathsNVFn(path, range);
  6299. }
  6300. void GLApiBase::glDeleteProgramFn(GLuint program) {
  6301. driver_->fn.glDeleteProgramFn(program);
  6302. }
  6303. void GLApiBase::glDeleteQueriesFn(GLsizei n, const GLuint* ids) {
  6304. driver_->fn.glDeleteQueriesFn(n, ids);
  6305. }
  6306. void GLApiBase::glDeleteRenderbuffersEXTFn(GLsizei n,
  6307. const GLuint* renderbuffers) {
  6308. driver_->fn.glDeleteRenderbuffersEXTFn(n, renderbuffers);
  6309. }
  6310. void GLApiBase::glDeleteSamplersFn(GLsizei n, const GLuint* samplers) {
  6311. driver_->fn.glDeleteSamplersFn(n, samplers);
  6312. }
  6313. void GLApiBase::glDeleteShaderFn(GLuint shader) {
  6314. driver_->fn.glDeleteShaderFn(shader);
  6315. }
  6316. void GLApiBase::glDeleteSyncFn(GLsync sync) {
  6317. driver_->fn.glDeleteSyncFn(sync);
  6318. }
  6319. void GLApiBase::glDeleteTexturesFn(GLsizei n, const GLuint* textures) {
  6320. driver_->fn.glDeleteTexturesFn(n, textures);
  6321. }
  6322. void GLApiBase::glDeleteTransformFeedbacksFn(GLsizei n, const GLuint* ids) {
  6323. driver_->fn.glDeleteTransformFeedbacksFn(n, ids);
  6324. }
  6325. void GLApiBase::glDeleteVertexArraysOESFn(GLsizei n, const GLuint* arrays) {
  6326. driver_->fn.glDeleteVertexArraysOESFn(n, arrays);
  6327. }
  6328. void GLApiBase::glDepthFuncFn(GLenum func) {
  6329. driver_->fn.glDepthFuncFn(func);
  6330. }
  6331. void GLApiBase::glDepthMaskFn(GLboolean flag) {
  6332. driver_->fn.glDepthMaskFn(flag);
  6333. }
  6334. void GLApiBase::glDepthRangeFn(GLclampd zNear, GLclampd zFar) {
  6335. driver_->fn.glDepthRangeFn(zNear, zFar);
  6336. }
  6337. void GLApiBase::glDepthRangefFn(GLclampf zNear, GLclampf zFar) {
  6338. driver_->fn.glDepthRangefFn(zNear, zFar);
  6339. }
  6340. void GLApiBase::glDetachShaderFn(GLuint program, GLuint shader) {
  6341. driver_->fn.glDetachShaderFn(program, shader);
  6342. }
  6343. void GLApiBase::glDisableFn(GLenum cap) {
  6344. driver_->fn.glDisableFn(cap);
  6345. }
  6346. void GLApiBase::glDisableVertexAttribArrayFn(GLuint index) {
  6347. driver_->fn.glDisableVertexAttribArrayFn(index);
  6348. }
  6349. void GLApiBase::glDiscardFramebufferEXTFn(GLenum target,
  6350. GLsizei numAttachments,
  6351. const GLenum* attachments) {
  6352. driver_->fn.glDiscardFramebufferEXTFn(target, numAttachments, attachments);
  6353. }
  6354. void GLApiBase::glDrawArraysFn(GLenum mode, GLint first, GLsizei count) {
  6355. driver_->fn.glDrawArraysFn(mode, first, count);
  6356. }
  6357. void GLApiBase::glDrawArraysInstancedANGLEFn(GLenum mode,
  6358. GLint first,
  6359. GLsizei count,
  6360. GLsizei primcount) {
  6361. driver_->fn.glDrawArraysInstancedANGLEFn(mode, first, count, primcount);
  6362. }
  6363. void GLApiBase::glDrawBufferFn(GLenum mode) {
  6364. driver_->fn.glDrawBufferFn(mode);
  6365. }
  6366. void GLApiBase::glDrawBuffersARBFn(GLsizei n, const GLenum* bufs) {
  6367. driver_->fn.glDrawBuffersARBFn(n, bufs);
  6368. }
  6369. void GLApiBase::glDrawElementsFn(GLenum mode,
  6370. GLsizei count,
  6371. GLenum type,
  6372. const void* indices) {
  6373. driver_->fn.glDrawElementsFn(mode, count, type, indices);
  6374. }
  6375. void GLApiBase::glDrawElementsInstancedANGLEFn(GLenum mode,
  6376. GLsizei count,
  6377. GLenum type,
  6378. const void* indices,
  6379. GLsizei primcount) {
  6380. driver_->fn.glDrawElementsInstancedANGLEFn(mode, count, type, indices,
  6381. primcount);
  6382. }
  6383. void GLApiBase::glDrawRangeElementsFn(GLenum mode,
  6384. GLuint start,
  6385. GLuint end,
  6386. GLsizei count,
  6387. GLenum type,
  6388. const void* indices) {
  6389. driver_->fn.glDrawRangeElementsFn(mode, start, end, count, type, indices);
  6390. }
  6391. void GLApiBase::glEGLImageTargetRenderbufferStorageOESFn(GLenum target,
  6392. GLeglImageOES image) {
  6393. driver_->fn.glEGLImageTargetRenderbufferStorageOESFn(target, image);
  6394. }
  6395. void GLApiBase::glEGLImageTargetTexture2DOESFn(GLenum target,
  6396. GLeglImageOES image) {
  6397. driver_->fn.glEGLImageTargetTexture2DOESFn(target, image);
  6398. }
  6399. void GLApiBase::glEnableFn(GLenum cap) {
  6400. driver_->fn.glEnableFn(cap);
  6401. }
  6402. void GLApiBase::glEnableVertexAttribArrayFn(GLuint index) {
  6403. driver_->fn.glEnableVertexAttribArrayFn(index);
  6404. }
  6405. void GLApiBase::glEndQueryFn(GLenum target) {
  6406. driver_->fn.glEndQueryFn(target);
  6407. }
  6408. void GLApiBase::glEndTransformFeedbackFn(void) {
  6409. driver_->fn.glEndTransformFeedbackFn();
  6410. }
  6411. GLsync GLApiBase::glFenceSyncFn(GLenum condition, GLbitfield flags) {
  6412. return driver_->fn.glFenceSyncFn(condition, flags);
  6413. }
  6414. void GLApiBase::glFinishFn(void) {
  6415. driver_->fn.glFinishFn();
  6416. }
  6417. void GLApiBase::glFinishFenceAPPLEFn(GLuint fence) {
  6418. driver_->fn.glFinishFenceAPPLEFn(fence);
  6419. }
  6420. void GLApiBase::glFinishFenceNVFn(GLuint fence) {
  6421. driver_->fn.glFinishFenceNVFn(fence);
  6422. }
  6423. void GLApiBase::glFlushFn(void) {
  6424. driver_->fn.glFlushFn();
  6425. }
  6426. void GLApiBase::glFlushMappedBufferRangeFn(GLenum target,
  6427. GLintptr offset,
  6428. GLsizeiptr length) {
  6429. driver_->fn.glFlushMappedBufferRangeFn(target, offset, length);
  6430. }
  6431. void GLApiBase::glFramebufferRenderbufferEXTFn(GLenum target,
  6432. GLenum attachment,
  6433. GLenum renderbuffertarget,
  6434. GLuint renderbuffer) {
  6435. driver_->fn.glFramebufferRenderbufferEXTFn(target, attachment,
  6436. renderbuffertarget, renderbuffer);
  6437. }
  6438. void GLApiBase::glFramebufferTexture2DEXTFn(GLenum target,
  6439. GLenum attachment,
  6440. GLenum textarget,
  6441. GLuint texture,
  6442. GLint level) {
  6443. driver_->fn.glFramebufferTexture2DEXTFn(target, attachment, textarget,
  6444. texture, level);
  6445. }
  6446. void GLApiBase::glFramebufferTexture2DMultisampleEXTFn(GLenum target,
  6447. GLenum attachment,
  6448. GLenum textarget,
  6449. GLuint texture,
  6450. GLint level,
  6451. GLsizei samples) {
  6452. driver_->fn.glFramebufferTexture2DMultisampleEXTFn(
  6453. target, attachment, textarget, texture, level, samples);
  6454. }
  6455. void GLApiBase::glFramebufferTexture2DMultisampleIMGFn(GLenum target,
  6456. GLenum attachment,
  6457. GLenum textarget,
  6458. GLuint texture,
  6459. GLint level,
  6460. GLsizei samples) {
  6461. driver_->fn.glFramebufferTexture2DMultisampleIMGFn(
  6462. target, attachment, textarget, texture, level, samples);
  6463. }
  6464. void GLApiBase::glFramebufferTextureLayerFn(GLenum target,
  6465. GLenum attachment,
  6466. GLuint texture,
  6467. GLint level,
  6468. GLint layer) {
  6469. driver_->fn.glFramebufferTextureLayerFn(target, attachment, texture, level,
  6470. layer);
  6471. }
  6472. void GLApiBase::glFrontFaceFn(GLenum mode) {
  6473. driver_->fn.glFrontFaceFn(mode);
  6474. }
  6475. void GLApiBase::glGenBuffersARBFn(GLsizei n, GLuint* buffers) {
  6476. driver_->fn.glGenBuffersARBFn(n, buffers);
  6477. }
  6478. void GLApiBase::glGenerateMipmapEXTFn(GLenum target) {
  6479. driver_->fn.glGenerateMipmapEXTFn(target);
  6480. }
  6481. void GLApiBase::glGenFencesAPPLEFn(GLsizei n, GLuint* fences) {
  6482. driver_->fn.glGenFencesAPPLEFn(n, fences);
  6483. }
  6484. void GLApiBase::glGenFencesNVFn(GLsizei n, GLuint* fences) {
  6485. driver_->fn.glGenFencesNVFn(n, fences);
  6486. }
  6487. void GLApiBase::glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) {
  6488. driver_->fn.glGenFramebuffersEXTFn(n, framebuffers);
  6489. }
  6490. GLuint GLApiBase::glGenPathsNVFn(GLsizei range) {
  6491. return driver_->fn.glGenPathsNVFn(range);
  6492. }
  6493. void GLApiBase::glGenQueriesFn(GLsizei n, GLuint* ids) {
  6494. driver_->fn.glGenQueriesFn(n, ids);
  6495. }
  6496. void GLApiBase::glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) {
  6497. driver_->fn.glGenRenderbuffersEXTFn(n, renderbuffers);
  6498. }
  6499. void GLApiBase::glGenSamplersFn(GLsizei n, GLuint* samplers) {
  6500. driver_->fn.glGenSamplersFn(n, samplers);
  6501. }
  6502. void GLApiBase::glGenTexturesFn(GLsizei n, GLuint* textures) {
  6503. driver_->fn.glGenTexturesFn(n, textures);
  6504. }
  6505. void GLApiBase::glGenTransformFeedbacksFn(GLsizei n, GLuint* ids) {
  6506. driver_->fn.glGenTransformFeedbacksFn(n, ids);
  6507. }
  6508. void GLApiBase::glGenVertexArraysOESFn(GLsizei n, GLuint* arrays) {
  6509. driver_->fn.glGenVertexArraysOESFn(n, arrays);
  6510. }
  6511. void GLApiBase::glGetActiveAttribFn(GLuint program,
  6512. GLuint index,
  6513. GLsizei bufsize,
  6514. GLsizei* length,
  6515. GLint* size,
  6516. GLenum* type,
  6517. char* name) {
  6518. driver_->fn.glGetActiveAttribFn(program, index, bufsize, length, size, type,
  6519. name);
  6520. }
  6521. void GLApiBase::glGetActiveUniformFn(GLuint program,
  6522. GLuint index,
  6523. GLsizei bufsize,
  6524. GLsizei* length,
  6525. GLint* size,
  6526. GLenum* type,
  6527. char* name) {
  6528. driver_->fn.glGetActiveUniformFn(program, index, bufsize, length, size, type,
  6529. name);
  6530. }
  6531. void GLApiBase::glGetActiveUniformBlockivFn(GLuint program,
  6532. GLuint uniformBlockIndex,
  6533. GLenum pname,
  6534. GLint* params) {
  6535. driver_->fn.glGetActiveUniformBlockivFn(program, uniformBlockIndex, pname,
  6536. params);
  6537. }
  6538. void GLApiBase::glGetActiveUniformBlockNameFn(GLuint program,
  6539. GLuint uniformBlockIndex,
  6540. GLsizei bufSize,
  6541. GLsizei* length,
  6542. char* uniformBlockName) {
  6543. driver_->fn.glGetActiveUniformBlockNameFn(program, uniformBlockIndex, bufSize,
  6544. length, uniformBlockName);
  6545. }
  6546. void GLApiBase::glGetActiveUniformsivFn(GLuint program,
  6547. GLsizei uniformCount,
  6548. const GLuint* uniformIndices,
  6549. GLenum pname,
  6550. GLint* params) {
  6551. driver_->fn.glGetActiveUniformsivFn(program, uniformCount, uniformIndices,
  6552. pname, params);
  6553. }
  6554. void GLApiBase::glGetAttachedShadersFn(GLuint program,
  6555. GLsizei maxcount,
  6556. GLsizei* count,
  6557. GLuint* shaders) {
  6558. driver_->fn.glGetAttachedShadersFn(program, maxcount, count, shaders);
  6559. }
  6560. GLint GLApiBase::glGetAttribLocationFn(GLuint program, const char* name) {
  6561. return driver_->fn.glGetAttribLocationFn(program, name);
  6562. }
  6563. void GLApiBase::glGetBooleanvFn(GLenum pname, GLboolean* params) {
  6564. driver_->fn.glGetBooleanvFn(pname, params);
  6565. }
  6566. void GLApiBase::glGetBufferParameterivFn(GLenum target,
  6567. GLenum pname,
  6568. GLint* params) {
  6569. driver_->fn.glGetBufferParameterivFn(target, pname, params);
  6570. }
  6571. GLenum GLApiBase::glGetErrorFn(void) {
  6572. return driver_->fn.glGetErrorFn();
  6573. }
  6574. void GLApiBase::glGetFenceivNVFn(GLuint fence, GLenum pname, GLint* params) {
  6575. driver_->fn.glGetFenceivNVFn(fence, pname, params);
  6576. }
  6577. void GLApiBase::glGetFloatvFn(GLenum pname, GLfloat* params) {
  6578. driver_->fn.glGetFloatvFn(pname, params);
  6579. }
  6580. GLint GLApiBase::glGetFragDataIndexFn(GLuint program, const char* name) {
  6581. return driver_->fn.glGetFragDataIndexFn(program, name);
  6582. }
  6583. GLint GLApiBase::glGetFragDataLocationFn(GLuint program, const char* name) {
  6584. return driver_->fn.glGetFragDataLocationFn(program, name);
  6585. }
  6586. void GLApiBase::glGetFramebufferAttachmentParameterivEXTFn(GLenum target,
  6587. GLenum attachment,
  6588. GLenum pname,
  6589. GLint* params) {
  6590. driver_->fn.glGetFramebufferAttachmentParameterivEXTFn(target, attachment,
  6591. pname, params);
  6592. }
  6593. GLenum GLApiBase::glGetGraphicsResetStatusARBFn(void) {
  6594. return driver_->fn.glGetGraphicsResetStatusARBFn();
  6595. }
  6596. void GLApiBase::glGetInteger64i_vFn(GLenum target,
  6597. GLuint index,
  6598. GLint64* data) {
  6599. driver_->fn.glGetInteger64i_vFn(target, index, data);
  6600. }
  6601. void GLApiBase::glGetInteger64vFn(GLenum pname, GLint64* params) {
  6602. driver_->fn.glGetInteger64vFn(pname, params);
  6603. }
  6604. void GLApiBase::glGetIntegeri_vFn(GLenum target, GLuint index, GLint* data) {
  6605. driver_->fn.glGetIntegeri_vFn(target, index, data);
  6606. }
  6607. void GLApiBase::glGetIntegervFn(GLenum pname, GLint* params) {
  6608. driver_->fn.glGetIntegervFn(pname, params);
  6609. }
  6610. void GLApiBase::glGetInternalformativFn(GLenum target,
  6611. GLenum internalformat,
  6612. GLenum pname,
  6613. GLsizei bufSize,
  6614. GLint* params) {
  6615. driver_->fn.glGetInternalformativFn(target, internalformat, pname, bufSize,
  6616. params);
  6617. }
  6618. void GLApiBase::glGetProgramBinaryFn(GLuint program,
  6619. GLsizei bufSize,
  6620. GLsizei* length,
  6621. GLenum* binaryFormat,
  6622. GLvoid* binary) {
  6623. driver_->fn.glGetProgramBinaryFn(program, bufSize, length, binaryFormat,
  6624. binary);
  6625. }
  6626. void GLApiBase::glGetProgramInfoLogFn(GLuint program,
  6627. GLsizei bufsize,
  6628. GLsizei* length,
  6629. char* infolog) {
  6630. driver_->fn.glGetProgramInfoLogFn(program, bufsize, length, infolog);
  6631. }
  6632. void GLApiBase::glGetProgramInterfaceivFn(GLuint program,
  6633. GLenum programInterface,
  6634. GLenum pname,
  6635. GLint* params) {
  6636. driver_->fn.glGetProgramInterfaceivFn(program, programInterface, pname,
  6637. params);
  6638. }
  6639. void GLApiBase::glGetProgramivFn(GLuint program, GLenum pname, GLint* params) {
  6640. driver_->fn.glGetProgramivFn(program, pname, params);
  6641. }
  6642. void GLApiBase::glGetProgramResourceivFn(GLuint program,
  6643. GLenum programInterface,
  6644. GLuint index,
  6645. GLsizei propCount,
  6646. const GLenum* props,
  6647. GLsizei bufSize,
  6648. GLsizei* length,
  6649. GLint* params) {
  6650. driver_->fn.glGetProgramResourceivFn(program, programInterface, index,
  6651. propCount, props, bufSize, length,
  6652. params);
  6653. }
  6654. GLint GLApiBase::glGetProgramResourceLocationFn(GLuint program,
  6655. GLenum programInterface,
  6656. const char* name) {
  6657. return driver_->fn.glGetProgramResourceLocationFn(program, programInterface,
  6658. name);
  6659. }
  6660. void GLApiBase::glGetProgramResourceNameFn(GLuint program,
  6661. GLenum programInterface,
  6662. GLuint index,
  6663. GLsizei bufSize,
  6664. GLsizei* length,
  6665. GLchar* name) {
  6666. driver_->fn.glGetProgramResourceNameFn(program, programInterface, index,
  6667. bufSize, length, name);
  6668. }
  6669. void GLApiBase::glGetQueryivFn(GLenum target, GLenum pname, GLint* params) {
  6670. driver_->fn.glGetQueryivFn(target, pname, params);
  6671. }
  6672. void GLApiBase::glGetQueryObjecti64vFn(GLuint id,
  6673. GLenum pname,
  6674. GLint64* params) {
  6675. driver_->fn.glGetQueryObjecti64vFn(id, pname, params);
  6676. }
  6677. void GLApiBase::glGetQueryObjectivFn(GLuint id, GLenum pname, GLint* params) {
  6678. driver_->fn.glGetQueryObjectivFn(id, pname, params);
  6679. }
  6680. void GLApiBase::glGetQueryObjectui64vFn(GLuint id,
  6681. GLenum pname,
  6682. GLuint64* params) {
  6683. driver_->fn.glGetQueryObjectui64vFn(id, pname, params);
  6684. }
  6685. void GLApiBase::glGetQueryObjectuivFn(GLuint id, GLenum pname, GLuint* params) {
  6686. driver_->fn.glGetQueryObjectuivFn(id, pname, params);
  6687. }
  6688. void GLApiBase::glGetRenderbufferParameterivEXTFn(GLenum target,
  6689. GLenum pname,
  6690. GLint* params) {
  6691. driver_->fn.glGetRenderbufferParameterivEXTFn(target, pname, params);
  6692. }
  6693. void GLApiBase::glGetSamplerParameterfvFn(GLuint sampler,
  6694. GLenum pname,
  6695. GLfloat* params) {
  6696. driver_->fn.glGetSamplerParameterfvFn(sampler, pname, params);
  6697. }
  6698. void GLApiBase::glGetSamplerParameterivFn(GLuint sampler,
  6699. GLenum pname,
  6700. GLint* params) {
  6701. driver_->fn.glGetSamplerParameterivFn(sampler, pname, params);
  6702. }
  6703. void GLApiBase::glGetShaderInfoLogFn(GLuint shader,
  6704. GLsizei bufsize,
  6705. GLsizei* length,
  6706. char* infolog) {
  6707. driver_->fn.glGetShaderInfoLogFn(shader, bufsize, length, infolog);
  6708. }
  6709. void GLApiBase::glGetShaderivFn(GLuint shader, GLenum pname, GLint* params) {
  6710. driver_->fn.glGetShaderivFn(shader, pname, params);
  6711. }
  6712. void GLApiBase::glGetShaderPrecisionFormatFn(GLenum shadertype,
  6713. GLenum precisiontype,
  6714. GLint* range,
  6715. GLint* precision) {
  6716. driver_->fn.glGetShaderPrecisionFormatFn(shadertype, precisiontype, range,
  6717. precision);
  6718. }
  6719. void GLApiBase::glGetShaderSourceFn(GLuint shader,
  6720. GLsizei bufsize,
  6721. GLsizei* length,
  6722. char* source) {
  6723. driver_->fn.glGetShaderSourceFn(shader, bufsize, length, source);
  6724. }
  6725. const GLubyte* GLApiBase::glGetStringFn(GLenum name) {
  6726. return driver_->fn.glGetStringFn(name);
  6727. }
  6728. const GLubyte* GLApiBase::glGetStringiFn(GLenum name, GLuint index) {
  6729. return driver_->fn.glGetStringiFn(name, index);
  6730. }
  6731. void GLApiBase::glGetSyncivFn(GLsync sync,
  6732. GLenum pname,
  6733. GLsizei bufSize,
  6734. GLsizei* length,
  6735. GLint* values) {
  6736. driver_->fn.glGetSyncivFn(sync, pname, bufSize, length, values);
  6737. }
  6738. void GLApiBase::glGetTexLevelParameterfvFn(GLenum target,
  6739. GLint level,
  6740. GLenum pname,
  6741. GLfloat* params) {
  6742. driver_->fn.glGetTexLevelParameterfvFn(target, level, pname, params);
  6743. }
  6744. void GLApiBase::glGetTexLevelParameterivFn(GLenum target,
  6745. GLint level,
  6746. GLenum pname,
  6747. GLint* params) {
  6748. driver_->fn.glGetTexLevelParameterivFn(target, level, pname, params);
  6749. }
  6750. void GLApiBase::glGetTexParameterfvFn(GLenum target,
  6751. GLenum pname,
  6752. GLfloat* params) {
  6753. driver_->fn.glGetTexParameterfvFn(target, pname, params);
  6754. }
  6755. void GLApiBase::glGetTexParameterivFn(GLenum target,
  6756. GLenum pname,
  6757. GLint* params) {
  6758. driver_->fn.glGetTexParameterivFn(target, pname, params);
  6759. }
  6760. void GLApiBase::glGetTransformFeedbackVaryingFn(GLuint program,
  6761. GLuint index,
  6762. GLsizei bufSize,
  6763. GLsizei* length,
  6764. GLsizei* size,
  6765. GLenum* type,
  6766. char* name) {
  6767. driver_->fn.glGetTransformFeedbackVaryingFn(program, index, bufSize, length,
  6768. size, type, name);
  6769. }
  6770. void GLApiBase::glGetTranslatedShaderSourceANGLEFn(GLuint shader,
  6771. GLsizei bufsize,
  6772. GLsizei* length,
  6773. char* source) {
  6774. driver_->fn.glGetTranslatedShaderSourceANGLEFn(shader, bufsize, length,
  6775. source);
  6776. }
  6777. GLuint GLApiBase::glGetUniformBlockIndexFn(GLuint program,
  6778. const char* uniformBlockName) {
  6779. return driver_->fn.glGetUniformBlockIndexFn(program, uniformBlockName);
  6780. }
  6781. void GLApiBase::glGetUniformfvFn(GLuint program,
  6782. GLint location,
  6783. GLfloat* params) {
  6784. driver_->fn.glGetUniformfvFn(program, location, params);
  6785. }
  6786. void GLApiBase::glGetUniformIndicesFn(GLuint program,
  6787. GLsizei uniformCount,
  6788. const char* const* uniformNames,
  6789. GLuint* uniformIndices) {
  6790. driver_->fn.glGetUniformIndicesFn(program, uniformCount, uniformNames,
  6791. uniformIndices);
  6792. }
  6793. void GLApiBase::glGetUniformivFn(GLuint program,
  6794. GLint location,
  6795. GLint* params) {
  6796. driver_->fn.glGetUniformivFn(program, location, params);
  6797. }
  6798. GLint GLApiBase::glGetUniformLocationFn(GLuint program, const char* name) {
  6799. return driver_->fn.glGetUniformLocationFn(program, name);
  6800. }
  6801. void GLApiBase::glGetUniformuivFn(GLuint program,
  6802. GLint location,
  6803. GLuint* params) {
  6804. driver_->fn.glGetUniformuivFn(program, location, params);
  6805. }
  6806. void GLApiBase::glGetVertexAttribfvFn(GLuint index,
  6807. GLenum pname,
  6808. GLfloat* params) {
  6809. driver_->fn.glGetVertexAttribfvFn(index, pname, params);
  6810. }
  6811. void GLApiBase::glGetVertexAttribivFn(GLuint index,
  6812. GLenum pname,
  6813. GLint* params) {
  6814. driver_->fn.glGetVertexAttribivFn(index, pname, params);
  6815. }
  6816. void GLApiBase::glGetVertexAttribPointervFn(GLuint index,
  6817. GLenum pname,
  6818. void** pointer) {
  6819. driver_->fn.glGetVertexAttribPointervFn(index, pname, pointer);
  6820. }
  6821. void GLApiBase::glHintFn(GLenum target, GLenum mode) {
  6822. driver_->fn.glHintFn(target, mode);
  6823. }
  6824. void GLApiBase::glInsertEventMarkerEXTFn(GLsizei length, const char* marker) {
  6825. driver_->fn.glInsertEventMarkerEXTFn(length, marker);
  6826. }
  6827. void GLApiBase::glInvalidateFramebufferFn(GLenum target,
  6828. GLsizei numAttachments,
  6829. const GLenum* attachments) {
  6830. driver_->fn.glInvalidateFramebufferFn(target, numAttachments, attachments);
  6831. }
  6832. void GLApiBase::glInvalidateSubFramebufferFn(GLenum target,
  6833. GLsizei numAttachments,
  6834. const GLenum* attachments,
  6835. GLint x,
  6836. GLint y,
  6837. GLint width,
  6838. GLint height) {
  6839. driver_->fn.glInvalidateSubFramebufferFn(target, numAttachments, attachments,
  6840. x, y, width, height);
  6841. }
  6842. GLboolean GLApiBase::glIsBufferFn(GLuint buffer) {
  6843. return driver_->fn.glIsBufferFn(buffer);
  6844. }
  6845. GLboolean GLApiBase::glIsEnabledFn(GLenum cap) {
  6846. return driver_->fn.glIsEnabledFn(cap);
  6847. }
  6848. GLboolean GLApiBase::glIsFenceAPPLEFn(GLuint fence) {
  6849. return driver_->fn.glIsFenceAPPLEFn(fence);
  6850. }
  6851. GLboolean GLApiBase::glIsFenceNVFn(GLuint fence) {
  6852. return driver_->fn.glIsFenceNVFn(fence);
  6853. }
  6854. GLboolean GLApiBase::glIsFramebufferEXTFn(GLuint framebuffer) {
  6855. return driver_->fn.glIsFramebufferEXTFn(framebuffer);
  6856. }
  6857. GLboolean GLApiBase::glIsPathNVFn(GLuint path) {
  6858. return driver_->fn.glIsPathNVFn(path);
  6859. }
  6860. GLboolean GLApiBase::glIsProgramFn(GLuint program) {
  6861. return driver_->fn.glIsProgramFn(program);
  6862. }
  6863. GLboolean GLApiBase::glIsQueryFn(GLuint query) {
  6864. return driver_->fn.glIsQueryFn(query);
  6865. }
  6866. GLboolean GLApiBase::glIsRenderbufferEXTFn(GLuint renderbuffer) {
  6867. return driver_->fn.glIsRenderbufferEXTFn(renderbuffer);
  6868. }
  6869. GLboolean GLApiBase::glIsSamplerFn(GLuint sampler) {
  6870. return driver_->fn.glIsSamplerFn(sampler);
  6871. }
  6872. GLboolean GLApiBase::glIsShaderFn(GLuint shader) {
  6873. return driver_->fn.glIsShaderFn(shader);
  6874. }
  6875. GLboolean GLApiBase::glIsSyncFn(GLsync sync) {
  6876. return driver_->fn.glIsSyncFn(sync);
  6877. }
  6878. GLboolean GLApiBase::glIsTextureFn(GLuint texture) {
  6879. return driver_->fn.glIsTextureFn(texture);
  6880. }
  6881. GLboolean GLApiBase::glIsTransformFeedbackFn(GLuint id) {
  6882. return driver_->fn.glIsTransformFeedbackFn(id);
  6883. }
  6884. GLboolean GLApiBase::glIsVertexArrayOESFn(GLuint array) {
  6885. return driver_->fn.glIsVertexArrayOESFn(array);
  6886. }
  6887. void GLApiBase::glLineWidthFn(GLfloat width) {
  6888. driver_->fn.glLineWidthFn(width);
  6889. }
  6890. void GLApiBase::glLinkProgramFn(GLuint program) {
  6891. driver_->fn.glLinkProgramFn(program);
  6892. }
  6893. void* GLApiBase::glMapBufferFn(GLenum target, GLenum access) {
  6894. return driver_->fn.glMapBufferFn(target, access);
  6895. }
  6896. void* GLApiBase::glMapBufferRangeFn(GLenum target,
  6897. GLintptr offset,
  6898. GLsizeiptr length,
  6899. GLbitfield access) {
  6900. return driver_->fn.glMapBufferRangeFn(target, offset, length, access);
  6901. }
  6902. void GLApiBase::glMatrixLoadfEXTFn(GLenum matrixMode, const GLfloat* m) {
  6903. driver_->fn.glMatrixLoadfEXTFn(matrixMode, m);
  6904. }
  6905. void GLApiBase::glMatrixLoadIdentityEXTFn(GLenum matrixMode) {
  6906. driver_->fn.glMatrixLoadIdentityEXTFn(matrixMode);
  6907. }
  6908. void GLApiBase::glMemoryBarrierEXTFn(GLbitfield barriers) {
  6909. driver_->fn.glMemoryBarrierEXTFn(barriers);
  6910. }
  6911. void GLApiBase::glPathCommandsNVFn(GLuint path,
  6912. GLsizei numCommands,
  6913. const GLubyte* commands,
  6914. GLsizei numCoords,
  6915. GLenum coordType,
  6916. const GLvoid* coords) {
  6917. driver_->fn.glPathCommandsNVFn(path, numCommands, commands, numCoords,
  6918. coordType, coords);
  6919. }
  6920. void GLApiBase::glPathParameterfNVFn(GLuint path, GLenum pname, GLfloat value) {
  6921. driver_->fn.glPathParameterfNVFn(path, pname, value);
  6922. }
  6923. void GLApiBase::glPathParameteriNVFn(GLuint path, GLenum pname, GLint value) {
  6924. driver_->fn.glPathParameteriNVFn(path, pname, value);
  6925. }
  6926. void GLApiBase::glPathStencilFuncNVFn(GLenum func, GLint ref, GLuint mask) {
  6927. driver_->fn.glPathStencilFuncNVFn(func, ref, mask);
  6928. }
  6929. void GLApiBase::glPauseTransformFeedbackFn(void) {
  6930. driver_->fn.glPauseTransformFeedbackFn();
  6931. }
  6932. void GLApiBase::glPixelStoreiFn(GLenum pname, GLint param) {
  6933. driver_->fn.glPixelStoreiFn(pname, param);
  6934. }
  6935. void GLApiBase::glPointParameteriFn(GLenum pname, GLint param) {
  6936. driver_->fn.glPointParameteriFn(pname, param);
  6937. }
  6938. void GLApiBase::glPolygonOffsetFn(GLfloat factor, GLfloat units) {
  6939. driver_->fn.glPolygonOffsetFn(factor, units);
  6940. }
  6941. void GLApiBase::glPopGroupMarkerEXTFn(void) {
  6942. driver_->fn.glPopGroupMarkerEXTFn();
  6943. }
  6944. void GLApiBase::glProgramBinaryFn(GLuint program,
  6945. GLenum binaryFormat,
  6946. const GLvoid* binary,
  6947. GLsizei length) {
  6948. driver_->fn.glProgramBinaryFn(program, binaryFormat, binary, length);
  6949. }
  6950. void GLApiBase::glProgramParameteriFn(GLuint program,
  6951. GLenum pname,
  6952. GLint value) {
  6953. driver_->fn.glProgramParameteriFn(program, pname, value);
  6954. }
  6955. void GLApiBase::glProgramPathFragmentInputGenNVFn(GLuint program,
  6956. GLint location,
  6957. GLenum genMode,
  6958. GLint components,
  6959. const GLfloat* coeffs) {
  6960. driver_->fn.glProgramPathFragmentInputGenNVFn(program, location, genMode,
  6961. components, coeffs);
  6962. }
  6963. void GLApiBase::glPushGroupMarkerEXTFn(GLsizei length, const char* marker) {
  6964. driver_->fn.glPushGroupMarkerEXTFn(length, marker);
  6965. }
  6966. void GLApiBase::glQueryCounterFn(GLuint id, GLenum target) {
  6967. driver_->fn.glQueryCounterFn(id, target);
  6968. }
  6969. void GLApiBase::glReadBufferFn(GLenum src) {
  6970. driver_->fn.glReadBufferFn(src);
  6971. }
  6972. void GLApiBase::glReadPixelsFn(GLint x,
  6973. GLint y,
  6974. GLsizei width,
  6975. GLsizei height,
  6976. GLenum format,
  6977. GLenum type,
  6978. void* pixels) {
  6979. driver_->fn.glReadPixelsFn(x, y, width, height, format, type, pixels);
  6980. }
  6981. void GLApiBase::glReleaseShaderCompilerFn(void) {
  6982. driver_->fn.glReleaseShaderCompilerFn();
  6983. }
  6984. void GLApiBase::glRenderbufferStorageEXTFn(GLenum target,
  6985. GLenum internalformat,
  6986. GLsizei width,
  6987. GLsizei height) {
  6988. driver_->fn.glRenderbufferStorageEXTFn(target, internalformat, width, height);
  6989. }
  6990. void GLApiBase::glRenderbufferStorageMultisampleFn(GLenum target,
  6991. GLsizei samples,
  6992. GLenum internalformat,
  6993. GLsizei width,
  6994. GLsizei height) {
  6995. driver_->fn.glRenderbufferStorageMultisampleFn(target, samples,
  6996. internalformat, width, height);
  6997. }
  6998. void GLApiBase::glRenderbufferStorageMultisampleANGLEFn(GLenum target,
  6999. GLsizei samples,
  7000. GLenum internalformat,
  7001. GLsizei width,
  7002. GLsizei height) {
  7003. driver_->fn.glRenderbufferStorageMultisampleANGLEFn(
  7004. target, samples, internalformat, width, height);
  7005. }
  7006. void GLApiBase::glRenderbufferStorageMultisampleEXTFn(GLenum target,
  7007. GLsizei samples,
  7008. GLenum internalformat,
  7009. GLsizei width,
  7010. GLsizei height) {
  7011. driver_->fn.glRenderbufferStorageMultisampleEXTFn(
  7012. target, samples, internalformat, width, height);
  7013. }
  7014. void GLApiBase::glRenderbufferStorageMultisampleIMGFn(GLenum target,
  7015. GLsizei samples,
  7016. GLenum internalformat,
  7017. GLsizei width,
  7018. GLsizei height) {
  7019. driver_->fn.glRenderbufferStorageMultisampleIMGFn(
  7020. target, samples, internalformat, width, height);
  7021. }
  7022. void GLApiBase::glResumeTransformFeedbackFn(void) {
  7023. driver_->fn.glResumeTransformFeedbackFn();
  7024. }
  7025. void GLApiBase::glSampleCoverageFn(GLclampf value, GLboolean invert) {
  7026. driver_->fn.glSampleCoverageFn(value, invert);
  7027. }
  7028. void GLApiBase::glSamplerParameterfFn(GLuint sampler,
  7029. GLenum pname,
  7030. GLfloat param) {
  7031. driver_->fn.glSamplerParameterfFn(sampler, pname, param);
  7032. }
  7033. void GLApiBase::glSamplerParameterfvFn(GLuint sampler,
  7034. GLenum pname,
  7035. const GLfloat* params) {
  7036. driver_->fn.glSamplerParameterfvFn(sampler, pname, params);
  7037. }
  7038. void GLApiBase::glSamplerParameteriFn(GLuint sampler,
  7039. GLenum pname,
  7040. GLint param) {
  7041. driver_->fn.glSamplerParameteriFn(sampler, pname, param);
  7042. }
  7043. void GLApiBase::glSamplerParameterivFn(GLuint sampler,
  7044. GLenum pname,
  7045. const GLint* params) {
  7046. driver_->fn.glSamplerParameterivFn(sampler, pname, params);
  7047. }
  7048. void GLApiBase::glScissorFn(GLint x, GLint y, GLsizei width, GLsizei height) {
  7049. driver_->fn.glScissorFn(x, y, width, height);
  7050. }
  7051. void GLApiBase::glSetFenceAPPLEFn(GLuint fence) {
  7052. driver_->fn.glSetFenceAPPLEFn(fence);
  7053. }
  7054. void GLApiBase::glSetFenceNVFn(GLuint fence, GLenum condition) {
  7055. driver_->fn.glSetFenceNVFn(fence, condition);
  7056. }
  7057. void GLApiBase::glShaderBinaryFn(GLsizei n,
  7058. const GLuint* shaders,
  7059. GLenum binaryformat,
  7060. const void* binary,
  7061. GLsizei length) {
  7062. driver_->fn.glShaderBinaryFn(n, shaders, binaryformat, binary, length);
  7063. }
  7064. void GLApiBase::glShaderSourceFn(GLuint shader,
  7065. GLsizei count,
  7066. const char* const* str,
  7067. const GLint* length) {
  7068. driver_->fn.glShaderSourceFn(shader, count, str, length);
  7069. }
  7070. void GLApiBase::glStencilFillPathInstancedNVFn(GLsizei numPaths,
  7071. GLenum pathNameType,
  7072. const void* paths,
  7073. GLuint pathBase,
  7074. GLenum fillMode,
  7075. GLuint mask,
  7076. GLenum transformType,
  7077. const GLfloat* transformValues) {
  7078. driver_->fn.glStencilFillPathInstancedNVFn(numPaths, pathNameType, paths,
  7079. pathBase, fillMode, mask,
  7080. transformType, transformValues);
  7081. }
  7082. void GLApiBase::glStencilFillPathNVFn(GLuint path,
  7083. GLenum fillMode,
  7084. GLuint mask) {
  7085. driver_->fn.glStencilFillPathNVFn(path, fillMode, mask);
  7086. }
  7087. void GLApiBase::glStencilFuncFn(GLenum func, GLint ref, GLuint mask) {
  7088. driver_->fn.glStencilFuncFn(func, ref, mask);
  7089. }
  7090. void GLApiBase::glStencilFuncSeparateFn(GLenum face,
  7091. GLenum func,
  7092. GLint ref,
  7093. GLuint mask) {
  7094. driver_->fn.glStencilFuncSeparateFn(face, func, ref, mask);
  7095. }
  7096. void GLApiBase::glStencilMaskFn(GLuint mask) {
  7097. driver_->fn.glStencilMaskFn(mask);
  7098. }
  7099. void GLApiBase::glStencilMaskSeparateFn(GLenum face, GLuint mask) {
  7100. driver_->fn.glStencilMaskSeparateFn(face, mask);
  7101. }
  7102. void GLApiBase::glStencilOpFn(GLenum fail, GLenum zfail, GLenum zpass) {
  7103. driver_->fn.glStencilOpFn(fail, zfail, zpass);
  7104. }
  7105. void GLApiBase::glStencilOpSeparateFn(GLenum face,
  7106. GLenum fail,
  7107. GLenum zfail,
  7108. GLenum zpass) {
  7109. driver_->fn.glStencilOpSeparateFn(face, fail, zfail, zpass);
  7110. }
  7111. void GLApiBase::glStencilStrokePathInstancedNVFn(
  7112. GLsizei numPaths,
  7113. GLenum pathNameType,
  7114. const void* paths,
  7115. GLuint pathBase,
  7116. GLint ref,
  7117. GLuint mask,
  7118. GLenum transformType,
  7119. const GLfloat* transformValues) {
  7120. driver_->fn.glStencilStrokePathInstancedNVFn(numPaths, pathNameType, paths,
  7121. pathBase, ref, mask,
  7122. transformType, transformValues);
  7123. }
  7124. void GLApiBase::glStencilStrokePathNVFn(GLuint path,
  7125. GLint reference,
  7126. GLuint mask) {
  7127. driver_->fn.glStencilStrokePathNVFn(path, reference, mask);
  7128. }
  7129. void GLApiBase::glStencilThenCoverFillPathInstancedNVFn(
  7130. GLsizei numPaths,
  7131. GLenum pathNameType,
  7132. const void* paths,
  7133. GLuint pathBase,
  7134. GLenum fillMode,
  7135. GLuint mask,
  7136. GLenum coverMode,
  7137. GLenum transformType,
  7138. const GLfloat* transformValues) {
  7139. driver_->fn.glStencilThenCoverFillPathInstancedNVFn(
  7140. numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode,
  7141. transformType, transformValues);
  7142. }
  7143. void GLApiBase::glStencilThenCoverFillPathNVFn(GLuint path,
  7144. GLenum fillMode,
  7145. GLuint mask,
  7146. GLenum coverMode) {
  7147. driver_->fn.glStencilThenCoverFillPathNVFn(path, fillMode, mask, coverMode);
  7148. }
  7149. void GLApiBase::glStencilThenCoverStrokePathInstancedNVFn(
  7150. GLsizei numPaths,
  7151. GLenum pathNameType,
  7152. const void* paths,
  7153. GLuint pathBase,
  7154. GLint ref,
  7155. GLuint mask,
  7156. GLenum coverMode,
  7157. GLenum transformType,
  7158. const GLfloat* transformValues) {
  7159. driver_->fn.glStencilThenCoverStrokePathInstancedNVFn(
  7160. numPaths, pathNameType, paths, pathBase, ref, mask, coverMode,
  7161. transformType, transformValues);
  7162. }
  7163. void GLApiBase::glStencilThenCoverStrokePathNVFn(GLuint path,
  7164. GLint reference,
  7165. GLuint mask,
  7166. GLenum coverMode) {
  7167. driver_->fn.glStencilThenCoverStrokePathNVFn(path, reference, mask,
  7168. coverMode);
  7169. }
  7170. GLboolean GLApiBase::glTestFenceAPPLEFn(GLuint fence) {
  7171. return driver_->fn.glTestFenceAPPLEFn(fence);
  7172. }
  7173. GLboolean GLApiBase::glTestFenceNVFn(GLuint fence) {
  7174. return driver_->fn.glTestFenceNVFn(fence);
  7175. }
  7176. void GLApiBase::glTexImage2DFn(GLenum target,
  7177. GLint level,
  7178. GLint internalformat,
  7179. GLsizei width,
  7180. GLsizei height,
  7181. GLint border,
  7182. GLenum format,
  7183. GLenum type,
  7184. const void* pixels) {
  7185. driver_->fn.glTexImage2DFn(target, level, internalformat, width, height,
  7186. border, format, type, pixels);
  7187. }
  7188. void GLApiBase::glTexImage3DFn(GLenum target,
  7189. GLint level,
  7190. GLint internalformat,
  7191. GLsizei width,
  7192. GLsizei height,
  7193. GLsizei depth,
  7194. GLint border,
  7195. GLenum format,
  7196. GLenum type,
  7197. const void* pixels) {
  7198. driver_->fn.glTexImage3DFn(target, level, internalformat, width, height,
  7199. depth, border, format, type, pixels);
  7200. }
  7201. void GLApiBase::glTexParameterfFn(GLenum target, GLenum pname, GLfloat param) {
  7202. driver_->fn.glTexParameterfFn(target, pname, param);
  7203. }
  7204. void GLApiBase::glTexParameterfvFn(GLenum target,
  7205. GLenum pname,
  7206. const GLfloat* params) {
  7207. driver_->fn.glTexParameterfvFn(target, pname, params);
  7208. }
  7209. void GLApiBase::glTexParameteriFn(GLenum target, GLenum pname, GLint param) {
  7210. driver_->fn.glTexParameteriFn(target, pname, param);
  7211. }
  7212. void GLApiBase::glTexParameterivFn(GLenum target,
  7213. GLenum pname,
  7214. const GLint* params) {
  7215. driver_->fn.glTexParameterivFn(target, pname, params);
  7216. }
  7217. void GLApiBase::glTexStorage2DEXTFn(GLenum target,
  7218. GLsizei levels,
  7219. GLenum internalformat,
  7220. GLsizei width,
  7221. GLsizei height) {
  7222. driver_->fn.glTexStorage2DEXTFn(target, levels, internalformat, width,
  7223. height);
  7224. }
  7225. void GLApiBase::glTexStorage3DFn(GLenum target,
  7226. GLsizei levels,
  7227. GLenum internalformat,
  7228. GLsizei width,
  7229. GLsizei height,
  7230. GLsizei depth) {
  7231. driver_->fn.glTexStorage3DFn(target, levels, internalformat, width, height,
  7232. depth);
  7233. }
  7234. void GLApiBase::glTexSubImage2DFn(GLenum target,
  7235. GLint level,
  7236. GLint xoffset,
  7237. GLint yoffset,
  7238. GLsizei width,
  7239. GLsizei height,
  7240. GLenum format,
  7241. GLenum type,
  7242. const void* pixels) {
  7243. driver_->fn.glTexSubImage2DFn(target, level, xoffset, yoffset, width, height,
  7244. format, type, pixels);
  7245. }
  7246. void GLApiBase::glTexSubImage3DFn(GLenum target,
  7247. GLint level,
  7248. GLint xoffset,
  7249. GLint yoffset,
  7250. GLint zoffset,
  7251. GLsizei width,
  7252. GLsizei height,
  7253. GLsizei depth,
  7254. GLenum format,
  7255. GLenum type,
  7256. const void* pixels) {
  7257. driver_->fn.glTexSubImage3DFn(target, level, xoffset, yoffset, zoffset, width,
  7258. height, depth, format, type, pixels);
  7259. }
  7260. void GLApiBase::glTransformFeedbackVaryingsFn(GLuint program,
  7261. GLsizei count,
  7262. const char* const* varyings,
  7263. GLenum bufferMode) {
  7264. driver_->fn.glTransformFeedbackVaryingsFn(program, count, varyings,
  7265. bufferMode);
  7266. }
  7267. void GLApiBase::glUniform1fFn(GLint location, GLfloat x) {
  7268. driver_->fn.glUniform1fFn(location, x);
  7269. }
  7270. void GLApiBase::glUniform1fvFn(GLint location,
  7271. GLsizei count,
  7272. const GLfloat* v) {
  7273. driver_->fn.glUniform1fvFn(location, count, v);
  7274. }
  7275. void GLApiBase::glUniform1iFn(GLint location, GLint x) {
  7276. driver_->fn.glUniform1iFn(location, x);
  7277. }
  7278. void GLApiBase::glUniform1ivFn(GLint location, GLsizei count, const GLint* v) {
  7279. driver_->fn.glUniform1ivFn(location, count, v);
  7280. }
  7281. void GLApiBase::glUniform1uiFn(GLint location, GLuint v0) {
  7282. driver_->fn.glUniform1uiFn(location, v0);
  7283. }
  7284. void GLApiBase::glUniform1uivFn(GLint location,
  7285. GLsizei count,
  7286. const GLuint* v) {
  7287. driver_->fn.glUniform1uivFn(location, count, v);
  7288. }
  7289. void GLApiBase::glUniform2fFn(GLint location, GLfloat x, GLfloat y) {
  7290. driver_->fn.glUniform2fFn(location, x, y);
  7291. }
  7292. void GLApiBase::glUniform2fvFn(GLint location,
  7293. GLsizei count,
  7294. const GLfloat* v) {
  7295. driver_->fn.glUniform2fvFn(location, count, v);
  7296. }
  7297. void GLApiBase::glUniform2iFn(GLint location, GLint x, GLint y) {
  7298. driver_->fn.glUniform2iFn(location, x, y);
  7299. }
  7300. void GLApiBase::glUniform2ivFn(GLint location, GLsizei count, const GLint* v) {
  7301. driver_->fn.glUniform2ivFn(location, count, v);
  7302. }
  7303. void GLApiBase::glUniform2uiFn(GLint location, GLuint v0, GLuint v1) {
  7304. driver_->fn.glUniform2uiFn(location, v0, v1);
  7305. }
  7306. void GLApiBase::glUniform2uivFn(GLint location,
  7307. GLsizei count,
  7308. const GLuint* v) {
  7309. driver_->fn.glUniform2uivFn(location, count, v);
  7310. }
  7311. void GLApiBase::glUniform3fFn(GLint location, GLfloat x, GLfloat y, GLfloat z) {
  7312. driver_->fn.glUniform3fFn(location, x, y, z);
  7313. }
  7314. void GLApiBase::glUniform3fvFn(GLint location,
  7315. GLsizei count,
  7316. const GLfloat* v) {
  7317. driver_->fn.glUniform3fvFn(location, count, v);
  7318. }
  7319. void GLApiBase::glUniform3iFn(GLint location, GLint x, GLint y, GLint z) {
  7320. driver_->fn.glUniform3iFn(location, x, y, z);
  7321. }
  7322. void GLApiBase::glUniform3ivFn(GLint location, GLsizei count, const GLint* v) {
  7323. driver_->fn.glUniform3ivFn(location, count, v);
  7324. }
  7325. void GLApiBase::glUniform3uiFn(GLint location,
  7326. GLuint v0,
  7327. GLuint v1,
  7328. GLuint v2) {
  7329. driver_->fn.glUniform3uiFn(location, v0, v1, v2);
  7330. }
  7331. void GLApiBase::glUniform3uivFn(GLint location,
  7332. GLsizei count,
  7333. const GLuint* v) {
  7334. driver_->fn.glUniform3uivFn(location, count, v);
  7335. }
  7336. void GLApiBase::glUniform4fFn(GLint location,
  7337. GLfloat x,
  7338. GLfloat y,
  7339. GLfloat z,
  7340. GLfloat w) {
  7341. driver_->fn.glUniform4fFn(location, x, y, z, w);
  7342. }
  7343. void GLApiBase::glUniform4fvFn(GLint location,
  7344. GLsizei count,
  7345. const GLfloat* v) {
  7346. driver_->fn.glUniform4fvFn(location, count, v);
  7347. }
  7348. void GLApiBase::glUniform4iFn(GLint location,
  7349. GLint x,
  7350. GLint y,
  7351. GLint z,
  7352. GLint w) {
  7353. driver_->fn.glUniform4iFn(location, x, y, z, w);
  7354. }
  7355. void GLApiBase::glUniform4ivFn(GLint location, GLsizei count, const GLint* v) {
  7356. driver_->fn.glUniform4ivFn(location, count, v);
  7357. }
  7358. void GLApiBase::glUniform4uiFn(GLint location,
  7359. GLuint v0,
  7360. GLuint v1,
  7361. GLuint v2,
  7362. GLuint v3) {
  7363. driver_->fn.glUniform4uiFn(location, v0, v1, v2, v3);
  7364. }
  7365. void GLApiBase::glUniform4uivFn(GLint location,
  7366. GLsizei count,
  7367. const GLuint* v) {
  7368. driver_->fn.glUniform4uivFn(location, count, v);
  7369. }
  7370. void GLApiBase::glUniformBlockBindingFn(GLuint program,
  7371. GLuint uniformBlockIndex,
  7372. GLuint uniformBlockBinding) {
  7373. driver_->fn.glUniformBlockBindingFn(program, uniformBlockIndex,
  7374. uniformBlockBinding);
  7375. }
  7376. void GLApiBase::glUniformMatrix2fvFn(GLint location,
  7377. GLsizei count,
  7378. GLboolean transpose,
  7379. const GLfloat* value) {
  7380. driver_->fn.glUniformMatrix2fvFn(location, count, transpose, value);
  7381. }
  7382. void GLApiBase::glUniformMatrix2x3fvFn(GLint location,
  7383. GLsizei count,
  7384. GLboolean transpose,
  7385. const GLfloat* value) {
  7386. driver_->fn.glUniformMatrix2x3fvFn(location, count, transpose, value);
  7387. }
  7388. void GLApiBase::glUniformMatrix2x4fvFn(GLint location,
  7389. GLsizei count,
  7390. GLboolean transpose,
  7391. const GLfloat* value) {
  7392. driver_->fn.glUniformMatrix2x4fvFn(location, count, transpose, value);
  7393. }
  7394. void GLApiBase::glUniformMatrix3fvFn(GLint location,
  7395. GLsizei count,
  7396. GLboolean transpose,
  7397. const GLfloat* value) {
  7398. driver_->fn.glUniformMatrix3fvFn(location, count, transpose, value);
  7399. }
  7400. void GLApiBase::glUniformMatrix3x2fvFn(GLint location,
  7401. GLsizei count,
  7402. GLboolean transpose,
  7403. const GLfloat* value) {
  7404. driver_->fn.glUniformMatrix3x2fvFn(location, count, transpose, value);
  7405. }
  7406. void GLApiBase::glUniformMatrix3x4fvFn(GLint location,
  7407. GLsizei count,
  7408. GLboolean transpose,
  7409. const GLfloat* value) {
  7410. driver_->fn.glUniformMatrix3x4fvFn(location, count, transpose, value);
  7411. }
  7412. void GLApiBase::glUniformMatrix4fvFn(GLint location,
  7413. GLsizei count,
  7414. GLboolean transpose,
  7415. const GLfloat* value) {
  7416. driver_->fn.glUniformMatrix4fvFn(location, count, transpose, value);
  7417. }
  7418. void GLApiBase::glUniformMatrix4x2fvFn(GLint location,
  7419. GLsizei count,
  7420. GLboolean transpose,
  7421. const GLfloat* value) {
  7422. driver_->fn.glUniformMatrix4x2fvFn(location, count, transpose, value);
  7423. }
  7424. void GLApiBase::glUniformMatrix4x3fvFn(GLint location,
  7425. GLsizei count,
  7426. GLboolean transpose,
  7427. const GLfloat* value) {
  7428. driver_->fn.glUniformMatrix4x3fvFn(location, count, transpose, value);
  7429. }
  7430. GLboolean GLApiBase::glUnmapBufferFn(GLenum target) {
  7431. return driver_->fn.glUnmapBufferFn(target);
  7432. }
  7433. void GLApiBase::glUseProgramFn(GLuint program) {
  7434. driver_->fn.glUseProgramFn(program);
  7435. }
  7436. void GLApiBase::glValidateProgramFn(GLuint program) {
  7437. driver_->fn.glValidateProgramFn(program);
  7438. }
  7439. void GLApiBase::glVertexAttrib1fFn(GLuint indx, GLfloat x) {
  7440. driver_->fn.glVertexAttrib1fFn(indx, x);
  7441. }
  7442. void GLApiBase::glVertexAttrib1fvFn(GLuint indx, const GLfloat* values) {
  7443. driver_->fn.glVertexAttrib1fvFn(indx, values);
  7444. }
  7445. void GLApiBase::glVertexAttrib2fFn(GLuint indx, GLfloat x, GLfloat y) {
  7446. driver_->fn.glVertexAttrib2fFn(indx, x, y);
  7447. }
  7448. void GLApiBase::glVertexAttrib2fvFn(GLuint indx, const GLfloat* values) {
  7449. driver_->fn.glVertexAttrib2fvFn(indx, values);
  7450. }
  7451. void GLApiBase::glVertexAttrib3fFn(GLuint indx,
  7452. GLfloat x,
  7453. GLfloat y,
  7454. GLfloat z) {
  7455. driver_->fn.glVertexAttrib3fFn(indx, x, y, z);
  7456. }
  7457. void GLApiBase::glVertexAttrib3fvFn(GLuint indx, const GLfloat* values) {
  7458. driver_->fn.glVertexAttrib3fvFn(indx, values);
  7459. }
  7460. void GLApiBase::glVertexAttrib4fFn(GLuint indx,
  7461. GLfloat x,
  7462. GLfloat y,
  7463. GLfloat z,
  7464. GLfloat w) {
  7465. driver_->fn.glVertexAttrib4fFn(indx, x, y, z, w);
  7466. }
  7467. void GLApiBase::glVertexAttrib4fvFn(GLuint indx, const GLfloat* values) {
  7468. driver_->fn.glVertexAttrib4fvFn(indx, values);
  7469. }
  7470. void GLApiBase::glVertexAttribDivisorANGLEFn(GLuint index, GLuint divisor) {
  7471. driver_->fn.glVertexAttribDivisorANGLEFn(index, divisor);
  7472. }
  7473. void GLApiBase::glVertexAttribI4iFn(GLuint indx,
  7474. GLint x,
  7475. GLint y,
  7476. GLint z,
  7477. GLint w) {
  7478. driver_->fn.glVertexAttribI4iFn(indx, x, y, z, w);
  7479. }
  7480. void GLApiBase::glVertexAttribI4ivFn(GLuint indx, const GLint* values) {
  7481. driver_->fn.glVertexAttribI4ivFn(indx, values);
  7482. }
  7483. void GLApiBase::glVertexAttribI4uiFn(GLuint indx,
  7484. GLuint x,
  7485. GLuint y,
  7486. GLuint z,
  7487. GLuint w) {
  7488. driver_->fn.glVertexAttribI4uiFn(indx, x, y, z, w);
  7489. }
  7490. void GLApiBase::glVertexAttribI4uivFn(GLuint indx, const GLuint* values) {
  7491. driver_->fn.glVertexAttribI4uivFn(indx, values);
  7492. }
  7493. void GLApiBase::glVertexAttribIPointerFn(GLuint indx,
  7494. GLint size,
  7495. GLenum type,
  7496. GLsizei stride,
  7497. const void* ptr) {
  7498. driver_->fn.glVertexAttribIPointerFn(indx, size, type, stride, ptr);
  7499. }
  7500. void GLApiBase::glVertexAttribPointerFn(GLuint indx,
  7501. GLint size,
  7502. GLenum type,
  7503. GLboolean normalized,
  7504. GLsizei stride,
  7505. const void* ptr) {
  7506. driver_->fn.glVertexAttribPointerFn(indx, size, type, normalized, stride,
  7507. ptr);
  7508. }
  7509. void GLApiBase::glViewportFn(GLint x, GLint y, GLsizei width, GLsizei height) {
  7510. driver_->fn.glViewportFn(x, y, width, height);
  7511. }
  7512. GLenum GLApiBase::glWaitSyncFn(GLsync sync,
  7513. GLbitfield flags,
  7514. GLuint64 timeout) {
  7515. return driver_->fn.glWaitSyncFn(sync, flags, timeout);
  7516. }
  7517. void TraceGLApi::glActiveTextureFn(GLenum texture) {
  7518. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glActiveTexture")
  7519. gl_api_->glActiveTextureFn(texture);
  7520. }
  7521. void TraceGLApi::glApplyFramebufferAttachmentCMAAINTELFn(void) {
  7522. TRACE_EVENT_BINARY_EFFICIENT0(
  7523. "gpu", "TraceGLAPI::glApplyFramebufferAttachmentCMAAINTEL")
  7524. gl_api_->glApplyFramebufferAttachmentCMAAINTELFn();
  7525. }
  7526. void TraceGLApi::glAttachShaderFn(GLuint program, GLuint shader) {
  7527. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glAttachShader")
  7528. gl_api_->glAttachShaderFn(program, shader);
  7529. }
  7530. void TraceGLApi::glBeginQueryFn(GLenum target, GLuint id) {
  7531. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBeginQuery")
  7532. gl_api_->glBeginQueryFn(target, id);
  7533. }
  7534. void TraceGLApi::glBeginTransformFeedbackFn(GLenum primitiveMode) {
  7535. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBeginTransformFeedback")
  7536. gl_api_->glBeginTransformFeedbackFn(primitiveMode);
  7537. }
  7538. void TraceGLApi::glBindAttribLocationFn(GLuint program,
  7539. GLuint index,
  7540. const char* name) {
  7541. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindAttribLocation")
  7542. gl_api_->glBindAttribLocationFn(program, index, name);
  7543. }
  7544. void TraceGLApi::glBindBufferFn(GLenum target, GLuint buffer) {
  7545. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindBuffer")
  7546. gl_api_->glBindBufferFn(target, buffer);
  7547. }
  7548. void TraceGLApi::glBindBufferBaseFn(GLenum target,
  7549. GLuint index,
  7550. GLuint buffer) {
  7551. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindBufferBase")
  7552. gl_api_->glBindBufferBaseFn(target, index, buffer);
  7553. }
  7554. void TraceGLApi::glBindBufferRangeFn(GLenum target,
  7555. GLuint index,
  7556. GLuint buffer,
  7557. GLintptr offset,
  7558. GLsizeiptr size) {
  7559. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindBufferRange")
  7560. gl_api_->glBindBufferRangeFn(target, index, buffer, offset, size);
  7561. }
  7562. void TraceGLApi::glBindFragDataLocationFn(GLuint program,
  7563. GLuint colorNumber,
  7564. const char* name) {
  7565. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindFragDataLocation")
  7566. gl_api_->glBindFragDataLocationFn(program, colorNumber, name);
  7567. }
  7568. void TraceGLApi::glBindFragDataLocationIndexedFn(GLuint program,
  7569. GLuint colorNumber,
  7570. GLuint index,
  7571. const char* name) {
  7572. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  7573. "TraceGLAPI::glBindFragDataLocationIndexed")
  7574. gl_api_->glBindFragDataLocationIndexedFn(program, colorNumber, index, name);
  7575. }
  7576. void TraceGLApi::glBindFramebufferEXTFn(GLenum target, GLuint framebuffer) {
  7577. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindFramebufferEXT")
  7578. gl_api_->glBindFramebufferEXTFn(target, framebuffer);
  7579. }
  7580. void TraceGLApi::glBindImageTextureEXTFn(GLuint index,
  7581. GLuint texture,
  7582. GLint level,
  7583. GLboolean layered,
  7584. GLint layer,
  7585. GLenum access,
  7586. GLint format) {
  7587. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindImageTextureEXT")
  7588. gl_api_->glBindImageTextureEXTFn(index, texture, level, layered, layer,
  7589. access, format);
  7590. }
  7591. void TraceGLApi::glBindRenderbufferEXTFn(GLenum target, GLuint renderbuffer) {
  7592. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindRenderbufferEXT")
  7593. gl_api_->glBindRenderbufferEXTFn(target, renderbuffer);
  7594. }
  7595. void TraceGLApi::glBindSamplerFn(GLuint unit, GLuint sampler) {
  7596. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindSampler")
  7597. gl_api_->glBindSamplerFn(unit, sampler);
  7598. }
  7599. void TraceGLApi::glBindTextureFn(GLenum target, GLuint texture) {
  7600. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindTexture")
  7601. gl_api_->glBindTextureFn(target, texture);
  7602. }
  7603. void TraceGLApi::glBindTransformFeedbackFn(GLenum target, GLuint id) {
  7604. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindTransformFeedback")
  7605. gl_api_->glBindTransformFeedbackFn(target, id);
  7606. }
  7607. void TraceGLApi::glBindVertexArrayOESFn(GLuint array) {
  7608. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBindVertexArrayOES")
  7609. gl_api_->glBindVertexArrayOESFn(array);
  7610. }
  7611. void TraceGLApi::glBlendBarrierKHRFn(void) {
  7612. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlendBarrierKHR")
  7613. gl_api_->glBlendBarrierKHRFn();
  7614. }
  7615. void TraceGLApi::glBlendColorFn(GLclampf red,
  7616. GLclampf green,
  7617. GLclampf blue,
  7618. GLclampf alpha) {
  7619. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlendColor")
  7620. gl_api_->glBlendColorFn(red, green, blue, alpha);
  7621. }
  7622. void TraceGLApi::glBlendEquationFn(GLenum mode) {
  7623. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlendEquation")
  7624. gl_api_->glBlendEquationFn(mode);
  7625. }
  7626. void TraceGLApi::glBlendEquationSeparateFn(GLenum modeRGB, GLenum modeAlpha) {
  7627. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlendEquationSeparate")
  7628. gl_api_->glBlendEquationSeparateFn(modeRGB, modeAlpha);
  7629. }
  7630. void TraceGLApi::glBlendFuncFn(GLenum sfactor, GLenum dfactor) {
  7631. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlendFunc")
  7632. gl_api_->glBlendFuncFn(sfactor, dfactor);
  7633. }
  7634. void TraceGLApi::glBlendFuncSeparateFn(GLenum srcRGB,
  7635. GLenum dstRGB,
  7636. GLenum srcAlpha,
  7637. GLenum dstAlpha) {
  7638. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlendFuncSeparate")
  7639. gl_api_->glBlendFuncSeparateFn(srcRGB, dstRGB, srcAlpha, dstAlpha);
  7640. }
  7641. void TraceGLApi::glBlitFramebufferFn(GLint srcX0,
  7642. GLint srcY0,
  7643. GLint srcX1,
  7644. GLint srcY1,
  7645. GLint dstX0,
  7646. GLint dstY0,
  7647. GLint dstX1,
  7648. GLint dstY1,
  7649. GLbitfield mask,
  7650. GLenum filter) {
  7651. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlitFramebuffer")
  7652. gl_api_->glBlitFramebufferFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1,
  7653. dstY1, mask, filter);
  7654. }
  7655. void TraceGLApi::glBlitFramebufferANGLEFn(GLint srcX0,
  7656. GLint srcY0,
  7657. GLint srcX1,
  7658. GLint srcY1,
  7659. GLint dstX0,
  7660. GLint dstY0,
  7661. GLint dstX1,
  7662. GLint dstY1,
  7663. GLbitfield mask,
  7664. GLenum filter) {
  7665. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlitFramebufferANGLE")
  7666. gl_api_->glBlitFramebufferANGLEFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
  7667. dstX1, dstY1, mask, filter);
  7668. }
  7669. void TraceGLApi::glBlitFramebufferEXTFn(GLint srcX0,
  7670. GLint srcY0,
  7671. GLint srcX1,
  7672. GLint srcY1,
  7673. GLint dstX0,
  7674. GLint dstY0,
  7675. GLint dstX1,
  7676. GLint dstY1,
  7677. GLbitfield mask,
  7678. GLenum filter) {
  7679. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBlitFramebufferEXT")
  7680. gl_api_->glBlitFramebufferEXTFn(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0,
  7681. dstX1, dstY1, mask, filter);
  7682. }
  7683. void TraceGLApi::glBufferDataFn(GLenum target,
  7684. GLsizeiptr size,
  7685. const void* data,
  7686. GLenum usage) {
  7687. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBufferData")
  7688. gl_api_->glBufferDataFn(target, size, data, usage);
  7689. }
  7690. void TraceGLApi::glBufferSubDataFn(GLenum target,
  7691. GLintptr offset,
  7692. GLsizeiptr size,
  7693. const void* data) {
  7694. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glBufferSubData")
  7695. gl_api_->glBufferSubDataFn(target, offset, size, data);
  7696. }
  7697. GLenum TraceGLApi::glCheckFramebufferStatusEXTFn(GLenum target) {
  7698. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  7699. "TraceGLAPI::glCheckFramebufferStatusEXT")
  7700. return gl_api_->glCheckFramebufferStatusEXTFn(target);
  7701. }
  7702. void TraceGLApi::glClearFn(GLbitfield mask) {
  7703. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClear")
  7704. gl_api_->glClearFn(mask);
  7705. }
  7706. void TraceGLApi::glClearBufferfiFn(GLenum buffer,
  7707. GLint drawbuffer,
  7708. const GLfloat depth,
  7709. GLint stencil) {
  7710. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClearBufferfi")
  7711. gl_api_->glClearBufferfiFn(buffer, drawbuffer, depth, stencil);
  7712. }
  7713. void TraceGLApi::glClearBufferfvFn(GLenum buffer,
  7714. GLint drawbuffer,
  7715. const GLfloat* value) {
  7716. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClearBufferfv")
  7717. gl_api_->glClearBufferfvFn(buffer, drawbuffer, value);
  7718. }
  7719. void TraceGLApi::glClearBufferivFn(GLenum buffer,
  7720. GLint drawbuffer,
  7721. const GLint* value) {
  7722. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClearBufferiv")
  7723. gl_api_->glClearBufferivFn(buffer, drawbuffer, value);
  7724. }
  7725. void TraceGLApi::glClearBufferuivFn(GLenum buffer,
  7726. GLint drawbuffer,
  7727. const GLuint* value) {
  7728. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClearBufferuiv")
  7729. gl_api_->glClearBufferuivFn(buffer, drawbuffer, value);
  7730. }
  7731. void TraceGLApi::glClearColorFn(GLclampf red,
  7732. GLclampf green,
  7733. GLclampf blue,
  7734. GLclampf alpha) {
  7735. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClearColor")
  7736. gl_api_->glClearColorFn(red, green, blue, alpha);
  7737. }
  7738. void TraceGLApi::glClearDepthFn(GLclampd depth) {
  7739. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClearDepth")
  7740. gl_api_->glClearDepthFn(depth);
  7741. }
  7742. void TraceGLApi::glClearDepthfFn(GLclampf depth) {
  7743. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClearDepthf")
  7744. gl_api_->glClearDepthfFn(depth);
  7745. }
  7746. void TraceGLApi::glClearStencilFn(GLint s) {
  7747. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClearStencil")
  7748. gl_api_->glClearStencilFn(s);
  7749. }
  7750. GLenum TraceGLApi::glClientWaitSyncFn(GLsync sync,
  7751. GLbitfield flags,
  7752. GLuint64 timeout) {
  7753. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glClientWaitSync")
  7754. return gl_api_->glClientWaitSyncFn(sync, flags, timeout);
  7755. }
  7756. void TraceGLApi::glColorMaskFn(GLboolean red,
  7757. GLboolean green,
  7758. GLboolean blue,
  7759. GLboolean alpha) {
  7760. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glColorMask")
  7761. gl_api_->glColorMaskFn(red, green, blue, alpha);
  7762. }
  7763. void TraceGLApi::glCompileShaderFn(GLuint shader) {
  7764. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCompileShader")
  7765. gl_api_->glCompileShaderFn(shader);
  7766. }
  7767. void TraceGLApi::glCompressedTexImage2DFn(GLenum target,
  7768. GLint level,
  7769. GLenum internalformat,
  7770. GLsizei width,
  7771. GLsizei height,
  7772. GLint border,
  7773. GLsizei imageSize,
  7774. const void* data) {
  7775. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCompressedTexImage2D")
  7776. gl_api_->glCompressedTexImage2DFn(target, level, internalformat, width,
  7777. height, border, imageSize, data);
  7778. }
  7779. void TraceGLApi::glCompressedTexImage3DFn(GLenum target,
  7780. GLint level,
  7781. GLenum internalformat,
  7782. GLsizei width,
  7783. GLsizei height,
  7784. GLsizei depth,
  7785. GLint border,
  7786. GLsizei imageSize,
  7787. const void* data) {
  7788. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCompressedTexImage3D")
  7789. gl_api_->glCompressedTexImage3DFn(target, level, internalformat, width,
  7790. height, depth, border, imageSize, data);
  7791. }
  7792. void TraceGLApi::glCompressedTexSubImage2DFn(GLenum target,
  7793. GLint level,
  7794. GLint xoffset,
  7795. GLint yoffset,
  7796. GLsizei width,
  7797. GLsizei height,
  7798. GLenum format,
  7799. GLsizei imageSize,
  7800. const void* data) {
  7801. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCompressedTexSubImage2D")
  7802. gl_api_->glCompressedTexSubImage2DFn(target, level, xoffset, yoffset, width,
  7803. height, format, imageSize, data);
  7804. }
  7805. void TraceGLApi::glCompressedTexSubImage3DFn(GLenum target,
  7806. GLint level,
  7807. GLint xoffset,
  7808. GLint yoffset,
  7809. GLint zoffset,
  7810. GLsizei width,
  7811. GLsizei height,
  7812. GLsizei depth,
  7813. GLenum format,
  7814. GLsizei imageSize,
  7815. const void* data) {
  7816. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCompressedTexSubImage3D")
  7817. gl_api_->glCompressedTexSubImage3DFn(target, level, xoffset, yoffset, zoffset,
  7818. width, height, depth, format, imageSize,
  7819. data);
  7820. }
  7821. void TraceGLApi::glCopyBufferSubDataFn(GLenum readTarget,
  7822. GLenum writeTarget,
  7823. GLintptr readOffset,
  7824. GLintptr writeOffset,
  7825. GLsizeiptr size) {
  7826. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCopyBufferSubData")
  7827. gl_api_->glCopyBufferSubDataFn(readTarget, writeTarget, readOffset,
  7828. writeOffset, size);
  7829. }
  7830. void TraceGLApi::glCopyTexImage2DFn(GLenum target,
  7831. GLint level,
  7832. GLenum internalformat,
  7833. GLint x,
  7834. GLint y,
  7835. GLsizei width,
  7836. GLsizei height,
  7837. GLint border) {
  7838. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCopyTexImage2D")
  7839. gl_api_->glCopyTexImage2DFn(target, level, internalformat, x, y, width,
  7840. height, border);
  7841. }
  7842. void TraceGLApi::glCopyTexSubImage2DFn(GLenum target,
  7843. GLint level,
  7844. GLint xoffset,
  7845. GLint yoffset,
  7846. GLint x,
  7847. GLint y,
  7848. GLsizei width,
  7849. GLsizei height) {
  7850. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCopyTexSubImage2D")
  7851. gl_api_->glCopyTexSubImage2DFn(target, level, xoffset, yoffset, x, y, width,
  7852. height);
  7853. }
  7854. void TraceGLApi::glCopyTexSubImage3DFn(GLenum target,
  7855. GLint level,
  7856. GLint xoffset,
  7857. GLint yoffset,
  7858. GLint zoffset,
  7859. GLint x,
  7860. GLint y,
  7861. GLsizei width,
  7862. GLsizei height) {
  7863. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCopyTexSubImage3D")
  7864. gl_api_->glCopyTexSubImage3DFn(target, level, xoffset, yoffset, zoffset, x, y,
  7865. width, height);
  7866. }
  7867. void TraceGLApi::glCoverageModulationNVFn(GLenum components) {
  7868. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCoverageModulationNV")
  7869. gl_api_->glCoverageModulationNVFn(components);
  7870. }
  7871. void TraceGLApi::glCoverFillPathInstancedNVFn(GLsizei numPaths,
  7872. GLenum pathNameType,
  7873. const void* paths,
  7874. GLuint pathBase,
  7875. GLenum coverMode,
  7876. GLenum transformType,
  7877. const GLfloat* transformValues) {
  7878. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCoverFillPathInstancedNV")
  7879. gl_api_->glCoverFillPathInstancedNVFn(numPaths, pathNameType, paths, pathBase,
  7880. coverMode, transformType,
  7881. transformValues);
  7882. }
  7883. void TraceGLApi::glCoverFillPathNVFn(GLuint path, GLenum coverMode) {
  7884. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCoverFillPathNV")
  7885. gl_api_->glCoverFillPathNVFn(path, coverMode);
  7886. }
  7887. void TraceGLApi::glCoverStrokePathInstancedNVFn(
  7888. GLsizei numPaths,
  7889. GLenum pathNameType,
  7890. const void* paths,
  7891. GLuint pathBase,
  7892. GLenum coverMode,
  7893. GLenum transformType,
  7894. const GLfloat* transformValues) {
  7895. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  7896. "TraceGLAPI::glCoverStrokePathInstancedNV")
  7897. gl_api_->glCoverStrokePathInstancedNVFn(numPaths, pathNameType, paths,
  7898. pathBase, coverMode, transformType,
  7899. transformValues);
  7900. }
  7901. void TraceGLApi::glCoverStrokePathNVFn(GLuint name, GLenum coverMode) {
  7902. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCoverStrokePathNV")
  7903. gl_api_->glCoverStrokePathNVFn(name, coverMode);
  7904. }
  7905. GLuint TraceGLApi::glCreateProgramFn(void) {
  7906. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCreateProgram")
  7907. return gl_api_->glCreateProgramFn();
  7908. }
  7909. GLuint TraceGLApi::glCreateShaderFn(GLenum type) {
  7910. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCreateShader")
  7911. return gl_api_->glCreateShaderFn(type);
  7912. }
  7913. void TraceGLApi::glCullFaceFn(GLenum mode) {
  7914. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glCullFace")
  7915. gl_api_->glCullFaceFn(mode);
  7916. }
  7917. void TraceGLApi::glDeleteBuffersARBFn(GLsizei n, const GLuint* buffers) {
  7918. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteBuffersARB")
  7919. gl_api_->glDeleteBuffersARBFn(n, buffers);
  7920. }
  7921. void TraceGLApi::glDeleteFencesAPPLEFn(GLsizei n, const GLuint* fences) {
  7922. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteFencesAPPLE")
  7923. gl_api_->glDeleteFencesAPPLEFn(n, fences);
  7924. }
  7925. void TraceGLApi::glDeleteFencesNVFn(GLsizei n, const GLuint* fences) {
  7926. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteFencesNV")
  7927. gl_api_->glDeleteFencesNVFn(n, fences);
  7928. }
  7929. void TraceGLApi::glDeleteFramebuffersEXTFn(GLsizei n,
  7930. const GLuint* framebuffers) {
  7931. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteFramebuffersEXT")
  7932. gl_api_->glDeleteFramebuffersEXTFn(n, framebuffers);
  7933. }
  7934. void TraceGLApi::glDeletePathsNVFn(GLuint path, GLsizei range) {
  7935. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeletePathsNV")
  7936. gl_api_->glDeletePathsNVFn(path, range);
  7937. }
  7938. void TraceGLApi::glDeleteProgramFn(GLuint program) {
  7939. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteProgram")
  7940. gl_api_->glDeleteProgramFn(program);
  7941. }
  7942. void TraceGLApi::glDeleteQueriesFn(GLsizei n, const GLuint* ids) {
  7943. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteQueries")
  7944. gl_api_->glDeleteQueriesFn(n, ids);
  7945. }
  7946. void TraceGLApi::glDeleteRenderbuffersEXTFn(GLsizei n,
  7947. const GLuint* renderbuffers) {
  7948. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteRenderbuffersEXT")
  7949. gl_api_->glDeleteRenderbuffersEXTFn(n, renderbuffers);
  7950. }
  7951. void TraceGLApi::glDeleteSamplersFn(GLsizei n, const GLuint* samplers) {
  7952. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteSamplers")
  7953. gl_api_->glDeleteSamplersFn(n, samplers);
  7954. }
  7955. void TraceGLApi::glDeleteShaderFn(GLuint shader) {
  7956. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteShader")
  7957. gl_api_->glDeleteShaderFn(shader);
  7958. }
  7959. void TraceGLApi::glDeleteSyncFn(GLsync sync) {
  7960. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteSync")
  7961. gl_api_->glDeleteSyncFn(sync);
  7962. }
  7963. void TraceGLApi::glDeleteTexturesFn(GLsizei n, const GLuint* textures) {
  7964. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteTextures")
  7965. gl_api_->glDeleteTexturesFn(n, textures);
  7966. }
  7967. void TraceGLApi::glDeleteTransformFeedbacksFn(GLsizei n, const GLuint* ids) {
  7968. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteTransformFeedbacks")
  7969. gl_api_->glDeleteTransformFeedbacksFn(n, ids);
  7970. }
  7971. void TraceGLApi::glDeleteVertexArraysOESFn(GLsizei n, const GLuint* arrays) {
  7972. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDeleteVertexArraysOES")
  7973. gl_api_->glDeleteVertexArraysOESFn(n, arrays);
  7974. }
  7975. void TraceGLApi::glDepthFuncFn(GLenum func) {
  7976. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDepthFunc")
  7977. gl_api_->glDepthFuncFn(func);
  7978. }
  7979. void TraceGLApi::glDepthMaskFn(GLboolean flag) {
  7980. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDepthMask")
  7981. gl_api_->glDepthMaskFn(flag);
  7982. }
  7983. void TraceGLApi::glDepthRangeFn(GLclampd zNear, GLclampd zFar) {
  7984. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDepthRange")
  7985. gl_api_->glDepthRangeFn(zNear, zFar);
  7986. }
  7987. void TraceGLApi::glDepthRangefFn(GLclampf zNear, GLclampf zFar) {
  7988. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDepthRangef")
  7989. gl_api_->glDepthRangefFn(zNear, zFar);
  7990. }
  7991. void TraceGLApi::glDetachShaderFn(GLuint program, GLuint shader) {
  7992. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDetachShader")
  7993. gl_api_->glDetachShaderFn(program, shader);
  7994. }
  7995. void TraceGLApi::glDisableFn(GLenum cap) {
  7996. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDisable")
  7997. gl_api_->glDisableFn(cap);
  7998. }
  7999. void TraceGLApi::glDisableVertexAttribArrayFn(GLuint index) {
  8000. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDisableVertexAttribArray")
  8001. gl_api_->glDisableVertexAttribArrayFn(index);
  8002. }
  8003. void TraceGLApi::glDiscardFramebufferEXTFn(GLenum target,
  8004. GLsizei numAttachments,
  8005. const GLenum* attachments) {
  8006. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDiscardFramebufferEXT")
  8007. gl_api_->glDiscardFramebufferEXTFn(target, numAttachments, attachments);
  8008. }
  8009. void TraceGLApi::glDrawArraysFn(GLenum mode, GLint first, GLsizei count) {
  8010. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDrawArrays")
  8011. gl_api_->glDrawArraysFn(mode, first, count);
  8012. }
  8013. void TraceGLApi::glDrawArraysInstancedANGLEFn(GLenum mode,
  8014. GLint first,
  8015. GLsizei count,
  8016. GLsizei primcount) {
  8017. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDrawArraysInstancedANGLE")
  8018. gl_api_->glDrawArraysInstancedANGLEFn(mode, first, count, primcount);
  8019. }
  8020. void TraceGLApi::glDrawBufferFn(GLenum mode) {
  8021. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDrawBuffer")
  8022. gl_api_->glDrawBufferFn(mode);
  8023. }
  8024. void TraceGLApi::glDrawBuffersARBFn(GLsizei n, const GLenum* bufs) {
  8025. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDrawBuffersARB")
  8026. gl_api_->glDrawBuffersARBFn(n, bufs);
  8027. }
  8028. void TraceGLApi::glDrawElementsFn(GLenum mode,
  8029. GLsizei count,
  8030. GLenum type,
  8031. const void* indices) {
  8032. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDrawElements")
  8033. gl_api_->glDrawElementsFn(mode, count, type, indices);
  8034. }
  8035. void TraceGLApi::glDrawElementsInstancedANGLEFn(GLenum mode,
  8036. GLsizei count,
  8037. GLenum type,
  8038. const void* indices,
  8039. GLsizei primcount) {
  8040. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8041. "TraceGLAPI::glDrawElementsInstancedANGLE")
  8042. gl_api_->glDrawElementsInstancedANGLEFn(mode, count, type, indices,
  8043. primcount);
  8044. }
  8045. void TraceGLApi::glDrawRangeElementsFn(GLenum mode,
  8046. GLuint start,
  8047. GLuint end,
  8048. GLsizei count,
  8049. GLenum type,
  8050. const void* indices) {
  8051. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glDrawRangeElements")
  8052. gl_api_->glDrawRangeElementsFn(mode, start, end, count, type, indices);
  8053. }
  8054. void TraceGLApi::glEGLImageTargetRenderbufferStorageOESFn(GLenum target,
  8055. GLeglImageOES image) {
  8056. TRACE_EVENT_BINARY_EFFICIENT0(
  8057. "gpu", "TraceGLAPI::glEGLImageTargetRenderbufferStorageOES")
  8058. gl_api_->glEGLImageTargetRenderbufferStorageOESFn(target, image);
  8059. }
  8060. void TraceGLApi::glEGLImageTargetTexture2DOESFn(GLenum target,
  8061. GLeglImageOES image) {
  8062. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8063. "TraceGLAPI::glEGLImageTargetTexture2DOES")
  8064. gl_api_->glEGLImageTargetTexture2DOESFn(target, image);
  8065. }
  8066. void TraceGLApi::glEnableFn(GLenum cap) {
  8067. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glEnable")
  8068. gl_api_->glEnableFn(cap);
  8069. }
  8070. void TraceGLApi::glEnableVertexAttribArrayFn(GLuint index) {
  8071. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glEnableVertexAttribArray")
  8072. gl_api_->glEnableVertexAttribArrayFn(index);
  8073. }
  8074. void TraceGLApi::glEndQueryFn(GLenum target) {
  8075. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glEndQuery")
  8076. gl_api_->glEndQueryFn(target);
  8077. }
  8078. void TraceGLApi::glEndTransformFeedbackFn(void) {
  8079. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glEndTransformFeedback")
  8080. gl_api_->glEndTransformFeedbackFn();
  8081. }
  8082. GLsync TraceGLApi::glFenceSyncFn(GLenum condition, GLbitfield flags) {
  8083. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFenceSync")
  8084. return gl_api_->glFenceSyncFn(condition, flags);
  8085. }
  8086. void TraceGLApi::glFinishFn(void) {
  8087. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFinish")
  8088. gl_api_->glFinishFn();
  8089. }
  8090. void TraceGLApi::glFinishFenceAPPLEFn(GLuint fence) {
  8091. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFinishFenceAPPLE")
  8092. gl_api_->glFinishFenceAPPLEFn(fence);
  8093. }
  8094. void TraceGLApi::glFinishFenceNVFn(GLuint fence) {
  8095. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFinishFenceNV")
  8096. gl_api_->glFinishFenceNVFn(fence);
  8097. }
  8098. void TraceGLApi::glFlushFn(void) {
  8099. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFlush")
  8100. gl_api_->glFlushFn();
  8101. }
  8102. void TraceGLApi::glFlushMappedBufferRangeFn(GLenum target,
  8103. GLintptr offset,
  8104. GLsizeiptr length) {
  8105. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFlushMappedBufferRange")
  8106. gl_api_->glFlushMappedBufferRangeFn(target, offset, length);
  8107. }
  8108. void TraceGLApi::glFramebufferRenderbufferEXTFn(GLenum target,
  8109. GLenum attachment,
  8110. GLenum renderbuffertarget,
  8111. GLuint renderbuffer) {
  8112. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8113. "TraceGLAPI::glFramebufferRenderbufferEXT")
  8114. gl_api_->glFramebufferRenderbufferEXTFn(target, attachment,
  8115. renderbuffertarget, renderbuffer);
  8116. }
  8117. void TraceGLApi::glFramebufferTexture2DEXTFn(GLenum target,
  8118. GLenum attachment,
  8119. GLenum textarget,
  8120. GLuint texture,
  8121. GLint level) {
  8122. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFramebufferTexture2DEXT")
  8123. gl_api_->glFramebufferTexture2DEXTFn(target, attachment, textarget, texture,
  8124. level);
  8125. }
  8126. void TraceGLApi::glFramebufferTexture2DMultisampleEXTFn(GLenum target,
  8127. GLenum attachment,
  8128. GLenum textarget,
  8129. GLuint texture,
  8130. GLint level,
  8131. GLsizei samples) {
  8132. TRACE_EVENT_BINARY_EFFICIENT0(
  8133. "gpu", "TraceGLAPI::glFramebufferTexture2DMultisampleEXT")
  8134. gl_api_->glFramebufferTexture2DMultisampleEXTFn(target, attachment, textarget,
  8135. texture, level, samples);
  8136. }
  8137. void TraceGLApi::glFramebufferTexture2DMultisampleIMGFn(GLenum target,
  8138. GLenum attachment,
  8139. GLenum textarget,
  8140. GLuint texture,
  8141. GLint level,
  8142. GLsizei samples) {
  8143. TRACE_EVENT_BINARY_EFFICIENT0(
  8144. "gpu", "TraceGLAPI::glFramebufferTexture2DMultisampleIMG")
  8145. gl_api_->glFramebufferTexture2DMultisampleIMGFn(target, attachment, textarget,
  8146. texture, level, samples);
  8147. }
  8148. void TraceGLApi::glFramebufferTextureLayerFn(GLenum target,
  8149. GLenum attachment,
  8150. GLuint texture,
  8151. GLint level,
  8152. GLint layer) {
  8153. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFramebufferTextureLayer")
  8154. gl_api_->glFramebufferTextureLayerFn(target, attachment, texture, level,
  8155. layer);
  8156. }
  8157. void TraceGLApi::glFrontFaceFn(GLenum mode) {
  8158. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glFrontFace")
  8159. gl_api_->glFrontFaceFn(mode);
  8160. }
  8161. void TraceGLApi::glGenBuffersARBFn(GLsizei n, GLuint* buffers) {
  8162. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenBuffersARB")
  8163. gl_api_->glGenBuffersARBFn(n, buffers);
  8164. }
  8165. void TraceGLApi::glGenerateMipmapEXTFn(GLenum target) {
  8166. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenerateMipmapEXT")
  8167. gl_api_->glGenerateMipmapEXTFn(target);
  8168. }
  8169. void TraceGLApi::glGenFencesAPPLEFn(GLsizei n, GLuint* fences) {
  8170. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenFencesAPPLE")
  8171. gl_api_->glGenFencesAPPLEFn(n, fences);
  8172. }
  8173. void TraceGLApi::glGenFencesNVFn(GLsizei n, GLuint* fences) {
  8174. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenFencesNV")
  8175. gl_api_->glGenFencesNVFn(n, fences);
  8176. }
  8177. void TraceGLApi::glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) {
  8178. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenFramebuffersEXT")
  8179. gl_api_->glGenFramebuffersEXTFn(n, framebuffers);
  8180. }
  8181. GLuint TraceGLApi::glGenPathsNVFn(GLsizei range) {
  8182. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenPathsNV")
  8183. return gl_api_->glGenPathsNVFn(range);
  8184. }
  8185. void TraceGLApi::glGenQueriesFn(GLsizei n, GLuint* ids) {
  8186. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenQueries")
  8187. gl_api_->glGenQueriesFn(n, ids);
  8188. }
  8189. void TraceGLApi::glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) {
  8190. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenRenderbuffersEXT")
  8191. gl_api_->glGenRenderbuffersEXTFn(n, renderbuffers);
  8192. }
  8193. void TraceGLApi::glGenSamplersFn(GLsizei n, GLuint* samplers) {
  8194. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenSamplers")
  8195. gl_api_->glGenSamplersFn(n, samplers);
  8196. }
  8197. void TraceGLApi::glGenTexturesFn(GLsizei n, GLuint* textures) {
  8198. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenTextures")
  8199. gl_api_->glGenTexturesFn(n, textures);
  8200. }
  8201. void TraceGLApi::glGenTransformFeedbacksFn(GLsizei n, GLuint* ids) {
  8202. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenTransformFeedbacks")
  8203. gl_api_->glGenTransformFeedbacksFn(n, ids);
  8204. }
  8205. void TraceGLApi::glGenVertexArraysOESFn(GLsizei n, GLuint* arrays) {
  8206. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGenVertexArraysOES")
  8207. gl_api_->glGenVertexArraysOESFn(n, arrays);
  8208. }
  8209. void TraceGLApi::glGetActiveAttribFn(GLuint program,
  8210. GLuint index,
  8211. GLsizei bufsize,
  8212. GLsizei* length,
  8213. GLint* size,
  8214. GLenum* type,
  8215. char* name) {
  8216. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetActiveAttrib")
  8217. gl_api_->glGetActiveAttribFn(program, index, bufsize, length, size, type,
  8218. name);
  8219. }
  8220. void TraceGLApi::glGetActiveUniformFn(GLuint program,
  8221. GLuint index,
  8222. GLsizei bufsize,
  8223. GLsizei* length,
  8224. GLint* size,
  8225. GLenum* type,
  8226. char* name) {
  8227. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetActiveUniform")
  8228. gl_api_->glGetActiveUniformFn(program, index, bufsize, length, size, type,
  8229. name);
  8230. }
  8231. void TraceGLApi::glGetActiveUniformBlockivFn(GLuint program,
  8232. GLuint uniformBlockIndex,
  8233. GLenum pname,
  8234. GLint* params) {
  8235. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetActiveUniformBlockiv")
  8236. gl_api_->glGetActiveUniformBlockivFn(program, uniformBlockIndex, pname,
  8237. params);
  8238. }
  8239. void TraceGLApi::glGetActiveUniformBlockNameFn(GLuint program,
  8240. GLuint uniformBlockIndex,
  8241. GLsizei bufSize,
  8242. GLsizei* length,
  8243. char* uniformBlockName) {
  8244. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8245. "TraceGLAPI::glGetActiveUniformBlockName")
  8246. gl_api_->glGetActiveUniformBlockNameFn(program, uniformBlockIndex, bufSize,
  8247. length, uniformBlockName);
  8248. }
  8249. void TraceGLApi::glGetActiveUniformsivFn(GLuint program,
  8250. GLsizei uniformCount,
  8251. const GLuint* uniformIndices,
  8252. GLenum pname,
  8253. GLint* params) {
  8254. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetActiveUniformsiv")
  8255. gl_api_->glGetActiveUniformsivFn(program, uniformCount, uniformIndices, pname,
  8256. params);
  8257. }
  8258. void TraceGLApi::glGetAttachedShadersFn(GLuint program,
  8259. GLsizei maxcount,
  8260. GLsizei* count,
  8261. GLuint* shaders) {
  8262. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetAttachedShaders")
  8263. gl_api_->glGetAttachedShadersFn(program, maxcount, count, shaders);
  8264. }
  8265. GLint TraceGLApi::glGetAttribLocationFn(GLuint program, const char* name) {
  8266. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetAttribLocation")
  8267. return gl_api_->glGetAttribLocationFn(program, name);
  8268. }
  8269. void TraceGLApi::glGetBooleanvFn(GLenum pname, GLboolean* params) {
  8270. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetBooleanv")
  8271. gl_api_->glGetBooleanvFn(pname, params);
  8272. }
  8273. void TraceGLApi::glGetBufferParameterivFn(GLenum target,
  8274. GLenum pname,
  8275. GLint* params) {
  8276. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetBufferParameteriv")
  8277. gl_api_->glGetBufferParameterivFn(target, pname, params);
  8278. }
  8279. GLenum TraceGLApi::glGetErrorFn(void) {
  8280. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetError")
  8281. return gl_api_->glGetErrorFn();
  8282. }
  8283. void TraceGLApi::glGetFenceivNVFn(GLuint fence, GLenum pname, GLint* params) {
  8284. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetFenceivNV")
  8285. gl_api_->glGetFenceivNVFn(fence, pname, params);
  8286. }
  8287. void TraceGLApi::glGetFloatvFn(GLenum pname, GLfloat* params) {
  8288. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetFloatv")
  8289. gl_api_->glGetFloatvFn(pname, params);
  8290. }
  8291. GLint TraceGLApi::glGetFragDataIndexFn(GLuint program, const char* name) {
  8292. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetFragDataIndex")
  8293. return gl_api_->glGetFragDataIndexFn(program, name);
  8294. }
  8295. GLint TraceGLApi::glGetFragDataLocationFn(GLuint program, const char* name) {
  8296. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetFragDataLocation")
  8297. return gl_api_->glGetFragDataLocationFn(program, name);
  8298. }
  8299. void TraceGLApi::glGetFramebufferAttachmentParameterivEXTFn(GLenum target,
  8300. GLenum attachment,
  8301. GLenum pname,
  8302. GLint* params) {
  8303. TRACE_EVENT_BINARY_EFFICIENT0(
  8304. "gpu", "TraceGLAPI::glGetFramebufferAttachmentParameterivEXT")
  8305. gl_api_->glGetFramebufferAttachmentParameterivEXTFn(target, attachment, pname,
  8306. params);
  8307. }
  8308. GLenum TraceGLApi::glGetGraphicsResetStatusARBFn(void) {
  8309. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8310. "TraceGLAPI::glGetGraphicsResetStatusARB")
  8311. return gl_api_->glGetGraphicsResetStatusARBFn();
  8312. }
  8313. void TraceGLApi::glGetInteger64i_vFn(GLenum target,
  8314. GLuint index,
  8315. GLint64* data) {
  8316. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetInteger64i_v")
  8317. gl_api_->glGetInteger64i_vFn(target, index, data);
  8318. }
  8319. void TraceGLApi::glGetInteger64vFn(GLenum pname, GLint64* params) {
  8320. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetInteger64v")
  8321. gl_api_->glGetInteger64vFn(pname, params);
  8322. }
  8323. void TraceGLApi::glGetIntegeri_vFn(GLenum target, GLuint index, GLint* data) {
  8324. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetIntegeri_v")
  8325. gl_api_->glGetIntegeri_vFn(target, index, data);
  8326. }
  8327. void TraceGLApi::glGetIntegervFn(GLenum pname, GLint* params) {
  8328. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetIntegerv")
  8329. gl_api_->glGetIntegervFn(pname, params);
  8330. }
  8331. void TraceGLApi::glGetInternalformativFn(GLenum target,
  8332. GLenum internalformat,
  8333. GLenum pname,
  8334. GLsizei bufSize,
  8335. GLint* params) {
  8336. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetInternalformativ")
  8337. gl_api_->glGetInternalformativFn(target, internalformat, pname, bufSize,
  8338. params);
  8339. }
  8340. void TraceGLApi::glGetProgramBinaryFn(GLuint program,
  8341. GLsizei bufSize,
  8342. GLsizei* length,
  8343. GLenum* binaryFormat,
  8344. GLvoid* binary) {
  8345. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetProgramBinary")
  8346. gl_api_->glGetProgramBinaryFn(program, bufSize, length, binaryFormat, binary);
  8347. }
  8348. void TraceGLApi::glGetProgramInfoLogFn(GLuint program,
  8349. GLsizei bufsize,
  8350. GLsizei* length,
  8351. char* infolog) {
  8352. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetProgramInfoLog")
  8353. gl_api_->glGetProgramInfoLogFn(program, bufsize, length, infolog);
  8354. }
  8355. void TraceGLApi::glGetProgramInterfaceivFn(GLuint program,
  8356. GLenum programInterface,
  8357. GLenum pname,
  8358. GLint* params) {
  8359. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetProgramInterfaceiv")
  8360. gl_api_->glGetProgramInterfaceivFn(program, programInterface, pname, params);
  8361. }
  8362. void TraceGLApi::glGetProgramivFn(GLuint program, GLenum pname, GLint* params) {
  8363. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetProgramiv")
  8364. gl_api_->glGetProgramivFn(program, pname, params);
  8365. }
  8366. void TraceGLApi::glGetProgramResourceivFn(GLuint program,
  8367. GLenum programInterface,
  8368. GLuint index,
  8369. GLsizei propCount,
  8370. const GLenum* props,
  8371. GLsizei bufSize,
  8372. GLsizei* length,
  8373. GLint* params) {
  8374. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetProgramResourceiv")
  8375. gl_api_->glGetProgramResourceivFn(program, programInterface, index, propCount,
  8376. props, bufSize, length, params);
  8377. }
  8378. GLint TraceGLApi::glGetProgramResourceLocationFn(GLuint program,
  8379. GLenum programInterface,
  8380. const char* name) {
  8381. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8382. "TraceGLAPI::glGetProgramResourceLocation")
  8383. return gl_api_->glGetProgramResourceLocationFn(program, programInterface,
  8384. name);
  8385. }
  8386. void TraceGLApi::glGetProgramResourceNameFn(GLuint program,
  8387. GLenum programInterface,
  8388. GLuint index,
  8389. GLsizei bufSize,
  8390. GLsizei* length,
  8391. GLchar* name) {
  8392. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetProgramResourceName")
  8393. gl_api_->glGetProgramResourceNameFn(program, programInterface, index, bufSize,
  8394. length, name);
  8395. }
  8396. void TraceGLApi::glGetQueryivFn(GLenum target, GLenum pname, GLint* params) {
  8397. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetQueryiv")
  8398. gl_api_->glGetQueryivFn(target, pname, params);
  8399. }
  8400. void TraceGLApi::glGetQueryObjecti64vFn(GLuint id,
  8401. GLenum pname,
  8402. GLint64* params) {
  8403. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetQueryObjecti64v")
  8404. gl_api_->glGetQueryObjecti64vFn(id, pname, params);
  8405. }
  8406. void TraceGLApi::glGetQueryObjectivFn(GLuint id, GLenum pname, GLint* params) {
  8407. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetQueryObjectiv")
  8408. gl_api_->glGetQueryObjectivFn(id, pname, params);
  8409. }
  8410. void TraceGLApi::glGetQueryObjectui64vFn(GLuint id,
  8411. GLenum pname,
  8412. GLuint64* params) {
  8413. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetQueryObjectui64v")
  8414. gl_api_->glGetQueryObjectui64vFn(id, pname, params);
  8415. }
  8416. void TraceGLApi::glGetQueryObjectuivFn(GLuint id,
  8417. GLenum pname,
  8418. GLuint* params) {
  8419. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetQueryObjectuiv")
  8420. gl_api_->glGetQueryObjectuivFn(id, pname, params);
  8421. }
  8422. void TraceGLApi::glGetRenderbufferParameterivEXTFn(GLenum target,
  8423. GLenum pname,
  8424. GLint* params) {
  8425. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8426. "TraceGLAPI::glGetRenderbufferParameterivEXT")
  8427. gl_api_->glGetRenderbufferParameterivEXTFn(target, pname, params);
  8428. }
  8429. void TraceGLApi::glGetSamplerParameterfvFn(GLuint sampler,
  8430. GLenum pname,
  8431. GLfloat* params) {
  8432. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetSamplerParameterfv")
  8433. gl_api_->glGetSamplerParameterfvFn(sampler, pname, params);
  8434. }
  8435. void TraceGLApi::glGetSamplerParameterivFn(GLuint sampler,
  8436. GLenum pname,
  8437. GLint* params) {
  8438. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetSamplerParameteriv")
  8439. gl_api_->glGetSamplerParameterivFn(sampler, pname, params);
  8440. }
  8441. void TraceGLApi::glGetShaderInfoLogFn(GLuint shader,
  8442. GLsizei bufsize,
  8443. GLsizei* length,
  8444. char* infolog) {
  8445. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetShaderInfoLog")
  8446. gl_api_->glGetShaderInfoLogFn(shader, bufsize, length, infolog);
  8447. }
  8448. void TraceGLApi::glGetShaderivFn(GLuint shader, GLenum pname, GLint* params) {
  8449. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetShaderiv")
  8450. gl_api_->glGetShaderivFn(shader, pname, params);
  8451. }
  8452. void TraceGLApi::glGetShaderPrecisionFormatFn(GLenum shadertype,
  8453. GLenum precisiontype,
  8454. GLint* range,
  8455. GLint* precision) {
  8456. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetShaderPrecisionFormat")
  8457. gl_api_->glGetShaderPrecisionFormatFn(shadertype, precisiontype, range,
  8458. precision);
  8459. }
  8460. void TraceGLApi::glGetShaderSourceFn(GLuint shader,
  8461. GLsizei bufsize,
  8462. GLsizei* length,
  8463. char* source) {
  8464. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetShaderSource")
  8465. gl_api_->glGetShaderSourceFn(shader, bufsize, length, source);
  8466. }
  8467. const GLubyte* TraceGLApi::glGetStringFn(GLenum name) {
  8468. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetString")
  8469. return gl_api_->glGetStringFn(name);
  8470. }
  8471. const GLubyte* TraceGLApi::glGetStringiFn(GLenum name, GLuint index) {
  8472. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetStringi")
  8473. return gl_api_->glGetStringiFn(name, index);
  8474. }
  8475. void TraceGLApi::glGetSyncivFn(GLsync sync,
  8476. GLenum pname,
  8477. GLsizei bufSize,
  8478. GLsizei* length,
  8479. GLint* values) {
  8480. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetSynciv")
  8481. gl_api_->glGetSyncivFn(sync, pname, bufSize, length, values);
  8482. }
  8483. void TraceGLApi::glGetTexLevelParameterfvFn(GLenum target,
  8484. GLint level,
  8485. GLenum pname,
  8486. GLfloat* params) {
  8487. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetTexLevelParameterfv")
  8488. gl_api_->glGetTexLevelParameterfvFn(target, level, pname, params);
  8489. }
  8490. void TraceGLApi::glGetTexLevelParameterivFn(GLenum target,
  8491. GLint level,
  8492. GLenum pname,
  8493. GLint* params) {
  8494. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetTexLevelParameteriv")
  8495. gl_api_->glGetTexLevelParameterivFn(target, level, pname, params);
  8496. }
  8497. void TraceGLApi::glGetTexParameterfvFn(GLenum target,
  8498. GLenum pname,
  8499. GLfloat* params) {
  8500. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetTexParameterfv")
  8501. gl_api_->glGetTexParameterfvFn(target, pname, params);
  8502. }
  8503. void TraceGLApi::glGetTexParameterivFn(GLenum target,
  8504. GLenum pname,
  8505. GLint* params) {
  8506. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetTexParameteriv")
  8507. gl_api_->glGetTexParameterivFn(target, pname, params);
  8508. }
  8509. void TraceGLApi::glGetTransformFeedbackVaryingFn(GLuint program,
  8510. GLuint index,
  8511. GLsizei bufSize,
  8512. GLsizei* length,
  8513. GLsizei* size,
  8514. GLenum* type,
  8515. char* name) {
  8516. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8517. "TraceGLAPI::glGetTransformFeedbackVarying")
  8518. gl_api_->glGetTransformFeedbackVaryingFn(program, index, bufSize, length,
  8519. size, type, name);
  8520. }
  8521. void TraceGLApi::glGetTranslatedShaderSourceANGLEFn(GLuint shader,
  8522. GLsizei bufsize,
  8523. GLsizei* length,
  8524. char* source) {
  8525. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8526. "TraceGLAPI::glGetTranslatedShaderSourceANGLE")
  8527. gl_api_->glGetTranslatedShaderSourceANGLEFn(shader, bufsize, length, source);
  8528. }
  8529. GLuint TraceGLApi::glGetUniformBlockIndexFn(GLuint program,
  8530. const char* uniformBlockName) {
  8531. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetUniformBlockIndex")
  8532. return gl_api_->glGetUniformBlockIndexFn(program, uniformBlockName);
  8533. }
  8534. void TraceGLApi::glGetUniformfvFn(GLuint program,
  8535. GLint location,
  8536. GLfloat* params) {
  8537. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetUniformfv")
  8538. gl_api_->glGetUniformfvFn(program, location, params);
  8539. }
  8540. void TraceGLApi::glGetUniformIndicesFn(GLuint program,
  8541. GLsizei uniformCount,
  8542. const char* const* uniformNames,
  8543. GLuint* uniformIndices) {
  8544. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetUniformIndices")
  8545. gl_api_->glGetUniformIndicesFn(program, uniformCount, uniformNames,
  8546. uniformIndices);
  8547. }
  8548. void TraceGLApi::glGetUniformivFn(GLuint program,
  8549. GLint location,
  8550. GLint* params) {
  8551. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetUniformiv")
  8552. gl_api_->glGetUniformivFn(program, location, params);
  8553. }
  8554. GLint TraceGLApi::glGetUniformLocationFn(GLuint program, const char* name) {
  8555. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetUniformLocation")
  8556. return gl_api_->glGetUniformLocationFn(program, name);
  8557. }
  8558. void TraceGLApi::glGetUniformuivFn(GLuint program,
  8559. GLint location,
  8560. GLuint* params) {
  8561. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetUniformuiv")
  8562. gl_api_->glGetUniformuivFn(program, location, params);
  8563. }
  8564. void TraceGLApi::glGetVertexAttribfvFn(GLuint index,
  8565. GLenum pname,
  8566. GLfloat* params) {
  8567. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetVertexAttribfv")
  8568. gl_api_->glGetVertexAttribfvFn(index, pname, params);
  8569. }
  8570. void TraceGLApi::glGetVertexAttribivFn(GLuint index,
  8571. GLenum pname,
  8572. GLint* params) {
  8573. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetVertexAttribiv")
  8574. gl_api_->glGetVertexAttribivFn(index, pname, params);
  8575. }
  8576. void TraceGLApi::glGetVertexAttribPointervFn(GLuint index,
  8577. GLenum pname,
  8578. void** pointer) {
  8579. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glGetVertexAttribPointerv")
  8580. gl_api_->glGetVertexAttribPointervFn(index, pname, pointer);
  8581. }
  8582. void TraceGLApi::glHintFn(GLenum target, GLenum mode) {
  8583. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glHint")
  8584. gl_api_->glHintFn(target, mode);
  8585. }
  8586. void TraceGLApi::glInsertEventMarkerEXTFn(GLsizei length, const char* marker) {
  8587. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glInsertEventMarkerEXT")
  8588. gl_api_->glInsertEventMarkerEXTFn(length, marker);
  8589. }
  8590. void TraceGLApi::glInvalidateFramebufferFn(GLenum target,
  8591. GLsizei numAttachments,
  8592. const GLenum* attachments) {
  8593. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glInvalidateFramebuffer")
  8594. gl_api_->glInvalidateFramebufferFn(target, numAttachments, attachments);
  8595. }
  8596. void TraceGLApi::glInvalidateSubFramebufferFn(GLenum target,
  8597. GLsizei numAttachments,
  8598. const GLenum* attachments,
  8599. GLint x,
  8600. GLint y,
  8601. GLint width,
  8602. GLint height) {
  8603. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glInvalidateSubFramebuffer")
  8604. gl_api_->glInvalidateSubFramebufferFn(target, numAttachments, attachments, x,
  8605. y, width, height);
  8606. }
  8607. GLboolean TraceGLApi::glIsBufferFn(GLuint buffer) {
  8608. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsBuffer")
  8609. return gl_api_->glIsBufferFn(buffer);
  8610. }
  8611. GLboolean TraceGLApi::glIsEnabledFn(GLenum cap) {
  8612. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsEnabled")
  8613. return gl_api_->glIsEnabledFn(cap);
  8614. }
  8615. GLboolean TraceGLApi::glIsFenceAPPLEFn(GLuint fence) {
  8616. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsFenceAPPLE")
  8617. return gl_api_->glIsFenceAPPLEFn(fence);
  8618. }
  8619. GLboolean TraceGLApi::glIsFenceNVFn(GLuint fence) {
  8620. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsFenceNV")
  8621. return gl_api_->glIsFenceNVFn(fence);
  8622. }
  8623. GLboolean TraceGLApi::glIsFramebufferEXTFn(GLuint framebuffer) {
  8624. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsFramebufferEXT")
  8625. return gl_api_->glIsFramebufferEXTFn(framebuffer);
  8626. }
  8627. GLboolean TraceGLApi::glIsPathNVFn(GLuint path) {
  8628. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsPathNV")
  8629. return gl_api_->glIsPathNVFn(path);
  8630. }
  8631. GLboolean TraceGLApi::glIsProgramFn(GLuint program) {
  8632. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsProgram")
  8633. return gl_api_->glIsProgramFn(program);
  8634. }
  8635. GLboolean TraceGLApi::glIsQueryFn(GLuint query) {
  8636. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsQuery")
  8637. return gl_api_->glIsQueryFn(query);
  8638. }
  8639. GLboolean TraceGLApi::glIsRenderbufferEXTFn(GLuint renderbuffer) {
  8640. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsRenderbufferEXT")
  8641. return gl_api_->glIsRenderbufferEXTFn(renderbuffer);
  8642. }
  8643. GLboolean TraceGLApi::glIsSamplerFn(GLuint sampler) {
  8644. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsSampler")
  8645. return gl_api_->glIsSamplerFn(sampler);
  8646. }
  8647. GLboolean TraceGLApi::glIsShaderFn(GLuint shader) {
  8648. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsShader")
  8649. return gl_api_->glIsShaderFn(shader);
  8650. }
  8651. GLboolean TraceGLApi::glIsSyncFn(GLsync sync) {
  8652. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsSync")
  8653. return gl_api_->glIsSyncFn(sync);
  8654. }
  8655. GLboolean TraceGLApi::glIsTextureFn(GLuint texture) {
  8656. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsTexture")
  8657. return gl_api_->glIsTextureFn(texture);
  8658. }
  8659. GLboolean TraceGLApi::glIsTransformFeedbackFn(GLuint id) {
  8660. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsTransformFeedback")
  8661. return gl_api_->glIsTransformFeedbackFn(id);
  8662. }
  8663. GLboolean TraceGLApi::glIsVertexArrayOESFn(GLuint array) {
  8664. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glIsVertexArrayOES")
  8665. return gl_api_->glIsVertexArrayOESFn(array);
  8666. }
  8667. void TraceGLApi::glLineWidthFn(GLfloat width) {
  8668. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glLineWidth")
  8669. gl_api_->glLineWidthFn(width);
  8670. }
  8671. void TraceGLApi::glLinkProgramFn(GLuint program) {
  8672. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glLinkProgram")
  8673. gl_api_->glLinkProgramFn(program);
  8674. }
  8675. void* TraceGLApi::glMapBufferFn(GLenum target, GLenum access) {
  8676. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glMapBuffer")
  8677. return gl_api_->glMapBufferFn(target, access);
  8678. }
  8679. void* TraceGLApi::glMapBufferRangeFn(GLenum target,
  8680. GLintptr offset,
  8681. GLsizeiptr length,
  8682. GLbitfield access) {
  8683. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glMapBufferRange")
  8684. return gl_api_->glMapBufferRangeFn(target, offset, length, access);
  8685. }
  8686. void TraceGLApi::glMatrixLoadfEXTFn(GLenum matrixMode, const GLfloat* m) {
  8687. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glMatrixLoadfEXT")
  8688. gl_api_->glMatrixLoadfEXTFn(matrixMode, m);
  8689. }
  8690. void TraceGLApi::glMatrixLoadIdentityEXTFn(GLenum matrixMode) {
  8691. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glMatrixLoadIdentityEXT")
  8692. gl_api_->glMatrixLoadIdentityEXTFn(matrixMode);
  8693. }
  8694. void TraceGLApi::glMemoryBarrierEXTFn(GLbitfield barriers) {
  8695. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glMemoryBarrierEXT")
  8696. gl_api_->glMemoryBarrierEXTFn(barriers);
  8697. }
  8698. void TraceGLApi::glPathCommandsNVFn(GLuint path,
  8699. GLsizei numCommands,
  8700. const GLubyte* commands,
  8701. GLsizei numCoords,
  8702. GLenum coordType,
  8703. const GLvoid* coords) {
  8704. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPathCommandsNV")
  8705. gl_api_->glPathCommandsNVFn(path, numCommands, commands, numCoords, coordType,
  8706. coords);
  8707. }
  8708. void TraceGLApi::glPathParameterfNVFn(GLuint path,
  8709. GLenum pname,
  8710. GLfloat value) {
  8711. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPathParameterfNV")
  8712. gl_api_->glPathParameterfNVFn(path, pname, value);
  8713. }
  8714. void TraceGLApi::glPathParameteriNVFn(GLuint path, GLenum pname, GLint value) {
  8715. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPathParameteriNV")
  8716. gl_api_->glPathParameteriNVFn(path, pname, value);
  8717. }
  8718. void TraceGLApi::glPathStencilFuncNVFn(GLenum func, GLint ref, GLuint mask) {
  8719. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPathStencilFuncNV")
  8720. gl_api_->glPathStencilFuncNVFn(func, ref, mask);
  8721. }
  8722. void TraceGLApi::glPauseTransformFeedbackFn(void) {
  8723. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPauseTransformFeedback")
  8724. gl_api_->glPauseTransformFeedbackFn();
  8725. }
  8726. void TraceGLApi::glPixelStoreiFn(GLenum pname, GLint param) {
  8727. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPixelStorei")
  8728. gl_api_->glPixelStoreiFn(pname, param);
  8729. }
  8730. void TraceGLApi::glPointParameteriFn(GLenum pname, GLint param) {
  8731. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPointParameteri")
  8732. gl_api_->glPointParameteriFn(pname, param);
  8733. }
  8734. void TraceGLApi::glPolygonOffsetFn(GLfloat factor, GLfloat units) {
  8735. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPolygonOffset")
  8736. gl_api_->glPolygonOffsetFn(factor, units);
  8737. }
  8738. void TraceGLApi::glPopGroupMarkerEXTFn(void) {
  8739. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPopGroupMarkerEXT")
  8740. gl_api_->glPopGroupMarkerEXTFn();
  8741. }
  8742. void TraceGLApi::glProgramBinaryFn(GLuint program,
  8743. GLenum binaryFormat,
  8744. const GLvoid* binary,
  8745. GLsizei length) {
  8746. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glProgramBinary")
  8747. gl_api_->glProgramBinaryFn(program, binaryFormat, binary, length);
  8748. }
  8749. void TraceGLApi::glProgramParameteriFn(GLuint program,
  8750. GLenum pname,
  8751. GLint value) {
  8752. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glProgramParameteri")
  8753. gl_api_->glProgramParameteriFn(program, pname, value);
  8754. }
  8755. void TraceGLApi::glProgramPathFragmentInputGenNVFn(GLuint program,
  8756. GLint location,
  8757. GLenum genMode,
  8758. GLint components,
  8759. const GLfloat* coeffs) {
  8760. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8761. "TraceGLAPI::glProgramPathFragmentInputGenNV")
  8762. gl_api_->glProgramPathFragmentInputGenNVFn(program, location, genMode,
  8763. components, coeffs);
  8764. }
  8765. void TraceGLApi::glPushGroupMarkerEXTFn(GLsizei length, const char* marker) {
  8766. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glPushGroupMarkerEXT")
  8767. gl_api_->glPushGroupMarkerEXTFn(length, marker);
  8768. }
  8769. void TraceGLApi::glQueryCounterFn(GLuint id, GLenum target) {
  8770. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glQueryCounter")
  8771. gl_api_->glQueryCounterFn(id, target);
  8772. }
  8773. void TraceGLApi::glReadBufferFn(GLenum src) {
  8774. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glReadBuffer")
  8775. gl_api_->glReadBufferFn(src);
  8776. }
  8777. void TraceGLApi::glReadPixelsFn(GLint x,
  8778. GLint y,
  8779. GLsizei width,
  8780. GLsizei height,
  8781. GLenum format,
  8782. GLenum type,
  8783. void* pixels) {
  8784. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glReadPixels")
  8785. gl_api_->glReadPixelsFn(x, y, width, height, format, type, pixels);
  8786. }
  8787. void TraceGLApi::glReleaseShaderCompilerFn(void) {
  8788. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glReleaseShaderCompiler")
  8789. gl_api_->glReleaseShaderCompilerFn();
  8790. }
  8791. void TraceGLApi::glRenderbufferStorageEXTFn(GLenum target,
  8792. GLenum internalformat,
  8793. GLsizei width,
  8794. GLsizei height) {
  8795. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glRenderbufferStorageEXT")
  8796. gl_api_->glRenderbufferStorageEXTFn(target, internalformat, width, height);
  8797. }
  8798. void TraceGLApi::glRenderbufferStorageMultisampleFn(GLenum target,
  8799. GLsizei samples,
  8800. GLenum internalformat,
  8801. GLsizei width,
  8802. GLsizei height) {
  8803. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8804. "TraceGLAPI::glRenderbufferStorageMultisample")
  8805. gl_api_->glRenderbufferStorageMultisampleFn(target, samples, internalformat,
  8806. width, height);
  8807. }
  8808. void TraceGLApi::glRenderbufferStorageMultisampleANGLEFn(GLenum target,
  8809. GLsizei samples,
  8810. GLenum internalformat,
  8811. GLsizei width,
  8812. GLsizei height) {
  8813. TRACE_EVENT_BINARY_EFFICIENT0(
  8814. "gpu", "TraceGLAPI::glRenderbufferStorageMultisampleANGLE")
  8815. gl_api_->glRenderbufferStorageMultisampleANGLEFn(
  8816. target, samples, internalformat, width, height);
  8817. }
  8818. void TraceGLApi::glRenderbufferStorageMultisampleEXTFn(GLenum target,
  8819. GLsizei samples,
  8820. GLenum internalformat,
  8821. GLsizei width,
  8822. GLsizei height) {
  8823. TRACE_EVENT_BINARY_EFFICIENT0(
  8824. "gpu", "TraceGLAPI::glRenderbufferStorageMultisampleEXT")
  8825. gl_api_->glRenderbufferStorageMultisampleEXTFn(target, samples,
  8826. internalformat, width, height);
  8827. }
  8828. void TraceGLApi::glRenderbufferStorageMultisampleIMGFn(GLenum target,
  8829. GLsizei samples,
  8830. GLenum internalformat,
  8831. GLsizei width,
  8832. GLsizei height) {
  8833. TRACE_EVENT_BINARY_EFFICIENT0(
  8834. "gpu", "TraceGLAPI::glRenderbufferStorageMultisampleIMG")
  8835. gl_api_->glRenderbufferStorageMultisampleIMGFn(target, samples,
  8836. internalformat, width, height);
  8837. }
  8838. void TraceGLApi::glResumeTransformFeedbackFn(void) {
  8839. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glResumeTransformFeedback")
  8840. gl_api_->glResumeTransformFeedbackFn();
  8841. }
  8842. void TraceGLApi::glSampleCoverageFn(GLclampf value, GLboolean invert) {
  8843. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glSampleCoverage")
  8844. gl_api_->glSampleCoverageFn(value, invert);
  8845. }
  8846. void TraceGLApi::glSamplerParameterfFn(GLuint sampler,
  8847. GLenum pname,
  8848. GLfloat param) {
  8849. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glSamplerParameterf")
  8850. gl_api_->glSamplerParameterfFn(sampler, pname, param);
  8851. }
  8852. void TraceGLApi::glSamplerParameterfvFn(GLuint sampler,
  8853. GLenum pname,
  8854. const GLfloat* params) {
  8855. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glSamplerParameterfv")
  8856. gl_api_->glSamplerParameterfvFn(sampler, pname, params);
  8857. }
  8858. void TraceGLApi::glSamplerParameteriFn(GLuint sampler,
  8859. GLenum pname,
  8860. GLint param) {
  8861. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glSamplerParameteri")
  8862. gl_api_->glSamplerParameteriFn(sampler, pname, param);
  8863. }
  8864. void TraceGLApi::glSamplerParameterivFn(GLuint sampler,
  8865. GLenum pname,
  8866. const GLint* params) {
  8867. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glSamplerParameteriv")
  8868. gl_api_->glSamplerParameterivFn(sampler, pname, params);
  8869. }
  8870. void TraceGLApi::glScissorFn(GLint x, GLint y, GLsizei width, GLsizei height) {
  8871. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glScissor")
  8872. gl_api_->glScissorFn(x, y, width, height);
  8873. }
  8874. void TraceGLApi::glSetFenceAPPLEFn(GLuint fence) {
  8875. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glSetFenceAPPLE")
  8876. gl_api_->glSetFenceAPPLEFn(fence);
  8877. }
  8878. void TraceGLApi::glSetFenceNVFn(GLuint fence, GLenum condition) {
  8879. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glSetFenceNV")
  8880. gl_api_->glSetFenceNVFn(fence, condition);
  8881. }
  8882. void TraceGLApi::glShaderBinaryFn(GLsizei n,
  8883. const GLuint* shaders,
  8884. GLenum binaryformat,
  8885. const void* binary,
  8886. GLsizei length) {
  8887. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glShaderBinary")
  8888. gl_api_->glShaderBinaryFn(n, shaders, binaryformat, binary, length);
  8889. }
  8890. void TraceGLApi::glShaderSourceFn(GLuint shader,
  8891. GLsizei count,
  8892. const char* const* str,
  8893. const GLint* length) {
  8894. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glShaderSource")
  8895. gl_api_->glShaderSourceFn(shader, count, str, length);
  8896. }
  8897. void TraceGLApi::glStencilFillPathInstancedNVFn(
  8898. GLsizei numPaths,
  8899. GLenum pathNameType,
  8900. const void* paths,
  8901. GLuint pathBase,
  8902. GLenum fillMode,
  8903. GLuint mask,
  8904. GLenum transformType,
  8905. const GLfloat* transformValues) {
  8906. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8907. "TraceGLAPI::glStencilFillPathInstancedNV")
  8908. gl_api_->glStencilFillPathInstancedNVFn(numPaths, pathNameType, paths,
  8909. pathBase, fillMode, mask,
  8910. transformType, transformValues);
  8911. }
  8912. void TraceGLApi::glStencilFillPathNVFn(GLuint path,
  8913. GLenum fillMode,
  8914. GLuint mask) {
  8915. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilFillPathNV")
  8916. gl_api_->glStencilFillPathNVFn(path, fillMode, mask);
  8917. }
  8918. void TraceGLApi::glStencilFuncFn(GLenum func, GLint ref, GLuint mask) {
  8919. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilFunc")
  8920. gl_api_->glStencilFuncFn(func, ref, mask);
  8921. }
  8922. void TraceGLApi::glStencilFuncSeparateFn(GLenum face,
  8923. GLenum func,
  8924. GLint ref,
  8925. GLuint mask) {
  8926. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilFuncSeparate")
  8927. gl_api_->glStencilFuncSeparateFn(face, func, ref, mask);
  8928. }
  8929. void TraceGLApi::glStencilMaskFn(GLuint mask) {
  8930. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilMask")
  8931. gl_api_->glStencilMaskFn(mask);
  8932. }
  8933. void TraceGLApi::glStencilMaskSeparateFn(GLenum face, GLuint mask) {
  8934. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilMaskSeparate")
  8935. gl_api_->glStencilMaskSeparateFn(face, mask);
  8936. }
  8937. void TraceGLApi::glStencilOpFn(GLenum fail, GLenum zfail, GLenum zpass) {
  8938. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilOp")
  8939. gl_api_->glStencilOpFn(fail, zfail, zpass);
  8940. }
  8941. void TraceGLApi::glStencilOpSeparateFn(GLenum face,
  8942. GLenum fail,
  8943. GLenum zfail,
  8944. GLenum zpass) {
  8945. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilOpSeparate")
  8946. gl_api_->glStencilOpSeparateFn(face, fail, zfail, zpass);
  8947. }
  8948. void TraceGLApi::glStencilStrokePathInstancedNVFn(
  8949. GLsizei numPaths,
  8950. GLenum pathNameType,
  8951. const void* paths,
  8952. GLuint pathBase,
  8953. GLint ref,
  8954. GLuint mask,
  8955. GLenum transformType,
  8956. const GLfloat* transformValues) {
  8957. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8958. "TraceGLAPI::glStencilStrokePathInstancedNV")
  8959. gl_api_->glStencilStrokePathInstancedNVFn(numPaths, pathNameType, paths,
  8960. pathBase, ref, mask, transformType,
  8961. transformValues);
  8962. }
  8963. void TraceGLApi::glStencilStrokePathNVFn(GLuint path,
  8964. GLint reference,
  8965. GLuint mask) {
  8966. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glStencilStrokePathNV")
  8967. gl_api_->glStencilStrokePathNVFn(path, reference, mask);
  8968. }
  8969. void TraceGLApi::glStencilThenCoverFillPathInstancedNVFn(
  8970. GLsizei numPaths,
  8971. GLenum pathNameType,
  8972. const void* paths,
  8973. GLuint pathBase,
  8974. GLenum fillMode,
  8975. GLuint mask,
  8976. GLenum coverMode,
  8977. GLenum transformType,
  8978. const GLfloat* transformValues) {
  8979. TRACE_EVENT_BINARY_EFFICIENT0(
  8980. "gpu", "TraceGLAPI::glStencilThenCoverFillPathInstancedNV")
  8981. gl_api_->glStencilThenCoverFillPathInstancedNVFn(
  8982. numPaths, pathNameType, paths, pathBase, fillMode, mask, coverMode,
  8983. transformType, transformValues);
  8984. }
  8985. void TraceGLApi::glStencilThenCoverFillPathNVFn(GLuint path,
  8986. GLenum fillMode,
  8987. GLuint mask,
  8988. GLenum coverMode) {
  8989. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  8990. "TraceGLAPI::glStencilThenCoverFillPathNV")
  8991. gl_api_->glStencilThenCoverFillPathNVFn(path, fillMode, mask, coverMode);
  8992. }
  8993. void TraceGLApi::glStencilThenCoverStrokePathInstancedNVFn(
  8994. GLsizei numPaths,
  8995. GLenum pathNameType,
  8996. const void* paths,
  8997. GLuint pathBase,
  8998. GLint ref,
  8999. GLuint mask,
  9000. GLenum coverMode,
  9001. GLenum transformType,
  9002. const GLfloat* transformValues) {
  9003. TRACE_EVENT_BINARY_EFFICIENT0(
  9004. "gpu", "TraceGLAPI::glStencilThenCoverStrokePathInstancedNV")
  9005. gl_api_->glStencilThenCoverStrokePathInstancedNVFn(
  9006. numPaths, pathNameType, paths, pathBase, ref, mask, coverMode,
  9007. transformType, transformValues);
  9008. }
  9009. void TraceGLApi::glStencilThenCoverStrokePathNVFn(GLuint path,
  9010. GLint reference,
  9011. GLuint mask,
  9012. GLenum coverMode) {
  9013. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  9014. "TraceGLAPI::glStencilThenCoverStrokePathNV")
  9015. gl_api_->glStencilThenCoverStrokePathNVFn(path, reference, mask, coverMode);
  9016. }
  9017. GLboolean TraceGLApi::glTestFenceAPPLEFn(GLuint fence) {
  9018. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTestFenceAPPLE")
  9019. return gl_api_->glTestFenceAPPLEFn(fence);
  9020. }
  9021. GLboolean TraceGLApi::glTestFenceNVFn(GLuint fence) {
  9022. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTestFenceNV")
  9023. return gl_api_->glTestFenceNVFn(fence);
  9024. }
  9025. void TraceGLApi::glTexImage2DFn(GLenum target,
  9026. GLint level,
  9027. GLint internalformat,
  9028. GLsizei width,
  9029. GLsizei height,
  9030. GLint border,
  9031. GLenum format,
  9032. GLenum type,
  9033. const void* pixels) {
  9034. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexImage2D")
  9035. gl_api_->glTexImage2DFn(target, level, internalformat, width, height, border,
  9036. format, type, pixels);
  9037. }
  9038. void TraceGLApi::glTexImage3DFn(GLenum target,
  9039. GLint level,
  9040. GLint internalformat,
  9041. GLsizei width,
  9042. GLsizei height,
  9043. GLsizei depth,
  9044. GLint border,
  9045. GLenum format,
  9046. GLenum type,
  9047. const void* pixels) {
  9048. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexImage3D")
  9049. gl_api_->glTexImage3DFn(target, level, internalformat, width, height, depth,
  9050. border, format, type, pixels);
  9051. }
  9052. void TraceGLApi::glTexParameterfFn(GLenum target, GLenum pname, GLfloat param) {
  9053. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexParameterf")
  9054. gl_api_->glTexParameterfFn(target, pname, param);
  9055. }
  9056. void TraceGLApi::glTexParameterfvFn(GLenum target,
  9057. GLenum pname,
  9058. const GLfloat* params) {
  9059. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexParameterfv")
  9060. gl_api_->glTexParameterfvFn(target, pname, params);
  9061. }
  9062. void TraceGLApi::glTexParameteriFn(GLenum target, GLenum pname, GLint param) {
  9063. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexParameteri")
  9064. gl_api_->glTexParameteriFn(target, pname, param);
  9065. }
  9066. void TraceGLApi::glTexParameterivFn(GLenum target,
  9067. GLenum pname,
  9068. const GLint* params) {
  9069. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexParameteriv")
  9070. gl_api_->glTexParameterivFn(target, pname, params);
  9071. }
  9072. void TraceGLApi::glTexStorage2DEXTFn(GLenum target,
  9073. GLsizei levels,
  9074. GLenum internalformat,
  9075. GLsizei width,
  9076. GLsizei height) {
  9077. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexStorage2DEXT")
  9078. gl_api_->glTexStorage2DEXTFn(target, levels, internalformat, width, height);
  9079. }
  9080. void TraceGLApi::glTexStorage3DFn(GLenum target,
  9081. GLsizei levels,
  9082. GLenum internalformat,
  9083. GLsizei width,
  9084. GLsizei height,
  9085. GLsizei depth) {
  9086. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexStorage3D")
  9087. gl_api_->glTexStorage3DFn(target, levels, internalformat, width, height,
  9088. depth);
  9089. }
  9090. void TraceGLApi::glTexSubImage2DFn(GLenum target,
  9091. GLint level,
  9092. GLint xoffset,
  9093. GLint yoffset,
  9094. GLsizei width,
  9095. GLsizei height,
  9096. GLenum format,
  9097. GLenum type,
  9098. const void* pixels) {
  9099. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexSubImage2D")
  9100. gl_api_->glTexSubImage2DFn(target, level, xoffset, yoffset, width, height,
  9101. format, type, pixels);
  9102. }
  9103. void TraceGLApi::glTexSubImage3DFn(GLenum target,
  9104. GLint level,
  9105. GLint xoffset,
  9106. GLint yoffset,
  9107. GLint zoffset,
  9108. GLsizei width,
  9109. GLsizei height,
  9110. GLsizei depth,
  9111. GLenum format,
  9112. GLenum type,
  9113. const void* pixels) {
  9114. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glTexSubImage3D")
  9115. gl_api_->glTexSubImage3DFn(target, level, xoffset, yoffset, zoffset, width,
  9116. height, depth, format, type, pixels);
  9117. }
  9118. void TraceGLApi::glTransformFeedbackVaryingsFn(GLuint program,
  9119. GLsizei count,
  9120. const char* const* varyings,
  9121. GLenum bufferMode) {
  9122. TRACE_EVENT_BINARY_EFFICIENT0("gpu",
  9123. "TraceGLAPI::glTransformFeedbackVaryings")
  9124. gl_api_->glTransformFeedbackVaryingsFn(program, count, varyings, bufferMode);
  9125. }
  9126. void TraceGLApi::glUniform1fFn(GLint location, GLfloat x) {
  9127. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform1f")
  9128. gl_api_->glUniform1fFn(location, x);
  9129. }
  9130. void TraceGLApi::glUniform1fvFn(GLint location,
  9131. GLsizei count,
  9132. const GLfloat* v) {
  9133. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform1fv")
  9134. gl_api_->glUniform1fvFn(location, count, v);
  9135. }
  9136. void TraceGLApi::glUniform1iFn(GLint location, GLint x) {
  9137. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform1i")
  9138. gl_api_->glUniform1iFn(location, x);
  9139. }
  9140. void TraceGLApi::glUniform1ivFn(GLint location, GLsizei count, const GLint* v) {
  9141. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform1iv")
  9142. gl_api_->glUniform1ivFn(location, count, v);
  9143. }
  9144. void TraceGLApi::glUniform1uiFn(GLint location, GLuint v0) {
  9145. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform1ui")
  9146. gl_api_->glUniform1uiFn(location, v0);
  9147. }
  9148. void TraceGLApi::glUniform1uivFn(GLint location,
  9149. GLsizei count,
  9150. const GLuint* v) {
  9151. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform1uiv")
  9152. gl_api_->glUniform1uivFn(location, count, v);
  9153. }
  9154. void TraceGLApi::glUniform2fFn(GLint location, GLfloat x, GLfloat y) {
  9155. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform2f")
  9156. gl_api_->glUniform2fFn(location, x, y);
  9157. }
  9158. void TraceGLApi::glUniform2fvFn(GLint location,
  9159. GLsizei count,
  9160. const GLfloat* v) {
  9161. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform2fv")
  9162. gl_api_->glUniform2fvFn(location, count, v);
  9163. }
  9164. void TraceGLApi::glUniform2iFn(GLint location, GLint x, GLint y) {
  9165. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform2i")
  9166. gl_api_->glUniform2iFn(location, x, y);
  9167. }
  9168. void TraceGLApi::glUniform2ivFn(GLint location, GLsizei count, const GLint* v) {
  9169. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform2iv")
  9170. gl_api_->glUniform2ivFn(location, count, v);
  9171. }
  9172. void TraceGLApi::glUniform2uiFn(GLint location, GLuint v0, GLuint v1) {
  9173. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform2ui")
  9174. gl_api_->glUniform2uiFn(location, v0, v1);
  9175. }
  9176. void TraceGLApi::glUniform2uivFn(GLint location,
  9177. GLsizei count,
  9178. const GLuint* v) {
  9179. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform2uiv")
  9180. gl_api_->glUniform2uivFn(location, count, v);
  9181. }
  9182. void TraceGLApi::glUniform3fFn(GLint location,
  9183. GLfloat x,
  9184. GLfloat y,
  9185. GLfloat z) {
  9186. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform3f")
  9187. gl_api_->glUniform3fFn(location, x, y, z);
  9188. }
  9189. void TraceGLApi::glUniform3fvFn(GLint location,
  9190. GLsizei count,
  9191. const GLfloat* v) {
  9192. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform3fv")
  9193. gl_api_->glUniform3fvFn(location, count, v);
  9194. }
  9195. void TraceGLApi::glUniform3iFn(GLint location, GLint x, GLint y, GLint z) {
  9196. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform3i")
  9197. gl_api_->glUniform3iFn(location, x, y, z);
  9198. }
  9199. void TraceGLApi::glUniform3ivFn(GLint location, GLsizei count, const GLint* v) {
  9200. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform3iv")
  9201. gl_api_->glUniform3ivFn(location, count, v);
  9202. }
  9203. void TraceGLApi::glUniform3uiFn(GLint location,
  9204. GLuint v0,
  9205. GLuint v1,
  9206. GLuint v2) {
  9207. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform3ui")
  9208. gl_api_->glUniform3uiFn(location, v0, v1, v2);
  9209. }
  9210. void TraceGLApi::glUniform3uivFn(GLint location,
  9211. GLsizei count,
  9212. const GLuint* v) {
  9213. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform3uiv")
  9214. gl_api_->glUniform3uivFn(location, count, v);
  9215. }
  9216. void TraceGLApi::glUniform4fFn(GLint location,
  9217. GLfloat x,
  9218. GLfloat y,
  9219. GLfloat z,
  9220. GLfloat w) {
  9221. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform4f")
  9222. gl_api_->glUniform4fFn(location, x, y, z, w);
  9223. }
  9224. void TraceGLApi::glUniform4fvFn(GLint location,
  9225. GLsizei count,
  9226. const GLfloat* v) {
  9227. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform4fv")
  9228. gl_api_->glUniform4fvFn(location, count, v);
  9229. }
  9230. void TraceGLApi::glUniform4iFn(GLint location,
  9231. GLint x,
  9232. GLint y,
  9233. GLint z,
  9234. GLint w) {
  9235. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform4i")
  9236. gl_api_->glUniform4iFn(location, x, y, z, w);
  9237. }
  9238. void TraceGLApi::glUniform4ivFn(GLint location, GLsizei count, const GLint* v) {
  9239. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform4iv")
  9240. gl_api_->glUniform4ivFn(location, count, v);
  9241. }
  9242. void TraceGLApi::glUniform4uiFn(GLint location,
  9243. GLuint v0,
  9244. GLuint v1,
  9245. GLuint v2,
  9246. GLuint v3) {
  9247. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform4ui")
  9248. gl_api_->glUniform4uiFn(location, v0, v1, v2, v3);
  9249. }
  9250. void TraceGLApi::glUniform4uivFn(GLint location,
  9251. GLsizei count,
  9252. const GLuint* v) {
  9253. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniform4uiv")
  9254. gl_api_->glUniform4uivFn(location, count, v);
  9255. }
  9256. void TraceGLApi::glUniformBlockBindingFn(GLuint program,
  9257. GLuint uniformBlockIndex,
  9258. GLuint uniformBlockBinding) {
  9259. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformBlockBinding")
  9260. gl_api_->glUniformBlockBindingFn(program, uniformBlockIndex,
  9261. uniformBlockBinding);
  9262. }
  9263. void TraceGLApi::glUniformMatrix2fvFn(GLint location,
  9264. GLsizei count,
  9265. GLboolean transpose,
  9266. const GLfloat* value) {
  9267. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix2fv")
  9268. gl_api_->glUniformMatrix2fvFn(location, count, transpose, value);
  9269. }
  9270. void TraceGLApi::glUniformMatrix2x3fvFn(GLint location,
  9271. GLsizei count,
  9272. GLboolean transpose,
  9273. const GLfloat* value) {
  9274. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix2x3fv")
  9275. gl_api_->glUniformMatrix2x3fvFn(location, count, transpose, value);
  9276. }
  9277. void TraceGLApi::glUniformMatrix2x4fvFn(GLint location,
  9278. GLsizei count,
  9279. GLboolean transpose,
  9280. const GLfloat* value) {
  9281. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix2x4fv")
  9282. gl_api_->glUniformMatrix2x4fvFn(location, count, transpose, value);
  9283. }
  9284. void TraceGLApi::glUniformMatrix3fvFn(GLint location,
  9285. GLsizei count,
  9286. GLboolean transpose,
  9287. const GLfloat* value) {
  9288. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix3fv")
  9289. gl_api_->glUniformMatrix3fvFn(location, count, transpose, value);
  9290. }
  9291. void TraceGLApi::glUniformMatrix3x2fvFn(GLint location,
  9292. GLsizei count,
  9293. GLboolean transpose,
  9294. const GLfloat* value) {
  9295. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix3x2fv")
  9296. gl_api_->glUniformMatrix3x2fvFn(location, count, transpose, value);
  9297. }
  9298. void TraceGLApi::glUniformMatrix3x4fvFn(GLint location,
  9299. GLsizei count,
  9300. GLboolean transpose,
  9301. const GLfloat* value) {
  9302. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix3x4fv")
  9303. gl_api_->glUniformMatrix3x4fvFn(location, count, transpose, value);
  9304. }
  9305. void TraceGLApi::glUniformMatrix4fvFn(GLint location,
  9306. GLsizei count,
  9307. GLboolean transpose,
  9308. const GLfloat* value) {
  9309. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix4fv")
  9310. gl_api_->glUniformMatrix4fvFn(location, count, transpose, value);
  9311. }
  9312. void TraceGLApi::glUniformMatrix4x2fvFn(GLint location,
  9313. GLsizei count,
  9314. GLboolean transpose,
  9315. const GLfloat* value) {
  9316. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix4x2fv")
  9317. gl_api_->glUniformMatrix4x2fvFn(location, count, transpose, value);
  9318. }
  9319. void TraceGLApi::glUniformMatrix4x3fvFn(GLint location,
  9320. GLsizei count,
  9321. GLboolean transpose,
  9322. const GLfloat* value) {
  9323. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUniformMatrix4x3fv")
  9324. gl_api_->glUniformMatrix4x3fvFn(location, count, transpose, value);
  9325. }
  9326. GLboolean TraceGLApi::glUnmapBufferFn(GLenum target) {
  9327. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUnmapBuffer")
  9328. return gl_api_->glUnmapBufferFn(target);
  9329. }
  9330. void TraceGLApi::glUseProgramFn(GLuint program) {
  9331. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glUseProgram")
  9332. gl_api_->glUseProgramFn(program);
  9333. }
  9334. void TraceGLApi::glValidateProgramFn(GLuint program) {
  9335. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glValidateProgram")
  9336. gl_api_->glValidateProgramFn(program);
  9337. }
  9338. void TraceGLApi::glVertexAttrib1fFn(GLuint indx, GLfloat x) {
  9339. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttrib1f")
  9340. gl_api_->glVertexAttrib1fFn(indx, x);
  9341. }
  9342. void TraceGLApi::glVertexAttrib1fvFn(GLuint indx, const GLfloat* values) {
  9343. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttrib1fv")
  9344. gl_api_->glVertexAttrib1fvFn(indx, values);
  9345. }
  9346. void TraceGLApi::glVertexAttrib2fFn(GLuint indx, GLfloat x, GLfloat y) {
  9347. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttrib2f")
  9348. gl_api_->glVertexAttrib2fFn(indx, x, y);
  9349. }
  9350. void TraceGLApi::glVertexAttrib2fvFn(GLuint indx, const GLfloat* values) {
  9351. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttrib2fv")
  9352. gl_api_->glVertexAttrib2fvFn(indx, values);
  9353. }
  9354. void TraceGLApi::glVertexAttrib3fFn(GLuint indx,
  9355. GLfloat x,
  9356. GLfloat y,
  9357. GLfloat z) {
  9358. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttrib3f")
  9359. gl_api_->glVertexAttrib3fFn(indx, x, y, z);
  9360. }
  9361. void TraceGLApi::glVertexAttrib3fvFn(GLuint indx, const GLfloat* values) {
  9362. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttrib3fv")
  9363. gl_api_->glVertexAttrib3fvFn(indx, values);
  9364. }
  9365. void TraceGLApi::glVertexAttrib4fFn(GLuint indx,
  9366. GLfloat x,
  9367. GLfloat y,
  9368. GLfloat z,
  9369. GLfloat w) {
  9370. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttrib4f")
  9371. gl_api_->glVertexAttrib4fFn(indx, x, y, z, w);
  9372. }
  9373. void TraceGLApi::glVertexAttrib4fvFn(GLuint indx, const GLfloat* values) {
  9374. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttrib4fv")
  9375. gl_api_->glVertexAttrib4fvFn(indx, values);
  9376. }
  9377. void TraceGLApi::glVertexAttribDivisorANGLEFn(GLuint index, GLuint divisor) {
  9378. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttribDivisorANGLE")
  9379. gl_api_->glVertexAttribDivisorANGLEFn(index, divisor);
  9380. }
  9381. void TraceGLApi::glVertexAttribI4iFn(GLuint indx,
  9382. GLint x,
  9383. GLint y,
  9384. GLint z,
  9385. GLint w) {
  9386. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttribI4i")
  9387. gl_api_->glVertexAttribI4iFn(indx, x, y, z, w);
  9388. }
  9389. void TraceGLApi::glVertexAttribI4ivFn(GLuint indx, const GLint* values) {
  9390. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttribI4iv")
  9391. gl_api_->glVertexAttribI4ivFn(indx, values);
  9392. }
  9393. void TraceGLApi::glVertexAttribI4uiFn(GLuint indx,
  9394. GLuint x,
  9395. GLuint y,
  9396. GLuint z,
  9397. GLuint w) {
  9398. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttribI4ui")
  9399. gl_api_->glVertexAttribI4uiFn(indx, x, y, z, w);
  9400. }
  9401. void TraceGLApi::glVertexAttribI4uivFn(GLuint indx, const GLuint* values) {
  9402. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttribI4uiv")
  9403. gl_api_->glVertexAttribI4uivFn(indx, values);
  9404. }
  9405. void TraceGLApi::glVertexAttribIPointerFn(GLuint indx,
  9406. GLint size,
  9407. GLenum type,
  9408. GLsizei stride,
  9409. const void* ptr) {
  9410. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttribIPointer")
  9411. gl_api_->glVertexAttribIPointerFn(indx, size, type, stride, ptr);
  9412. }
  9413. void TraceGLApi::glVertexAttribPointerFn(GLuint indx,
  9414. GLint size,
  9415. GLenum type,
  9416. GLboolean normalized,
  9417. GLsizei stride,
  9418. const void* ptr) {
  9419. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glVertexAttribPointer")
  9420. gl_api_->glVertexAttribPointerFn(indx, size, type, normalized, stride, ptr);
  9421. }
  9422. void TraceGLApi::glViewportFn(GLint x, GLint y, GLsizei width, GLsizei height) {
  9423. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glViewport")
  9424. gl_api_->glViewportFn(x, y, width, height);
  9425. }
  9426. GLenum TraceGLApi::glWaitSyncFn(GLsync sync,
  9427. GLbitfield flags,
  9428. GLuint64 timeout) {
  9429. TRACE_EVENT_BINARY_EFFICIENT0("gpu", "TraceGLAPI::glWaitSync")
  9430. return gl_api_->glWaitSyncFn(sync, flags, timeout);
  9431. }
  9432. void NoContextGLApi::glActiveTextureFn(GLenum texture) {
  9433. NOTREACHED() << "Trying to call glActiveTexture() without current GL context";
  9434. LOG(ERROR) << "Trying to call glActiveTexture() without current GL context";
  9435. }
  9436. void NoContextGLApi::glApplyFramebufferAttachmentCMAAINTELFn(void) {
  9437. NOTREACHED() << "Trying to call glApplyFramebufferAttachmentCMAAINTEL() "
  9438. "without current GL context";
  9439. LOG(ERROR) << "Trying to call glApplyFramebufferAttachmentCMAAINTEL() "
  9440. "without current GL context";
  9441. }
  9442. void NoContextGLApi::glAttachShaderFn(GLuint program, GLuint shader) {
  9443. NOTREACHED() << "Trying to call glAttachShader() without current GL context";
  9444. LOG(ERROR) << "Trying to call glAttachShader() without current GL context";
  9445. }
  9446. void NoContextGLApi::glBeginQueryFn(GLenum target, GLuint id) {
  9447. NOTREACHED() << "Trying to call glBeginQuery() without current GL context";
  9448. LOG(ERROR) << "Trying to call glBeginQuery() without current GL context";
  9449. }
  9450. void NoContextGLApi::glBeginTransformFeedbackFn(GLenum primitiveMode) {
  9451. NOTREACHED()
  9452. << "Trying to call glBeginTransformFeedback() without current GL context";
  9453. LOG(ERROR)
  9454. << "Trying to call glBeginTransformFeedback() without current GL context";
  9455. }
  9456. void NoContextGLApi::glBindAttribLocationFn(GLuint program,
  9457. GLuint index,
  9458. const char* name) {
  9459. NOTREACHED()
  9460. << "Trying to call glBindAttribLocation() without current GL context";
  9461. LOG(ERROR)
  9462. << "Trying to call glBindAttribLocation() without current GL context";
  9463. }
  9464. void NoContextGLApi::glBindBufferFn(GLenum target, GLuint buffer) {
  9465. NOTREACHED() << "Trying to call glBindBuffer() without current GL context";
  9466. LOG(ERROR) << "Trying to call glBindBuffer() without current GL context";
  9467. }
  9468. void NoContextGLApi::glBindBufferBaseFn(GLenum target,
  9469. GLuint index,
  9470. GLuint buffer) {
  9471. NOTREACHED()
  9472. << "Trying to call glBindBufferBase() without current GL context";
  9473. LOG(ERROR) << "Trying to call glBindBufferBase() without current GL context";
  9474. }
  9475. void NoContextGLApi::glBindBufferRangeFn(GLenum target,
  9476. GLuint index,
  9477. GLuint buffer,
  9478. GLintptr offset,
  9479. GLsizeiptr size) {
  9480. NOTREACHED()
  9481. << "Trying to call glBindBufferRange() without current GL context";
  9482. LOG(ERROR) << "Trying to call glBindBufferRange() without current GL context";
  9483. }
  9484. void NoContextGLApi::glBindFragDataLocationFn(GLuint program,
  9485. GLuint colorNumber,
  9486. const char* name) {
  9487. NOTREACHED()
  9488. << "Trying to call glBindFragDataLocation() without current GL context";
  9489. LOG(ERROR)
  9490. << "Trying to call glBindFragDataLocation() without current GL context";
  9491. }
  9492. void NoContextGLApi::glBindFragDataLocationIndexedFn(GLuint program,
  9493. GLuint colorNumber,
  9494. GLuint index,
  9495. const char* name) {
  9496. NOTREACHED() << "Trying to call glBindFragDataLocationIndexed() without "
  9497. "current GL context";
  9498. LOG(ERROR) << "Trying to call glBindFragDataLocationIndexed() without "
  9499. "current GL context";
  9500. }
  9501. void NoContextGLApi::glBindFramebufferEXTFn(GLenum target, GLuint framebuffer) {
  9502. NOTREACHED()
  9503. << "Trying to call glBindFramebufferEXT() without current GL context";
  9504. LOG(ERROR)
  9505. << "Trying to call glBindFramebufferEXT() without current GL context";
  9506. }
  9507. void NoContextGLApi::glBindImageTextureEXTFn(GLuint index,
  9508. GLuint texture,
  9509. GLint level,
  9510. GLboolean layered,
  9511. GLint layer,
  9512. GLenum access,
  9513. GLint format) {
  9514. NOTREACHED()
  9515. << "Trying to call glBindImageTextureEXT() without current GL context";
  9516. LOG(ERROR)
  9517. << "Trying to call glBindImageTextureEXT() without current GL context";
  9518. }
  9519. void NoContextGLApi::glBindRenderbufferEXTFn(GLenum target,
  9520. GLuint renderbuffer) {
  9521. NOTREACHED()
  9522. << "Trying to call glBindRenderbufferEXT() without current GL context";
  9523. LOG(ERROR)
  9524. << "Trying to call glBindRenderbufferEXT() without current GL context";
  9525. }
  9526. void NoContextGLApi::glBindSamplerFn(GLuint unit, GLuint sampler) {
  9527. NOTREACHED() << "Trying to call glBindSampler() without current GL context";
  9528. LOG(ERROR) << "Trying to call glBindSampler() without current GL context";
  9529. }
  9530. void NoContextGLApi::glBindTextureFn(GLenum target, GLuint texture) {
  9531. NOTREACHED() << "Trying to call glBindTexture() without current GL context";
  9532. LOG(ERROR) << "Trying to call glBindTexture() without current GL context";
  9533. }
  9534. void NoContextGLApi::glBindTransformFeedbackFn(GLenum target, GLuint id) {
  9535. NOTREACHED()
  9536. << "Trying to call glBindTransformFeedback() without current GL context";
  9537. LOG(ERROR)
  9538. << "Trying to call glBindTransformFeedback() without current GL context";
  9539. }
  9540. void NoContextGLApi::glBindVertexArrayOESFn(GLuint array) {
  9541. NOTREACHED()
  9542. << "Trying to call glBindVertexArrayOES() without current GL context";
  9543. LOG(ERROR)
  9544. << "Trying to call glBindVertexArrayOES() without current GL context";
  9545. }
  9546. void NoContextGLApi::glBlendBarrierKHRFn(void) {
  9547. NOTREACHED()
  9548. << "Trying to call glBlendBarrierKHR() without current GL context";
  9549. LOG(ERROR) << "Trying to call glBlendBarrierKHR() without current GL context";
  9550. }
  9551. void NoContextGLApi::glBlendColorFn(GLclampf red,
  9552. GLclampf green,
  9553. GLclampf blue,
  9554. GLclampf alpha) {
  9555. NOTREACHED() << "Trying to call glBlendColor() without current GL context";
  9556. LOG(ERROR) << "Trying to call glBlendColor() without current GL context";
  9557. }
  9558. void NoContextGLApi::glBlendEquationFn(GLenum mode) {
  9559. NOTREACHED() << "Trying to call glBlendEquation() without current GL context";
  9560. LOG(ERROR) << "Trying to call glBlendEquation() without current GL context";
  9561. }
  9562. void NoContextGLApi::glBlendEquationSeparateFn(GLenum modeRGB,
  9563. GLenum modeAlpha) {
  9564. NOTREACHED()
  9565. << "Trying to call glBlendEquationSeparate() without current GL context";
  9566. LOG(ERROR)
  9567. << "Trying to call glBlendEquationSeparate() without current GL context";
  9568. }
  9569. void NoContextGLApi::glBlendFuncFn(GLenum sfactor, GLenum dfactor) {
  9570. NOTREACHED() << "Trying to call glBlendFunc() without current GL context";
  9571. LOG(ERROR) << "Trying to call glBlendFunc() without current GL context";
  9572. }
  9573. void NoContextGLApi::glBlendFuncSeparateFn(GLenum srcRGB,
  9574. GLenum dstRGB,
  9575. GLenum srcAlpha,
  9576. GLenum dstAlpha) {
  9577. NOTREACHED()
  9578. << "Trying to call glBlendFuncSeparate() without current GL context";
  9579. LOG(ERROR)
  9580. << "Trying to call glBlendFuncSeparate() without current GL context";
  9581. }
  9582. void NoContextGLApi::glBlitFramebufferFn(GLint srcX0,
  9583. GLint srcY0,
  9584. GLint srcX1,
  9585. GLint srcY1,
  9586. GLint dstX0,
  9587. GLint dstY0,
  9588. GLint dstX1,
  9589. GLint dstY1,
  9590. GLbitfield mask,
  9591. GLenum filter) {
  9592. NOTREACHED()
  9593. << "Trying to call glBlitFramebuffer() without current GL context";
  9594. LOG(ERROR) << "Trying to call glBlitFramebuffer() without current GL context";
  9595. }
  9596. void NoContextGLApi::glBlitFramebufferANGLEFn(GLint srcX0,
  9597. GLint srcY0,
  9598. GLint srcX1,
  9599. GLint srcY1,
  9600. GLint dstX0,
  9601. GLint dstY0,
  9602. GLint dstX1,
  9603. GLint dstY1,
  9604. GLbitfield mask,
  9605. GLenum filter) {
  9606. NOTREACHED()
  9607. << "Trying to call glBlitFramebufferANGLE() without current GL context";
  9608. LOG(ERROR)
  9609. << "Trying to call glBlitFramebufferANGLE() without current GL context";
  9610. }
  9611. void NoContextGLApi::glBlitFramebufferEXTFn(GLint srcX0,
  9612. GLint srcY0,
  9613. GLint srcX1,
  9614. GLint srcY1,
  9615. GLint dstX0,
  9616. GLint dstY0,
  9617. GLint dstX1,
  9618. GLint dstY1,
  9619. GLbitfield mask,
  9620. GLenum filter) {
  9621. NOTREACHED()
  9622. << "Trying to call glBlitFramebufferEXT() without current GL context";
  9623. LOG(ERROR)
  9624. << "Trying to call glBlitFramebufferEXT() without current GL context";
  9625. }
  9626. void NoContextGLApi::glBufferDataFn(GLenum target,
  9627. GLsizeiptr size,
  9628. const void* data,
  9629. GLenum usage) {
  9630. NOTREACHED() << "Trying to call glBufferData() without current GL context";
  9631. LOG(ERROR) << "Trying to call glBufferData() without current GL context";
  9632. }
  9633. void NoContextGLApi::glBufferSubDataFn(GLenum target,
  9634. GLintptr offset,
  9635. GLsizeiptr size,
  9636. const void* data) {
  9637. NOTREACHED() << "Trying to call glBufferSubData() without current GL context";
  9638. LOG(ERROR) << "Trying to call glBufferSubData() without current GL context";
  9639. }
  9640. GLenum NoContextGLApi::glCheckFramebufferStatusEXTFn(GLenum target) {
  9641. NOTREACHED() << "Trying to call glCheckFramebufferStatusEXT() without "
  9642. "current GL context";
  9643. LOG(ERROR) << "Trying to call glCheckFramebufferStatusEXT() without current "
  9644. "GL context";
  9645. return static_cast<GLenum>(0);
  9646. }
  9647. void NoContextGLApi::glClearFn(GLbitfield mask) {
  9648. NOTREACHED() << "Trying to call glClear() without current GL context";
  9649. LOG(ERROR) << "Trying to call glClear() without current GL context";
  9650. }
  9651. void NoContextGLApi::glClearBufferfiFn(GLenum buffer,
  9652. GLint drawbuffer,
  9653. const GLfloat depth,
  9654. GLint stencil) {
  9655. NOTREACHED() << "Trying to call glClearBufferfi() without current GL context";
  9656. LOG(ERROR) << "Trying to call glClearBufferfi() without current GL context";
  9657. }
  9658. void NoContextGLApi::glClearBufferfvFn(GLenum buffer,
  9659. GLint drawbuffer,
  9660. const GLfloat* value) {
  9661. NOTREACHED() << "Trying to call glClearBufferfv() without current GL context";
  9662. LOG(ERROR) << "Trying to call glClearBufferfv() without current GL context";
  9663. }
  9664. void NoContextGLApi::glClearBufferivFn(GLenum buffer,
  9665. GLint drawbuffer,
  9666. const GLint* value) {
  9667. NOTREACHED() << "Trying to call glClearBufferiv() without current GL context";
  9668. LOG(ERROR) << "Trying to call glClearBufferiv() without current GL context";
  9669. }
  9670. void NoContextGLApi::glClearBufferuivFn(GLenum buffer,
  9671. GLint drawbuffer,
  9672. const GLuint* value) {
  9673. NOTREACHED()
  9674. << "Trying to call glClearBufferuiv() without current GL context";
  9675. LOG(ERROR) << "Trying to call glClearBufferuiv() without current GL context";
  9676. }
  9677. void NoContextGLApi::glClearColorFn(GLclampf red,
  9678. GLclampf green,
  9679. GLclampf blue,
  9680. GLclampf alpha) {
  9681. NOTREACHED() << "Trying to call glClearColor() without current GL context";
  9682. LOG(ERROR) << "Trying to call glClearColor() without current GL context";
  9683. }
  9684. void NoContextGLApi::glClearDepthFn(GLclampd depth) {
  9685. NOTREACHED() << "Trying to call glClearDepth() without current GL context";
  9686. LOG(ERROR) << "Trying to call glClearDepth() without current GL context";
  9687. }
  9688. void NoContextGLApi::glClearDepthfFn(GLclampf depth) {
  9689. NOTREACHED() << "Trying to call glClearDepthf() without current GL context";
  9690. LOG(ERROR) << "Trying to call glClearDepthf() without current GL context";
  9691. }
  9692. void NoContextGLApi::glClearStencilFn(GLint s) {
  9693. NOTREACHED() << "Trying to call glClearStencil() without current GL context";
  9694. LOG(ERROR) << "Trying to call glClearStencil() without current GL context";
  9695. }
  9696. GLenum NoContextGLApi::glClientWaitSyncFn(GLsync sync,
  9697. GLbitfield flags,
  9698. GLuint64 timeout) {
  9699. NOTREACHED()
  9700. << "Trying to call glClientWaitSync() without current GL context";
  9701. LOG(ERROR) << "Trying to call glClientWaitSync() without current GL context";
  9702. return static_cast<GLenum>(0);
  9703. }
  9704. void NoContextGLApi::glColorMaskFn(GLboolean red,
  9705. GLboolean green,
  9706. GLboolean blue,
  9707. GLboolean alpha) {
  9708. NOTREACHED() << "Trying to call glColorMask() without current GL context";
  9709. LOG(ERROR) << "Trying to call glColorMask() without current GL context";
  9710. }
  9711. void NoContextGLApi::glCompileShaderFn(GLuint shader) {
  9712. NOTREACHED() << "Trying to call glCompileShader() without current GL context";
  9713. LOG(ERROR) << "Trying to call glCompileShader() without current GL context";
  9714. }
  9715. void NoContextGLApi::glCompressedTexImage2DFn(GLenum target,
  9716. GLint level,
  9717. GLenum internalformat,
  9718. GLsizei width,
  9719. GLsizei height,
  9720. GLint border,
  9721. GLsizei imageSize,
  9722. const void* data) {
  9723. NOTREACHED()
  9724. << "Trying to call glCompressedTexImage2D() without current GL context";
  9725. LOG(ERROR)
  9726. << "Trying to call glCompressedTexImage2D() without current GL context";
  9727. }
  9728. void NoContextGLApi::glCompressedTexImage3DFn(GLenum target,
  9729. GLint level,
  9730. GLenum internalformat,
  9731. GLsizei width,
  9732. GLsizei height,
  9733. GLsizei depth,
  9734. GLint border,
  9735. GLsizei imageSize,
  9736. const void* data) {
  9737. NOTREACHED()
  9738. << "Trying to call glCompressedTexImage3D() without current GL context";
  9739. LOG(ERROR)
  9740. << "Trying to call glCompressedTexImage3D() without current GL context";
  9741. }
  9742. void NoContextGLApi::glCompressedTexSubImage2DFn(GLenum target,
  9743. GLint level,
  9744. GLint xoffset,
  9745. GLint yoffset,
  9746. GLsizei width,
  9747. GLsizei height,
  9748. GLenum format,
  9749. GLsizei imageSize,
  9750. const void* data) {
  9751. NOTREACHED() << "Trying to call glCompressedTexSubImage2D() without current "
  9752. "GL context";
  9753. LOG(ERROR) << "Trying to call glCompressedTexSubImage2D() without current GL "
  9754. "context";
  9755. }
  9756. void NoContextGLApi::glCompressedTexSubImage3DFn(GLenum target,
  9757. GLint level,
  9758. GLint xoffset,
  9759. GLint yoffset,
  9760. GLint zoffset,
  9761. GLsizei width,
  9762. GLsizei height,
  9763. GLsizei depth,
  9764. GLenum format,
  9765. GLsizei imageSize,
  9766. const void* data) {
  9767. NOTREACHED() << "Trying to call glCompressedTexSubImage3D() without current "
  9768. "GL context";
  9769. LOG(ERROR) << "Trying to call glCompressedTexSubImage3D() without current GL "
  9770. "context";
  9771. }
  9772. void NoContextGLApi::glCopyBufferSubDataFn(GLenum readTarget,
  9773. GLenum writeTarget,
  9774. GLintptr readOffset,
  9775. GLintptr writeOffset,
  9776. GLsizeiptr size) {
  9777. NOTREACHED()
  9778. << "Trying to call glCopyBufferSubData() without current GL context";
  9779. LOG(ERROR)
  9780. << "Trying to call glCopyBufferSubData() without current GL context";
  9781. }
  9782. void NoContextGLApi::glCopyTexImage2DFn(GLenum target,
  9783. GLint level,
  9784. GLenum internalformat,
  9785. GLint x,
  9786. GLint y,
  9787. GLsizei width,
  9788. GLsizei height,
  9789. GLint border) {
  9790. NOTREACHED()
  9791. << "Trying to call glCopyTexImage2D() without current GL context";
  9792. LOG(ERROR) << "Trying to call glCopyTexImage2D() without current GL context";
  9793. }
  9794. void NoContextGLApi::glCopyTexSubImage2DFn(GLenum target,
  9795. GLint level,
  9796. GLint xoffset,
  9797. GLint yoffset,
  9798. GLint x,
  9799. GLint y,
  9800. GLsizei width,
  9801. GLsizei height) {
  9802. NOTREACHED()
  9803. << "Trying to call glCopyTexSubImage2D() without current GL context";
  9804. LOG(ERROR)
  9805. << "Trying to call glCopyTexSubImage2D() without current GL context";
  9806. }
  9807. void NoContextGLApi::glCopyTexSubImage3DFn(GLenum target,
  9808. GLint level,
  9809. GLint xoffset,
  9810. GLint yoffset,
  9811. GLint zoffset,
  9812. GLint x,
  9813. GLint y,
  9814. GLsizei width,
  9815. GLsizei height) {
  9816. NOTREACHED()
  9817. << "Trying to call glCopyTexSubImage3D() without current GL context";
  9818. LOG(ERROR)
  9819. << "Trying to call glCopyTexSubImage3D() without current GL context";
  9820. }
  9821. void NoContextGLApi::glCoverageModulationNVFn(GLenum components) {
  9822. NOTREACHED()
  9823. << "Trying to call glCoverageModulationNV() without current GL context";
  9824. LOG(ERROR)
  9825. << "Trying to call glCoverageModulationNV() without current GL context";
  9826. }
  9827. void NoContextGLApi::glCoverFillPathInstancedNVFn(
  9828. GLsizei numPaths,
  9829. GLenum pathNameType,
  9830. const void* paths,
  9831. GLuint pathBase,
  9832. GLenum coverMode,
  9833. GLenum transformType,
  9834. const GLfloat* transformValues) {
  9835. NOTREACHED() << "Trying to call glCoverFillPathInstancedNV() without current "
  9836. "GL context";
  9837. LOG(ERROR) << "Trying to call glCoverFillPathInstancedNV() without current "
  9838. "GL context";
  9839. }
  9840. void NoContextGLApi::glCoverFillPathNVFn(GLuint path, GLenum coverMode) {
  9841. NOTREACHED()
  9842. << "Trying to call glCoverFillPathNV() without current GL context";
  9843. LOG(ERROR) << "Trying to call glCoverFillPathNV() without current GL context";
  9844. }
  9845. void NoContextGLApi::glCoverStrokePathInstancedNVFn(
  9846. GLsizei numPaths,
  9847. GLenum pathNameType,
  9848. const void* paths,
  9849. GLuint pathBase,
  9850. GLenum coverMode,
  9851. GLenum transformType,
  9852. const GLfloat* transformValues) {
  9853. NOTREACHED() << "Trying to call glCoverStrokePathInstancedNV() without "
  9854. "current GL context";
  9855. LOG(ERROR) << "Trying to call glCoverStrokePathInstancedNV() without current "
  9856. "GL context";
  9857. }
  9858. void NoContextGLApi::glCoverStrokePathNVFn(GLuint name, GLenum coverMode) {
  9859. NOTREACHED()
  9860. << "Trying to call glCoverStrokePathNV() without current GL context";
  9861. LOG(ERROR)
  9862. << "Trying to call glCoverStrokePathNV() without current GL context";
  9863. }
  9864. GLuint NoContextGLApi::glCreateProgramFn(void) {
  9865. NOTREACHED() << "Trying to call glCreateProgram() without current GL context";
  9866. LOG(ERROR) << "Trying to call glCreateProgram() without current GL context";
  9867. return 0U;
  9868. }
  9869. GLuint NoContextGLApi::glCreateShaderFn(GLenum type) {
  9870. NOTREACHED() << "Trying to call glCreateShader() without current GL context";
  9871. LOG(ERROR) << "Trying to call glCreateShader() without current GL context";
  9872. return 0U;
  9873. }
  9874. void NoContextGLApi::glCullFaceFn(GLenum mode) {
  9875. NOTREACHED() << "Trying to call glCullFace() without current GL context";
  9876. LOG(ERROR) << "Trying to call glCullFace() without current GL context";
  9877. }
  9878. void NoContextGLApi::glDeleteBuffersARBFn(GLsizei n, const GLuint* buffers) {
  9879. NOTREACHED()
  9880. << "Trying to call glDeleteBuffersARB() without current GL context";
  9881. LOG(ERROR)
  9882. << "Trying to call glDeleteBuffersARB() without current GL context";
  9883. }
  9884. void NoContextGLApi::glDeleteFencesAPPLEFn(GLsizei n, const GLuint* fences) {
  9885. NOTREACHED()
  9886. << "Trying to call glDeleteFencesAPPLE() without current GL context";
  9887. LOG(ERROR)
  9888. << "Trying to call glDeleteFencesAPPLE() without current GL context";
  9889. }
  9890. void NoContextGLApi::glDeleteFencesNVFn(GLsizei n, const GLuint* fences) {
  9891. NOTREACHED()
  9892. << "Trying to call glDeleteFencesNV() without current GL context";
  9893. LOG(ERROR) << "Trying to call glDeleteFencesNV() without current GL context";
  9894. }
  9895. void NoContextGLApi::glDeleteFramebuffersEXTFn(GLsizei n,
  9896. const GLuint* framebuffers) {
  9897. NOTREACHED()
  9898. << "Trying to call glDeleteFramebuffersEXT() without current GL context";
  9899. LOG(ERROR)
  9900. << "Trying to call glDeleteFramebuffersEXT() without current GL context";
  9901. }
  9902. void NoContextGLApi::glDeletePathsNVFn(GLuint path, GLsizei range) {
  9903. NOTREACHED() << "Trying to call glDeletePathsNV() without current GL context";
  9904. LOG(ERROR) << "Trying to call glDeletePathsNV() without current GL context";
  9905. }
  9906. void NoContextGLApi::glDeleteProgramFn(GLuint program) {
  9907. NOTREACHED() << "Trying to call glDeleteProgram() without current GL context";
  9908. LOG(ERROR) << "Trying to call glDeleteProgram() without current GL context";
  9909. }
  9910. void NoContextGLApi::glDeleteQueriesFn(GLsizei n, const GLuint* ids) {
  9911. NOTREACHED() << "Trying to call glDeleteQueries() without current GL context";
  9912. LOG(ERROR) << "Trying to call glDeleteQueries() without current GL context";
  9913. }
  9914. void NoContextGLApi::glDeleteRenderbuffersEXTFn(GLsizei n,
  9915. const GLuint* renderbuffers) {
  9916. NOTREACHED()
  9917. << "Trying to call glDeleteRenderbuffersEXT() without current GL context";
  9918. LOG(ERROR)
  9919. << "Trying to call glDeleteRenderbuffersEXT() without current GL context";
  9920. }
  9921. void NoContextGLApi::glDeleteSamplersFn(GLsizei n, const GLuint* samplers) {
  9922. NOTREACHED()
  9923. << "Trying to call glDeleteSamplers() without current GL context";
  9924. LOG(ERROR) << "Trying to call glDeleteSamplers() without current GL context";
  9925. }
  9926. void NoContextGLApi::glDeleteShaderFn(GLuint shader) {
  9927. NOTREACHED() << "Trying to call glDeleteShader() without current GL context";
  9928. LOG(ERROR) << "Trying to call glDeleteShader() without current GL context";
  9929. }
  9930. void NoContextGLApi::glDeleteSyncFn(GLsync sync) {
  9931. NOTREACHED() << "Trying to call glDeleteSync() without current GL context";
  9932. LOG(ERROR) << "Trying to call glDeleteSync() without current GL context";
  9933. }
  9934. void NoContextGLApi::glDeleteTexturesFn(GLsizei n, const GLuint* textures) {
  9935. NOTREACHED()
  9936. << "Trying to call glDeleteTextures() without current GL context";
  9937. LOG(ERROR) << "Trying to call glDeleteTextures() without current GL context";
  9938. }
  9939. void NoContextGLApi::glDeleteTransformFeedbacksFn(GLsizei n,
  9940. const GLuint* ids) {
  9941. NOTREACHED() << "Trying to call glDeleteTransformFeedbacks() without current "
  9942. "GL context";
  9943. LOG(ERROR) << "Trying to call glDeleteTransformFeedbacks() without current "
  9944. "GL context";
  9945. }
  9946. void NoContextGLApi::glDeleteVertexArraysOESFn(GLsizei n,
  9947. const GLuint* arrays) {
  9948. NOTREACHED()
  9949. << "Trying to call glDeleteVertexArraysOES() without current GL context";
  9950. LOG(ERROR)
  9951. << "Trying to call glDeleteVertexArraysOES() without current GL context";
  9952. }
  9953. void NoContextGLApi::glDepthFuncFn(GLenum func) {
  9954. NOTREACHED() << "Trying to call glDepthFunc() without current GL context";
  9955. LOG(ERROR) << "Trying to call glDepthFunc() without current GL context";
  9956. }
  9957. void NoContextGLApi::glDepthMaskFn(GLboolean flag) {
  9958. NOTREACHED() << "Trying to call glDepthMask() without current GL context";
  9959. LOG(ERROR) << "Trying to call glDepthMask() without current GL context";
  9960. }
  9961. void NoContextGLApi::glDepthRangeFn(GLclampd zNear, GLclampd zFar) {
  9962. NOTREACHED() << "Trying to call glDepthRange() without current GL context";
  9963. LOG(ERROR) << "Trying to call glDepthRange() without current GL context";
  9964. }
  9965. void NoContextGLApi::glDepthRangefFn(GLclampf zNear, GLclampf zFar) {
  9966. NOTREACHED() << "Trying to call glDepthRangef() without current GL context";
  9967. LOG(ERROR) << "Trying to call glDepthRangef() without current GL context";
  9968. }
  9969. void NoContextGLApi::glDetachShaderFn(GLuint program, GLuint shader) {
  9970. NOTREACHED() << "Trying to call glDetachShader() without current GL context";
  9971. LOG(ERROR) << "Trying to call glDetachShader() without current GL context";
  9972. }
  9973. void NoContextGLApi::glDisableFn(GLenum cap) {
  9974. NOTREACHED() << "Trying to call glDisable() without current GL context";
  9975. LOG(ERROR) << "Trying to call glDisable() without current GL context";
  9976. }
  9977. void NoContextGLApi::glDisableVertexAttribArrayFn(GLuint index) {
  9978. NOTREACHED() << "Trying to call glDisableVertexAttribArray() without current "
  9979. "GL context";
  9980. LOG(ERROR) << "Trying to call glDisableVertexAttribArray() without current "
  9981. "GL context";
  9982. }
  9983. void NoContextGLApi::glDiscardFramebufferEXTFn(GLenum target,
  9984. GLsizei numAttachments,
  9985. const GLenum* attachments) {
  9986. NOTREACHED()
  9987. << "Trying to call glDiscardFramebufferEXT() without current GL context";
  9988. LOG(ERROR)
  9989. << "Trying to call glDiscardFramebufferEXT() without current GL context";
  9990. }
  9991. void NoContextGLApi::glDrawArraysFn(GLenum mode, GLint first, GLsizei count) {
  9992. NOTREACHED() << "Trying to call glDrawArrays() without current GL context";
  9993. LOG(ERROR) << "Trying to call glDrawArrays() without current GL context";
  9994. }
  9995. void NoContextGLApi::glDrawArraysInstancedANGLEFn(GLenum mode,
  9996. GLint first,
  9997. GLsizei count,
  9998. GLsizei primcount) {
  9999. NOTREACHED() << "Trying to call glDrawArraysInstancedANGLE() without current "
  10000. "GL context";
  10001. LOG(ERROR) << "Trying to call glDrawArraysInstancedANGLE() without current "
  10002. "GL context";
  10003. }
  10004. void NoContextGLApi::glDrawBufferFn(GLenum mode) {
  10005. NOTREACHED() << "Trying to call glDrawBuffer() without current GL context";
  10006. LOG(ERROR) << "Trying to call glDrawBuffer() without current GL context";
  10007. }
  10008. void NoContextGLApi::glDrawBuffersARBFn(GLsizei n, const GLenum* bufs) {
  10009. NOTREACHED()
  10010. << "Trying to call glDrawBuffersARB() without current GL context";
  10011. LOG(ERROR) << "Trying to call glDrawBuffersARB() without current GL context";
  10012. }
  10013. void NoContextGLApi::glDrawElementsFn(GLenum mode,
  10014. GLsizei count,
  10015. GLenum type,
  10016. const void* indices) {
  10017. NOTREACHED() << "Trying to call glDrawElements() without current GL context";
  10018. LOG(ERROR) << "Trying to call glDrawElements() without current GL context";
  10019. }
  10020. void NoContextGLApi::glDrawElementsInstancedANGLEFn(GLenum mode,
  10021. GLsizei count,
  10022. GLenum type,
  10023. const void* indices,
  10024. GLsizei primcount) {
  10025. NOTREACHED() << "Trying to call glDrawElementsInstancedANGLE() without "
  10026. "current GL context";
  10027. LOG(ERROR) << "Trying to call glDrawElementsInstancedANGLE() without current "
  10028. "GL context";
  10029. }
  10030. void NoContextGLApi::glDrawRangeElementsFn(GLenum mode,
  10031. GLuint start,
  10032. GLuint end,
  10033. GLsizei count,
  10034. GLenum type,
  10035. const void* indices) {
  10036. NOTREACHED()
  10037. << "Trying to call glDrawRangeElements() without current GL context";
  10038. LOG(ERROR)
  10039. << "Trying to call glDrawRangeElements() without current GL context";
  10040. }
  10041. void NoContextGLApi::glEGLImageTargetRenderbufferStorageOESFn(
  10042. GLenum target,
  10043. GLeglImageOES image) {
  10044. NOTREACHED() << "Trying to call glEGLImageTargetRenderbufferStorageOES() "
  10045. "without current GL context";
  10046. LOG(ERROR) << "Trying to call glEGLImageTargetRenderbufferStorageOES() "
  10047. "without current GL context";
  10048. }
  10049. void NoContextGLApi::glEGLImageTargetTexture2DOESFn(GLenum target,
  10050. GLeglImageOES image) {
  10051. NOTREACHED() << "Trying to call glEGLImageTargetTexture2DOES() without "
  10052. "current GL context";
  10053. LOG(ERROR) << "Trying to call glEGLImageTargetTexture2DOES() without current "
  10054. "GL context";
  10055. }
  10056. void NoContextGLApi::glEnableFn(GLenum cap) {
  10057. NOTREACHED() << "Trying to call glEnable() without current GL context";
  10058. LOG(ERROR) << "Trying to call glEnable() without current GL context";
  10059. }
  10060. void NoContextGLApi::glEnableVertexAttribArrayFn(GLuint index) {
  10061. NOTREACHED() << "Trying to call glEnableVertexAttribArray() without current "
  10062. "GL context";
  10063. LOG(ERROR) << "Trying to call glEnableVertexAttribArray() without current GL "
  10064. "context";
  10065. }
  10066. void NoContextGLApi::glEndQueryFn(GLenum target) {
  10067. NOTREACHED() << "Trying to call glEndQuery() without current GL context";
  10068. LOG(ERROR) << "Trying to call glEndQuery() without current GL context";
  10069. }
  10070. void NoContextGLApi::glEndTransformFeedbackFn(void) {
  10071. NOTREACHED()
  10072. << "Trying to call glEndTransformFeedback() without current GL context";
  10073. LOG(ERROR)
  10074. << "Trying to call glEndTransformFeedback() without current GL context";
  10075. }
  10076. GLsync NoContextGLApi::glFenceSyncFn(GLenum condition, GLbitfield flags) {
  10077. NOTREACHED() << "Trying to call glFenceSync() without current GL context";
  10078. LOG(ERROR) << "Trying to call glFenceSync() without current GL context";
  10079. return NULL;
  10080. }
  10081. void NoContextGLApi::glFinishFn(void) {
  10082. NOTREACHED() << "Trying to call glFinish() without current GL context";
  10083. LOG(ERROR) << "Trying to call glFinish() without current GL context";
  10084. }
  10085. void NoContextGLApi::glFinishFenceAPPLEFn(GLuint fence) {
  10086. NOTREACHED()
  10087. << "Trying to call glFinishFenceAPPLE() without current GL context";
  10088. LOG(ERROR)
  10089. << "Trying to call glFinishFenceAPPLE() without current GL context";
  10090. }
  10091. void NoContextGLApi::glFinishFenceNVFn(GLuint fence) {
  10092. NOTREACHED() << "Trying to call glFinishFenceNV() without current GL context";
  10093. LOG(ERROR) << "Trying to call glFinishFenceNV() without current GL context";
  10094. }
  10095. void NoContextGLApi::glFlushFn(void) {
  10096. NOTREACHED() << "Trying to call glFlush() without current GL context";
  10097. LOG(ERROR) << "Trying to call glFlush() without current GL context";
  10098. }
  10099. void NoContextGLApi::glFlushMappedBufferRangeFn(GLenum target,
  10100. GLintptr offset,
  10101. GLsizeiptr length) {
  10102. NOTREACHED()
  10103. << "Trying to call glFlushMappedBufferRange() without current GL context";
  10104. LOG(ERROR)
  10105. << "Trying to call glFlushMappedBufferRange() without current GL context";
  10106. }
  10107. void NoContextGLApi::glFramebufferRenderbufferEXTFn(GLenum target,
  10108. GLenum attachment,
  10109. GLenum renderbuffertarget,
  10110. GLuint renderbuffer) {
  10111. NOTREACHED() << "Trying to call glFramebufferRenderbufferEXT() without "
  10112. "current GL context";
  10113. LOG(ERROR) << "Trying to call glFramebufferRenderbufferEXT() without current "
  10114. "GL context";
  10115. }
  10116. void NoContextGLApi::glFramebufferTexture2DEXTFn(GLenum target,
  10117. GLenum attachment,
  10118. GLenum textarget,
  10119. GLuint texture,
  10120. GLint level) {
  10121. NOTREACHED() << "Trying to call glFramebufferTexture2DEXT() without current "
  10122. "GL context";
  10123. LOG(ERROR) << "Trying to call glFramebufferTexture2DEXT() without current GL "
  10124. "context";
  10125. }
  10126. void NoContextGLApi::glFramebufferTexture2DMultisampleEXTFn(GLenum target,
  10127. GLenum attachment,
  10128. GLenum textarget,
  10129. GLuint texture,
  10130. GLint level,
  10131. GLsizei samples) {
  10132. NOTREACHED() << "Trying to call glFramebufferTexture2DMultisampleEXT() "
  10133. "without current GL context";
  10134. LOG(ERROR) << "Trying to call glFramebufferTexture2DMultisampleEXT() without "
  10135. "current GL context";
  10136. }
  10137. void NoContextGLApi::glFramebufferTexture2DMultisampleIMGFn(GLenum target,
  10138. GLenum attachment,
  10139. GLenum textarget,
  10140. GLuint texture,
  10141. GLint level,
  10142. GLsizei samples) {
  10143. NOTREACHED() << "Trying to call glFramebufferTexture2DMultisampleIMG() "
  10144. "without current GL context";
  10145. LOG(ERROR) << "Trying to call glFramebufferTexture2DMultisampleIMG() without "
  10146. "current GL context";
  10147. }
  10148. void NoContextGLApi::glFramebufferTextureLayerFn(GLenum target,
  10149. GLenum attachment,
  10150. GLuint texture,
  10151. GLint level,
  10152. GLint layer) {
  10153. NOTREACHED() << "Trying to call glFramebufferTextureLayer() without current "
  10154. "GL context";
  10155. LOG(ERROR) << "Trying to call glFramebufferTextureLayer() without current GL "
  10156. "context";
  10157. }
  10158. void NoContextGLApi::glFrontFaceFn(GLenum mode) {
  10159. NOTREACHED() << "Trying to call glFrontFace() without current GL context";
  10160. LOG(ERROR) << "Trying to call glFrontFace() without current GL context";
  10161. }
  10162. void NoContextGLApi::glGenBuffersARBFn(GLsizei n, GLuint* buffers) {
  10163. NOTREACHED() << "Trying to call glGenBuffersARB() without current GL context";
  10164. LOG(ERROR) << "Trying to call glGenBuffersARB() without current GL context";
  10165. }
  10166. void NoContextGLApi::glGenerateMipmapEXTFn(GLenum target) {
  10167. NOTREACHED()
  10168. << "Trying to call glGenerateMipmapEXT() without current GL context";
  10169. LOG(ERROR)
  10170. << "Trying to call glGenerateMipmapEXT() without current GL context";
  10171. }
  10172. void NoContextGLApi::glGenFencesAPPLEFn(GLsizei n, GLuint* fences) {
  10173. NOTREACHED()
  10174. << "Trying to call glGenFencesAPPLE() without current GL context";
  10175. LOG(ERROR) << "Trying to call glGenFencesAPPLE() without current GL context";
  10176. }
  10177. void NoContextGLApi::glGenFencesNVFn(GLsizei n, GLuint* fences) {
  10178. NOTREACHED() << "Trying to call glGenFencesNV() without current GL context";
  10179. LOG(ERROR) << "Trying to call glGenFencesNV() without current GL context";
  10180. }
  10181. void NoContextGLApi::glGenFramebuffersEXTFn(GLsizei n, GLuint* framebuffers) {
  10182. NOTREACHED()
  10183. << "Trying to call glGenFramebuffersEXT() without current GL context";
  10184. LOG(ERROR)
  10185. << "Trying to call glGenFramebuffersEXT() without current GL context";
  10186. }
  10187. GLuint NoContextGLApi::glGenPathsNVFn(GLsizei range) {
  10188. NOTREACHED() << "Trying to call glGenPathsNV() without current GL context";
  10189. LOG(ERROR) << "Trying to call glGenPathsNV() without current GL context";
  10190. return 0U;
  10191. }
  10192. void NoContextGLApi::glGenQueriesFn(GLsizei n, GLuint* ids) {
  10193. NOTREACHED() << "Trying to call glGenQueries() without current GL context";
  10194. LOG(ERROR) << "Trying to call glGenQueries() without current GL context";
  10195. }
  10196. void NoContextGLApi::glGenRenderbuffersEXTFn(GLsizei n, GLuint* renderbuffers) {
  10197. NOTREACHED()
  10198. << "Trying to call glGenRenderbuffersEXT() without current GL context";
  10199. LOG(ERROR)
  10200. << "Trying to call glGenRenderbuffersEXT() without current GL context";
  10201. }
  10202. void NoContextGLApi::glGenSamplersFn(GLsizei n, GLuint* samplers) {
  10203. NOTREACHED() << "Trying to call glGenSamplers() without current GL context";
  10204. LOG(ERROR) << "Trying to call glGenSamplers() without current GL context";
  10205. }
  10206. void NoContextGLApi::glGenTexturesFn(GLsizei n, GLuint* textures) {
  10207. NOTREACHED() << "Trying to call glGenTextures() without current GL context";
  10208. LOG(ERROR) << "Trying to call glGenTextures() without current GL context";
  10209. }
  10210. void NoContextGLApi::glGenTransformFeedbacksFn(GLsizei n, GLuint* ids) {
  10211. NOTREACHED()
  10212. << "Trying to call glGenTransformFeedbacks() without current GL context";
  10213. LOG(ERROR)
  10214. << "Trying to call glGenTransformFeedbacks() without current GL context";
  10215. }
  10216. void NoContextGLApi::glGenVertexArraysOESFn(GLsizei n, GLuint* arrays) {
  10217. NOTREACHED()
  10218. << "Trying to call glGenVertexArraysOES() without current GL context";
  10219. LOG(ERROR)
  10220. << "Trying to call glGenVertexArraysOES() without current GL context";
  10221. }
  10222. void NoContextGLApi::glGetActiveAttribFn(GLuint program,
  10223. GLuint index,
  10224. GLsizei bufsize,
  10225. GLsizei* length,
  10226. GLint* size,
  10227. GLenum* type,
  10228. char* name) {
  10229. NOTREACHED()
  10230. << "Trying to call glGetActiveAttrib() without current GL context";
  10231. LOG(ERROR) << "Trying to call glGetActiveAttrib() without current GL context";
  10232. }
  10233. void NoContextGLApi::glGetActiveUniformFn(GLuint program,
  10234. GLuint index,
  10235. GLsizei bufsize,
  10236. GLsizei* length,
  10237. GLint* size,
  10238. GLenum* type,
  10239. char* name) {
  10240. NOTREACHED()
  10241. << "Trying to call glGetActiveUniform() without current GL context";
  10242. LOG(ERROR)
  10243. << "Trying to call glGetActiveUniform() without current GL context";
  10244. }
  10245. void NoContextGLApi::glGetActiveUniformBlockivFn(GLuint program,
  10246. GLuint uniformBlockIndex,
  10247. GLenum pname,
  10248. GLint* params) {
  10249. NOTREACHED() << "Trying to call glGetActiveUniformBlockiv() without current "
  10250. "GL context";
  10251. LOG(ERROR) << "Trying to call glGetActiveUniformBlockiv() without current GL "
  10252. "context";
  10253. }
  10254. void NoContextGLApi::glGetActiveUniformBlockNameFn(GLuint program,
  10255. GLuint uniformBlockIndex,
  10256. GLsizei bufSize,
  10257. GLsizei* length,
  10258. char* uniformBlockName) {
  10259. NOTREACHED() << "Trying to call glGetActiveUniformBlockName() without "
  10260. "current GL context";
  10261. LOG(ERROR) << "Trying to call glGetActiveUniformBlockName() without current "
  10262. "GL context";
  10263. }
  10264. void NoContextGLApi::glGetActiveUniformsivFn(GLuint program,
  10265. GLsizei uniformCount,
  10266. const GLuint* uniformIndices,
  10267. GLenum pname,
  10268. GLint* params) {
  10269. NOTREACHED()
  10270. << "Trying to call glGetActiveUniformsiv() without current GL context";
  10271. LOG(ERROR)
  10272. << "Trying to call glGetActiveUniformsiv() without current GL context";
  10273. }
  10274. void NoContextGLApi::glGetAttachedShadersFn(GLuint program,
  10275. GLsizei maxcount,
  10276. GLsizei* count,
  10277. GLuint* shaders) {
  10278. NOTREACHED()
  10279. << "Trying to call glGetAttachedShaders() without current GL context";
  10280. LOG(ERROR)
  10281. << "Trying to call glGetAttachedShaders() without current GL context";
  10282. }
  10283. GLint NoContextGLApi::glGetAttribLocationFn(GLuint program, const char* name) {
  10284. NOTREACHED()
  10285. << "Trying to call glGetAttribLocation() without current GL context";
  10286. LOG(ERROR)
  10287. << "Trying to call glGetAttribLocation() without current GL context";
  10288. return 0;
  10289. }
  10290. void NoContextGLApi::glGetBooleanvFn(GLenum pname, GLboolean* params) {
  10291. NOTREACHED() << "Trying to call glGetBooleanv() without current GL context";
  10292. LOG(ERROR) << "Trying to call glGetBooleanv() without current GL context";
  10293. }
  10294. void NoContextGLApi::glGetBufferParameterivFn(GLenum target,
  10295. GLenum pname,
  10296. GLint* params) {
  10297. NOTREACHED()
  10298. << "Trying to call glGetBufferParameteriv() without current GL context";
  10299. LOG(ERROR)
  10300. << "Trying to call glGetBufferParameteriv() without current GL context";
  10301. }
  10302. GLenum NoContextGLApi::glGetErrorFn(void) {
  10303. NOTREACHED() << "Trying to call glGetError() without current GL context";
  10304. LOG(ERROR) << "Trying to call glGetError() without current GL context";
  10305. return static_cast<GLenum>(0);
  10306. }
  10307. void NoContextGLApi::glGetFenceivNVFn(GLuint fence,
  10308. GLenum pname,
  10309. GLint* params) {
  10310. NOTREACHED() << "Trying to call glGetFenceivNV() without current GL context";
  10311. LOG(ERROR) << "Trying to call glGetFenceivNV() without current GL context";
  10312. }
  10313. void NoContextGLApi::glGetFloatvFn(GLenum pname, GLfloat* params) {
  10314. NOTREACHED() << "Trying to call glGetFloatv() without current GL context";
  10315. LOG(ERROR) << "Trying to call glGetFloatv() without current GL context";
  10316. }
  10317. GLint NoContextGLApi::glGetFragDataIndexFn(GLuint program, const char* name) {
  10318. NOTREACHED()
  10319. << "Trying to call glGetFragDataIndex() without current GL context";
  10320. LOG(ERROR)
  10321. << "Trying to call glGetFragDataIndex() without current GL context";
  10322. return 0;
  10323. }
  10324. GLint NoContextGLApi::glGetFragDataLocationFn(GLuint program,
  10325. const char* name) {
  10326. NOTREACHED()
  10327. << "Trying to call glGetFragDataLocation() without current GL context";
  10328. LOG(ERROR)
  10329. << "Trying to call glGetFragDataLocation() without current GL context";
  10330. return 0;
  10331. }
  10332. void NoContextGLApi::glGetFramebufferAttachmentParameterivEXTFn(
  10333. GLenum target,
  10334. GLenum attachment,
  10335. GLenum pname,
  10336. GLint* params) {
  10337. NOTREACHED() << "Trying to call glGetFramebufferAttachmentParameterivEXT() "
  10338. "without current GL context";
  10339. LOG(ERROR) << "Trying to call glGetFramebufferAttachmentParameterivEXT() "
  10340. "without current GL context";
  10341. }
  10342. GLenum NoContextGLApi::glGetGraphicsResetStatusARBFn(void) {
  10343. NOTREACHED() << "Trying to call glGetGraphicsResetStatusARB() without "
  10344. "current GL context";
  10345. LOG(ERROR) << "Trying to call glGetGraphicsResetStatusARB() without current "
  10346. "GL context";
  10347. return static_cast<GLenum>(0);
  10348. }
  10349. void NoContextGLApi::glGetInteger64i_vFn(GLenum target,
  10350. GLuint index,
  10351. GLint64* data) {
  10352. NOTREACHED()
  10353. << "Trying to call glGetInteger64i_v() without current GL context";
  10354. LOG(ERROR) << "Trying to call glGetInteger64i_v() without current GL context";
  10355. }
  10356. void NoContextGLApi::glGetInteger64vFn(GLenum pname, GLint64* params) {
  10357. NOTREACHED() << "Trying to call glGetInteger64v() without current GL context";
  10358. LOG(ERROR) << "Trying to call glGetInteger64v() without current GL context";
  10359. }
  10360. void NoContextGLApi::glGetIntegeri_vFn(GLenum target,
  10361. GLuint index,
  10362. GLint* data) {
  10363. NOTREACHED() << "Trying to call glGetIntegeri_v() without current GL context";
  10364. LOG(ERROR) << "Trying to call glGetIntegeri_v() without current GL context";
  10365. }
  10366. void NoContextGLApi::glGetIntegervFn(GLenum pname, GLint* params) {
  10367. NOTREACHED() << "Trying to call glGetIntegerv() without current GL context";
  10368. LOG(ERROR) << "Trying to call glGetIntegerv() without current GL context";
  10369. }
  10370. void NoContextGLApi::glGetInternalformativFn(GLenum target,
  10371. GLenum internalformat,
  10372. GLenum pname,
  10373. GLsizei bufSize,
  10374. GLint* params) {
  10375. NOTREACHED()
  10376. << "Trying to call glGetInternalformativ() without current GL context";
  10377. LOG(ERROR)
  10378. << "Trying to call glGetInternalformativ() without current GL context";
  10379. }
  10380. void NoContextGLApi::glGetProgramBinaryFn(GLuint program,
  10381. GLsizei bufSize,
  10382. GLsizei* length,
  10383. GLenum* binaryFormat,
  10384. GLvoid* binary) {
  10385. NOTREACHED()
  10386. << "Trying to call glGetProgramBinary() without current GL context";
  10387. LOG(ERROR)
  10388. << "Trying to call glGetProgramBinary() without current GL context";
  10389. }
  10390. void NoContextGLApi::glGetProgramInfoLogFn(GLuint program,
  10391. GLsizei bufsize,
  10392. GLsizei* length,
  10393. char* infolog) {
  10394. NOTREACHED()
  10395. << "Trying to call glGetProgramInfoLog() without current GL context";
  10396. LOG(ERROR)
  10397. << "Trying to call glGetProgramInfoLog() without current GL context";
  10398. }
  10399. void NoContextGLApi::glGetProgramInterfaceivFn(GLuint program,
  10400. GLenum programInterface,
  10401. GLenum pname,
  10402. GLint* params) {
  10403. NOTREACHED()
  10404. << "Trying to call glGetProgramInterfaceiv() without current GL context";
  10405. LOG(ERROR)
  10406. << "Trying to call glGetProgramInterfaceiv() without current GL context";
  10407. }
  10408. void NoContextGLApi::glGetProgramivFn(GLuint program,
  10409. GLenum pname,
  10410. GLint* params) {
  10411. NOTREACHED() << "Trying to call glGetProgramiv() without current GL context";
  10412. LOG(ERROR) << "Trying to call glGetProgramiv() without current GL context";
  10413. }
  10414. void NoContextGLApi::glGetProgramResourceivFn(GLuint program,
  10415. GLenum programInterface,
  10416. GLuint index,
  10417. GLsizei propCount,
  10418. const GLenum* props,
  10419. GLsizei bufSize,
  10420. GLsizei* length,
  10421. GLint* params) {
  10422. NOTREACHED()
  10423. << "Trying to call glGetProgramResourceiv() without current GL context";
  10424. LOG(ERROR)
  10425. << "Trying to call glGetProgramResourceiv() without current GL context";
  10426. }
  10427. GLint NoContextGLApi::glGetProgramResourceLocationFn(GLuint program,
  10428. GLenum programInterface,
  10429. const char* name) {
  10430. NOTREACHED() << "Trying to call glGetProgramResourceLocation() without "
  10431. "current GL context";
  10432. LOG(ERROR) << "Trying to call glGetProgramResourceLocation() without current "
  10433. "GL context";
  10434. return 0;
  10435. }
  10436. void NoContextGLApi::glGetProgramResourceNameFn(GLuint program,
  10437. GLenum programInterface,
  10438. GLuint index,
  10439. GLsizei bufSize,
  10440. GLsizei* length,
  10441. GLchar* name) {
  10442. NOTREACHED()
  10443. << "Trying to call glGetProgramResourceName() without current GL context";
  10444. LOG(ERROR)
  10445. << "Trying to call glGetProgramResourceName() without current GL context";
  10446. }
  10447. void NoContextGLApi::glGetQueryivFn(GLenum target,
  10448. GLenum pname,
  10449. GLint* params) {
  10450. NOTREACHED() << "Trying to call glGetQueryiv() without current GL context";
  10451. LOG(ERROR) << "Trying to call glGetQueryiv() without current GL context";
  10452. }
  10453. void NoContextGLApi::glGetQueryObjecti64vFn(GLuint id,
  10454. GLenum pname,
  10455. GLint64* params) {
  10456. NOTREACHED()
  10457. << "Trying to call glGetQueryObjecti64v() without current GL context";
  10458. LOG(ERROR)
  10459. << "Trying to call glGetQueryObjecti64v() without current GL context";
  10460. }
  10461. void NoContextGLApi::glGetQueryObjectivFn(GLuint id,
  10462. GLenum pname,
  10463. GLint* params) {
  10464. NOTREACHED()
  10465. << "Trying to call glGetQueryObjectiv() without current GL context";
  10466. LOG(ERROR)
  10467. << "Trying to call glGetQueryObjectiv() without current GL context";
  10468. }
  10469. void NoContextGLApi::glGetQueryObjectui64vFn(GLuint id,
  10470. GLenum pname,
  10471. GLuint64* params) {
  10472. NOTREACHED()
  10473. << "Trying to call glGetQueryObjectui64v() without current GL context";
  10474. LOG(ERROR)
  10475. << "Trying to call glGetQueryObjectui64v() without current GL context";
  10476. }
  10477. void NoContextGLApi::glGetQueryObjectuivFn(GLuint id,
  10478. GLenum pname,
  10479. GLuint* params) {
  10480. NOTREACHED()
  10481. << "Trying to call glGetQueryObjectuiv() without current GL context";
  10482. LOG(ERROR)
  10483. << "Tryin