1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401
|
/*
* Copyright (C) Volition, Inc. 1999. All rights reserved.
*
* All source code herein is the property of Volition, Inc. You may not sell
* or otherwise commercially exploit the source or things you created based on the
* source.
*
*/
#ifndef _GROPENGLEXT_H
#define _GROPENGLEXT_H
#include "globalincs/pstypes.h"
#include "graphics/gropengl.h"
//EXTENSIONS!!!!
//be sure to check for this at startup and handle not finding it gracefully
//to add extensions/functions:
//define an index after the last one, either an extension or a function
//increment NUM_OGL_EXTENSIONS if an extension or NUM_OGL_FUNCTIONS if function
//add function macro for Win32
//add function info to GL_Functions struct
//the structure of extensions/functions are located in gropenglextension.cpp
typedef struct ogl_extension {
bool required_to_run;
bool enabled;
int num_extensions;
const char *extension_name[3];
int num_functions;
const char *function_names[20];
} ogl_extension;
typedef struct ogl_function {
const char *function_name;
ptr_u function_ptr;
} ogl_function;
extern ogl_function GL_Functions[];
extern ogl_extension GL_Extensions[];
extern ogl_function GL_EXT_Special[];
// Extensions
#define OGL_EXT_FOG_COORD 0
#define OGL_ARB_MULTITEXTURE 1
#define OGL_ARB_TEXTURE_ENV_ADD 2
#define OGL_ARB_TEXTURE_COMPRESSION 3
#define OGL_EXT_TEXTURE_COMPRESSION_S3TC 4
#define OGL_EXT_TEXTURE_FILTER_ANISOTROPIC 5
//#define OGL_NV_FOG_DISTANCE 6
//#define OGL_EXT_SECONDARY_COLOR 7
#define OGL_ARB_TEXTURE_ENV_COMBINE 6
#define OGL_EXT_COMPILED_VERTEX_ARRAY 7
//#define OGL_ARB_TRANSPOSE_MATRIX 10
#define OGL_EXT_DRAW_RANGE_ELEMENTS 8
#define OGL_ARB_TEXTURE_MIRRORED_REPEAT 9
#define OGL_ARB_TEXTURE_NON_POWER_OF_TWO 10
#define OGL_ARB_VERTEX_BUFFER_OBJECT 11
#define OGL_ARB_PIXEL_BUFFER_OBJECT 12
#define OGL_SGIS_GENERATE_MIPMAP 13
#define OGL_EXT_FRAMEBUFFER_OBJECT 14
#define OGL_ARB_TEXTURE_RECTANGLE 15
#define OGL_EXT_BGRA 16
#define OGL_ARB_TEXTURE_CUBE_MAP 17
#define OGL_EXT_TEXTURE_LOD_BIAS 18
#define OGL_ARB_POINT_SPRITE 19
#define OGL_ARB_SHADING_LANGUAGE_100 20
#define OGL_ARB_SHADER_OBJECTS 21
#define OGL_ARB_VERTEX_SHADER 22
#define OGL_ARB_FRAGMENT_SHADER 23
#define OGL_SM30 24
#define OGL_ARB_FLOATING_POINT_TEXTURES 25
#define OGL_ARB_DRAW_ELEMENTS_BASE_VERTEX 26
#define OGL_EXT_FRAMEBUFFER_BLIT 27
#define OGL_EXT_GEOMETRY_SHADER4 28
#define OGL_EXT_TEXTURE_ARRAY 29
#define OGL_ARB_UNIFORM_BUFFER_OBJECT 30
#define OGL_EXT_TRANSFORM_FEEDBACK 31
#define OGL_ARB_DRAW_INSTANCED 32
#define OGL_ARB_TEXTURE_BUFFER 33
#define NUM_OGL_EXTENSIONS 34
// Functions
#define OGL_FOG_COORDF 0 // for better looking fog
#define OGL_FOG_COORD_POINTER 1 // used with vertex arrays
#define OGL_MULTI_TEX_COORD_2F 2 // multitex coordinates
#define OGL_ACTIVE_TEXTURE 3 // currenly active multitexture
#define OGL_CLIENT_ACTIVE_TEXTURE 4
#define OGL_COMPRESSED_TEX_IMAGE_2D 5 // 2d compressed texture
#define OGL_COMPRESSED_TEX_SUB_IMAGE_2D 6 // 2d compressed sub texture
#define OGL_GET_COMPRESSED_TEX_IMAGE 7
//#define OGL_SECONDARY_COLOR_3FV 8 // for better looking fog
//#define OGL_SECONDARY_COLOR_3UBV 9 // specular
#define OGL_LOCK_ARRAYS 8 // HTL
#define OGL_UNLOCK_ARRAYS 9 // HTL
//#define OGL_LOAD_TRANSPOSE_MATRIX_F 12
//#define OGL_MULT_TRANSPOSE_MATRIX_F 13
#define OGL_DRAW_RANGE_ELEMENTS 10
#define OGL_BIND_BUFFER 11
#define OGL_DELETE_BUFFERS 12
#define OGL_GEN_BUFFERS 13
#define OGL_BUFFER_DATA 14
#define OGL_BUFFER_SUB_DATA 15
#define OGL_MAP_BUFFER 16
#define OGL_UNMAP_BUFFER 17
#define OGL_IS_RENDERBUFFER 18
#define OGL_BIND_RENDERBUFFER 19
#define OGL_DELETE_RENDERBUFFERS 20
#define OGL_GEN_RENDERBUFFERS 21
#define OGL_RENDERBUFFER_STORAGE 22
#define OGL_GET_RENDERBUFFER_PARAMETER_IV 23
#define OGL_IS_FRAMEBUFFER 24
#define OGL_BIND_FRAMEBUFFER 25
#define OGL_DELETE_FRAMEBUFFERS 26
#define OGL_GEN_FRAMEBUFFERS 27
#define OGL_CHECK_FRAMEBUFFER_STATUS 28
#define OGL_FRAMEBUFFER_TEXTURE_2D 29
#define OGL_FRAMEBUFFER_RENDERBUFFER 30
#define OGL_GET_FRAMEBUFFER_ATTACHMENT_PARAMETER_IV 31
#define OGL_GENERATE_MIPMAP 32
#define OGL_DELETE_OBJECT 33
#define OGL_CREATE_SHADER_OBJECT 34
#define OGL_SHADER_SOURCE 35
#define OGL_COMPILE_SHADER 36
#define OGL_GET_OBJECT_PARAMETERIV 37
#define OGL_GET_INFO_LOG 38
#define OGL_CREATE_PROGRAM_OBJECT 39
#define OGL_ATTACH_OBJECT 40
#define OGL_LINK_PROGRAM 41
#define OGL_USE_PROGRAM_OBJECT 42
#define OGL_VALIDATE_PROGRAM 43
#define OGL_ENABLE_VERTEX_ATTRIB_ARRAY 44
#define OGL_DISABLE_VERTEX_ATTRIB_ARRAY 45
#define OGL_GET_ATTRIB_LOCATION 46
#define OGL_VERTEX_ATTRIB_POINTER 47
#define OGL_GET_UNIFORM_LOCATION 48
#define OGL_GET_UNIFORMIV 49
#define OGL_UNIFORM1F 50
#define OGL_UNIFORM2F 51
#define OGL_UNIFORM3F 52
#define OGL_UNIFORM4F 53
#define OGL_UNIFORM3FV 54
#define OGL_UNIFORM4FV 55
#define OGL_UNIFORM1I 56
#define OGL_UNIFORM_MATRIX4FV 57
#define OGL_DRAWBUFFERS 58
#define OGL_DRAW_ELEMENTS_BASE_VERTEX 59
#define OGL_DRAW_RANGE_ELEMENTS_BASE_VERTEX 60
#define OGL_DRAW_ELEMENTS_INSTANCED_BASE_VERTEX 61
#define OGL_MULTI_DRAW_ELEMENTS_BASE_VERTEX 62
#define OGL_BLITFRAMEBUFFER 63
#define OGL_PROGRAM_PARAMETERI 64
#define OGL_TEXIMAGE3D 65
#define OGL_FRAMEBUFFER_TEXTURE 66
#define OGL_GET_UNIFORM_INDICES 67
#define OGL_GET_ACTIVE_UNIFORMS_IV 68
#define OGL_GET_ACTIVE_UNIFORM_NAME 69
#define OGL_GET_UNIFORM_BLOCK_INDEX 70
#define OGL_GET_ACTIVE_UNIFORM_BLOCK_IV 71
#define OGL_GET_ACTIVE_UNIFORM_BLOCK_NAME 72
#define OGL_UNIFORM_BLOCK_BINDING 73
#define OGL_BEGIN_TRANSFORM_FEEDBACK 74
#define OGL_END_TRANSFORM_FEEDBACK 75
#define OGL_BIND_BUFFER_RANGE 76
#define OGL_BIND_BUFFER_OFFSET 77
#define OGL_BIND_BUFFER_BASE 78
#define OGL_TRANSFORM_FEEDBACK_VARYINGS 79
#define OGL_GET_TRANSFORM_FEEDBACK_VARYING 80
#define OGL_ARB_DRAW_ARRAYS_INSTANCED 81
#define OGL_ARB_DRAW_ELEMENTS_INSTANCED 82
#define OGL_ARB_TEX_BUFFER 83
#define NUM_OGL_FUNCTIONS 84
// special extensions/functions (OS specific, non-GL stuff)
#define OGL_SPC_WGL_SWAP_INTERVAL 0
#define OGL_SPC_GLX_SWAP_INTERVAL 1
#define NUM_OGL_EXT_SPECIAL 2
#define Is_Extension_Enabled(x) GL_Extensions[x].enabled
void opengl_extensions_init();
#define GLEXT_CALL(i, x) if (GL_Functions[i].function_ptr) \
((x)GL_Functions[i].function_ptr)
// the same as GLEXT_CALL() except that it can be used with a cast or in an if statement
// this doesn't do NULL ptr checking so you have to be careful with it!
#define GLEXT_CALL2(i, x) ((x)GL_Functions[i].function_ptr)
#define GLEXT_SPC_CALL(i, x) if (GL_EXT_Special[i].function_ptr) \
((x)GL_EXT_Special[i].function_ptr)
#ifdef __APPLE__
// !-----REMOVE WHEN WE MIGRATE TO THE OPENGL CORE PROFILE-----!
typedef void (* glDrawRangeElementsProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
typedef void (* glTexBufferARBProcPtr) (GLenum target, GLenum internalformat, GLuint buffer);
typedef GLuint (* glGetUniformBlockIndexARBProcPtr) (GLuint program, const GLchar *uniformBlockName);
#define GL_TEXTURE_BUFFER_ARB 0x8C2A
#define GL_UNIFORM_BUFFER 0x8A11
// !-----REMOVE WHEN WE MIGRATE TO THE OPENGL CORE PROFILE-----!
// OS X doesn't have the PFN* names so we have to use the real OSX function ptrs
#define PFNGLFOGCOORDFEXTPROC glFogCoordfEXTProcPtr
#define PFNGLFOGCOORDPOINTEREXTPROC glFogCoordPointerEXTProcPtr
#define PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARBProcPtr
#define PFNGLACTIVETEXTUREARBPROC glActiveTextureARBProcPtr
#define PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARBProcPtr
#define PFNGLCOMPRESSEDTEXIMAGE2DPROC glCompressedTexImage2DARBProcPtr
#define PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC glCompressedTexSubImage2DARBProcPtr
#define PFNGLGETCOMPRESSEDTEXIMAGEARBPROC glGetCompressedTexImageARBProcPtr
//#define PFNGLSECONDARYCOLOR3FVEXTPROC glSecondaryColor3fvEXTProcPtr
//#define PFNGLSECONDARYCOLOR3UBVEXTPROC glSecondaryColor3ubvEXTProcPtr
#define PFNGLLOCKARRAYSEXTPROC glLockArraysEXTProcPtr
#define PFNGLUNLOCKARRAYSEXTPROC glUnlockArraysEXTProcPtr
//#define PFNGLLOADTRANSPOSEMATRIXFARBPROC glLoadTransposeMatrixfARBProcPtr
//#define PFNGLMULTTRANSPOSEMATRIXFARBPROC glMultTransposeMatrixfARBProcPtr
#define PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElementsProcPtr
#define PFNGLBINDBUFFERARBPROC glBindBufferARBProcPtr
#define PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARBProcPtr
#define PFNGLGENBUFFERSARBPROC glGenBuffersARBProcPtr
#define PFNGLBUFFERDATAARBPROC glBufferDataARBProcPtr
#define PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARBProcPtr
#define PFNGLMAPBUFFERARBPROC glMapBufferARBProcPtr
#define PFNGLUNMAPBUFFERARBPROC glUnmapBufferARBProcPtr
#define PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXTProcPtr
#define PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXTProcPtr
#define PFNGLDELETERENDERBUFFERSEXTPROC glDeleteRenderbuffersEXTProcPtr
#define PFNGLGENRENDERBUFFERSEXTPROC glGenRenderbuffersEXTProcPtr
#define PFNGLRENDERBUFFERSTORAGEEXTPROC glRenderbufferStorageEXTProcPtr
#define PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC glGetRenderbufferParameterivEXTProcPtr
#define PFNGLISFRAMEBUFFEREXTPROC glIsFramebufferEXTProcPtr
#define PFNGLBINDFRAMEBUFFEREXTPROC glBindFramebufferEXTProcPtr
#define PFNGLDELETEFRAMEBUFFERSEXTPROC glDeleteFramebuffersEXTProcPtr
#define PFNGLGENFRAMEBUFFERSEXTPROC glGenFramebuffersEXTProcPtr
#define PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC glCheckFramebufferStatusEXTProcPtr
#define PFNGLFRAMEBUFFERTEXTURE2DEXTPROC glFramebufferTexture2DEXTProcPtr
#define PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC glFramebufferRenderbufferEXTProcPtr
#define PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC glGetFramebufferAttachmentParameterivEXTProcPtr
#define PFNGLGENERATEMIPMAPEXTPROC glGenerateMipmapEXTProcPtr
#define PFNGLDELETEOBJECTARBPROC glDeleteObjectARBProcPtr
#define PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARBProcPtr
#define PFNGLSHADERSOURCEARBPROC glShaderSourceARBProcPtr
#define PFNGLCOMPILESHADERARBPROC glCompileShaderARBProcPtr
#define PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARBProcPtr
#define PFNGLGETINFOLOGARBPROC glGetInfoLogARBProcPtr
#define PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARBProcPtr
#define PFNGLATTACHOBJECTARBPROC glAttachObjectARBProcPtr
#define PFNGLLINKPROGRAMARBPROC glLinkProgramARBProcPtr
#define PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARBProcPtr
#define PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARBProcPtr
#define PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARBProcPtr
#define PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARBProcPtr
#define PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARBProcPtr
#define PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARBProcPtr
#define PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARBProcPtr
#define PFNGLGETUNIFORMIVARBPROC glGetUniformivARBProcPtr
#define PFNGLUNIFORM1FARBPROC glUniform1fARBProcPtr
#define PFNGLUNIFORM2FARBPROC glUniform2fARBProcPtr
#define PFNGLUNIFORM3FARBPROC glUniform3fARBProcPtr
#define PFNGLUNIFORM4FARBPROC glUniform4fARBProcPtr
#define PFNGLUNIFORM3FVARBPROC glUniform3fvARBProcPtr
#define PFNGLUNIFORM4FVARBPROC glUniform4fvARBProcPtr
#define PFNGLUNIFORM1IARBPROC glUniform1iARBProcPtr
#define PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARBProcPtr
#define PFNGLDRAWBUFFERSPROC glDrawBuffersARBProcPtr
#define PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertexProcPtr
#define PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertexProcPtr
#define PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertexProcPtr
#define PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC glMultiDrawElementsBaseVertexProcPtr
#define PFNGLBLITFRAMEBUFFEREXTPROC glBlitFramebufferEXTProcPtr
#define PFNGLPROGRAMPARAMETERIEXTPROC glProgramParameteriEXTProcPtr
#define PFNGLFRAMEBUFFERTEXTUREEXTPROC glFramebufferTextureEXTProcPtr
#define PFNGLGETUNIFORMINDICESPROC glGetUniformIndicesARBProcPtr
#define PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsivARBProcPtr
#define PFNGLGETACTIVEUNIFORMNAMEPROC glGetActiveUniformNameARBProcPtr
#define PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndexARBProcPtr
#define PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockivARBProcPtr
#define PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockNameARBProcPtr
#define PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBindingARBProcPtr
#define PFNGLBEGINTRANSFORMFEEDBACKEXTPROC glBeginTransformFeedbackEXTProcPtr
#define PFNGLENDTRANSFORMFEEDBACKEXTPROC glEndTransformFeedbackEXTProcPtr
#define PFNGLBINDBUFFERRANGEEXTPROC glBindBufferRangeEXTProcPtr
#define PFNGLBINDBUFFEROFFSETEXTPROC glBindBufferOffsetEXTProcPtr
#define PFNGLBINDBUFFERBASEEXTPROC glBindBufferBaseEXTProcPtr
#define PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC glTransformFeedbackVaryingsEXTProcPtr
#define PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC glGetTransformFeedbackVaryingEXTProcPtr
#define PFNGLDRAWARRAYSINSTANCEDARBPROC glDrawArraysInstancedARBProcPtr
#define PFNGLDRAWELEMENTSINSTANCEDARBPROC glDrawElementsInstancedARBProcPtr
#define PFNGLTEXBUFFERARBPROC glTexBufferARBProcPtr
#endif // __APPLE__
#define vglFogCoordfEXT GLEXT_CALL( OGL_FOG_COORDF, PFNGLFOGCOORDFEXTPROC )
#define vglFogCoordPointerEXT GLEXT_CALL( OGL_FOG_COORD_POINTER, PFNGLFOGCOORDPOINTEREXTPROC )
#define vglMultiTexCoord2fARB GLEXT_CALL( OGL_MULTI_TEX_COORD_2F, PFNGLMULTITEXCOORD2FARBPROC )
#define vglActiveTextureARB GLEXT_CALL( OGL_ACTIVE_TEXTURE, PFNGLACTIVETEXTUREARBPROC )
#define vglClientActiveTextureARB GLEXT_CALL( OGL_CLIENT_ACTIVE_TEXTURE, PFNGLCLIENTACTIVETEXTUREARBPROC )
#define vglCompressedTexImage2D GLEXT_CALL( OGL_COMPRESSED_TEX_IMAGE_2D, PFNGLCOMPRESSEDTEXIMAGE2DPROC )
#define vglCompressedTexSubImage2D GLEXT_CALL( OGL_COMPRESSED_TEX_SUB_IMAGE_2D, PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC )
#define vglGetCompressedTexImageARB GLEXT_CALL( OGL_GET_COMPRESSED_TEX_IMAGE, PFNGLGETCOMPRESSEDTEXIMAGEARBPROC )
//#define vglSecondaryColor3fvEXT GLEXT_CALL( OGL_SECONDARY_COLOR_3FV, PFNGLSECONDARYCOLOR3FVEXTPROC )
//#define vglSecondaryColor3ubvEXT GLEXT_CALL( OGL_SECONDARY_COLOR_3UBV, PFNGLSECONDARYCOLOR3UBVEXTPROC )
#define vglLockArraysEXT GLEXT_CALL( OGL_LOCK_ARRAYS, PFNGLLOCKARRAYSEXTPROC )
#define vglUnlockArraysEXT GLEXT_CALL( OGL_UNLOCK_ARRAYS, PFNGLUNLOCKARRAYSEXTPROC )
//#define vglLoadTransposeMatrixfARB GLEXT_CALL( OGL_LOAD_TRANSPOSE_MATRIX_F, PFNGLLOADTRANSPOSEMATRIXFARBPROC )
//#define vglMultTransposeMatrixfARB GLEXT_CALL( OGL_MULT_TRANSPOSE_MATRIX_F, PFNGLMULTTRANSPOSEMATRIXFARBPROC )
#define vglDrawRangeElements GLEXT_CALL( OGL_DRAW_RANGE_ELEMENTS, PFNGLDRAWRANGEELEMENTSPROC )
#define vglBindBufferARB GLEXT_CALL( OGL_BIND_BUFFER, PFNGLBINDBUFFERARBPROC )
#define vglDeleteBuffersARB GLEXT_CALL( OGL_DELETE_BUFFERS, PFNGLDELETEBUFFERSARBPROC )
#define vglGenBuffersARB GLEXT_CALL( OGL_GEN_BUFFERS, PFNGLGENBUFFERSARBPROC )
#define vglBufferDataARB GLEXT_CALL( OGL_BUFFER_DATA, PFNGLBUFFERDATAARBPROC )
#define vglBufferSubDataARB GLEXT_CALL( OGL_BUFFER_SUB_DATA, PFNGLBUFFERSUBDATAARBPROC )
#define vglMapBufferARB GLEXT_CALL2( OGL_MAP_BUFFER, PFNGLMAPBUFFERARBPROC )
#define vglUnmapBufferARB GLEXT_CALL( OGL_UNMAP_BUFFER, PFNGLUNMAPBUFFERARBPROC )
#define vglIsRenderbufferEXT GLEXT_CALL2( OGL_IS_RENDERBUFFER, PFNGLISRENDERBUFFEREXTPROC )
#define vglBindRenderbufferEXT GLEXT_CALL( OGL_BIND_RENDERBUFFER, PFNGLBINDRENDERBUFFEREXTPROC )
#define vglDeleteRenderbuffersEXT GLEXT_CALL( OGL_DELETE_RENDERBUFFERS, PFNGLDELETERENDERBUFFERSEXTPROC )
#define vglGenRenderbuffersEXT GLEXT_CALL( OGL_GEN_RENDERBUFFERS, PFNGLGENRENDERBUFFERSEXTPROC )
#define vglRenderbufferStorageEXT GLEXT_CALL( OGL_RENDERBUFFER_STORAGE, PFNGLRENDERBUFFERSTORAGEEXTPROC )
#define vglGetRenderbufferParameterivEXT GLEXT_CALL( OGL_GET_RENDERBUFFER_PARAMETER_IV, PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC )
#define vglIsFramebufferEXT GLEXT_CALL2( OGL_IS_FRAMEBUFFER, PFNGLISFRAMEBUFFEREXTPROC )
#define vglBindFramebufferEXT GLEXT_CALL( OGL_BIND_FRAMEBUFFER, PFNGLBINDFRAMEBUFFEREXTPROC )
#define vglDeleteFramebuffersEXT GLEXT_CALL( OGL_DELETE_FRAMEBUFFERS, PFNGLDELETEFRAMEBUFFERSEXTPROC )
#define vglGenFramebuffersEXT GLEXT_CALL( OGL_GEN_FRAMEBUFFERS, PFNGLGENFRAMEBUFFERSEXTPROC )
#define vglCheckFramebufferStatusEXT GLEXT_CALL2( OGL_CHECK_FRAMEBUFFER_STATUS, PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC )
#define vglFramebufferTexture2DEXT GLEXT_CALL( OGL_FRAMEBUFFER_TEXTURE_2D, PFNGLFRAMEBUFFERTEXTURE2DEXTPROC )
#define vglFramebufferRenderbufferEXT GLEXT_CALL( OGL_FRAMEBUFFER_RENDERBUFFER, PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC )
#define vglGetFramebufferAttachmentParameterivEXT GLEXT_CALL( OGL_GET_FRAMEBUFFER_ATTACHMENT_PARAMETER_IV, PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC )
#define vglGenerateMipmapEXT GLEXT_CALL( OGL_GENERATE_MIPMAP, PFNGLGENERATEMIPMAPEXTPROC )
#define vglDeleteObjectARB GLEXT_CALL( OGL_DELETE_OBJECT, PFNGLDELETEOBJECTARBPROC )
#define vglCreateShaderObjectARB GLEXT_CALL2( OGL_CREATE_SHADER_OBJECT, PFNGLCREATESHADEROBJECTARBPROC )
#define vglShaderSourceARB GLEXT_CALL( OGL_SHADER_SOURCE, PFNGLSHADERSOURCEARBPROC )
#define vglCompileShaderARB GLEXT_CALL( OGL_COMPILE_SHADER, PFNGLCOMPILESHADERARBPROC )
#define vglGetObjectParameterivARB GLEXT_CALL( OGL_GET_OBJECT_PARAMETERIV, PFNGLGETOBJECTPARAMETERIVARBPROC )
#define vglGetInfoLogARB GLEXT_CALL( OGL_GET_INFO_LOG, PFNGLGETINFOLOGARBPROC )
#define vglCreateProgramObjectARB GLEXT_CALL2( OGL_CREATE_PROGRAM_OBJECT, PFNGLCREATEPROGRAMOBJECTARBPROC )
#define vglAttachObjectARB GLEXT_CALL( OGL_ATTACH_OBJECT, PFNGLATTACHOBJECTARBPROC )
#define vglLinkProgramARB GLEXT_CALL( OGL_LINK_PROGRAM, PFNGLLINKPROGRAMARBPROC )
#define vglUseProgramObjectARB GLEXT_CALL( OGL_USE_PROGRAM_OBJECT, PFNGLUSEPROGRAMOBJECTARBPROC )
#define vglValidateProgramARB GLEXT_CALL( OGL_VALIDATE_PROGRAM, PFNGLVALIDATEPROGRAMARBPROC )
#define vglEnableVertexAttribArrayARB GLEXT_CALL( OGL_ENABLE_VERTEX_ATTRIB_ARRAY, PFNGLENABLEVERTEXATTRIBARRAYARBPROC )
#define vglDisableVertexAttribArrayARB GLEXT_CALL( OGL_DISABLE_VERTEX_ATTRIB_ARRAY, PFNGLDISABLEVERTEXATTRIBARRAYARBPROC )
#define vglGetAttribLocationARB GLEXT_CALL2( OGL_GET_ATTRIB_LOCATION, PFNGLGETATTRIBLOCATIONARBPROC )
#define vglVertexAttribPointerARB GLEXT_CALL( OGL_VERTEX_ATTRIB_POINTER, PFNGLVERTEXATTRIBPOINTERARBPROC )
#define vglGetUniformLocationARB GLEXT_CALL2( OGL_GET_UNIFORM_LOCATION, PFNGLGETUNIFORMLOCATIONARBPROC )
#define vglGetUniformivARB GLEXT_CALL( OGL_GET_UNIFORMIV, PFNGLGETUNIFORMIVARBPROC )
#define vglUniform1fARB GLEXT_CALL( OGL_UNIFORM1F, PFNGLUNIFORM1FARBPROC )
#define vglUniform2fARB GLEXT_CALL( OGL_UNIFORM2F, PFNGLUNIFORM2FARBPROC )
#define vglUniform3fARB GLEXT_CALL( OGL_UNIFORM3F, PFNGLUNIFORM3FARBPROC )
#define vglUniform4fARB GLEXT_CALL( OGL_UNIFORM4F, PFNGLUNIFORM4FARBPROC )
#define vglUniform3fvARB GLEXT_CALL( OGL_UNIFORM3FV, PFNGLUNIFORM3FVARBPROC )
#define vglUniform4fvARB GLEXT_CALL( OGL_UNIFORM4FV, PFNGLUNIFORM4FVARBPROC )
#define vglUniform1iARB GLEXT_CALL( OGL_UNIFORM1I, PFNGLUNIFORM1IARBPROC )
#define vglUniformMatrix4fvARB GLEXT_CALL( OGL_UNIFORM_MATRIX4FV, PFNGLUNIFORMMATRIX4FVARBPROC )
#define vglDrawBuffers GLEXT_CALL( OGL_DRAWBUFFERS, PFNGLDRAWBUFFERSPROC )
#define vglDrawElementsBaseVertex GLEXT_CALL( OGL_DRAW_ELEMENTS_BASE_VERTEX, PFNGLDRAWELEMENTSBASEVERTEXPROC )
#define vglDrawRangeElementsBaseVertex GLEXT_CALL( OGL_DRAW_RANGE_ELEMENTS_BASE_VERTEX, PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC )
#define vglDrawElementsInstancedBaseVertex GLEXT_CALL( OGL_DRAW_ELEMENTS_INSTANCED_BASE_VERTEX, PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC )
#define vglMultiDrawElementsBaseVertex GLEXT_CALL( OGL_MULTI_DRAW_ELEMENTS_BASE_VERTEX, PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC )
#define vglBlitFramebufferEXT GLEXT_CALL( OGL_BLITFRAMEBUFFER, PFNGLBLITFRAMEBUFFEREXTPROC )
#define vglProgramParameteriEXT GLEXT_CALL( OGL_PROGRAM_PARAMETERI, PFNGLPROGRAMPARAMETERIEXTPROC )
#define vglGetUniformIndicesARB GLEXT_CALL( OGL_GET_UNIFORM_INDICES, PFNGLGETUNIFORMINDICESPROC )
#define vglGetActiveUniformsivARB GLEXT_CALL( OGL_GET_ACTIVE_UNIFORMS_IV, PFNGLGETACTIVEUNIFORMSIVPROC )
#define vglGetActiveUniformNameARB GLEXT_CALL( OGL_GET_ACTIVE_UNIFORM_NAME, PFNGLGETACTIVEUNIFORMNAMEPROC )
#define vglGetUniformBlockIndexARB GLEXT_CALL2( OGL_GET_UNIFORM_BLOCK_INDEX, PFNGLGETUNIFORMBLOCKINDEXPROC )
#define vglGetActiveUniformBlockivARB GLEXT_CALL( OGL_GET_ACTIVE_UNIFORM_BLOCK_IV, PFNGLGETACTIVEUNIFORMBLOCKIVPROC )
#define vglGetActiveUniformBlockNameARB GLEXT_CALL( OGL_GET_ACTIVE_UNIFORM_BLOCK_NAME, PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC )
#define vglUniformBlockBindingARB GLEXT_CALL( OGL_UNIFORM_BLOCK_BINDING, PFNGLUNIFORMBLOCKBINDINGPROC )
#define vglBeginTransformFeedbackEXT GLEXT_CALL( OGL_BEGIN_TRANSFORM_FEEDBACK, PFNGLBEGINTRANSFORMFEEDBACKEXTPROC )
#define vglEndTransformFeedbackEXT GLEXT_CALL( OGL_END_TRANSFORM_FEEDBACK, PFNGLENDTRANSFORMFEEDBACKEXTPROC )
#define vglBindBufferRangeEXT GLEXT_CALL( OGL_BIND_BUFFER_RANGE, PFNGLBINDBUFFERRANGEEXTPROC )
#define vglBindBufferOffsetEXT GLEXT_CALL( OGL_BIND_BUFFER_OFFSET, PFNGLBINDBUFFEROFFSETEXTPROC )
#define vglBindBufferBaseEXT GLEXT_CALL( OGL_BIND_BUFFER_BASE, PFNGLBINDBUFFERBASEEXTPROC )
#define vglTransformFeedbackVaryingsEXT GLEXT_CALL( OGL_TRANSFORM_FEEDBACK_VARYINGS, PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC )
#define vglGetTransformFeedbackVaryingEXT GLEXT_CALL( OGL_GET_TRANSFORM_FEEDBACK_VARYING, PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC )
#define vglDrawArraysInstancedARB GLEXT_CALL( OGL_ARB_DRAW_ARRAYS_INSTANCED, PFNGLDRAWARRAYSINSTANCEDARBPROC )
#define vglDrawElementsInstancedARB GLEXT_CALL( OGL_ARB_DRAW_ELEMENTS_INSTANCED, PFNGLDRAWELEMENTSINSTANCEDARBPROC )
#define vglTexBufferARB GLEXT_CALL( OGL_ARB_TEX_BUFFER, PFNGLTEXBUFFERARBPROC )
#ifndef __APPLE__
#define vglTexImage3D GLEXT_CALL( OGL_TEXIMAGE3D, PFNGLTEXIMAGE3DPROC )
#else
#define vglTexImage3D glTexImage3D
#endif
#define vglFramebufferTextureEXT GLEXT_CALL( OGL_FRAMEBUFFER_TEXTURE, PFNGLFRAMEBUFFERTEXTUREEXTPROC )
// special extensions
#define vwglSwapIntervalEXT GLEXT_SPC_CALL( OGL_SPC_WGL_SWAP_INTERVAL, PFNWGLSWAPINTERVALEXTPROC )
#define vglXSwapIntervalSGI GLEXT_SPC_CALL( OGL_SPC_GLX_SWAP_INTERVAL, PFNGLXSWAPINTERVALSGIPROC )
#endif // _GROPENGLEXT_H
|