Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

OpenGLext.h

Go to the documentation of this file.
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  * WGL_ARB_extensions_string
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  * WGL_ARB_pixel_format
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  * GL_EXT_blend
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  * ARB_multitexture
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  * ARB_point_sprite
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  * ARB_point_parameters
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  * ARB_vertex_buffer_object
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  * GL_ARB_vertex_program
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  * GL_ARB_shader_objects
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;                         /* native character */
00588         typedef unsigned int GLhandleARB;       /* shader object handle */
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  * GL_ARB_shading_language_100
00688  */
00689 extern bool GL_ARB_shading_language_100_supported;
00690 
00691 
00692 /********************************************************************
00693  * GL_ARB_vertex_shader
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  * GL_ARB_fragment_program
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  * GL_ARB_fragment_shader
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  * GL_ARB_texture_cube_map
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  * GL_EXT_texture_edge_clamp
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  * GL_ARB_occlusion_query
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  * GL_NV_occlusion_query
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

Generated on Sun Jun 5 15:47:04 2005 for Defacto by  doxygen 1.4.3