Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1 | pmbaty | 1 | /* |
| 2 | * This file is part of the DXX-Rebirth project <https://www.dxx-rebirth.com/>. |
||
| 3 | * It is copyright by its individual contributors, as recorded in the |
||
| 4 | * project's Git history. See COPYING.txt at the top level for license |
||
| 5 | * terms and a link to the Git history. |
||
| 6 | */ |
||
| 7 | /* |
||
| 8 | * |
||
| 9 | * dynamic opengl loading - courtesy of Jeff Slutter |
||
| 10 | * |
||
| 11 | * |
||
| 12 | */ |
||
| 13 | |||
| 14 | #ifndef __LOADGL_H__ |
||
| 15 | #define __LOADGL_H__ |
||
| 16 | |||
| 17 | #ifdef _WIN32 |
||
| 18 | #include <windows.h> |
||
| 19 | #define OGLFUNCCALL __stdcall |
||
| 20 | #else |
||
| 21 | #define OGLFUNCCALL |
||
| 22 | #endif |
||
| 23 | |||
| 24 | #include <GL/gl.h> |
||
| 25 | #include "pstypes.h" |
||
| 26 | |||
| 27 | //gl extensions. |
||
| 28 | #ifndef GL_ARB_multitexture |
||
| 29 | #define GL_ARB_multitexture 1 |
||
| 30 | #define GL_TEXTURE0_ARB 0x84C0 |
||
| 31 | #define GL_TEXTURE1_ARB 0x84C1 |
||
| 32 | #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 |
||
| 33 | #endif |
||
| 34 | |||
| 35 | #ifndef GL_SGIS_multitexture |
||
| 36 | #define GL_SGIS_multitexture 1 |
||
| 37 | #define GL_TEXTURE0_SGIS 0x835F |
||
| 38 | #define GL_TEXTURE1_SGIS 0x8360 |
||
| 39 | #define GL_MAX_TEXTURES_SGIS 0x835D |
||
| 40 | #endif |
||
| 41 | |||
| 42 | #ifndef GL_EXT_paletted_texture |
||
| 43 | #define GL_EXT_paletted_texture 1 |
||
| 44 | #define GL_COLOR_INDEX8_EXT 0x80E5 |
||
| 45 | #define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED |
||
| 46 | #endif |
||
| 47 | |||
| 48 | #ifndef GL_TEXTURE_INDEX_SIZE_EXT |
||
| 49 | #define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED |
||
| 50 | #endif |
||
| 51 | |||
| 52 | #ifndef GL_SCISSOR_TEST |
||
| 53 | #define GL_SCISSOR_TEST 0x0C11 |
||
| 54 | #endif |
||
| 55 | |||
| 56 | #ifndef GL_CLAMP_TO_EDGE |
||
| 57 | #define GL_CLAMP_TO_EDGE 0x812F |
||
| 58 | #endif |
||
| 59 | |||
| 60 | #ifndef GL_NV_register_combiners |
||
| 61 | #define GL_NV_register_combiners 1 |
||
| 62 | #define GL_REGISTER_COMBINERS_NV 0x8522 |
||
| 63 | #define GL_VARIABLE_A_NV 0x8523 |
||
| 64 | #define GL_VARIABLE_B_NV 0x8524 |
||
| 65 | #define GL_VARIABLE_C_NV 0x8525 |
||
| 66 | #define GL_VARIABLE_D_NV 0x8526 |
||
| 67 | #define GL_VARIABLE_E_NV 0x8527 |
||
| 68 | #define GL_VARIABLE_F_NV 0x8528 |
||
| 69 | #define GL_VARIABLE_G_NV 0x8529 |
||
| 70 | #define GL_CONSTANT_COLOR0_NV 0x852A |
||
| 71 | #define GL_CONSTANT_COLOR1_NV 0x852B |
||
| 72 | #define GL_PRIMARY_COLOR_NV 0x852C |
||
| 73 | #define GL_SECONDARY_COLOR_NV 0x852D |
||
| 74 | #define GL_SPARE0_NV 0x852E |
||
| 75 | #define GL_SPARE1_NV 0x852F |
||
| 76 | #define GL_DISCARD_NV 0x8530 |
||
| 77 | #define GL_E_TIMES_F_NV 0x8531 |
||
| 78 | #define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 |
||
| 79 | #define GL_UNSIGNED_IDENTITY_NV 0x8536 |
||
| 80 | #define GL_UNSIGNED_INVERT_NV 0x8537 |
||
| 81 | #define GL_EXPAND_NORMAL_NV 0x8538 |
||
| 82 | #define GL_EXPAND_NEGATE_NV 0x8539 |
||
| 83 | #define GL_HALF_BIAS_NORMAL_NV 0x853A |
||
| 84 | #define GL_HALF_BIAS_NEGATE_NV 0x853B |
||
| 85 | #define GL_SIGNED_IDENTITY_NV 0x853C |
||
| 86 | #define GL_SIGNED_NEGATE_NV 0x853D |
||
| 87 | #define GL_SCALE_BY_TWO_NV 0x853E |
||
| 88 | #define GL_SCALE_BY_FOUR_NV 0x853F |
||
| 89 | #define GL_SCALE_BY_ONE_HALF_NV 0x8540 |
||
| 90 | #define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 |
||
| 91 | #define GL_COMBINER_INPUT_NV 0x8542 |
||
| 92 | #define GL_COMBINER_MAPPING_NV 0x8543 |
||
| 93 | #define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 |
||
| 94 | #define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 |
||
| 95 | #define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 |
||
| 96 | #define GL_COMBINER_MUX_SUM_NV 0x8547 |
||
| 97 | #define GL_COMBINER_SCALE_NV 0x8548 |
||
| 98 | #define GL_COMBINER_BIAS_NV 0x8549 |
||
| 99 | #define GL_COMBINER_AB_OUTPUT_NV 0x854A |
||
| 100 | #define GL_COMBINER_CD_OUTPUT_NV 0x854B |
||
| 101 | #define GL_COMBINER_SUM_OUTPUT_NV 0x854C |
||
| 102 | #define GL_MAX_GENERAL_COMBINERS_NV 0x854D |
||
| 103 | #define GL_NUM_GENERAL_COMBINERS_NV 0x854E |
||
| 104 | #define GL_COLOR_SUM_CLAMP_NV 0x854F |
||
| 105 | #define GL_COMBINER0_NV 0x8550 |
||
| 106 | #define GL_COMBINER1_NV 0x8551 |
||
| 107 | #define GL_COMBINER2_NV 0x8552 |
||
| 108 | #define GL_COMBINER3_NV 0x8553 |
||
| 109 | #define GL_COMBINER4_NV 0x8554 |
||
| 110 | #define GL_COMBINER5_NV 0x8555 |
||
| 111 | #define GL_COMBINER6_NV 0x8556 |
||
| 112 | #define GL_COMBINER7_NV 0x8557 |
||
| 113 | #endif |
||
| 114 | |||
| 115 | #define GL_SCISSOR_TEST 0x0C11 |
||
| 116 | |||
| 117 | #ifdef __cplusplus |
||
| 118 | #define OEXTERN extern "C" |
||
| 119 | #else |
||
| 120 | #define OEXTERN extern |
||
| 121 | #define true 1 |
||
| 122 | #define false 0 |
||
| 123 | #endif |
||
| 124 | |||
| 125 | #ifdef DECLARE_VARS |
||
| 126 | #define DEFVAR |
||
| 127 | #else |
||
| 128 | #define DEFVAR OEXTERN |
||
| 129 | #endif |
||
| 130 | |||
| 131 | #define glAlphaFunc dglAlphaFunc |
||
| 132 | #define glBindTexture dglBindTexture |
||
| 133 | #define glBlendFunc dglBlendFunc |
||
| 134 | #define glClear dglClear |
||
| 135 | #define glClearColor dglClearColor |
||
| 136 | #define glColor4f dglColor4f |
||
| 137 | #define glColorPointer dglColorPointer |
||
| 138 | #define glCullFace dglCullFace |
||
| 139 | #define glDeleteTextures dglDeleteTextures |
||
| 140 | #define glDepthFunc dglDepthFunc |
||
| 141 | #define glDepthMask dglDepthMask |
||
| 142 | #define glDisable dglDisable |
||
| 143 | #define glDisableClientState dglDisableClientState |
||
| 144 | #define glDrawArrays dglDrawArrays |
||
| 145 | #define glEnable dglEnable |
||
| 146 | #define glEnableClientState dglEnableClientState |
||
| 147 | #define glEnd dglEnd |
||
| 148 | #define glFinish dglFinish |
||
| 149 | #define glGenTextures dglGenTextures |
||
| 150 | #define glGetFloatv dglGetFloatv |
||
| 151 | #define glGetIntegerv dglGetIntegerv |
||
| 152 | #define glGetString dglGetString |
||
| 153 | #define glGetTexLevelParameteriv dglGetTexLevelParameteriv |
||
| 154 | #define glHint dglHint |
||
| 155 | #define glLineWidth dglLineWidth |
||
| 156 | #define glLoadIdentity dglLoadIdentity |
||
| 157 | #define glMatrixMode dglMatrixMode |
||
| 158 | #define glOrtho dglOrtho |
||
| 159 | #define glPointSize dglPointSize |
||
| 160 | #define glPopMatrix dglPopMatrix |
||
| 161 | #define glPrioritizeTextures dglPrioritizeTextures |
||
| 162 | #define glPushMatrix dglPushMatrix |
||
| 163 | #define glReadBuffer dglReadBuffer |
||
| 164 | #define glReadPixels dglReadPixels |
||
| 165 | #define glScalef dglScalef |
||
| 166 | #define glShadeModel dglShadeModel |
||
| 167 | #define glTexCoordPointer dglTexCoordPointer |
||
| 168 | #define glTexEnvi dglTexEnvi |
||
| 169 | #define glTexImage2D dglTexImage2D |
||
| 170 | #define glTexParameterf dglTexParameterf |
||
| 171 | #define glTexParameteri dglTexParameteri |
||
| 172 | #define glTranslatef dglTranslatef |
||
| 173 | #define glVertexPointer dglVertexPointer |
||
| 174 | #define glViewport dglViewport |
||
| 175 | |||
| 176 | typedef void (OGLFUNCCALL *glAlphaFunc_fp)(GLenum func, GLclampf ref); |
||
| 177 | typedef void (OGLFUNCCALL *glBindTexture_fp)(GLenum target, GLuint texture); |
||
| 178 | typedef void (OGLFUNCCALL *glBlendFunc_fp)(GLenum sfactor, GLenum dfactor); |
||
| 179 | typedef void (OGLFUNCCALL *glClear_fp)(GLbitfield mask); |
||
| 180 | typedef void (OGLFUNCCALL *glClearColor_fp)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); |
||
| 181 | typedef void (OGLFUNCCALL *glColor4f_fp)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); |
||
| 182 | typedef void (OGLFUNCCALL *glColorPointer_fp)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); |
||
| 183 | typedef void (OGLFUNCCALL *glCullFace_fp)(GLenum mode); |
||
| 184 | typedef void (OGLFUNCCALL *glDeleteTextures_fp)(GLsizei n, const GLuint *textures); |
||
| 185 | typedef void (OGLFUNCCALL *glDepthFunc_fp)(GLenum func); |
||
| 186 | typedef void (OGLFUNCCALL *glDepthMask_fp)(GLboolean flag); |
||
| 187 | typedef void (OGLFUNCCALL *glDisable_fp)(GLenum cap); |
||
| 188 | typedef void (OGLFUNCCALL *glDisableClientState_fp)(GLenum array); |
||
| 189 | typedef void (OGLFUNCCALL *glDrawArrays_fp)(GLenum mode, GLint first, GLsizei count); |
||
| 190 | typedef void (OGLFUNCCALL *glEnable_fp)(GLenum cap); |
||
| 191 | typedef void (OGLFUNCCALL *glEnableClientState_fp)(GLenum array); |
||
| 192 | typedef void (OGLFUNCCALL *glEnd_fp)(void); |
||
| 193 | typedef void (OGLFUNCCALL *glFinish_fp)(void); |
||
| 194 | typedef void (OGLFUNCCALL *glGenTextures_fp)(GLsizei n, GLuint *textures); |
||
| 195 | typedef void (OGLFUNCCALL *glGetFloatv_fp)(GLenum pname, GLfloat *params); |
||
| 196 | typedef void (OGLFUNCCALL *glGetIntegerv_fp)(GLenum pname, GLint *params); |
||
| 197 | typedef const GLubyte *(OGLFUNCCALL *glGetString_fp)(GLenum name); |
||
| 198 | typedef void (OGLFUNCCALL *glGetTexLevelParameteriv_fp)(GLenum target, GLint level, GLenum pname, GLint *params); |
||
| 199 | typedef void (OGLFUNCCALL *glHint_fp)(GLenum target, GLenum mode); |
||
| 200 | typedef void (OGLFUNCCALL *glLineWidth_fp)(GLfloat width); |
||
| 201 | typedef void (OGLFUNCCALL *glLoadIdentity_fp)(void); |
||
| 202 | typedef void (OGLFUNCCALL *glMatrixMode_fp)(GLenum mode); |
||
| 203 | typedef void (OGLFUNCCALL *glOrtho_fp)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); |
||
| 204 | typedef void (OGLFUNCCALL *glPointSize_fp)(GLfloat size); |
||
| 205 | typedef void (OGLFUNCCALL *glPopMatrix_fp)(void); |
||
| 206 | typedef void (OGLFUNCCALL *glPrioritizeTextures_fp)(GLsizei n, const GLuint *textures, const GLclampf *priorities); |
||
| 207 | typedef void (OGLFUNCCALL *glPushMatrix_fp)(void); |
||
| 208 | typedef void (OGLFUNCCALL *glReadBuffer_fp)(GLenum mode); |
||
| 209 | typedef void (OGLFUNCCALL *glReadPixels_fp)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); |
||
| 210 | typedef void (OGLFUNCCALL *glScalef_fp)(GLfloat x, GLfloat y, GLfloat z); |
||
| 211 | typedef void (OGLFUNCCALL *glShadeModel_fp)(GLenum mode); |
||
| 212 | typedef void (OGLFUNCCALL *glTexCoordPointer_fp)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); |
||
| 213 | typedef void (OGLFUNCCALL *glTexEnvi_fp)(GLenum target, GLenum pname, GLint param); |
||
| 214 | typedef void (OGLFUNCCALL *glTexImage2D_fp)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); |
||
| 215 | typedef void (OGLFUNCCALL *glTexParameterf_fp)(GLenum target, GLenum pname, GLfloat param); |
||
| 216 | typedef void (OGLFUNCCALL *glTexParameteri_fp)(GLenum target, GLenum pname, GLint param); |
||
| 217 | typedef void (OGLFUNCCALL *glTranslatef_fp)(GLfloat x, GLfloat y, GLfloat z); |
||
| 218 | typedef void (OGLFUNCCALL *glVertexPointer_fp)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); |
||
| 219 | typedef void (OGLFUNCCALL *glViewport_fp)(GLint x, GLint y, GLsizei width, GLsizei height); |
||
| 220 | |||
| 221 | typedef void (OGLFUNCCALL *glMultiTexCoord2fARB_fp)(GLenum target, GLfloat s, GLfloat t); |
||
| 222 | typedef void (OGLFUNCCALL *glActiveTextureARB_fp)(GLenum target); |
||
| 223 | typedef void (OGLFUNCCALL *glMultiTexCoord2fSGIS_fp)(GLenum target, GLfloat s, GLfloat t); |
||
| 224 | typedef void (OGLFUNCCALL *glSelectTextureSGIS_fp)(GLenum target); |
||
| 225 | |||
| 226 | #ifdef _WIN32 |
||
| 227 | typedef PROC (OGLFUNCCALL *wglGetProcAddress_fp)(LPCSTR); |
||
| 228 | #endif |
||
| 229 | |||
| 230 | DEFVAR glAlphaFunc_fp dglAlphaFunc; |
||
| 231 | DEFVAR glBindTexture_fp dglBindTexture; |
||
| 232 | DEFVAR glBlendFunc_fp dglBlendFunc; |
||
| 233 | DEFVAR glClear_fp dglClear; |
||
| 234 | DEFVAR glClearColor_fp dglClearColor; |
||
| 235 | DEFVAR glColor4f_fp dglColor4f; |
||
| 236 | DEFVAR glColorPointer_fp dglColorPointer; |
||
| 237 | DEFVAR glCullFace_fp dglCullFace; |
||
| 238 | DEFVAR glDeleteTextures_fp dglDeleteTextures; |
||
| 239 | DEFVAR glDepthFunc_fp dglDepthFunc; |
||
| 240 | DEFVAR glDepthMask_fp dglDepthMask; |
||
| 241 | DEFVAR glDisable_fp dglDisable; |
||
| 242 | DEFVAR glDisableClientState_fp dglDisableClientState; |
||
| 243 | DEFVAR glDrawArrays_fp dglDrawArrays; |
||
| 244 | DEFVAR glEnable_fp dglEnable; |
||
| 245 | DEFVAR glEnableClientState_fp dglEnableClientState; |
||
| 246 | DEFVAR glEnd_fp dglEnd; |
||
| 247 | DEFVAR glFinish_fp dglFinish; |
||
| 248 | DEFVAR glGenTextures_fp dglGenTextures; |
||
| 249 | DEFVAR glGetFloatv_fp dglGetFloatv; |
||
| 250 | DEFVAR glGetIntegerv_fp dglGetIntegerv; |
||
| 251 | DEFVAR glGetString_fp dglGetString; |
||
| 252 | DEFVAR glGetTexLevelParameteriv_fp dglGetTexLevelParameteriv; |
||
| 253 | DEFVAR glHint_fp dglHint; |
||
| 254 | DEFVAR glLineWidth_fp dglLineWidth; |
||
| 255 | DEFVAR glLoadIdentity_fp dglLoadIdentity; |
||
| 256 | DEFVAR glMatrixMode_fp dglMatrixMode; |
||
| 257 | DEFVAR glOrtho_fp dglOrtho; |
||
| 258 | DEFVAR glPointSize_fp dglPointSize; |
||
| 259 | DEFVAR glPopMatrix_fp dglPopMatrix; |
||
| 260 | DEFVAR glPrioritizeTextures_fp dglPrioritizeTextures; |
||
| 261 | DEFVAR glPushMatrix_fp dglPushMatrix; |
||
| 262 | DEFVAR glReadBuffer_fp dglReadBuffer; |
||
| 263 | DEFVAR glReadPixels_fp dglReadPixels; |
||
| 264 | DEFVAR glScalef_fp dglScalef; |
||
| 265 | DEFVAR glShadeModel_fp dglShadeModel; |
||
| 266 | DEFVAR glTexCoordPointer_fp dglTexCoordPointer; |
||
| 267 | DEFVAR glTexEnvi_fp dglTexEnvi; |
||
| 268 | DEFVAR glTexImage2D_fp dglTexImage2D; |
||
| 269 | DEFVAR glTexParameterf_fp dglTexParameterf; |
||
| 270 | DEFVAR glTexParameteri_fp dglTexParameteri; |
||
| 271 | DEFVAR glTranslatef_fp dglTranslatef; |
||
| 272 | DEFVAR glVertexPointer_fp dglVertexPointer; |
||
| 273 | DEFVAR glViewport_fp dglViewport; |
||
| 274 | |||
| 275 | #ifdef DECLARE_VARS |
||
| 276 | |||
| 277 | // Dynamic module load functions |
||
| 278 | #ifdef _WIN32 |
||
| 279 | static inline void *dll_LoadModule(const char *name) |
||
| 280 | { |
||
| 281 | HINSTANCE handle; |
||
| 282 | handle = LoadLibrary(name); |
||
| 283 | return reinterpret_cast<void *>(handle); |
||
| 284 | } |
||
| 285 | static inline void dll_UnloadModule(void *hdl) |
||
| 286 | { |
||
| 287 | if (hdl) |
||
| 288 | { |
||
| 289 | FreeLibrary(reinterpret_cast<HINSTANCE>(hdl)); |
||
| 290 | } |
||
| 291 | } |
||
| 292 | static void *dll_GetSymbol(void *dllhandle,const char *symname) |
||
| 293 | { |
||
| 294 | if(!dllhandle) |
||
| 295 | return NULL; |
||
| 296 | return reinterpret_cast<void *>(GetProcAddress(reinterpret_cast<HINSTANCE>(dllhandle), symname)); |
||
| 297 | } |
||
| 298 | #endif |
||
| 299 | #ifdef __unix__ |
||
| 300 | #include <dlfcn.h> |
||
| 301 | static inline void *dll_LoadModule(const char *name) |
||
| 302 | { |
||
| 303 | return (void *)dlopen(name,RTLD_NOW|RTLD_GLOBAL); |
||
| 304 | } |
||
| 305 | static inline void dll_UnloadModule(void *hdl) |
||
| 306 | { |
||
| 307 | if(hdl) |
||
| 308 | { |
||
| 309 | dlclose(hdl); |
||
| 310 | } |
||
| 311 | } |
||
| 312 | static void *dll_GetSymbol(void *dllhandle,const char *symname) |
||
| 313 | { |
||
| 314 | if(!dllhandle) |
||
| 315 | return NULL; |
||
| 316 | return dlsym(dllhandle,symname); |
||
| 317 | } |
||
| 318 | #endif |
||
| 319 | #ifdef macintosh |
||
| 320 | #include <SDL.h> |
||
| 321 | static inline void *dll_LoadModule(const char *name) |
||
| 322 | { |
||
| 323 | return SDL_GL_LoadLibrary(name) ? NULL : (void *) -1; // return pointer is not dereferenced |
||
| 324 | } |
||
| 325 | static inline void dll_UnloadModule(void *hdl) |
||
| 326 | { |
||
| 327 | hdl = hdl; // SDL_GL_UnloadLibrary not exported by SDL |
||
| 328 | } |
||
| 329 | static void *dll_GetSymbol(void *dllhandle,const char *symname) |
||
| 330 | { |
||
| 331 | if(!dllhandle) |
||
| 332 | return NULL; |
||
| 333 | return SDL_GL_GetProcAddress(symname); |
||
| 334 | } |
||
| 335 | #endif |
||
| 336 | |||
| 337 | #endif //DECLARE_VARS |
||
| 338 | |||
| 339 | // pass true to load the library |
||
| 340 | // pass false to unload it |
||
| 341 | bool OpenGL_LoadLibrary(bool load, const char *OglLibPath);//load=true removed because not c++ |
||
| 342 | #ifdef DECLARE_VARS |
||
| 343 | static void OpenGL_SetFuncsToNull(void); |
||
| 344 | |||
| 345 | void *OpenGLModuleHandle=NULL; |
||
| 346 | bool OpenGL_LoadLibrary(bool load, const char *OglLibPath) |
||
| 347 | { |
||
| 348 | if(load && OpenGLModuleHandle) |
||
| 349 | return true; |
||
| 350 | |||
| 351 | OpenGL_SetFuncsToNull(); |
||
| 352 | |||
| 353 | if(!load) |
||
| 354 | { |
||
| 355 | if(OpenGLModuleHandle) |
||
| 356 | { |
||
| 357 | dll_UnloadModule(OpenGLModuleHandle); |
||
| 358 | OpenGLModuleHandle = NULL; |
||
| 359 | } |
||
| 360 | return true; |
||
| 361 | }else |
||
| 362 | { |
||
| 363 | OpenGLModuleHandle = dll_LoadModule(OglLibPath); |
||
| 364 | if(!OpenGLModuleHandle) |
||
| 365 | return false; |
||
| 366 | |||
| 367 | dglAlphaFunc = reinterpret_cast<glAlphaFunc_fp>(dll_GetSymbol(OpenGLModuleHandle,"glAlphaFunc")); |
||
| 368 | dglBindTexture = reinterpret_cast<glBindTexture_fp>(dll_GetSymbol(OpenGLModuleHandle,"glBindTexture")); |
||
| 369 | dglBlendFunc = reinterpret_cast<glBlendFunc_fp>(dll_GetSymbol(OpenGLModuleHandle,"glBlendFunc")); |
||
| 370 | dglClear = reinterpret_cast<glClear_fp>(dll_GetSymbol(OpenGLModuleHandle,"glClear")); |
||
| 371 | dglClearColor = reinterpret_cast<glClearColor_fp>(dll_GetSymbol(OpenGLModuleHandle,"glClearColor")); |
||
| 372 | dglColor4f = reinterpret_cast<glColor4f_fp>(dll_GetSymbol(OpenGLModuleHandle,"glColor4f")); |
||
| 373 | dglColorPointer = reinterpret_cast<glColorPointer_fp>(dll_GetSymbol(OpenGLModuleHandle,"glColorPointer")); |
||
| 374 | dglCullFace = reinterpret_cast<glCullFace_fp>(dll_GetSymbol(OpenGLModuleHandle,"glCullFace")); |
||
| 375 | dglDeleteTextures = reinterpret_cast<glDeleteTextures_fp>(dll_GetSymbol(OpenGLModuleHandle,"glDeleteTextures")); |
||
| 376 | dglDepthFunc = reinterpret_cast<glDepthFunc_fp>(dll_GetSymbol(OpenGLModuleHandle,"glDepthFunc")); |
||
| 377 | dglDepthMask = reinterpret_cast<glDepthMask_fp>(dll_GetSymbol(OpenGLModuleHandle,"glDepthMask")); |
||
| 378 | dglDisable = reinterpret_cast<glDisable_fp>(dll_GetSymbol(OpenGLModuleHandle,"glDisable")); |
||
| 379 | dglDisableClientState = reinterpret_cast<glDisableClientState_fp>(dll_GetSymbol(OpenGLModuleHandle,"glDisableClientState")); |
||
| 380 | dglDrawArrays = reinterpret_cast<glDrawArrays_fp>(dll_GetSymbol(OpenGLModuleHandle,"glDrawArrays")); |
||
| 381 | dglEnable = reinterpret_cast<glEnable_fp>(dll_GetSymbol(OpenGLModuleHandle,"glEnable")); |
||
| 382 | dglEnableClientState = reinterpret_cast<glEnableClientState_fp>(dll_GetSymbol(OpenGLModuleHandle,"glEnableClientState")); |
||
| 383 | dglEnd = reinterpret_cast<glEnd_fp>(dll_GetSymbol(OpenGLModuleHandle,"glEnd")); |
||
| 384 | dglFinish = reinterpret_cast<glFinish_fp>(dll_GetSymbol(OpenGLModuleHandle,"glFinish")); |
||
| 385 | dglGenTextures = reinterpret_cast<glGenTextures_fp>(dll_GetSymbol(OpenGLModuleHandle,"glGenTextures")); |
||
| 386 | dglGetFloatv = reinterpret_cast<glGetFloatv_fp>(dll_GetSymbol(OpenGLModuleHandle,"glGetFloatv")); |
||
| 387 | dglGetIntegerv = reinterpret_cast<glGetIntegerv_fp>(dll_GetSymbol(OpenGLModuleHandle,"glGetIntegerv")); |
||
| 388 | dglGetString = reinterpret_cast<glGetString_fp>(dll_GetSymbol(OpenGLModuleHandle,"glGetString")); |
||
| 389 | dglGetTexLevelParameteriv = reinterpret_cast<glGetTexLevelParameteriv_fp>(dll_GetSymbol(OpenGLModuleHandle,"glGetTexLevelParameteriv")); |
||
| 390 | dglHint = reinterpret_cast<glHint_fp>(dll_GetSymbol(OpenGLModuleHandle,"glHint")); |
||
| 391 | dglLineWidth = reinterpret_cast<glLineWidth_fp>(dll_GetSymbol(OpenGLModuleHandle,"glLineWidth")); |
||
| 392 | dglLoadIdentity = reinterpret_cast<glLoadIdentity_fp>(dll_GetSymbol(OpenGLModuleHandle,"glLoadIdentity")); |
||
| 393 | dglMatrixMode = reinterpret_cast<glMatrixMode_fp>(dll_GetSymbol(OpenGLModuleHandle,"glMatrixMode")); |
||
| 394 | dglOrtho = reinterpret_cast<glOrtho_fp>(dll_GetSymbol(OpenGLModuleHandle,"glOrtho")); |
||
| 395 | dglPointSize = reinterpret_cast<glPointSize_fp>(dll_GetSymbol(OpenGLModuleHandle,"glPointSize")); |
||
| 396 | dglPopMatrix = reinterpret_cast<glPopMatrix_fp>(dll_GetSymbol(OpenGLModuleHandle,"glPopMatrix")); |
||
| 397 | dglPrioritizeTextures = reinterpret_cast<glPrioritizeTextures_fp>(dll_GetSymbol(OpenGLModuleHandle,"glPrioritizeTextures")); |
||
| 398 | dglPushMatrix = reinterpret_cast<glPushMatrix_fp>(dll_GetSymbol(OpenGLModuleHandle,"glPushMatrix")); |
||
| 399 | dglReadBuffer = reinterpret_cast<glReadBuffer_fp>(dll_GetSymbol(OpenGLModuleHandle,"glReadBuffer")); |
||
| 400 | dglReadPixels = reinterpret_cast<glReadPixels_fp>(dll_GetSymbol(OpenGLModuleHandle,"glReadPixels")); |
||
| 401 | dglScalef = reinterpret_cast<glScalef_fp>(dll_GetSymbol(OpenGLModuleHandle,"glScalef")); |
||
| 402 | dglShadeModel = reinterpret_cast<glShadeModel_fp>(dll_GetSymbol(OpenGLModuleHandle,"glShadeModel")); |
||
| 403 | dglTexCoordPointer = reinterpret_cast<glTexCoordPointer_fp>(dll_GetSymbol(OpenGLModuleHandle,"glTexCoordPointer")); |
||
| 404 | dglTexEnvi = reinterpret_cast<glTexEnvi_fp>(dll_GetSymbol(OpenGLModuleHandle,"glTexEnvi")); |
||
| 405 | dglTexImage2D = reinterpret_cast<glTexImage2D_fp>(dll_GetSymbol(OpenGLModuleHandle,"glTexImage2D")); |
||
| 406 | dglTexParameterf = reinterpret_cast<glTexParameterf_fp>(dll_GetSymbol(OpenGLModuleHandle,"glTexParameterf")); |
||
| 407 | dglTexParameteri = reinterpret_cast<glTexParameteri_fp>(dll_GetSymbol(OpenGLModuleHandle,"glTexParameteri")); |
||
| 408 | dglTranslatef = reinterpret_cast<glTranslatef_fp>(dll_GetSymbol(OpenGLModuleHandle,"glTranslatef")); |
||
| 409 | dglVertexPointer = reinterpret_cast<glVertexPointer_fp>(dll_GetSymbol(OpenGLModuleHandle,"glVertexPointer")); |
||
| 410 | dglViewport = reinterpret_cast<glViewport_fp>(dll_GetSymbol(OpenGLModuleHandle,"glViewport")); |
||
| 411 | } |
||
| 412 | |||
| 413 | return true; |
||
| 414 | } |
||
| 415 | |||
| 416 | static void OpenGL_SetFuncsToNull(void) |
||
| 417 | { |
||
| 418 | dglAlphaFunc = NULL; |
||
| 419 | dglBindTexture = NULL; |
||
| 420 | dglBlendFunc = NULL; |
||
| 421 | dglClear = NULL; |
||
| 422 | dglClearColor = NULL; |
||
| 423 | dglColor4f = NULL; |
||
| 424 | dglColorPointer = NULL; |
||
| 425 | dglCullFace = NULL; |
||
| 426 | dglDeleteTextures = NULL; |
||
| 427 | dglDepthFunc = NULL; |
||
| 428 | dglDepthMask = NULL; |
||
| 429 | dglDisable = NULL; |
||
| 430 | dglDisableClientState = NULL; |
||
| 431 | dglDrawArrays = NULL; |
||
| 432 | dglEnable = NULL; |
||
| 433 | dglEnableClientState = NULL; |
||
| 434 | dglEnd = NULL; |
||
| 435 | dglFinish = NULL; |
||
| 436 | dglGenTextures = NULL; |
||
| 437 | dglGetFloatv = NULL; |
||
| 438 | dglGetIntegerv = NULL; |
||
| 439 | dglGetString = NULL; |
||
| 440 | dglGetTexLevelParameteriv = NULL; |
||
| 441 | dglHint = NULL; |
||
| 442 | dglLineWidth = NULL; |
||
| 443 | dglLoadIdentity = NULL; |
||
| 444 | dglMatrixMode = NULL; |
||
| 445 | dglOrtho = NULL; |
||
| 446 | dglPointSize = NULL; |
||
| 447 | dglPopMatrix = NULL; |
||
| 448 | dglPrioritizeTextures = NULL; |
||
| 449 | dglPushMatrix = NULL; |
||
| 450 | dglReadBuffer = NULL; |
||
| 451 | dglReadPixels = NULL; |
||
| 452 | dglScalef = NULL; |
||
| 453 | dglShadeModel = NULL; |
||
| 454 | dglTexCoordPointer = NULL; |
||
| 455 | dglTexEnvi = NULL; |
||
| 456 | dglTexImage2D = NULL; |
||
| 457 | dglTexParameterf = NULL; |
||
| 458 | dglTexParameteri = NULL; |
||
| 459 | dglTranslatef = NULL; |
||
| 460 | dglVertexPointer = NULL; |
||
| 461 | dglViewport = NULL; |
||
| 462 | } |
||
| 463 | #endif |
||
| 464 | |||
| 465 | |||
| 466 | #endif //!__LOADGL_H__ |