00001
00007 #ifndef _OPENGLEXT_H_
00008 #define _OPENGLEXT_H_
00009
00010 #define WIN32_LEAN_AND_MEAN
00011 #include <windows.h>
00012 #include <gl/gl.h>
00013 #include <gl/glu.h>
00014 #include "../../Util/Log.h"
00015
00016 #define WGLinStr(str) (inStr(wglxExtensions, str) || inStr(extensions, str))
00017
00018 typedef long GLintptrARB;
00019 typedef long GLsizeiptrARB;
00020
00021
00022
00023
00024
00025 #ifndef WGL_ARB_extensions_string
00026 #define WGL_ARB_extensions_string
00027 typedef char * (APIENTRY * WGL_ARB_EXTENSIONS_STRING) (HDC hdc);
00028 #endif
00029
00030 extern bool WGL_ARB_extensions_string_supported;
00031
00032 extern WGL_ARB_EXTENSIONS_STRING wglGetExtensionsStringARB;
00033
00034
00035
00036
00037
00038 #ifndef WGL_ARB_pixel_format
00039 #define WGL_ARB_pixel_format 1
00040 #define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
00041 #define WGL_DRAW_TO_WINDOW_ARB 0x2001
00042 #define WGL_DRAW_TO_BITMAP_ARB 0x2002
00043 #define WGL_ACCELERATION_ARB 0x2003
00044 #define WGL_NEED_PALETTE_ARB 0x2004
00045 #define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
00046 #define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
00047 #define WGL_SWAP_METHOD_ARB 0x2007
00048 #define WGL_NUMBER_OVERLAYS_ARB 0x2008
00049 #define WGL_NUMBER_UNDERLAYS_ARB 0x2009
00050 #define WGL_TRANSPARENT_ARB 0x200A
00051 #define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
00052 #define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
00053 #define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
00054 #define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
00055 #define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
00056 #define WGL_SHARE_DEPTH_ARB 0x200C
00057 #define WGL_SHARE_STENCIL_ARB 0x200D
00058 #define WGL_SHARE_ACCUM_ARB 0x200E
00059 #define WGL_SUPPORT_GDI_ARB 0x200F
00060 #define WGL_SUPPORT_OPENGL_ARB 0x2010
00061 #define WGL_DOUBLE_BUFFER_ARB 0x2011
00062 #define WGL_STEREO_ARB 0x2012
00063 #define WGL_PIXEL_TYPE_ARB 0x2013
00064 #define WGL_COLOR_BITS_ARB 0x2014
00065 #define WGL_RED_BITS_ARB 0x2015
00066 #define WGL_RED_SHIFT_ARB 0x2016
00067 #define WGL_GREEN_BITS_ARB 0x2017
00068 #define WGL_GREEN_SHIFT_ARB 0x2018
00069 #define WGL_BLUE_BITS_ARB 0x2019
00070 #define WGL_BLUE_SHIFT_ARB 0x201A
00071 #define WGL_ALPHA_BITS_ARB 0x201B
00072 #define WGL_ALPHA_SHIFT_ARB 0x201C
00073 #define WGL_ACCUM_BITS_ARB 0x201D
00074 #define WGL_ACCUM_RED_BITS_ARB 0x201E
00075 #define WGL_ACCUM_GREEN_BITS_ARB 0x201F
00076 #define WGL_ACCUM_BLUE_BITS_ARB 0x2020
00077 #define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
00078 #define WGL_DEPTH_BITS_ARB 0x2022
00079 #define WGL_STENCIL_BITS_ARB 0x2023
00080 #define WGL_AUX_BUFFERS_ARB 0x2024
00081 #define WGL_NO_ACCELERATION_ARB 0x2025
00082 #define WGL_GENERIC_ACCELERATION_ARB 0x2026
00083 #define WGL_FULL_ACCELERATION_ARB 0x2027
00084 #define WGL_SWAP_EXCHANGE_ARB 0x2028
00085 #define WGL_SWAP_COPY_ARB 0x2029
00086 #define WGL_SWAP_UNDEFINED_ARB 0x202A
00087 #define WGL_TYPE_RGBA_ARB 0x202B
00088 #define WGL_TYPE_COLORINDEX_ARB 0x202C
00089
00090
00091 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) (HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
00092 typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) (HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
00093 typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) (HDC hDC, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
00094 #endif
00095
00096 extern bool WGL_ARB_pixel_format_supported;
00097
00098 extern PFNWGLGETPIXELFORMATATTRIBIVARBPROC wglGetPixelFormatAttribivARB;
00099 extern PFNWGLGETPIXELFORMATATTRIBFVARBPROC wglGetPixelFormatAttribfvARB;
00100 extern PFNWGLCHOOSEPIXELFORMATARBPROC wglChoosePixelFormatARB;
00101
00102
00103
00104
00105
00106 #ifndef GL_EXT_blend_color
00107 #define GL_EXT_blend_color 1
00108 #define GL_CONSTANT_COLOR_EXT 0x8001
00109 #define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
00110 #define GL_CONSTANT_ALPHA_EXT 0x8003
00111 #define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
00112 #define GL_BLEND_COLOR_EXT 0x8005
00113
00114 typedef void (APIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
00115 #endif
00116
00117 #ifndef GL_EXT_blend_func_separate
00118 #define GL_EXT_blend_func_separate 1
00119 #define GL_BLEND_DST_RGB_EXT 0x80C8
00120 #define GL_BLEND_SRC_RGB_EXT 0x80C9
00121 #define GL_BLEND_DST_ALPHA_EXT 0x80CA
00122 #define GL_BLEND_SRC_ALPHA_EXT 0x80CB
00123
00124 typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
00125 #endif
00126
00127 #ifndef GL_EXT_blend_minmax
00128 #define GL_EXT_blend_minmax 1
00129 #define GL_FUNC_ADD_EXT 0x8006
00130 #define GL_MIN_EXT 0x8007
00131 #define GL_MAX_EXT 0x8008
00132 #define GL_BLEND_EQUATION_EXT 0x8009
00133
00134 typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
00135 #endif
00136
00137 #ifndef GL_EXT_blend_subtract
00138 #define GL_EXT_blend_subtract 1
00139 #define GL_FUNC_SUBTRACT_EXT 0x800A
00140 #define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
00141 #endif
00142
00143 #ifndef GL_EXT_draw_range_elements
00144 #define GL_EXT_draw_range_elements 1
00145 #define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8
00146 #define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9
00147
00148 typedef void (APIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
00149 #endif
00150
00151 extern bool GL_EXT_blend_color_supported;
00152 extern bool GL_EXT_blend_func_separate_supported;
00153 extern bool GL_EXT_blend_minmax_supported;
00154 extern bool GL_EXT_blend_subtract_supported;
00155
00156 extern PFNGLBLENDCOLOREXTPROC glBlendColorEXT;
00157 extern PFNGLBLENDFUNCSEPARATEEXTPROC glBlendFuncSeparateEXT;
00158 extern PFNGLBLENDEQUATIONEXTPROC glBlendEquationEXT;
00159
00160
00161
00162
00163
00164 #ifndef GL_ARB_multitexture
00165 #define GL_ARB_multitexture 1
00166 #define GL_ACTIVE_TEXTURE_ARB 0x84E0
00167 #define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
00168 #define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
00169 #define GL_TEXTURE0_ARB 0x84C0
00170 #define GL_TEXTURE1_ARB 0x84C1
00171 #define GL_TEXTURE2_ARB 0x84C2
00172 #define GL_TEXTURE3_ARB 0x84C3
00173 #define GL_TEXTURE4_ARB 0x84C4
00174 #define GL_TEXTURE5_ARB 0x84C5
00175 #define GL_TEXTURE6_ARB 0x84C6
00176 #define GL_TEXTURE7_ARB 0x84C7
00177 #define GL_TEXTURE8_ARB 0x84C8
00178 #define GL_TEXTURE9_ARB 0x84C9
00179 #define GL_TEXTURE10_ARB 0x84CA
00180 #define GL_TEXTURE11_ARB 0x84CB
00181 #define GL_TEXTURE12_ARB 0x84CC
00182 #define GL_TEXTURE13_ARB 0x84CD
00183 #define GL_TEXTURE14_ARB 0x84CE
00184 #define GL_TEXTURE15_ARB 0x84CF
00185 #define GL_TEXTURE16_ARB 0x84D0
00186 #define GL_TEXTURE17_ARB 0x84D1
00187 #define GL_TEXTURE18_ARB 0x84D2
00188 #define GL_TEXTURE19_ARB 0x84D3
00189 #define GL_TEXTURE20_ARB 0x84D4
00190 #define GL_TEXTURE21_ARB 0x84D5
00191 #define GL_TEXTURE22_ARB 0x84D6
00192 #define GL_TEXTURE23_ARB 0x84D7
00193 #define GL_TEXTURE24_ARB 0x84D8
00194 #define GL_TEXTURE25_ARB 0x84D9
00195 #define GL_TEXTURE26_ARB 0x84DA
00196 #define GL_TEXTURE27_ARB 0x84DB
00197 #define GL_TEXTURE28_ARB 0x84DC
00198 #define GL_TEXTURE29_ARB 0x84DD
00199 #define GL_TEXTURE30_ARB 0x84DE
00200 #define GL_TEXTURE31_ARB 0x84DF
00201
00202 typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
00203 typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
00204
00205 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum texture, GLfloat s);
00206 typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum texture, const GLfloat *v);
00207
00208 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum texture, GLfloat s, GLfloat t);
00209 typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum texture, const GLfloat *v);
00210
00211 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r);
00212 typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum texture, const GLfloat *v);
00213
00214 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
00215 typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum texture, const GLfloat *v);
00216 #endif
00217
00218 extern bool GL_ARB_multitexture_supported;
00219
00220 extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
00221 extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
00222
00223 extern PFNGLMULTITEXCOORD1FARBPROC glMultiTexCoord1fARB;
00224 extern PFNGLMULTITEXCOORD1FVARBPROC glMultiTexCoord1fvARB;
00225
00226 extern PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
00227 extern PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fvARB;
00228
00229 extern PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3fARB;
00230 extern PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fvARB;
00231
00232 extern PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4fARB;
00233 extern PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB;
00234
00235
00236
00237
00238
00239 #ifndef GL_ARB_point_sprite
00240 #define GL_ARB_point_sprite 1
00241 #define GL_POINT_SPRITE_ARB 0x8861
00242 #define GL_COORD_REPLACE_ARB 0x8862
00243 #endif
00244
00245
00246
00247
00248
00249 #ifndef GL_ARB_point_parameters
00250 #define GL_ARB_point_parameters 1
00251 #define GL_POINT_SIZE_MIN_ARB 0x8126
00252 #define GL_POINT_SIZE_MAX_ARB 0x8127
00253 #define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128
00254 #define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129
00255
00256 typedef void (APIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param);
00257 typedef void (APIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params);
00258 #endif
00259
00260 extern bool GL_ARB_point_parameters_supported;
00261
00262 extern PFNGLPOINTPARAMETERFARBPROC glPointParameterfARB;
00263 extern PFNGLPOINTPARAMETERFVARBPROC glPointParameterfvARB;
00264
00265
00266
00267
00268
00269 #ifndef GL_ARB_vertex_buffer_object
00270 #define GL_ARB_vertex_buffer_object 1
00271 #define BUFFER_OFFSET(i) ((char *) NULL + (i))
00272
00273 #define GL_ARRAY_BUFFER_ARB 0x8892
00274 #define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
00275 #define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893
00276 #define GL_ARRAY_BUFFER_BINDING_ARB 0x8894
00277 #define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
00278 #define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
00279 #define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
00280 #define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
00281 #define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
00282 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
00283 #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
00284 #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
00285 #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
00286 #define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
00287 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
00288 #define GL_STREAM_DRAW_ARB 0x88E0
00289 #define GL_STREAM_READ_ARB 0x88E1
00290 #define GL_STREAM_COPY_ARB 0x88E2
00291 #define GL_STATIC_DRAW_ARB 0x88E4
00292 #define GL_STATIC_READ_ARB 0x88E5
00293 #define GL_STATIC_COPY_ARB 0x88E6
00294 #define GL_DYNAMIC_DRAW_ARB 0x88E8
00295 #define GL_DYNAMIC_READ_ARB 0x88E9
00296 #define GL_DYNAMIC_COPY_ARB 0x88EA
00297 #define GL_READ_ONLY_ARB 0x88B8
00298 #define GL_WRITE_ONLY_ARB 0x88B9
00299 #define GL_READ_WRITE_ARB 0x88BA
00300 #define GL_BUFFER_SIZE_ARB 0x8764
00301 #define GL_BUFFER_USAGE_ARB 0x8765
00302 #define GL_BUFFER_ACCESS_ARB 0x88BB
00303 #define GL_BUFFER_MAPPED_ARB 0x88BC
00304 #define GL_BUFFER_MAP_POINTER_ARB 0x88BD
00305
00306 typedef void (APIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
00307 typedef void (APIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
00308 typedef void (APIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
00309 typedef GLboolean (APIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer);
00310
00311 typedef void (APIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const void *data, GLenum usage);
00312 typedef void (APIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void *data);
00313 typedef void (APIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, void *data);
00314
00315 typedef void *(APIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
00316 typedef GLboolean (APIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target);
00317
00318 typedef void (APIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
00319 typedef void (APIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, void **params);
00320 #endif
00321
00322 extern bool GL_ARB_vertex_buffer_object_supported;
00323
00324 extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
00325 extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
00326 extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
00327 extern PFNGLISBUFFERARBPROC glIsBufferARB;
00328
00329 extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
00330 extern PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
00331 extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
00332
00333 extern PFNGLMAPBUFFERARBPROC glMapBufferARB;
00334 extern PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
00335
00336 extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
00337 extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
00338
00339
00340
00341
00342
00343 #ifndef GL_ARB_vertex_program
00344 #define GL_ARB_vertex_program 1
00345 #define GL_COLOR_SUM_ARB 0x8458
00346 #define GL_VERTEX_PROGRAM_ARB 0x8620
00347 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622
00348 #define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623
00349 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624
00350 #define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625
00351 #define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626
00352 #define GL_PROGRAM_LENGTH_ARB 0x8627
00353 #define GL_PROGRAM_STRING_ARB 0x8628
00354 #define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E
00355 #define GL_MAX_PROGRAM_MATRICES_ARB 0x862F
00356 #define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640
00357 #define GL_CURRENT_MATRIX_ARB 0x8641
00358 #define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642
00359 #define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643
00360 #define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645
00361 #define GL_PROGRAM_ERROR_POSITION_ARB 0x864B
00362 #define GL_PROGRAM_BINDING_ARB 0x8677
00363 #define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869
00364 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A
00365 #define GL_PROGRAM_ERROR_STRING_ARB 0x8874
00366 #define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875
00367 #define GL_PROGRAM_FORMAT_ARB 0x8876
00368 #define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0
00369 #define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1
00370 #define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2
00371 #define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3
00372 #define GL_PROGRAM_TEMPORARIES_ARB 0x88A4
00373 #define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5
00374 #define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6
00375 #define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7
00376 #define GL_PROGRAM_PARAMETERS_ARB 0x88A8
00377 #define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9
00378 #define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA
00379 #define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB
00380 #define GL_PROGRAM_ATTRIBS_ARB 0x88AC
00381 #define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD
00382 #define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE
00383 #define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF
00384 #define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0
00385 #define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1
00386 #define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2
00387 #define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3
00388 #define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4
00389 #define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5
00390 #define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6
00391 #define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7
00392 #define GL_MATRIX0_ARB 0x88C0
00393 #define GL_MATRIX1_ARB 0x88C1
00394 #define GL_MATRIX2_ARB 0x88C2
00395 #define GL_MATRIX3_ARB 0x88C3
00396 #define GL_MATRIX4_ARB 0x88C4
00397 #define GL_MATRIX5_ARB 0x88C5
00398 #define GL_MATRIX6_ARB 0x88C6
00399 #define GL_MATRIX7_ARB 0x88C7
00400 #define GL_MATRIX8_ARB 0x88C8
00401 #define GL_MATRIX9_ARB 0x88C9
00402 #define GL_MATRIX10_ARB 0x88CA
00403 #define GL_MATRIX11_ARB 0x88CB
00404 #define GL_MATRIX12_ARB 0x88CC
00405 #define GL_MATRIX13_ARB 0x88CD
00406 #define GL_MATRIX14_ARB 0x88CE
00407 #define GL_MATRIX15_ARB 0x88CF
00408 #define GL_MATRIX16_ARB 0x88D0
00409 #define GL_MATRIX17_ARB 0x88D1
00410 #define GL_MATRIX18_ARB 0x88D2
00411 #define GL_MATRIX19_ARB 0x88D3
00412 #define GL_MATRIX20_ARB 0x88D4
00413 #define GL_MATRIX21_ARB 0x88D5
00414 #define GL_MATRIX22_ARB 0x88D6
00415 #define GL_MATRIX23_ARB 0x88D7
00416 #define GL_MATRIX24_ARB 0x88D8
00417 #define GL_MATRIX25_ARB 0x88D9
00418 #define GL_MATRIX26_ARB 0x88DA
00419 #define GL_MATRIX27_ARB 0x88DB
00420 #define GL_MATRIX28_ARB 0x88DC
00421 #define GL_MATRIX29_ARB 0x88DD
00422 #define GL_MATRIX30_ARB 0x88DE
00423 #define GL_MATRIX31_ARB 0x88DF
00424
00425 typedef void (APIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
00426 typedef void (APIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
00427 typedef void (APIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
00428 typedef void (APIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
00429 typedef void (APIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
00430 typedef void (APIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
00431 typedef void (APIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
00432 typedef void (APIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
00433 typedef void (APIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
00434 typedef void (APIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
00435 typedef void (APIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00436 typedef void (APIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00437 typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
00438 typedef void (APIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
00439 typedef void (APIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
00440 typedef void (APIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
00441 typedef void (APIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
00442 typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
00443 typedef void (APIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
00444 typedef void (APIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
00445 typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
00446 typedef void (APIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
00447 typedef void (APIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
00448 typedef void (APIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
00449 typedef void (APIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
00450 typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
00451 typedef void (APIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
00452 typedef void (APIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
00453 typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
00454 typedef void (APIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
00455 typedef void (APIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
00456 typedef void (APIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
00457 typedef void (APIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
00458 typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
00459 typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
00460 typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
00461 typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
00462 typedef void (APIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
00463 typedef void (APIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
00464 typedef void (APIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
00465 typedef void (APIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
00466 typedef void (APIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
00467 typedef void (APIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
00468 typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00469 typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
00470 typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00471 typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
00472 typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00473 typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
00474 typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00475 typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
00476 typedef void (APIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
00477 typedef void (APIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
00478 typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
00479 typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
00480 typedef void (APIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
00481 typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string);
00482 typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
00483 typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
00484 typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
00485 typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid **pointer);
00486 typedef GLboolean (APIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program);
00487 #endif
00488
00489 extern bool GL_ARB_vertex_program_supported;
00490
00491 extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
00492 extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
00493 extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
00494 extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
00495 extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
00496 extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
00497 extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
00498 extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
00499 extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
00500 extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
00501 extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
00502 extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
00503 extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4NubARB;
00504 extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
00505 extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
00506 extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
00507 extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
00508 extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
00509 extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
00510 extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
00511 extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
00512 extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
00513 extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
00514 extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
00515 extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
00516 extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
00517 extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
00518 extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
00519 extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
00520 extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
00521 extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4NbvARB;
00522 extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4NsvARB;
00523 extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4NivARB;
00524 extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4NubvARB;
00525 extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4NusvARB;
00526 extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4NuivARB;
00527 extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
00528 extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
00529 extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
00530 extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
00531 extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
00532 extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
00533 extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
00534 extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
00535 extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
00536 extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
00537 extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
00538 extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
00539 extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
00540 extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
00541 extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
00542 extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
00543 extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
00544 extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
00545 extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
00546 extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
00547 extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
00548 extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
00549 extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
00550 extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
00551 extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
00552 extern PFNGLISPROGRAMARBPROC glIsProgramARB;
00553
00554
00555
00556
00557
00558 #ifndef GL_ARB_shader_objects
00559 #define GL_ARB_shader_objects 1
00560 #define GL_PROGRAM_OBJECT_ARB 0x8B40
00561 #define GL_SHADER_OBJECT_ARB 0x8B48
00562 #define GL_OBJECT_TYPE_ARB 0x8B4E
00563 #define GL_OBJECT_SUBTYPE_ARB 0x8B4F
00564 #define GL_FLOAT_VEC2_ARB 0x8B50
00565 #define GL_FLOAT_VEC3_ARB 0x8B51
00566 #define GL_FLOAT_VEC4_ARB 0x8B52
00567 #define GL_INT_VEC2_ARB 0x8B53
00568 #define GL_INT_VEC3_ARB 0x8B54
00569 #define GL_INT_VEC4_ARB 0x8B55
00570 #define GL_BOOL_ARB 0x8B56
00571 #define GL_BOOL_VEC2_ARB 0x8B57
00572 #define GL_BOOL_VEC3_ARB 0x8B58
00573 #define GL_BOOL_VEC4_ARB 0x8B59
00574 #define GL_FLOAT_MAT2_ARB 0x8B5A
00575 #define GL_FLOAT_MAT3_ARB 0x8B5B
00576 #define GL_FLOAT_MAT4_ARB 0x8B5C
00577 #define GL_OBJECT_DELETE_STATUS_ARB 0x8B80
00578 #define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81
00579 #define GL_OBJECT_LINK_STATUS_ARB 0x8B82
00580 #define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83
00581 #define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84
00582 #define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85
00583 #define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86
00584 #define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
00585 #define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
00586
00587 typedef char GLcharARB;
00588 typedef unsigned int GLhandleARB;
00589
00590 typedef GLvoid (APIENTRY *PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj);
00591 typedef GLhandleARB (APIENTRY *PFNGLGETHANDLEARBPROC)(GLenum pname);
00592 typedef GLvoid (APIENTRY *PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB attachedObj);
00593 typedef GLhandleARB (APIENTRY *PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType);
00594 typedef GLvoid (APIENTRY *PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count, const GLcharARB **string, const GLint *length);
00595 typedef GLvoid (APIENTRY *PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj);
00596 typedef GLhandleARB (APIENTRY *PFNGLCREATEPROGRAMOBJECTARBPROC)(GLvoid);
00597 typedef GLvoid (APIENTRY *PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj);
00598 typedef GLvoid (APIENTRY *PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj);
00599 typedef GLvoid (APIENTRY *PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj);
00600 typedef GLvoid (APIENTRY *PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj);
00601
00602 typedef GLvoid (APIENTRY *PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0);
00603 typedef GLvoid (APIENTRY *PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1);
00604 typedef GLvoid (APIENTRY *PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
00605 typedef GLvoid (APIENTRY *PFNGLUNIFORM4FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
00606
00607 typedef GLvoid (APIENTRY *PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0);
00608 typedef GLvoid (APIENTRY *PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1);
00609 typedef GLvoid (APIENTRY *PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2);
00610 typedef GLvoid (APIENTRY *PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
00611
00612 typedef GLvoid (APIENTRY *PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count, GLfloat *value);
00613 typedef GLvoid (APIENTRY *PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count, GLfloat *value);
00614 typedef GLvoid (APIENTRY *PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count, GLfloat *value);
00615 typedef GLvoid (APIENTRY *PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count, GLfloat *value);
00616
00617 typedef GLvoid (APIENTRY *PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count, GLint *value);
00618 typedef GLvoid (APIENTRY *PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count, GLint *value);
00619 typedef GLvoid (APIENTRY *PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count, GLint *value);
00620 typedef GLvoid (APIENTRY *PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count, GLint *value);
00621
00622 typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, GLfloat *value);
00623 typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, GLfloat *value);
00624 typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, GLfloat *value);
00625
00626 typedef GLvoid (APIENTRY *PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat *params);
00627 typedef GLvoid (APIENTRY *PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint *params);
00628 typedef GLvoid (APIENTRY *PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
00629 typedef GLvoid (APIENTRY *PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
00630 typedef GLint (APIENTRY *PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB *name);
00631 typedef GLvoid (APIENTRY *PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
00632 typedef GLvoid (APIENTRY *PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location, GLfloat *params);
00633 typedef GLvoid (APIENTRY *PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location, GLint *params);
00634 typedef GLvoid (APIENTRY *PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
00635 #endif
00636
00637 extern bool GL_ARB_shader_objects_supported;
00638
00639 extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
00640 extern PFNGLGETHANDLEARBPROC glGetHandleARB;
00641 extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
00642 extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
00643 extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
00644 extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
00645 extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
00646 extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
00647 extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
00648 extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
00649 extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
00650
00651 extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
00652 extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
00653 extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
00654 extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
00655
00656 extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
00657 extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
00658 extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
00659 extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
00660
00661 extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
00662 extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
00663 extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
00664 extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
00665
00666 extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
00667 extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
00668 extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
00669 extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
00670
00671 extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
00672 extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
00673 extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
00674
00675 extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
00676 extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
00677 extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
00678 extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
00679 extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
00680 extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
00681 extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
00682 extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
00683 extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
00684
00685
00686
00687
00688
00689 extern bool GL_ARB_shading_language_100_supported;
00690
00691
00692
00693
00694
00695 #ifndef GL_ARB_vertex_shader
00696 #define GL_ARB_vertex_shader 1
00697 #define GL_VERTEX_SHADER_ARB 0x8B31
00698 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
00699 #define GL_MAX_VARYING_FLOATS_ARB 0x8B4B
00700 #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
00701 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
00702 #define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89
00703 #define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
00704
00705 typedef GLvoid (APIENTRY *PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB *name);
00706 typedef GLvoid (APIENTRY *PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
00707 typedef GLint (APIENTRY *PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB *name);
00708 #endif
00709
00710 extern bool GL_ARB_vertex_shader_supported;
00711
00712 extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
00713 extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
00714 extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
00715
00716
00717
00718
00719
00720 #ifndef GL_ARB_fragment_program
00721 #define GL_ARB_fragment_program 1
00722 #define GL_FRAGMENT_PROGRAM_ARB 0x8804
00723 #define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805
00724 #define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806
00725 #define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807
00726 #define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
00727 #define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
00728 #define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
00729 #define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
00730 #define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
00731 #define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
00732 #define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
00733 #define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
00734 #define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
00735 #define GL_MAX_TEXTURE_COORDS_ARB 0x8871
00736 #define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872
00737 #endif
00738
00739 extern bool GL_ARB_fragment_program_supported;
00740
00741
00742
00743
00744
00745 #ifndef GL_ARB_fragment_shader
00746 #define GL_ARB_fragment_shader 1
00747 #define GL_FRAGMENT_SHADER_ARB 0x8B30
00748 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
00749 #endif
00750
00751 extern bool GL_ARB_fragment_shader_supported;
00752
00753
00754
00755
00756
00757 #ifndef GL_ARB_texture_cube_map
00758 #define GL_ARB_texture_cube_map 1
00759 #define GL_NORMAL_MAP_ARB 0x8511
00760 #define GL_REFLECTION_MAP_ARB 0x8512
00761 #define GL_TEXTURE_CUBE_MAP_ARB 0x8513
00762 #define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514
00763 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515
00764 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516
00765 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517
00766 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518
00767 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519
00768 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A
00769 #define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B
00770 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C
00771 #endif
00772
00773
00774
00775
00776
00777 #ifndef GL_EXT_texture_edge_clamp
00778 #define GL_EXT_texture_edge_clamp 1
00779 #define GL_CLAMP_TO_EDGE_EXT 0x812F
00780 #endif
00781
00782
00783
00784
00785
00786 #ifndef GL_ARB_occlusion_query
00787 #define GL_ARB_occlusion_query 1
00788 #define GL_SAMPLES_PASSED_ARB 0x8914
00789 #define GL_QUERY_COUNTER_BITS_ARB 0x8864
00790 #define GL_CURRENT_QUERY_ARB 0x8865
00791 #define GL_QUERY_RESULT_ARB 0x8866
00792 #define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867
00793
00794 typedef void (APIENTRY * PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids);
00795 typedef void (APIENTRY * PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids);
00796 typedef void (APIENTRY * PFNGLISQUERYARBPROC) (GLuint id);
00797 typedef void (APIENTRY * PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id);
00798 typedef void (APIENTRY * PFNGLENDQUERYARBPROC) (GLenum target);
00799 typedef void (APIENTRY * PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params);
00800 typedef void (APIENTRY * PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params);
00801 typedef void (APIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params);
00802 #endif
00803
00804 extern bool GL_ARB_occlusion_query_supported;
00805
00806 extern PFNGLGENQUERIESARBPROC glGenQueriesARB;
00807 extern PFNGLDELETEQUERIESARBPROC glDeleteQueriesARB;
00808 extern PFNGLISQUERYARBPROC glIsQueryARB;
00809 extern PFNGLBEGINQUERYARBPROC glBeginQueryARB;
00810 extern PFNGLENDQUERYARBPROC glEndQueryARB;
00811 extern PFNGLGETQUERYIVARBPROC glGetQueryivARB;
00812 extern PFNGLGETQUERYOBJECTIVARBPROC glGetQueryObjectivARB;
00813 extern PFNGLGETQUERYOBJECTUIVARBPROC glGetQueryObjectuivARB;
00814
00815
00816
00817
00818
00819 #ifndef GL_NV_occlusion_query
00820 #define GL_NV_occlusion_query 1
00821 #define GL_PIXEL_COUNTER_BITS_NV 0x8864
00822 #define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865
00823 #define GL_PIXEL_COUNT_NV 0x8866
00824 #define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867
00825
00826 typedef GLvoid (APIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids);
00827 typedef GLvoid (APIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids);
00828 typedef GLboolean (APIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id);
00829 typedef GLvoid (APIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id);
00830 typedef GLvoid (APIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (GLvoid);
00831 typedef GLvoid (APIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params);
00832 typedef GLvoid (APIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params);
00833 #endif
00834
00835 extern bool GL_NV_occlusion_query_supported;
00836
00837 extern PFNGLGENOCCLUSIONQUERIESNVPROC glGenOcclusionQueriesNV;
00838 extern PFNGLDELETEOCCLUSIONQUERIESNVPROC glDeleteOcclusionQueriesNV;
00839 extern PFNGLISOCCLUSIONQUERYNVPROC glIsOcclusionQueryNV;
00840 extern PFNGLBEGINOCCLUSIONQUERYNVPROC glBeginOcclusionQueryNV;
00841 extern PFNGLENDOCCLUSIONQUERYNVPROC glEndOcclusionQueryNV;
00842 extern PFNGLGETOCCLUSIONQUERYIVNVPROC glGetOcclusionQueryivNV;
00843 extern PFNGLGETOCCLUSIONQUERYUIVNVPROC glGetOcclusionQueryuivNV;
00844
00845
00846
00847
00848
00849 bool inStr(char *str, char *searchStr);
00850 bool initExtensions(HDC hDC);
00851
00852 bool findExtension(char *extensions, char *extension);
00853
00854 #define isExtensionSupported(str) (findExtension(extensions, str))
00855 #define isWGLXExtensionSupported(str) (findExtension(wglxExtensions, str) || findExtension(extensions, str))
00856
00857 #endif