/opengles/src/gl.cpp

http://ftk.googlecode.com/ · C++ · 640 lines · 447 code · 153 blank · 40 comment · 3 complexity · 1bb7e625b5279b096cd9b6179d00b2aa MD5 · raw file

  1. // ==========================================================================
  2. //
  3. // gl.cpp EGL Client API entry points
  4. //
  5. // --------------------------------------------------------------------------
  6. //
  7. // 08-04-2003 Hans-Martin Will initial version
  8. //
  9. // --------------------------------------------------------------------------
  10. //
  11. // Copyright (c) 2004, Hans-Martin Will. All rights reserved.
  12. //
  13. // Redistribution and use in source and binary forms, with or without
  14. // modification, are permitted provided that the following conditions are
  15. // met:
  16. //
  17. // * Redistributions of source code must retain the above copyright
  18. // notice, this list of conditions and the following disclaimer.
  19. // * Redistributions in binary form must reproduce the above copyright
  20. // notice, this list of conditions and the following disclaimer in the
  21. // documentation and/or other materials provided with the distribution.
  22. //
  23. // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  24. // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  25. // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  26. // ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  27. // LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
  28. // OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  29. // SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  30. // INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  31. // CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  32. // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
  33. // THE POSSIBILITY OF SUCH DAMAGE.
  34. //
  35. // ==========================================================================
  36. #include "stdafx.h"
  37. #include "Context.h"
  38. using namespace EGL;
  39. #define CONTEXT_EXEC(func) \
  40. Context * context = Context::DefaultContext(); \
  41. if (context) { \
  42. context->func; \
  43. }
  44. #define CONTEXT_EXEC_RETURN(func) \
  45. Context * context = Context::DefaultContext(); \
  46. if (context) { \
  47. return context->func; \
  48. } else { \
  49. return 0; \
  50. }
  51. GLAPI void APIENTRY glActiveTexture (GLenum texture) {
  52. CONTEXT_EXEC(ActiveTexture(texture));
  53. }
  54. GLAPI void APIENTRY glAlphaFunc (GLenum func, GLclampf ref) {
  55. CONTEXT_EXEC(AlphaFunc(func, ref));
  56. }
  57. GLAPI void APIENTRY glAlphaFuncx (GLenum func, GLclampx ref) {
  58. CONTEXT_EXEC(AlphaFuncx(func, ref));
  59. }
  60. GLAPI void APIENTRY glBindBuffer(GLenum target, GLuint buffer) {
  61. CONTEXT_EXEC(BindBuffer(target, buffer));
  62. }
  63. GLAPI void APIENTRY glBindTexture (GLenum target, GLuint texture) {
  64. CONTEXT_EXEC(BindTexture(target, texture));
  65. }
  66. GLAPI void APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor) {
  67. CONTEXT_EXEC(BlendFunc(sfactor, dfactor));
  68. }
  69. GLAPI void APIENTRY glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage) {
  70. CONTEXT_EXEC(BufferData(target, size, data, usage));
  71. }
  72. GLAPI void APIENTRY glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data) {
  73. CONTEXT_EXEC(BufferSubData(target, offset, size, data));
  74. }
  75. GLAPI void APIENTRY glClear (GLbitfield mask) {
  76. CONTEXT_EXEC(Clear(mask));
  77. }
  78. GLAPI void APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
  79. CONTEXT_EXEC(ClearColor(red, green, blue, alpha));
  80. }
  81. GLAPI void APIENTRY glClearColorx (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) {
  82. CONTEXT_EXEC(ClearColorx(red, green, blue, alpha));
  83. }
  84. GLAPI void APIENTRY glClearDepthf (GLclampf depth) {
  85. CONTEXT_EXEC(ClearDepthf(depth));
  86. }
  87. GLAPI void APIENTRY glClearDepthx (GLclampx depth) {
  88. CONTEXT_EXEC(ClearDepthx(depth));
  89. }
  90. GLAPI void APIENTRY glClearStencil (GLint s) {
  91. CONTEXT_EXEC(ClearStencil(s));
  92. }
  93. GLAPI void APIENTRY glClipPlanex(GLenum plane, const GLfixed *equation) {
  94. CONTEXT_EXEC(ClipPlanex(plane, equation));
  95. }
  96. GLAPI void APIENTRY glClipPlanef(GLenum plane, const GLfloat *equation) {
  97. CONTEXT_EXEC(ClipPlanef(plane, equation));
  98. }
  99. GLAPI void APIENTRY glClientActiveTexture (GLenum texture) {
  100. CONTEXT_EXEC(ClientActiveTexture(texture));
  101. }
  102. GLAPI void APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
  103. CONTEXT_EXEC(Color4f(red, green, blue, alpha));
  104. }
  105. GLAPI void APIENTRY glColor4x (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) {
  106. CONTEXT_EXEC(Color4x(red, green, blue, alpha));
  107. }
  108. GLAPI void APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
  109. CONTEXT_EXEC(ColorMask(red, green , blue, alpha));
  110. }
  111. GLAPI void APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
  112. CONTEXT_EXEC(ColorPointer(size, type, stride, pointer));
  113. }
  114. GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) {
  115. CONTEXT_EXEC(CompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data));
  116. }
  117. GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) {
  118. CONTEXT_EXEC(CompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data));
  119. }
  120. GLAPI void APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) {
  121. CONTEXT_EXEC(CopyTexImage2D(target, level, internalformat, x, y, width, height, border));
  122. }
  123. GLAPI void APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
  124. CONTEXT_EXEC(CopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height));
  125. }
  126. GLAPI void APIENTRY glCullFace (GLenum mode) {
  127. CONTEXT_EXEC(CullFace(mode));
  128. }
  129. GLAPI void APIENTRY glDeleteBuffers(GLsizei n, const GLuint *buffers) {
  130. CONTEXT_EXEC(DeleteBuffers(n, buffers));
  131. }
  132. GLAPI void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures) {
  133. CONTEXT_EXEC(DeleteTextures(n, textures));
  134. }
  135. GLAPI void APIENTRY glDepthFunc (GLenum func) {
  136. CONTEXT_EXEC(DepthFunc(func));
  137. }
  138. GLAPI void APIENTRY glDepthMask (GLboolean flag) {
  139. CONTEXT_EXEC(DepthMask(flag));
  140. }
  141. GLAPI void APIENTRY glDepthRangef (GLclampf zNear, GLclampf zFar) {
  142. CONTEXT_EXEC(DepthRangef(zNear, zFar));
  143. }
  144. GLAPI void APIENTRY glDepthRangex (GLclampx zNear, GLclampx zFar) {
  145. CONTEXT_EXEC(DepthRangex(zNear, zFar));
  146. }
  147. GLAPI void APIENTRY glDisable (GLenum cap) {
  148. CONTEXT_EXEC(Disable(cap));
  149. }
  150. GLAPI void APIENTRY glDisableClientState (GLenum array) {
  151. CONTEXT_EXEC(DisableClientState(array));
  152. }
  153. GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count) {
  154. CONTEXT_EXEC(DrawArrays(mode, first, count));
  155. }
  156. GLAPI void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) {
  157. CONTEXT_EXEC(DrawElements(mode, count, type, indices));
  158. }
  159. GLAPI void APIENTRY glEnable (GLenum cap) {
  160. CONTEXT_EXEC(Enable(cap));
  161. }
  162. GLAPI void APIENTRY glEnableClientState (GLenum array) {
  163. CONTEXT_EXEC(EnableClientState(array));
  164. }
  165. GLAPI void APIENTRY glFinish (void) {
  166. CONTEXT_EXEC(Finish());
  167. }
  168. GLAPI void APIENTRY glFlush (void) {
  169. CONTEXT_EXEC(Flush());
  170. }
  171. GLAPI void APIENTRY glFogf (GLenum pname, GLfloat param) {
  172. CONTEXT_EXEC(Fogf(pname, param));
  173. }
  174. GLAPI void APIENTRY glFogfv (GLenum pname, const GLfloat *params) {
  175. CONTEXT_EXEC(Fogfv(pname, params));
  176. }
  177. GLAPI void APIENTRY glFogx (GLenum pname, GLfixed param) {
  178. CONTEXT_EXEC(Fogx(pname, param));
  179. }
  180. GLAPI void APIENTRY glFogxv (GLenum pname, const GLfixed *params) {
  181. CONTEXT_EXEC(Fogxv(pname, params));
  182. }
  183. GLAPI void APIENTRY glFrontFace (GLenum mode) {
  184. CONTEXT_EXEC(FrontFace(mode));
  185. }
  186. GLAPI void APIENTRY glFrustumf (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) {
  187. CONTEXT_EXEC(Frustumf(left, right, bottom, top, zNear, zFar));
  188. }
  189. GLAPI void APIENTRY glFrustumx (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) {
  190. CONTEXT_EXEC(Frustumx(left, right, bottom, top, zNear, zFar));
  191. }
  192. GLAPI void APIENTRY glGetBooleanv(GLenum pname, GLboolean *params) {
  193. CONTEXT_EXEC(GetBooleanv(pname, params));
  194. }
  195. GLAPI void APIENTRY glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params) {
  196. CONTEXT_EXEC(GetBufferParameteriv(target, pname, params));
  197. }
  198. GLAPI void APIENTRY glGetClipPlanef(GLenum pname, GLfloat eqn[4]) {
  199. CONTEXT_EXEC(GetClipPlanef(pname, eqn));
  200. }
  201. GLAPI void APIENTRY glGetClipPlanex(GLenum pname, GLfixed eqn[4]) {
  202. CONTEXT_EXEC(GetClipPlanex(pname, eqn));
  203. }
  204. GLAPI void APIENTRY glGenBuffers(GLsizei n, GLuint *buffers) {
  205. CONTEXT_EXEC(GenBuffers(n, buffers));
  206. }
  207. GLAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures) {
  208. CONTEXT_EXEC(GenTextures(n, textures));
  209. }
  210. GLAPI GLenum APIENTRY glGetError (void) {
  211. CONTEXT_EXEC_RETURN(GetError());
  212. }
  213. GLAPI void APIENTRY glGetFixedv(GLenum pname, GLfixed *params) {
  214. CONTEXT_EXEC(GetFixedv(pname, params));
  215. }
  216. GLAPI void APIENTRY glGetFloatv(GLenum pname, GLfloat *params) {
  217. CONTEXT_EXEC(GetFloatv(pname, params));
  218. }
  219. GLAPI void APIENTRY glGetIntegerv (GLenum pname, GLint *params) {
  220. CONTEXT_EXEC(GetIntegerv(pname, params));
  221. }
  222. GLAPI void APIENTRY glGetLightfv(GLenum light, GLenum pname, GLfloat *params) {
  223. CONTEXT_EXEC(GetLightfv(light, pname, params));
  224. }
  225. GLAPI void APIENTRY glGetLightxv(GLenum light, GLenum pname, GLfixed *params) {
  226. CONTEXT_EXEC(GetLightxv(light, pname, params));
  227. }
  228. GLAPI void APIENTRY glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params) {
  229. CONTEXT_EXEC(GetMaterialfv(face, pname, params));
  230. }
  231. GLAPI void APIENTRY glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params) {
  232. CONTEXT_EXEC(GetMaterialxv(face, pname, params));
  233. }
  234. GLAPI void APIENTRY glGetPointerv(GLenum pname, void **params) {
  235. CONTEXT_EXEC(GetPointerv(pname, params));
  236. }
  237. GLAPI const GLubyte * APIENTRY glGetString (GLenum name) {
  238. CONTEXT_EXEC_RETURN(GetString(name));
  239. }
  240. GLAPI void APIENTRY glGetTexEnviv(GLenum env, GLenum pname, GLint *params) {
  241. CONTEXT_EXEC(GetTexEnviv(env, pname, params));
  242. }
  243. GLAPI void APIENTRY glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params) {
  244. CONTEXT_EXEC(GetTexEnvfv(env, pname, params));
  245. }
  246. GLAPI void APIENTRY glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params) {
  247. CONTEXT_EXEC(GetTexEnvxv(env, pname, params));
  248. }
  249. GLAPI void APIENTRY glGetTexParameteriv(GLenum target, GLenum pname, GLint *params) {
  250. CONTEXT_EXEC(GetTexParameteriv(target, pname, params));
  251. }
  252. GLAPI void APIENTRY glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params) {
  253. CONTEXT_EXEC(GetTexParameterfv(target, pname, params));
  254. }
  255. GLAPI void APIENTRY glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params) {
  256. CONTEXT_EXEC(GetTexParameterxv(target, pname, params));
  257. }
  258. GLAPI void APIENTRY glHint (GLenum target, GLenum mode) {
  259. CONTEXT_EXEC(Hint(target, mode));
  260. }
  261. GLAPI GLboolean APIENTRY glIsBuffer(GLuint buffer) {
  262. CONTEXT_EXEC_RETURN(IsBuffer(buffer));
  263. }
  264. GLAPI GLboolean APIENTRY glIsEnabled(GLenum cap) {
  265. CONTEXT_EXEC_RETURN(IsEnabled(cap));
  266. }
  267. GLAPI GLboolean APIENTRY glIsTexture(GLuint texture) {
  268. CONTEXT_EXEC_RETURN(IsTexture(texture));
  269. }
  270. GLAPI void APIENTRY glLightModelf (GLenum pname, GLfloat param) {
  271. CONTEXT_EXEC(LightModelf(pname, param));
  272. }
  273. GLAPI void APIENTRY glLightModelfv (GLenum pname, const GLfloat *params) {
  274. CONTEXT_EXEC(LightModelfv(pname, params));
  275. }
  276. GLAPI void APIENTRY glLightModelx (GLenum pname, GLfixed param) {
  277. CONTEXT_EXEC(LightModelx(pname, param));
  278. }
  279. GLAPI void APIENTRY glLightModelxv (GLenum pname, const GLfixed *params) {
  280. CONTEXT_EXEC(LightModelxv(pname, params));
  281. }
  282. GLAPI void APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param) {
  283. CONTEXT_EXEC(Lightf(light, pname, param));
  284. }
  285. GLAPI void APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params) {
  286. CONTEXT_EXEC(Lightfv(light, pname, params));
  287. }
  288. GLAPI void APIENTRY glLightx (GLenum light, GLenum pname, GLfixed param) {
  289. CONTEXT_EXEC(Lightx(light, pname, param));
  290. }
  291. GLAPI void APIENTRY glLightxv (GLenum light, GLenum pname, const GLfixed *params) {
  292. CONTEXT_EXEC(Lightxv(light, pname, params));
  293. }
  294. GLAPI void APIENTRY glLineWidth (GLfloat width) {
  295. CONTEXT_EXEC(LineWidth(width));
  296. }
  297. GLAPI void APIENTRY glLineWidthx (GLfixed width) {
  298. CONTEXT_EXEC(LineWidthx(width));
  299. }
  300. GLAPI void APIENTRY glLoadIdentity (void) {
  301. CONTEXT_EXEC(LoadIdentity());
  302. }
  303. GLAPI void APIENTRY glLoadMatrixf (const GLfloat *m) {
  304. CONTEXT_EXEC(LoadMatrixf(m));
  305. }
  306. GLAPI void APIENTRY glLoadMatrixx (const GLfixed *m) {
  307. CONTEXT_EXEC(LoadMatrixx(m));
  308. }
  309. GLAPI void APIENTRY glLogicOp (GLenum opcode) {
  310. CONTEXT_EXEC(LogicOp(opcode));
  311. }
  312. GLAPI void APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param) {
  313. CONTEXT_EXEC(Materialf(face, pname, param));
  314. }
  315. GLAPI void APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params) {
  316. CONTEXT_EXEC(Materialfv(face, pname, params));
  317. }
  318. GLAPI void APIENTRY glMaterialx (GLenum face, GLenum pname, GLfixed param) {
  319. CONTEXT_EXEC(Materialx(face, pname, param));
  320. }
  321. GLAPI void APIENTRY glMaterialxv (GLenum face, GLenum pname, const GLfixed *params) {
  322. CONTEXT_EXEC(Materialxv(face, pname, params));
  323. }
  324. GLAPI void APIENTRY glMatrixMode (GLenum mode) {
  325. CONTEXT_EXEC(MatrixMode(mode));
  326. }
  327. GLAPI void APIENTRY glMultMatrixf (const GLfloat *m) {
  328. CONTEXT_EXEC(MultMatrixf(m));
  329. }
  330. GLAPI void APIENTRY glMultMatrixx (const GLfixed *m) {
  331. CONTEXT_EXEC(MultMatrixx(m));
  332. }
  333. GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) {
  334. CONTEXT_EXEC(MultiTexCoord4f(target, s, t, r, q));
  335. }
  336. GLAPI void APIENTRY glMultiTexCoord4x (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) {
  337. CONTEXT_EXEC(MultiTexCoord4x(target, s, t, r, q));
  338. }
  339. GLAPI void APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz) {
  340. CONTEXT_EXEC(Normal3f(nx, ny, nz));
  341. }
  342. GLAPI void APIENTRY glNormal3x (GLfixed nx, GLfixed ny, GLfixed nz) {
  343. CONTEXT_EXEC(Normal3x(nx, ny, nz));
  344. }
  345. GLAPI void APIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer) {
  346. CONTEXT_EXEC(NormalPointer(type, stride, pointer));
  347. }
  348. GLAPI void APIENTRY glOrthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) {
  349. CONTEXT_EXEC(Orthof(left, right, bottom, top, zNear, zFar));
  350. }
  351. GLAPI void APIENTRY glOrthox (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) {
  352. CONTEXT_EXEC(Orthox(left, right, bottom, top, zNear, zFar));
  353. }
  354. GLAPI void APIENTRY glPixelStorei (GLenum pname, GLint param) {
  355. CONTEXT_EXEC(PixelStorei(pname, param));
  356. }
  357. GLAPI void APIENTRY glPointParameterf(GLenum pname, GLfloat param) {
  358. CONTEXT_EXEC(PointParameterf(pname, param));
  359. }
  360. GLAPI void APIENTRY glPointParameterfv(GLenum pname, const GLfloat *params) {
  361. CONTEXT_EXEC(PointParameterfv(pname, params));
  362. }
  363. GLAPI void APIENTRY glPointParameterx(GLenum pname, GLfixed param) {
  364. CONTEXT_EXEC(PointParameterx(pname, param));
  365. }
  366. GLAPI void APIENTRY glPointParameterxv(GLenum pname, const GLfixed *params) {
  367. CONTEXT_EXEC(PointParameterxv(pname, params));
  368. }
  369. GLAPI void APIENTRY glPointSize (GLfloat size) {
  370. CONTEXT_EXEC(PointSize(size));
  371. }
  372. GLAPI void APIENTRY glPointSizex (GLfixed size) {
  373. CONTEXT_EXEC(PointSizex(size));
  374. }
  375. GLAPI void APIENTRY glPolygonOffset (GLfloat factor, GLfloat units) {
  376. CONTEXT_EXEC(PolygonOffset(factor, units));
  377. }
  378. GLAPI void APIENTRY glPolygonOffsetx (GLfixed factor, GLfixed units) {
  379. CONTEXT_EXEC(PolygonOffsetx(factor, units));
  380. }
  381. GLAPI void APIENTRY glPopMatrix (void) {
  382. CONTEXT_EXEC(PopMatrix());
  383. }
  384. GLAPI void APIENTRY glPushMatrix (void) {
  385. CONTEXT_EXEC(PushMatrix());
  386. }
  387. GLAPI GLbitfield APIENTRY glQueryMatrixxOES(GLfixed mantissa[16], GLint exponent[16]) {
  388. CONTEXT_EXEC_RETURN(QueryMatrixx(mantissa, exponent));
  389. }
  390. GLAPI void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) {
  391. CONTEXT_EXEC(ReadPixels(x, y, width, height, format, type, pixels));
  392. }
  393. GLAPI void APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z) {
  394. CONTEXT_EXEC(Rotatef(angle, x, y, z));
  395. }
  396. GLAPI void APIENTRY glRotatex (GLfixed angle, GLfixed x, GLfixed y, GLfixed z) {
  397. CONTEXT_EXEC(Rotatex(angle, x, y, z));
  398. }
  399. GLAPI void APIENTRY glSampleCoverage (GLclampf value, GLboolean invert) {
  400. CONTEXT_EXEC(SampleCoverage(value, invert));
  401. }
  402. GLAPI void APIENTRY glSampleCoveragex (GLclampx value, GLboolean invert) {
  403. CONTEXT_EXEC(SampleCoveragex(value, invert));
  404. }
  405. GLAPI void APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z) {
  406. CONTEXT_EXEC(Scalef(x, y, z));
  407. }
  408. GLAPI void APIENTRY glScalex (GLfixed x, GLfixed y, GLfixed z) {
  409. CONTEXT_EXEC(Scalex(x, y, z));
  410. }
  411. GLAPI void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height) {
  412. CONTEXT_EXEC(Scissor(x, y, width, height));
  413. }
  414. GLAPI void APIENTRY glShadeModel (GLenum mode) {
  415. CONTEXT_EXEC(ShadeModel(mode));
  416. }
  417. GLAPI void APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask) {
  418. CONTEXT_EXEC(StencilFunc(func, ref, mask));
  419. }
  420. GLAPI void APIENTRY glStencilMask (GLuint mask) {
  421. CONTEXT_EXEC(StencilMask(mask));
  422. }
  423. GLAPI void APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass) {
  424. CONTEXT_EXEC(StencilOp(fail, zfail, zpass));
  425. }
  426. GLAPI void APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
  427. CONTEXT_EXEC(TexCoordPointer(size, type, stride, pointer));
  428. }
  429. GLAPI void APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param) {
  430. CONTEXT_EXEC(TexEnvf(target, pname, param));
  431. }
  432. GLAPI void APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params) {
  433. CONTEXT_EXEC(TexEnvfv(target, pname, params));
  434. }
  435. GLAPI void APIENTRY glTexEnvx (GLenum target, GLenum pname, GLfixed param) {
  436. CONTEXT_EXEC(TexEnvx(target, pname, param));
  437. }
  438. GLAPI void APIENTRY glTexEnvxv (GLenum target, GLenum pname, const GLfixed *params) {
  439. CONTEXT_EXEC(TexEnvxv(target, pname, params));
  440. }
  441. GLAPI void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) {
  442. CONTEXT_EXEC(TexImage2D(target, level, internalformat, width, height, border, format, type, pixels));
  443. }
  444. GLAPI void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param) {
  445. CONTEXT_EXEC(TexParameteri(target, pname, param));
  446. }
  447. GLAPI void APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param) {
  448. CONTEXT_EXEC(TexParameterf(target, pname, param));
  449. }
  450. GLAPI void APIENTRY glTexParameterx (GLenum target, GLenum pname, GLfixed param) {
  451. CONTEXT_EXEC(TexParameterx(target, pname, param));
  452. }
  453. GLAPI void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) {
  454. CONTEXT_EXEC(TexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels));
  455. }
  456. GLAPI void APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z) {
  457. CONTEXT_EXEC(Translatef(x, y, z));
  458. }
  459. GLAPI void APIENTRY glTranslatex (GLfixed x, GLfixed y, GLfixed z) {
  460. CONTEXT_EXEC(Translatex(x, y, z));
  461. }
  462. GLAPI void APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
  463. CONTEXT_EXEC(VertexPointer(size, type, stride, pointer));
  464. }
  465. GLAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height) {
  466. CONTEXT_EXEC(Viewport(x, y, width, height));
  467. }
  468. /*****************************************************************************************/
  469. /* OES extension functions */
  470. /*****************************************************************************************/
  471. /* OES_point_size_array */
  472. GLAPI void APIENTRY glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer) {
  473. CONTEXT_EXEC(PointSizePointer(type, stride, pointer));
  474. }
  475. /* OES_matrix_palette */
  476. GLAPI void APIENTRY glLoadPaletteFromModelViewMatrixOES(void) {
  477. CONTEXT_EXEC(LoadPaletteFromModelViewMatrix());
  478. }
  479. GLAPI void APIENTRY glCurrentPaletteMatrixOES(GLuint index) {
  480. CONTEXT_EXEC(CurrentPaletteMatrix(index));
  481. }
  482. GLAPI void APIENTRY glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
  483. CONTEXT_EXEC(MatrixIndexPointer(size, type, stride, pointer));
  484. }
  485. GLAPI void APIENTRY glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) {
  486. CONTEXT_EXEC(WeightPointer(size, type, stride, pointer));
  487. }