| 1 | /* | 
|---|
| 2 | * Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved. | 
|---|
| 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. | 
|---|
| 4 | * | 
|---|
| 5 | * This code is free software; you can redistribute it and/or modify it | 
|---|
| 6 | * under the terms of the GNU General Public License version 2 only, as | 
|---|
| 7 | * published by the Free Software Foundation.  Oracle designates this | 
|---|
| 8 | * particular file as subject to the "Classpath" exception as provided | 
|---|
| 9 | * by Oracle in the LICENSE file that accompanied this code. | 
|---|
| 10 | * | 
|---|
| 11 | * This code is distributed in the hope that it will be useful, but WITHOUT | 
|---|
| 12 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | 
|---|
| 13 | * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | 
|---|
| 14 | * version 2 for more details (a copy is included in the LICENSE file that | 
|---|
| 15 | * accompanied this code). | 
|---|
| 16 | * | 
|---|
| 17 | * You should have received a copy of the GNU General Public License version | 
|---|
| 18 | * 2 along with this work; if not, write to the Free Software Foundation, | 
|---|
| 19 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | 
|---|
| 20 | * | 
|---|
| 21 | * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | 
|---|
| 22 | * or visit www.oracle.com if you need additional information or have any | 
|---|
| 23 | * questions. | 
|---|
| 24 | */ | 
|---|
| 25 |  | 
|---|
| 26 | #ifndef OGLFuncs_h_Included | 
|---|
| 27 | #define OGLFuncs_h_Included | 
|---|
| 28 |  | 
|---|
| 29 | #ifdef MACOSX | 
|---|
| 30 | #include <dlfcn.h> | 
|---|
| 31 | #endif | 
|---|
| 32 | #include "jni.h" | 
|---|
| 33 | #include "J2D_GL/gl.h" | 
|---|
| 34 | #include "J2D_GL/glext.h" | 
|---|
| 35 | #include "OGLFuncMacros.h" | 
|---|
| 36 | #include "OGLFuncs_md.h" | 
|---|
| 37 | #include "Trace.h" | 
|---|
| 38 |  | 
|---|
| 39 | jboolean OGLFuncs_OpenLibrary(); | 
|---|
| 40 | void     OGLFuncs_CloseLibrary(); | 
|---|
| 41 | jboolean OGLFuncs_InitPlatformFuncs(); | 
|---|
| 42 | jboolean OGLFuncs_InitBaseFuncs(); | 
|---|
| 43 | jboolean OGLFuncs_InitExtFuncs(); | 
|---|
| 44 |  | 
|---|
| 45 | /** | 
|---|
| 46 | * Core OpenGL 1.1 function typedefs | 
|---|
| 47 | */ | 
|---|
| 48 | typedef void (GLAPIENTRY *glAlphaFuncType)(GLenum func, GLclampf ref); | 
|---|
| 49 | typedef GLboolean (GLAPIENTRY *glAreTexturesResidentType)(GLsizei n, const GLuint *textures, GLboolean *residences); | 
|---|
| 50 | typedef void (GLAPIENTRY *glBeginType)(GLenum mode); | 
|---|
| 51 | typedef void (GLAPIENTRY *glBindTextureType)(GLenum target, GLuint texture); | 
|---|
| 52 | typedef void (GLAPIENTRY *glBitmapType)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); | 
|---|
| 53 | typedef void (GLAPIENTRY *glBlendFuncType)(GLenum sfactor, GLenum dfactor); | 
|---|
| 54 | typedef void (GLAPIENTRY *glClearType)(GLbitfield mask); | 
|---|
| 55 | typedef void (GLAPIENTRY *glClearColorType)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); | 
|---|
| 56 | typedef void (GLAPIENTRY *glClearDepthType)(GLclampd depth); | 
|---|
| 57 | typedef void (GLAPIENTRY *glColor3ubType)(GLubyte red, GLubyte green, GLubyte blue); | 
|---|
| 58 | typedef void (GLAPIENTRY *glColor4fType)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); | 
|---|
| 59 | typedef void (GLAPIENTRY *glColor4ubType)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); | 
|---|
| 60 | typedef void (GLAPIENTRY *glColorMaskType)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); | 
|---|
| 61 | typedef void (GLAPIENTRY *glColorPointerType)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); | 
|---|
| 62 | typedef void (GLAPIENTRY *glCopyPixelsType)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); | 
|---|
| 63 | typedef void (GLAPIENTRY *glCopyTexSubImage2DType)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); | 
|---|
| 64 | typedef void (GLAPIENTRY *glDeleteTexturesType)(GLsizei n, const GLuint *textures); | 
|---|
| 65 | typedef void (GLAPIENTRY *glDepthFuncType)(GLenum func); | 
|---|
| 66 | typedef void (GLAPIENTRY *glDisableType)(GLenum cap); | 
|---|
| 67 | typedef void (GLAPIENTRY *glDisableClientStateType)(GLenum array); | 
|---|
| 68 | typedef void (GLAPIENTRY *glDrawArraysType)(GLenum mode, GLint first, GLsizei count); | 
|---|
| 69 | typedef void (GLAPIENTRY *glDrawBufferType)(GLenum mode); | 
|---|
| 70 | typedef void (GLAPIENTRY *glDrawPixelsType)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); | 
|---|
| 71 | typedef void (GLAPIENTRY *glEnableType)(GLenum cap); | 
|---|
| 72 | typedef void (GLAPIENTRY *glEnableClientStateType)(GLenum array); | 
|---|
| 73 | typedef void (GLAPIENTRY *glEndType)(void); | 
|---|
| 74 | typedef void (GLAPIENTRY *glFinishType)(void); | 
|---|
| 75 | typedef void (GLAPIENTRY *glFlushType)(void); | 
|---|
| 76 | typedef void (GLAPIENTRY *glGenTexturesType)(GLsizei n, GLuint *textures); | 
|---|
| 77 | typedef void (GLAPIENTRY *glGetBooleanvType)(GLenum pname, GLboolean *params); | 
|---|
| 78 | typedef void (GLAPIENTRY *glGetDoublevType)(GLenum pname, GLdouble *params); | 
|---|
| 79 | typedef GLenum (GLAPIENTRY *glGetErrorType)(void); | 
|---|
| 80 | typedef void (GLAPIENTRY *glGetFloatvType)(GLenum pname, GLfloat *params); | 
|---|
| 81 | typedef void (GLAPIENTRY *glGetIntegervType)(GLenum pname, GLint *params); | 
|---|
| 82 | typedef const GLubyte * (GLAPIENTRY *glGetStringType)(GLenum name); | 
|---|
| 83 | typedef void (GLAPIENTRY *glGetTexLevelParameterivType)(GLenum target, GLint level, GLenum pname, GLint *params); | 
|---|
| 84 | typedef void (GLAPIENTRY *glHintType)(GLenum target, GLenum mode); | 
|---|
| 85 | typedef void (GLAPIENTRY *glInterleavedArraysType)(GLenum format, GLsizei stride, const GLvoid *pointer); | 
|---|
| 86 | typedef GLboolean (GLAPIENTRY *glIsEnabledType)(GLenum cap); | 
|---|
| 87 | typedef GLboolean (GLAPIENTRY *glIsTextureType)(GLuint texture); | 
|---|
| 88 | typedef void (GLAPIENTRY *glLoadIdentityType)(void); | 
|---|
| 89 | typedef void (GLAPIENTRY *glLoadMatrixdType)(const GLdouble *m); | 
|---|
| 90 | typedef void (GLAPIENTRY *glLogicOpType)(GLenum opcode); | 
|---|
| 91 | typedef void (GLAPIENTRY *glMatrixModeType)(GLenum mode); | 
|---|
| 92 | typedef void (GLAPIENTRY *glOrthoType)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); | 
|---|
| 93 | typedef void (GLAPIENTRY *glPixelStoreiType)(GLenum pname, GLint param); | 
|---|
| 94 | typedef void (GLAPIENTRY *glPixelTransferfType)(GLenum pname, GLfloat param); | 
|---|
| 95 | typedef void (GLAPIENTRY *glPixelZoomType)(GLfloat xfactor, GLfloat yfactor); | 
|---|
| 96 | typedef void (GLAPIENTRY *glPolygonOffsetType)(GLfloat factor, GLfloat units); | 
|---|
| 97 | typedef void (GLAPIENTRY *glPopAttribType)(void); | 
|---|
| 98 | typedef void (GLAPIENTRY *glPopClientAttribType)(void); | 
|---|
| 99 | typedef void (GLAPIENTRY *glPopMatrixType)(void); | 
|---|
| 100 | typedef void (GLAPIENTRY *glPrioritizeTexturesType)(GLsizei n, const GLuint *textures, const GLclampf *priorities); | 
|---|
| 101 | typedef void (GLAPIENTRY *glPushAttribType)(GLbitfield); | 
|---|
| 102 | typedef void (GLAPIENTRY *glPushClientAttribType)(GLbitfield); | 
|---|
| 103 | typedef void (GLAPIENTRY *glPushMatrixType)(void); | 
|---|
| 104 | typedef void (GLAPIENTRY *glRasterPos2iType)(GLint x, GLint y); | 
|---|
| 105 | typedef void (GLAPIENTRY *glReadBufferType)(GLenum mode); | 
|---|
| 106 | typedef void (GLAPIENTRY *glReadPixelsType)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); | 
|---|
| 107 | typedef void (GLAPIENTRY *glRectiType)(GLint x1, GLint y1, GLint x2, GLint y2); | 
|---|
| 108 | typedef void (GLAPIENTRY *glScalefType)(GLfloat x, GLfloat y, GLfloat z); | 
|---|
| 109 | typedef void (GLAPIENTRY *glScissorType)(GLint x, GLint y, GLsizei width, GLsizei height); | 
|---|
| 110 | typedef void (GLAPIENTRY *glTexCoord2dType)(GLdouble s, GLdouble t); | 
|---|
| 111 | typedef void (GLAPIENTRY *glTexCoord2fType)(GLfloat s, GLfloat t); | 
|---|
| 112 | typedef void (GLAPIENTRY *glTexCoordPointerType)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); | 
|---|
| 113 | typedef void (GLAPIENTRY *glTexEnviType)(GLenum target, GLenum pname, GLint param); | 
|---|
| 114 | typedef void (GLAPIENTRY *glTexGeniType)(GLenum coord, GLenum pname, GLint param); | 
|---|
| 115 | typedef void (GLAPIENTRY *glTexGendvType)(GLenum coord, GLenum pname, const GLdouble *params); | 
|---|
| 116 | typedef void (GLAPIENTRY *glTexImage1DType)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); | 
|---|
| 117 | typedef void (GLAPIENTRY *glTexImage2DType)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); | 
|---|
| 118 | typedef void (GLAPIENTRY *glTexParameteriType)(GLenum target, GLenum pname, GLint param); | 
|---|
| 119 | typedef void (GLAPIENTRY *glTexSubImage1DType)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); | 
|---|
| 120 | typedef void (GLAPIENTRY *glTexSubImage2DType)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); | 
|---|
| 121 | typedef void (GLAPIENTRY *glTranslatefType)(GLfloat x, GLfloat y, GLfloat z); | 
|---|
| 122 | typedef void (GLAPIENTRY *glVertex2dType)(GLdouble x, GLdouble y); | 
|---|
| 123 | typedef void (GLAPIENTRY *glVertex2fType)(GLfloat x, GLfloat y); | 
|---|
| 124 | typedef void (GLAPIENTRY *glVertex2iType)(GLint x, GLint y); | 
|---|
| 125 | typedef void (GLAPIENTRY *glVertexPointerType)(GLint size, GLenum type, GLsizei stride, const GLvoid *ptr); | 
|---|
| 126 | typedef void (GLAPIENTRY *glViewportType)(GLint x, GLint y, GLsizei width, GLsizei height); | 
|---|
| 127 |  | 
|---|
| 128 | /** | 
|---|
| 129 | * OpenGL 1.2 and extension function typedefs (functions that were added in | 
|---|
| 130 | * the 1.2 spec and later need to be loaded on Windows as if they were | 
|---|
| 131 | * extensions, which is why they are called out separately here) | 
|---|
| 132 | */ | 
|---|
| 133 | typedef void (GLAPIENTRY *glActiveTextureARBType)(GLenum texture); | 
|---|
| 134 | typedef void (GLAPIENTRY *glMultiTexCoord2fARBType)(GLenum texture, GLfloat s, GLfloat t); | 
|---|
| 135 | typedef void (GLAPIENTRY *glTexImage3DType)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); | 
|---|
| 136 |  | 
|---|
| 137 | /** | 
|---|
| 138 | * GL_EXT_framebuffer_object function typedefs | 
|---|
| 139 | */ | 
|---|
| 140 | typedef void (GLAPIENTRY *glBindRenderbufferEXTType)(GLenum, GLuint); | 
|---|
| 141 | typedef void (GLAPIENTRY *glDeleteRenderbuffersEXTType)(GLsizei, const GLuint *); | 
|---|
| 142 | typedef void (GLAPIENTRY *glGenRenderbuffersEXTType)(GLsizei, GLuint *); | 
|---|
| 143 | typedef void (GLAPIENTRY *glRenderbufferStorageEXTType)(GLenum, GLenum, GLsizei, GLsizei); | 
|---|
| 144 | typedef void (GLAPIENTRY *glBindFramebufferEXTType)(GLenum, GLuint); | 
|---|
| 145 | typedef void (GLAPIENTRY *glDeleteFramebuffersEXTType)(GLsizei, const GLuint *); | 
|---|
| 146 | typedef void (GLAPIENTRY *glGenFramebuffersEXTType)(GLsizei, GLuint *); | 
|---|
| 147 | typedef GLenum (GLAPIENTRY *glCheckFramebufferStatusEXTType)(GLenum); | 
|---|
| 148 | typedef void (GLAPIENTRY *glFramebufferTexture2DEXTType)(GLenum, GLenum, GLenum, GLuint, GLint); | 
|---|
| 149 | typedef void (GLAPIENTRY *glFramebufferRenderbufferEXTType)(GLenum, GLenum, GLenum, GLuint); | 
|---|
| 150 |  | 
|---|
| 151 | /** | 
|---|
| 152 | * GL_ARB_fragment_shader extension function typedefs | 
|---|
| 153 | */ | 
|---|
| 154 | typedef GLhandleARB (GLAPIENTRY *glCreateShaderObjectARBType)(GLenum); | 
|---|
| 155 | typedef void (GLAPIENTRY *glShaderSourceARBType)(GLhandleARB, GLsizei, const GLcharARB* *, const GLint *); | 
|---|
| 156 | typedef void (GLAPIENTRY *glCompileShaderARBType)(GLhandleARB); | 
|---|
| 157 | typedef void (GLAPIENTRY *glUseProgramObjectARBType)(GLhandleARB); | 
|---|
| 158 | typedef void (GLAPIENTRY *glUniform1iARBType)(GLint, GLint); | 
|---|
| 159 | typedef void (GLAPIENTRY *glUniform1fARBType)(GLint, GLfloat); | 
|---|
| 160 | typedef void (GLAPIENTRY *glUniform1fvARBType)(GLint, GLsizei, const GLfloat *); | 
|---|
| 161 | typedef void (GLAPIENTRY *glUniform2fARBType)(GLint, GLfloat, GLfloat); | 
|---|
| 162 | typedef void (GLAPIENTRY *glUniform3fARBType)(GLint, GLfloat, GLfloat, GLfloat); | 
|---|
| 163 | typedef void (GLAPIENTRY *glUniform3fvARBType)(GLint, GLsizei, const GLfloat *); | 
|---|
| 164 | typedef void (GLAPIENTRY *glUniform4fARBType)(GLint, GLfloat, GLfloat, GLfloat, GLfloat); | 
|---|
| 165 | typedef void (GLAPIENTRY *glUniform4fvARBType)(GLint, GLsizei, const GLfloat *); | 
|---|
| 166 | typedef GLint (GLAPIENTRY *glGetUniformLocationARBType)(GLhandleARB, const GLcharARB *); | 
|---|
| 167 | typedef void (GLAPIENTRY *glGetInfoLogARBType)(GLhandleARB, GLsizei, GLsizei *, GLcharARB *); | 
|---|
| 168 | typedef void (GLAPIENTRY *glGetProgramivARBType)(GLenum, GLenum, GLint *); | 
|---|
| 169 | typedef void (GLAPIENTRY *glGetObjectParameterivARBType)(GLhandleARB, GLenum, GLint *); | 
|---|
| 170 | typedef GLhandleARB (GLAPIENTRY *glCreateProgramObjectARBType)(void); | 
|---|
| 171 | typedef void (GLAPIENTRY *glAttachObjectARBType)(GLhandleARB, GLhandleARB); | 
|---|
| 172 | typedef void (GLAPIENTRY *glLinkProgramARBType)(GLhandleARB); | 
|---|
| 173 | typedef void (GLAPIENTRY *glDeleteObjectARBType)(GLhandleARB); | 
|---|
| 174 |  | 
|---|
| 175 | /** | 
|---|
| 176 | * GL_NV_texture_barrier extension function typedef's | 
|---|
| 177 | */ | 
|---|
| 178 | typedef void (GLAPIENTRY *glTextureBarrierNVType) (void); | 
|---|
| 179 |  | 
|---|
| 180 | /** | 
|---|
| 181 | * REMIND: this caused an internal error in the MS compiler!?!? | 
|---|
| 182 | * | 
|---|
| 183 | *#define OGL_CHECK_FUNC_ERR(f) \ | 
|---|
| 184 | *    J2dTrace1(J2D_TRACE_ERROR, "could not load function: %s", #f) | 
|---|
| 185 | */ | 
|---|
| 186 |  | 
|---|
| 187 | #define OGL_CHECK_FUNC_ERR(f) \ | 
|---|
| 188 | J2dRlsTraceLn(J2D_TRACE_ERROR, #f) | 
|---|
| 189 |  | 
|---|
| 190 | #define OGL_INIT_FUNC(f) \ | 
|---|
| 191 | OGL_J2D_MANGLE(f) = (OGL_FUNC_TYPE(f)) OGL_GET_PROC_ADDRESS(f) | 
|---|
| 192 |  | 
|---|
| 193 | #define OGL_INIT_AND_CHECK_FUNC(f) \ | 
|---|
| 194 | OGL_INIT_FUNC(f); \ | 
|---|
| 195 | if (OGL_J2D_MANGLE(f) == NULL) { \ | 
|---|
| 196 | OGL_CHECK_FUNC_ERR(f); \ | 
|---|
| 197 | return JNI_FALSE; \ | 
|---|
| 198 | } | 
|---|
| 199 |  | 
|---|
| 200 | #define OGL_INIT_EXT_FUNC(f) \ | 
|---|
| 201 | OGL_J2D_MANGLE(f) = (OGL_FUNC_TYPE(f)) OGL_GET_EXT_PROC_ADDRESS(f) | 
|---|
| 202 |  | 
|---|
| 203 | #define OGL_INIT_AND_CHECK_EXT_FUNC(f) \ | 
|---|
| 204 | OGL_INIT_EXT_FUNC(f); \ | 
|---|
| 205 | if (OGL_J2D_MANGLE(f) == NULL) { \ | 
|---|
| 206 | OGL_CHECK_FUNC_ERR(f); \ | 
|---|
| 207 | return JNI_FALSE; \ | 
|---|
| 208 | } | 
|---|
| 209 |  | 
|---|
| 210 | #define OGL_EXPRESS_BASE_FUNCS(action) \ | 
|---|
| 211 | OGL_##action##_FUNC(glAlphaFunc); \ | 
|---|
| 212 | OGL_##action##_FUNC(glAreTexturesResident); \ | 
|---|
| 213 | OGL_##action##_FUNC(glBegin); \ | 
|---|
| 214 | OGL_##action##_FUNC(glBindTexture); \ | 
|---|
| 215 | OGL_##action##_FUNC(glBitmap); \ | 
|---|
| 216 | OGL_##action##_FUNC(glBlendFunc); \ | 
|---|
| 217 | OGL_##action##_FUNC(glClear); \ | 
|---|
| 218 | OGL_##action##_FUNC(glClearColor); \ | 
|---|
| 219 | OGL_##action##_FUNC(glClearDepth); \ | 
|---|
| 220 | OGL_##action##_FUNC(glColor3ub); \ | 
|---|
| 221 | OGL_##action##_FUNC(glColor4f); \ | 
|---|
| 222 | OGL_##action##_FUNC(glColor4ub); \ | 
|---|
| 223 | OGL_##action##_FUNC(glColorMask); \ | 
|---|
| 224 | OGL_##action##_FUNC(glColorPointer); \ | 
|---|
| 225 | OGL_##action##_FUNC(glCopyPixels); \ | 
|---|
| 226 | OGL_##action##_FUNC(glCopyTexSubImage2D); \ | 
|---|
| 227 | OGL_##action##_FUNC(glDeleteTextures); \ | 
|---|
| 228 | OGL_##action##_FUNC(glDepthFunc); \ | 
|---|
| 229 | OGL_##action##_FUNC(glDisable); \ | 
|---|
| 230 | OGL_##action##_FUNC(glDisableClientState); \ | 
|---|
| 231 | OGL_##action##_FUNC(glDrawArrays); \ | 
|---|
| 232 | OGL_##action##_FUNC(glDrawBuffer); \ | 
|---|
| 233 | OGL_##action##_FUNC(glDrawPixels); \ | 
|---|
| 234 | OGL_##action##_FUNC(glEnable); \ | 
|---|
| 235 | OGL_##action##_FUNC(glEnableClientState); \ | 
|---|
| 236 | OGL_##action##_FUNC(glEnd); \ | 
|---|
| 237 | OGL_##action##_FUNC(glFinish); \ | 
|---|
| 238 | OGL_##action##_FUNC(glFlush); \ | 
|---|
| 239 | OGL_##action##_FUNC(glGenTextures); \ | 
|---|
| 240 | OGL_##action##_FUNC(glGetBooleanv); \ | 
|---|
| 241 | OGL_##action##_FUNC(glGetDoublev); \ | 
|---|
| 242 | OGL_##action##_FUNC(glGetError); \ | 
|---|
| 243 | OGL_##action##_FUNC(glGetFloatv); \ | 
|---|
| 244 | OGL_##action##_FUNC(glGetIntegerv); \ | 
|---|
| 245 | OGL_##action##_FUNC(glGetString); \ | 
|---|
| 246 | OGL_##action##_FUNC(glGetTexLevelParameteriv); \ | 
|---|
| 247 | OGL_##action##_FUNC(glHint); \ | 
|---|
| 248 | OGL_##action##_FUNC(glInterleavedArrays); \ | 
|---|
| 249 | OGL_##action##_FUNC(glIsEnabled); \ | 
|---|
| 250 | OGL_##action##_FUNC(glIsTexture); \ | 
|---|
| 251 | OGL_##action##_FUNC(glLoadIdentity); \ | 
|---|
| 252 | OGL_##action##_FUNC(glLoadMatrixd); \ | 
|---|
| 253 | OGL_##action##_FUNC(glLogicOp); \ | 
|---|
| 254 | OGL_##action##_FUNC(glMatrixMode); \ | 
|---|
| 255 | OGL_##action##_FUNC(glOrtho); \ | 
|---|
| 256 | OGL_##action##_FUNC(glPixelStorei); \ | 
|---|
| 257 | OGL_##action##_FUNC(glPixelTransferf); \ | 
|---|
| 258 | OGL_##action##_FUNC(glPixelZoom); \ | 
|---|
| 259 | OGL_##action##_FUNC(glPolygonOffset); \ | 
|---|
| 260 | OGL_##action##_FUNC(glPopAttrib); \ | 
|---|
| 261 | OGL_##action##_FUNC(glPopClientAttrib); \ | 
|---|
| 262 | OGL_##action##_FUNC(glPopMatrix); \ | 
|---|
| 263 | OGL_##action##_FUNC(glPrioritizeTextures); \ | 
|---|
| 264 | OGL_##action##_FUNC(glPushAttrib); \ | 
|---|
| 265 | OGL_##action##_FUNC(glPushClientAttrib); \ | 
|---|
| 266 | OGL_##action##_FUNC(glPushMatrix); \ | 
|---|
| 267 | OGL_##action##_FUNC(glRasterPos2i); \ | 
|---|
| 268 | OGL_##action##_FUNC(glReadBuffer); \ | 
|---|
| 269 | OGL_##action##_FUNC(glReadPixels); \ | 
|---|
| 270 | OGL_##action##_FUNC(glRecti); \ | 
|---|
| 271 | OGL_##action##_FUNC(glScalef); \ | 
|---|
| 272 | OGL_##action##_FUNC(glScissor); \ | 
|---|
| 273 | OGL_##action##_FUNC(glTexCoord2d); \ | 
|---|
| 274 | OGL_##action##_FUNC(glTexCoord2f); \ | 
|---|
| 275 | OGL_##action##_FUNC(glTexCoordPointer); \ | 
|---|
| 276 | OGL_##action##_FUNC(glTexEnvi); \ | 
|---|
| 277 | OGL_##action##_FUNC(glTexGeni); \ | 
|---|
| 278 | OGL_##action##_FUNC(glTexGendv); \ | 
|---|
| 279 | OGL_##action##_FUNC(glTexImage1D); \ | 
|---|
| 280 | OGL_##action##_FUNC(glTexImage2D); \ | 
|---|
| 281 | OGL_##action##_FUNC(glTexParameteri); \ | 
|---|
| 282 | OGL_##action##_FUNC(glTexSubImage1D); \ | 
|---|
| 283 | OGL_##action##_FUNC(glTexSubImage2D); \ | 
|---|
| 284 | OGL_##action##_FUNC(glTranslatef); \ | 
|---|
| 285 | OGL_##action##_FUNC(glVertex2d); \ | 
|---|
| 286 | OGL_##action##_FUNC(glVertex2f); \ | 
|---|
| 287 | OGL_##action##_FUNC(glVertex2i); \ | 
|---|
| 288 | OGL_##action##_FUNC(glVertexPointer); \ | 
|---|
| 289 | OGL_##action##_FUNC(glViewport); | 
|---|
| 290 |  | 
|---|
| 291 | #define OGL_EXPRESS_EXT_FUNCS(action) \ | 
|---|
| 292 | OGL_##action##_EXT_FUNC(glActiveTextureARB); \ | 
|---|
| 293 | OGL_##action##_EXT_FUNC(glMultiTexCoord2fARB); \ | 
|---|
| 294 | OGL_##action##_EXT_FUNC(glTexImage3D); \ | 
|---|
| 295 | OGL_##action##_EXT_FUNC(glBindRenderbufferEXT); \ | 
|---|
| 296 | OGL_##action##_EXT_FUNC(glDeleteRenderbuffersEXT); \ | 
|---|
| 297 | OGL_##action##_EXT_FUNC(glGenRenderbuffersEXT); \ | 
|---|
| 298 | OGL_##action##_EXT_FUNC(glRenderbufferStorageEXT); \ | 
|---|
| 299 | OGL_##action##_EXT_FUNC(glBindFramebufferEXT); \ | 
|---|
| 300 | OGL_##action##_EXT_FUNC(glDeleteFramebuffersEXT); \ | 
|---|
| 301 | OGL_##action##_EXT_FUNC(glGenFramebuffersEXT); \ | 
|---|
| 302 | OGL_##action##_EXT_FUNC(glCheckFramebufferStatusEXT); \ | 
|---|
| 303 | OGL_##action##_EXT_FUNC(glFramebufferTexture2DEXT); \ | 
|---|
| 304 | OGL_##action##_EXT_FUNC(glFramebufferRenderbufferEXT); \ | 
|---|
| 305 | OGL_##action##_EXT_FUNC(glCreateProgramObjectARB); \ | 
|---|
| 306 | OGL_##action##_EXT_FUNC(glAttachObjectARB); \ | 
|---|
| 307 | OGL_##action##_EXT_FUNC(glLinkProgramARB); \ | 
|---|
| 308 | OGL_##action##_EXT_FUNC(glCreateShaderObjectARB); \ | 
|---|
| 309 | OGL_##action##_EXT_FUNC(glShaderSourceARB); \ | 
|---|
| 310 | OGL_##action##_EXT_FUNC(glCompileShaderARB); \ | 
|---|
| 311 | OGL_##action##_EXT_FUNC(glUseProgramObjectARB); \ | 
|---|
| 312 | OGL_##action##_EXT_FUNC(glUniform1iARB); \ | 
|---|
| 313 | OGL_##action##_EXT_FUNC(glUniform1fARB); \ | 
|---|
| 314 | OGL_##action##_EXT_FUNC(glUniform1fvARB); \ | 
|---|
| 315 | OGL_##action##_EXT_FUNC(glUniform2fARB); \ | 
|---|
| 316 | OGL_##action##_EXT_FUNC(glUniform3fARB); \ | 
|---|
| 317 | OGL_##action##_EXT_FUNC(glUniform3fvARB); \ | 
|---|
| 318 | OGL_##action##_EXT_FUNC(glUniform4fARB); \ | 
|---|
| 319 | OGL_##action##_EXT_FUNC(glUniform4fvARB); \ | 
|---|
| 320 | OGL_##action##_EXT_FUNC(glGetUniformLocationARB); \ | 
|---|
| 321 | OGL_##action##_EXT_FUNC(glGetProgramivARB); \ | 
|---|
| 322 | OGL_##action##_EXT_FUNC(glGetInfoLogARB); \ | 
|---|
| 323 | OGL_##action##_EXT_FUNC(glGetObjectParameterivARB); \ | 
|---|
| 324 | OGL_##action##_EXT_FUNC(glDeleteObjectARB); \ | 
|---|
| 325 | OGL_##action##_EXT_FUNC(glTextureBarrierNV); | 
|---|
| 326 |  | 
|---|
| 327 | #define OGL_EXPRESS_ALL_FUNCS(action) \ | 
|---|
| 328 | OGL_EXPRESS_BASE_FUNCS(action) \ | 
|---|
| 329 | OGL_EXPRESS_EXT_FUNCS(action) \ | 
|---|
| 330 | OGL_EXPRESS_PLATFORM_FUNCS(action) \ | 
|---|
| 331 | OGL_EXPRESS_PLATFORM_EXT_FUNCS(action) | 
|---|
| 332 |  | 
|---|
| 333 | OGL_EXPRESS_ALL_FUNCS(EXTERN) | 
|---|
| 334 |  | 
|---|
| 335 | #endif /* OGLFuncs_h_Included */ | 
|---|
| 336 |  | 
|---|