| 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 | |