Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

glext.h

Go to the documentation of this file.
00001 /* glext.h */
00002 
00003 #ifndef _CELENGINE_GLEXT_H_
00004 #define _CELENGINE_GLEXT_H_
00005 
00006 #include <cstddef>
00007 
00008 #ifndef APIENTRY
00009 #define APIENTRY
00010 #endif
00011 
00012 #ifndef GL_ARB_shader_objects
00013 /* GL types for handling shader object handles and characters */
00014 typedef char GLcharARB;         /* native character */
00015 typedef unsigned int GLhandleARB;       /* shader object handle */
00016 #endif
00017 
00018 /* EXT_rescale_normal defines from <GL/gl.h> */
00019 #ifndef GL_EXT_rescale_normal
00020 #define GL_EXT_rescale_normal 1
00021 #define GL_RESCALE_NORMAL_EXT               0x803A
00022 #endif
00023 
00024 /* EXT_texture_edge_clamp defines from <GL/gl.h> */
00025 #ifndef GL_EXT_texture_edge_clamp
00026 #define GL_EXT_texture_edge_clamp 1
00027 #define GL_CLAMP_TO_EDGE_EXT                ((GLenum) 0x812F)
00028 #endif
00029 
00030 /* EXT_texture_edge_clamp defines from <GL/gl.h> */
00031 #ifndef GL_ARB_texture_border_clamp
00032 #define GL_ARB_texture_border_clamp 1
00033 #define GL_CLAMP_TO_BORDER_ARB              ((GLenum) 0x812D)
00034 #endif
00035 
00036 /* EXT_bgra defines from <GL/gl.h> */
00037 #ifndef GL_EXT_bgra
00038 #define GL_EXT_bgra 1
00039 #define GL_BGR_EXT                          0x80E0
00040 #define GL_BGRA_EXT                         0x80E1
00041 #endif
00042 
00043 /* GL_ARB_texture_compression */
00044 #ifndef GL_ARB_texture_compression
00045 #define GL_ARB_texture_compression 1
00046 
00047 #define GL_COMPRESSED_ALPHA_ARB           0x84E9
00048 #define GL_COMPRESSED_LUMINANCE_ARB       0x84EA
00049 #define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB
00050 #define GL_COMPRESSED_INTENSITY_ARB       0x84EC
00051 #define GL_COMPRESSED_RGB_ARB             0x84ED
00052 #define GL_COMPRESSED_RGBA_ARB            0x84EE
00053 #define GL_TEXTURE_COMPRESSION_HINT_ARB   0x84EF
00054 #define GL_TEXTURE_IMAGE_SIZE_ARB         0x86A0
00055 #define GL_TEXTURE_COMPRESSED_ARB         0x86A1
00056 #define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2
00057 #define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3
00058 #endif
00059 
00060 namespace glx
00061 {
00062     typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
00063     typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
00064     typedef void (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
00065     typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
00066     typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
00067     typedef void (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
00068     typedef void (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, void *img);
00069     extern PFNGLCOMPRESSEDTEXIMAGE3DARBPROC glCompressedTexImage3DARB;
00070     extern PFNGLCOMPRESSEDTEXIMAGE2DARBPROC glCompressedTexImage2DARB;
00071     extern PFNGLCOMPRESSEDTEXIMAGE1DARBPROC glCompressedTexImage1DARB;
00072     extern PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC glCompressedTexSubImage3DARB;
00073     extern PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC glCompressedTexSubImage2DARB;
00074     extern PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC glCompressedTexSubImage1DARB;
00075 };
00076 
00077 
00078 /* GL_EXT_texture_compression_s3tc */
00079 #ifndef GL_EXT_texture_compression_s3tc
00080 #define GL_EXT_texture_compression_s3tc 1
00081 #define GL_COMPRESSED_RGB_S3TC_DXT1_EXT   0x83F0
00082 #define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT  0x83F1
00083 #define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT  0x83F2
00084 #define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT  0x83F3
00085 #endif
00086 
00087 /* ARB_multitexture defines and prototypes from <GL/gl.h> */
00088 #ifndef GL_ARB_multitexture
00089 #define GL_ARB_multitexture 1
00090 #define GL_ACTIVE_TEXTURE_ARB               0x84E0
00091 #define GL_CLIENT_ACTIVE_TEXTURE_ARB        0x84E1
00092 #define GL_MAX_TEXTURE_UNITS_ARB            0x84E2
00093 #define GL_TEXTURE0_ARB                     0x84C0
00094 #define GL_TEXTURE1_ARB                     0x84C1
00095 #define GL_TEXTURE2_ARB                     0x84C2
00096 #define GL_TEXTURE3_ARB                     0x84C3
00097 #endif
00098 
00099 namespace glx
00100 {
00101     typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
00102     typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
00103     typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
00104     typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
00105     typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
00106     typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
00107     typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
00108     typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
00109     typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
00110     typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
00111     typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
00112     typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
00113     typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
00114     typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
00115     typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
00116     typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
00117     typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
00118     typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
00119     typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
00120     typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
00121     typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
00122     typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
00123     typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
00124     typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
00125     typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
00126     typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
00127     typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
00128     typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
00129     typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
00130     typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
00131     typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
00132     typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
00133     typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum target);
00134     typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum target);
00135 
00136     extern PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2iARB;
00137     extern PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB;
00138     extern PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3fARB;
00139     extern PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fvARB;
00140     extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB;
00141     extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB;
00142 };
00143 
00144 /* EXT_texture_cube_map defines from <GL/gl.h> */
00145 #if !(defined( GL_EXT_texture_cube_map) || defined(__glext_h_)) || defined(MACOSX)
00146 #define GL_NORMAL_MAP_EXT                   ((GLenum) 0x8511)
00147 #define GL_REFLECTION_MAP_EXT               ((GLenum) 0x8512)
00148 #define GL_TEXTURE_CUBE_MAP_EXT             ((GLenum) 0x8513)
00149 #define GL_TEXTURE_BINDING_CUBE_MAP_EXT     ((GLenum) 0x8514)
00150 #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT  ((GLenum) 0x8515)
00151 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT  ((GLenum) 0x8516)
00152 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT  ((GLenum) 0x8517)
00153 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT  ((GLenum) 0x8518)
00154 #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT  ((GLenum) 0x8519)
00155 #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT  ((GLenum) 0x851A)
00156 #define GL_PROXY_TEXTURE_CUBE_MAP_EXT       ((GLenum) 0x851B)
00157 #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT    ((GLenum) 0x851C)
00158 #endif
00159 
00160 /* EXT_separate_specular_color defines from <GL/gl.h> */
00161 #ifndef GL_EXT_separate_specular_color
00162 #define GL_LIGHT_MODEL_COLOR_CONTROL_EXT     0x81F8
00163 #define GL_SINGLE_COLOR_EXT                  0x81F9
00164 #define GL_SEPARATE_SPECULAR_COLOR_EXT       0x81FA
00165 #endif
00166 
00167 /* EXT_texture_env_combine defines from <GL/gl.h> */
00168 #ifndef GL_EXT_texture_env_combine
00169 
00170 // Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
00171 // and TexEnviv when the <pname> parameter value is TEXTURE_ENV_MODE
00172 #define GL_COMBINE_EXT         0x8570
00173 
00174 // Accepted by the <pname> parameter of TexEnvf, TexEnvi, TexEnvfv,
00175 // and TexEnviv when the <target> parameter value is TEXTURE_ENV
00176 #define GL_COMBINE_RGB_EXT     0x8571
00177 #define GL_COMBINE_ALPHA_EXT   0x8572
00178 #define GL_SOURCE0_RGB_EXT     0x8580
00179 #define GL_SOURCE1_RGB_EXT     0x8581
00180 #define GL_SOURCE2_RGB_EXT     0x8582
00181 #define GL_SOURCE0_ALPHA_EXT   0x8588
00182 #define GL_SOURCE1_ALPHA_EXT   0x8589
00183 #define GL_SOURCE2_ALPHA_EXT   0x858A
00184 #define GL_OPERAND0_RGB_EXT    0x8590
00185 #define GL_OPERAND1_RGB_EXT    0x8591
00186 #define GL_OPERAND2_RGB_EXT    0x8592
00187 #define GL_OPERAND0_ALPHA_EXT  0x8598
00188 #define GL_OPERAND1_ALPHA_EXT  0x8599
00189 #define GL_OPERAND2_ALPHA_EXT  0x859A
00190 #define GL_RGB_SCALE_EXT       0x8573
00191 
00192 // Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
00193 // and TexEnviv when the <pname> parameter value is COMBINE_RGB_EXT
00194 // or COMBINE_ALPHA_EXT
00195 #define GL_ADD_SIGNED_EXT      0x8574
00196 #define GL_INTERPOLATE_EXT     0x8575
00197 
00198 // Accepted by the <params> parameter of TexEnvf, TexEnvi, TexEnvfv,
00199 // and TexEnviv when the <pname> parameter value is SOURCE0_RGB_EXT,
00200 // SOURCE1_RGB_EXT, SOURCE2_RGB_EXT, SOURCE0_ALPHA_EXT,
00201 // SOURCE1_ALPHA_EXT, or SOURCE2_ALPHA_EXT
00202 #define GL_CONSTANT_EXT        0x8576
00203 #define GL_PRIMARY_COLOR_EXT   0x8577
00204 #define GL_PREVIOUS_EXT        0x8578
00205 
00206 #endif // GL_EXT_texture_env_combine
00207 
00208 
00209 #ifndef GL_SGIS_generate_mipmap
00210 #define GL_GENERATE_MIPMAP_SGIS           0x8191
00211 #define GL_GENERATE_MIPMAP_HINT_SGIS      0x8192
00212 #endif
00213 
00214 
00215 #ifndef GL_EXT_texture_lod_bias
00216 #define GL_MAX_TEXTURE_LOD_BIAS_EXT       0x84FD
00217 #define GL_TEXTURE_FILTER_CONTROL_EXT     0x8500
00218 #define GL_TEXTURE_LOD_BIAS_EXT           0x8501
00219 #endif
00220 
00221 
00222 /* NV_register_combiners defines and prototypes from <GL/gl.h> */
00223 #ifndef GL_NV_register_combiners
00224 #define GL_NV_register_combiners 1
00225 #define GL_REGISTER_COMBINERS_NV            ((GLenum) 0x8522)
00226 #define GL_COMBINER0_NV                     ((GLenum) 0x8550)
00227 #define GL_COMBINER1_NV                     ((GLenum) 0x8551)
00228 #define GL_COMBINER2_NV                     ((GLenum) 0x8552)
00229 #define GL_COMBINER3_NV                     ((GLenum) 0x8553)
00230 #define GL_COMBINER4_NV                     ((GLenum) 0x8554)
00231 #define GL_COMBINER5_NV                     ((GLenum) 0x8555)
00232 #define GL_COMBINER6_NV                     ((GLenum) 0x8556)
00233 #define GL_COMBINER7_NV                     ((GLenum) 0x8557)
00234 #define GL_VARIABLE_A_NV                    ((GLenum) 0x8523)
00235 #define GL_VARIABLE_B_NV                    ((GLenum) 0x8524)
00236 #define GL_VARIABLE_C_NV                    ((GLenum) 0x8525)
00237 #define GL_VARIABLE_D_NV                    ((GLenum) 0x8526)
00238 #define GL_VARIABLE_E_NV                    ((GLenum) 0x8527)
00239 #define GL_VARIABLE_F_NV                    ((GLenum) 0x8528)
00240 #define GL_VARIABLE_G_NV                    ((GLenum) 0x8529)
00241 /*      GL_ZERO */
00242 #define GL_CONSTANT_COLOR0_NV               ((GLenum) 0x852A)
00243 #define GL_CONSTANT_COLOR1_NV               ((GLenum) 0x852B)
00244 /*      GL_FOG */
00245 #define GL_PRIMARY_COLOR_NV                 ((GLenum) 0x852C)
00246 #define GL_SECONDARY_COLOR_NV               ((GLenum) 0x852D)
00247 #define GL_SPARE0_NV                        ((GLenum) 0x852E)
00248 #define GL_SPARE1_NV                        ((GLenum) 0x852F)
00249 /*      GL_TEXTURE0_ARB */
00250 /*      GL_TEXTURE1_ARB */
00251 #define GL_UNSIGNED_IDENTITY_NV             ((GLenum) 0x8536)
00252 #define GL_UNSIGNED_INVERT_NV               ((GLenum) 0x8537)
00253 #define GL_EXPAND_NORMAL_NV                 ((GLenum) 0x8538)
00254 #define GL_EXPAND_NEGATE_NV                 ((GLenum) 0x8539)
00255 #define GL_HALF_BIAS_NORMAL_NV              ((GLenum) 0x853A)
00256 #define GL_HALF_BIAS_NEGATE_NV              ((GLenum) 0x853B)
00257 #define GL_SIGNED_IDENTITY_NV               ((GLenum) 0x853C)
00258 #define GL_SIGNED_NEGATE_NV                 ((GLenum) 0x853D)
00259 #define GL_E_TIMES_F_NV                     ((GLenum) 0x8531)
00260 #define GL_SPARE0_PLUS_SECONDARY_COLOR_NV   ((GLenum) 0x8532)
00261 /*      GL_NONE */
00262 #define GL_SCALE_BY_TWO_NV                  ((GLenum) 0x853E)
00263 #define GL_SCALE_BY_FOUR_NV                 ((GLenum) 0x853F)
00264 #define GL_SCALE_BY_ONE_HALF_NV             ((GLenum) 0x8540)
00265 #define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV     ((GLenum) 0x8541)
00266 #define GL_DISCARD_NV                       ((GLenum) 0x8530)
00267 #define GL_COMBINER_INPUT_NV                ((GLenum) 0x8542)
00268 #define GL_COMBINER_MAPPING_NV              ((GLenum) 0x8543)
00269 #define GL_COMBINER_COMPONENT_USAGE_NV      ((GLenum) 0x8544)
00270 #define GL_COMBINER_AB_DOT_PRODUCT_NV       ((GLenum) 0x8545)
00271 #define GL_COMBINER_CD_DOT_PRODUCT_NV       ((GLenum) 0x8546)
00272 #define GL_COMBINER_MUX_SUM_NV              ((GLenum) 0x8547)
00273 #define GL_COMBINER_SCALE_NV                ((GLenum) 0x8548)
00274 #define GL_COMBINER_BIAS_NV                 ((GLenum) 0x8549)
00275 #define GL_COMBINER_AB_OUTPUT_NV            ((GLenum) 0x854A)
00276 #define GL_COMBINER_CD_OUTPUT_NV            ((GLenum) 0x854B)
00277 #define GL_COMBINER_SUM_OUTPUT_NV           ((GLenum) 0x854C)
00278 #define GL_MAX_GENERAL_COMBINERS_NV         ((GLenum) 0x854D)
00279 #define GL_NUM_GENERAL_COMBINERS_NV         ((GLenum) 0x854E)
00280 #define GL_COLOR_SUM_CLAMP_NV               ((GLenum) 0x854F)
00281 #endif
00282 
00283 namespace glx
00284 {
00285     typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params);
00286     typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
00287     typedef void (APIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params);
00288     typedef void (APIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
00289     typedef void (APIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
00290     typedef void (APIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
00291     typedef void (APIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
00292     typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
00293     typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
00294     typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
00295     typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params);
00296     typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params);
00297     typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params);
00298 
00299     /* NV_register_combiners command function pointers */
00300     extern PFNGLCOMBINERPARAMETERFVNVPROC glCombinerParameterfvNV;
00301     extern PFNGLCOMBINERPARAMETERIVNVPROC glCombinerParameterivNV;
00302     extern PFNGLCOMBINERPARAMETERFNVPROC glCombinerParameterfNV;
00303     extern PFNGLCOMBINERPARAMETERINVPROC glCombinerParameteriNV;
00304     extern PFNGLCOMBINERINPUTNVPROC glCombinerInputNV;
00305     extern PFNGLCOMBINEROUTPUTNVPROC glCombinerOutputNV;
00306     extern PFNGLFINALCOMBINERINPUTNVPROC glFinalCombinerInputNV;
00307     extern PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC glGetCombinerInputParameterfvNV;
00308     extern PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC glGetCombinerInputParameterivNV;
00309     extern PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC glGetCombinerOutputParameterfvNV;
00310     extern PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC glGetCombinerOutputParameterivNV;
00311     extern PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC glGetFinalCombinerInputParameterfvNV;
00312     extern PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC glGetFinalCombinerInputParameterivNV;
00313 };
00314 
00315 
00316 /* NV_register_combiners2 */
00317 #ifndef GL_NV_register_combiners2
00318 #define GL_PER_STAGE_CONSTANTS_NV         0x8535
00319 #endif
00320 
00321 namespace glx
00322 {
00323     typedef void (APIENTRY * PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params);
00324     typedef void (APIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params);
00325 
00326     extern PFNGLCOMBINERSTAGEPARAMETERFVNVPROC glCombinerStageParameterfvNV;
00327     extern PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC glGetCombinerStageParameterfvNV;
00328 };
00329 
00330 
00331 /* NV_texture_shader */
00332 #ifndef GL_NV_texture_shader
00333 #define GL_NV_texture_shader
00334 
00335 #define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9
00336 #define GL_UNSIGNED_INT_S8_S8_8_8_NV      0x86DA
00337 #define GL_UNSIGNED_INT_S8_S8_8_8_REV_NV  0x86DB
00338 #define GL_DSDT_MAG_INTENSITY_NV          0x86DC
00339 #define GL_SHADER_CONSISTENT_NV           0x86DD
00340 #define GL_TEXTURE_SHADER_NV              0x86DE
00341 #define GL_SHADER_OPERATION_NV            0x86DF
00342 #define GL_CULL_MODES_NV                  0x86E0
00343 #define GL_OFFSET_TEXTURE_2D_MATRIX_NV    0x86E1
00344 #define GL_OFFSET_TEXTURE_2D_SCALE_NV     0x86E2
00345 #define GL_OFFSET_TEXTURE_2D_BIAS_NV      0x86E3
00346 #define GL_PREVIOUS_TEXTURE_INPUT_NV      0x86E4
00347 #define GL_CONST_EYE_NV                   0x86E5
00348 #define GL_PASS_THROUGH_NV                0x86E6
00349 #define GL_CULL_FRAGMENT_NV               0x86E7
00350 #define GL_OFFSET_TEXTURE_2D_NV           0x86E8
00351 #define GL_DEPENDENT_AR_TEXTURE_2D_NV     0x86E9
00352 #define GL_DEPENDENT_GB_TEXTURE_2D_NV     0x86EA
00353 #define GL_DOT_PRODUCT_NV                 0x86EC
00354 #define GL_DOT_PRODUCT_DEPTH_REPLACE_NV   0x86ED
00355 #define GL_DOT_PRODUCT_TEXTURE_2D_NV      0x86EE
00356 #define GL_DOT_PRODUCT_TEXTURE_3D_NV      0x86EF
00357 #define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0
00358 #define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1
00359 #define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2
00360 #define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3
00361 #define GL_HILO_NV                        0x86F4
00362 #define GL_DSDT_NV                        0x86F5
00363 #define GL_DSDT_MAG_NV                    0x86F6
00364 #define GL_DSDT_MAG_VIB_NV                0x86F7
00365 #define GL_HILO16_NV                      0x86F8
00366 #define GL_SIGNED_HILO_NV                 0x86F9
00367 #define GL_SIGNED_HILO16_NV               0x86FA
00368 #define GL_SIGNED_RGBA_NV                 0x86FB
00369 #define GL_SIGNED_RGBA8_NV                0x86FC
00370 #define GL_SIGNED_RGB_NV                  0x86FE
00371 #define GL_SIGNED_RGB8_NV                 0x86FF
00372 #define GL_SIGNED_LUMINANCE_NV            0x8701
00373 #define GL_SIGNED_LUMINANCE8_NV           0x8702
00374 #define GL_SIGNED_LUMINANCE_ALPHA_NV      0x8703
00375 #define GL_SIGNED_LUMINANCE8_ALPHA8_NV    0x8704
00376 #define GL_SIGNED_ALPHA_NV                0x8705
00377 #define GL_SIGNED_ALPHA8_NV               0x8706
00378 #define GL_SIGNED_INTENSITY_NV            0x8707
00379 #define GL_SIGNED_INTENSITY8_NV           0x8708
00380 #define GL_DSDT8_NV                       0x8709
00381 #define GL_DSDT8_MAG8_NV                  0x870A
00382 #define GL_DSDT8_MAG8_INTENSITY8_NV       0x870B
00383 #define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV   0x870C
00384 #define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D
00385 #define GL_HI_SCALE_NV                    0x870E
00386 #define GL_LO_SCALE_NV                    0x870F
00387 #define GL_DS_SCALE_NV                    0x8710
00388 #define GL_DT_SCALE_NV                    0x8711
00389 #define GL_MAGNITUDE_SCALE_NV             0x8712
00390 #define GL_VIBRANCE_SCALE_NV              0x8713
00391 #define GL_HI_BIAS_NV                     0x8714
00392 #define GL_LO_BIAS_NV                     0x8715
00393 #define GL_DS_BIAS_NV                     0x8716
00394 #define GL_DT_BIAS_NV                     0x8717
00395 #define GL_MAGNITUDE_BIAS_NV              0x8718
00396 #define GL_VIBRANCE_BIAS_NV               0x8719
00397 #define GL_TEXTURE_BORDER_VALUES_NV       0x871A
00398 #define GL_TEXTURE_HI_SIZE_NV             0x871B
00399 #define GL_TEXTURE_LO_SIZE_NV             0x871C
00400 #define GL_TEXTURE_DS_SIZE_NV             0x871D
00401 #define GL_TEXTURE_DT_SIZE_NV             0x871E
00402 #define GL_TEXTURE_MAG_SIZE_NV            0x871F
00403 
00404 #endif
00405 
00406 
00407 /* NV_vertex_program */
00408 #if !defined(GL_NV_vertex_program)||defined(MACOSX)
00409 
00410 #define GL_VERTEX_PROGRAM_NV              0x8620
00411 #define GL_VERTEX_STATE_PROGRAM_NV        0x8621
00412 #define GL_ATTRIB_ARRAY_SIZE_NV           0x8623
00413 #define GL_ATTRIB_ARRAY_STRIDE_NV         0x8624
00414 #define GL_ATTRIB_ARRAY_TYPE_NV           0x8625
00415 #define GL_CURRENT_ATTRIB_NV              0x8626
00416 #define GL_PROGRAM_LENGTH_NV              0x8627
00417 #define GL_PROGRAM_STRING_NV              0x8628
00418 #define GL_MODELVIEW_PROJECTION_NV        0x8629
00419 #define GL_IDENTITY_NV                    0x862A
00420 #define GL_INVERSE_NV                     0x862B
00421 #define GL_TRANSPOSE_NV                   0x862C
00422 #define GL_INVERSE_TRANSPOSE_NV           0x862D
00423 #define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E
00424 #define GL_MAX_TRACK_MATRICES_NV          0x862F
00425 #define GL_MATRIX0_NV                     0x8630
00426 #define GL_MATRIX1_NV                     0x8631
00427 #define GL_MATRIX2_NV                     0x8632
00428 #define GL_MATRIX3_NV                     0x8633
00429 #define GL_MATRIX4_NV                     0x8634
00430 #define GL_MATRIX5_NV                     0x8635
00431 #define GL_MATRIX6_NV                     0x8636
00432 #define GL_MATRIX7_NV                     0x8637
00433 #define GL_CURRENT_MATRIX_STACK_DEPTH_NV  0x8640
00434 #define GL_CURRENT_MATRIX_NV              0x8641
00435 #define GL_VERTEX_PROGRAM_POINT_SIZE_NV   0x8642
00436 #define GL_VERTEX_PROGRAM_TWO_SIDE_NV     0x8643
00437 #define GL_PROGRAM_PARAMETER_NV           0x8644
00438 #define GL_ATTRIB_ARRAY_POINTER_NV        0x8645
00439 #define GL_PROGRAM_TARGET_NV              0x8646
00440 #define GL_PROGRAM_RESIDENT_NV            0x8647
00441 #define GL_TRACK_MATRIX_NV                0x8648
00442 #define GL_TRACK_MATRIX_TRANSFORM_NV      0x8649
00443 #define GL_VERTEX_PROGRAM_BINDING_NV      0x864A
00444 #define GL_PROGRAM_ERROR_POSITION_NV      0x864B
00445 #define GL_VERTEX_ATTRIB_ARRAY0_NV        0x8650
00446 #define GL_VERTEX_ATTRIB_ARRAY1_NV        0x8651
00447 #define GL_VERTEX_ATTRIB_ARRAY2_NV        0x8652
00448 #define GL_VERTEX_ATTRIB_ARRAY3_NV        0x8653
00449 #define GL_VERTEX_ATTRIB_ARRAY4_NV        0x8654
00450 #define GL_VERTEX_ATTRIB_ARRAY5_NV        0x8655
00451 #define GL_MAP1_VERTEX_ATTRIB0_4_NV       0x8660
00452 #define GL_MAP1_VERTEX_ATTRIB1_4_NV       0x8661
00453 #define GL_MAP1_VERTEX_ATTRIB2_4_NV       0x8662
00454 #define GL_MAP1_VERTEX_ATTRIB3_4_NV       0x8663
00455 #define GL_MAP1_VERTEX_ATTRIB4_4_NV       0x8664
00456 #define GL_MAP1_VERTEX_ATTRIB5_4_NV       0x8665
00457 #define GL_MAP1_VERTEX_ATTRIB6_4_NV       0x8666
00458 #define GL_MAP1_VERTEX_ATTRIB7_4_NV       0x8667
00459 #define GL_MAP1_VERTEX_ATTRIB8_4_NV       0x8668
00460 #define GL_MAP1_VERTEX_ATTRIB9_4_NV       0x8669
00461 #define GL_MAP1_VERTEX_ATTRIB10_4_NV      0x866A
00462 #define GL_MAP1_VERTEX_ATTRIB11_4_NV      0x866B
00463 #define GL_MAP1_VERTEX_ATTRIB12_4_NV      0x866C
00464 #define GL_MAP1_VERTEX_ATTRIB13_4_NV      0x866D
00465 #define GL_MAP1_VERTEX_ATTRIB14_4_NV      0x866E
00466 #define GL_MAP1_VERTEX_ATTRIB15_4_NV      0x866F
00467 #define GL_MAP2_VERTEX_ATTRIB0_4_NV       0x8670
00468 #define GL_MAP2_VERTEX_ATTRIB1_4_NV       0x8671
00469 #define GL_MAP2_VERTEX_ATTRIB2_4_NV       0x8672
00470 #define GL_MAP2_VERTEX_ATTRIB3_4_NV       0x8673
00471 #define GL_MAP2_VERTEX_ATTRIB4_4_NV       0x8674
00472 #define GL_MAP2_VERTEX_ATTRIB5_4_NV       0x8675
00473 #define GL_MAP2_VERTEX_ATTRIB6_4_NV       0x8676
00474 #define GL_MAP2_VERTEX_ATTRIB7_4_NV       0x8677
00475 #define GL_MAP2_VERTEX_ATTRIB8_4_NV       0x8678
00476 #define GL_MAP2_VERTEX_ATTRIB9_4_NV       0x8679
00477 #define GL_MAP2_VERTEX_ATTRIB10_4_NV      0x867A
00478 #define GL_MAP2_VERTEX_ATTRIB11_4_NV      0x867B
00479 #define GL_MAP2_VERTEX_ATTRIB12_4_NV      0x867C
00480 #define GL_MAP2_VERTEX_ATTRIB13_4_NV      0x867D
00481 #define GL_MAP2_VERTEX_ATTRIB14_4_NV      0x867E
00482 #define GL_MAP2_VERTEX_ATTRIB15_4_NV      0x867F
00483 
00484 #endif // !defined(GL_NV_VERTEX_PROGRAM) || defined(MACOSX)
00485 
00486 #ifndef GL_VERTEX_ATTRIB_ARRAY6_NV
00487 #define GL_VERTEX_ATTRIB_ARRAY6_NV        0x8656
00488 #define GL_VERTEX_ATTRIB_ARRAY7_NV        0x8657
00489 #define GL_VERTEX_ATTRIB_ARRAY8_NV        0x8658
00490 #define GL_VERTEX_ATTRIB_ARRAY9_NV        0x8659
00491 #define GL_VERTEX_ATTRIB_ARRAY10_NV       0x865A
00492 #define GL_VERTEX_ATTRIB_ARRAY11_NV       0x865B
00493 #define GL_VERTEX_ATTRIB_ARRAY12_NV       0x865C
00494 #define GL_VERTEX_ATTRIB_ARRAY13_NV       0x865D
00495 #define GL_VERTEX_ATTRIB_ARRAY14_NV       0x865E
00496 #define GL_VERTEX_ATTRIB_ARRAY15_NV       0x865F
00497 #endif
00498 
00499 namespace glx
00500 {
00501     typedef GLboolean (APIENTRY * PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences);
00502     typedef void (APIENTRY * PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id);
00503     typedef void (APIENTRY * PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
00504     typedef void (APIENTRY * PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params);
00505     typedef void (APIENTRY * PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs);
00506     typedef void (APIENTRY * PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params);
00507     typedef void (APIENTRY * PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params);
00508     typedef void (APIENTRY * PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params);
00509     typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program);
00510     typedef void (APIENTRY * PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params);
00511     typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params);
00512     typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params);
00513     typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params);
00514     typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer);
00515     typedef GLboolean (APIENTRY * PFNGLISPROGRAMNVPROC) (GLuint id);
00516     typedef void (APIENTRY * PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program);
00517     typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00518     typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v);
00519     typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00520     typedef void (APIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v);
00521     typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint count, const GLdouble *v);
00522     typedef void (APIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint count, const GLfloat *v);
00523     typedef void (APIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs);
00524     typedef void (APIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform);
00525     typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
00526     typedef void (APIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x);
00527     typedef void (APIENTRY * PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v);
00528     typedef void (APIENTRY * PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x);
00529     typedef void (APIENTRY * PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v);
00530     typedef void (APIENTRY * PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x);
00531     typedef void (APIENTRY * PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v);
00532     typedef void (APIENTRY * PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y);
00533     typedef void (APIENTRY * PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v);
00534     typedef void (APIENTRY * PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y);
00535     typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v);
00536     typedef void (APIENTRY * PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y);
00537     typedef void (APIENTRY * PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v);
00538     typedef void (APIENTRY * PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
00539     typedef void (APIENTRY * PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v);
00540     typedef void (APIENTRY * PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
00541     typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v);
00542     typedef void (APIENTRY * PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
00543     typedef void (APIENTRY * PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v);
00544     typedef void (APIENTRY * PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00545     typedef void (APIENTRY * PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v);
00546     typedef void (APIENTRY * PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00547     typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v);
00548     typedef void (APIENTRY * PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
00549     typedef void (APIENTRY * PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v);
00550     typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v);
00551     typedef void (APIENTRY * PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
00552     typedef void (APIENTRY * PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
00553     typedef void (APIENTRY * PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
00554     typedef void (APIENTRY * PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
00555     typedef void (APIENTRY * PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
00556     typedef void (APIENTRY * PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
00557     typedef void (APIENTRY * PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
00558     typedef void (APIENTRY * PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
00559     typedef void (APIENTRY * PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
00560     typedef void (APIENTRY * PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v);
00561     typedef void (APIENTRY * PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v);
00562     typedef void (APIENTRY * PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v);
00563     typedef void (APIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v);
00564 
00565     extern PFNGLAREPROGRAMSRESIDENTNVPROC glAreProgramsResidentNV ;
00566     extern PFNGLBINDPROGRAMNVPROC glBindProgramNV ;
00567     extern PFNGLDELETEPROGRAMSNVPROC glDeleteProgramsNV ;
00568     extern PFNGLEXECUTEPROGRAMNVPROC glExecuteProgramNV ;
00569     extern PFNGLGENPROGRAMSNVPROC glGenProgramsNV ;
00570     extern PFNGLGETPROGRAMPARAMETERDVNVPROC glGetProgramParameterdvNV ;
00571     extern PFNGLGETPROGRAMPARAMETERFVNVPROC glGetProgramParameterfvNV ;
00572     extern PFNGLGETPROGRAMIVNVPROC glGetProgramivNV ;
00573     extern PFNGLGETPROGRAMSTRINGNVPROC glGetProgramStringNV ;
00574     extern PFNGLGETTRACKMATRIXIVNVPROC glGetTrackMatrixivNV ;
00575     extern PFNGLGETVERTEXATTRIBDVNVPROC glGetVertexAttribdvNV ;
00576     extern PFNGLGETVERTEXATTRIBFVNVPROC glGetVertexAttribfvNV ;
00577     extern PFNGLGETVERTEXATTRIBIVNVPROC glGetVertexAttribivNV ;
00578     extern PFNGLGETVERTEXATTRIBPOINTERVNVPROC glGetVertexAttribPointervNV ;
00579     extern PFNGLISPROGRAMNVPROC glIsProgramNV ;
00580     extern PFNGLLOADPROGRAMNVPROC glLoadProgramNV ;
00581     extern PFNGLPROGRAMPARAMETER4DNVPROC glProgramParameter4dNV ;
00582     extern PFNGLPROGRAMPARAMETER4DVNVPROC glProgramParameter4dvNV ;
00583     extern PFNGLPROGRAMPARAMETER4FNVPROC glProgramParameter4fNV ;
00584     extern PFNGLPROGRAMPARAMETER4FVNVPROC glProgramParameter4fvNV ;
00585     extern PFNGLPROGRAMPARAMETERS4DVNVPROC glProgramParameters4dvNV ;
00586     extern PFNGLPROGRAMPARAMETERS4FVNVPROC glProgramParameters4fvNV ;
00587     extern PFNGLREQUESTRESIDENTPROGRAMSNVPROC glRequestResidentProgramsNV ;
00588     extern PFNGLTRACKMATRIXNVPROC glTrackMatrixNV ;
00589     extern PFNGLVERTEXATTRIBPOINTERNVPROC glVertexAttribPointerNV ;
00590     extern PFNGLVERTEXATTRIB1DNVPROC glVertexAttrib1dNV ;
00591     extern PFNGLVERTEXATTRIB1DVNVPROC glVertexAttrib1dvNV ;
00592     extern PFNGLVERTEXATTRIB1FNVPROC glVertexAttrib1fNV ;
00593     extern PFNGLVERTEXATTRIB1FVNVPROC glVertexAttrib1fvNV ;
00594     extern PFNGLVERTEXATTRIB1SNVPROC glVertexAttrib1sNV ;
00595     extern PFNGLVERTEXATTRIB1SVNVPROC glVertexAttrib1svNV ;
00596     extern PFNGLVERTEXATTRIB2DNVPROC glVertexAttrib2dNV ;
00597     extern PFNGLVERTEXATTRIB2DVNVPROC glVertexAttrib2dvNV ;
00598     extern PFNGLVERTEXATTRIB2FNVPROC glVertexAttrib2fNV ;
00599     extern PFNGLVERTEXATTRIB2FVNVPROC glVertexAttrib2fvNV ;
00600     extern PFNGLVERTEXATTRIB2SNVPROC glVertexAttrib2sNV ;
00601     extern PFNGLVERTEXATTRIB2SVNVPROC glVertexAttrib2svNV ;
00602     extern PFNGLVERTEXATTRIB3DNVPROC glVertexAttrib3dNV ;
00603     extern PFNGLVERTEXATTRIB3DVNVPROC glVertexAttrib3dvNV ;
00604     extern PFNGLVERTEXATTRIB3FNVPROC glVertexAttrib3fNV ;
00605     extern PFNGLVERTEXATTRIB3FVNVPROC glVertexAttrib3fvNV ;
00606     extern PFNGLVERTEXATTRIB3SNVPROC glVertexAttrib3sNV ;
00607     extern PFNGLVERTEXATTRIB3SVNVPROC glVertexAttrib3svNV ;
00608     extern PFNGLVERTEXATTRIB4DNVPROC glVertexAttrib4dNV ;
00609     extern PFNGLVERTEXATTRIB4DVNVPROC glVertexAttrib4dvNV ;
00610     extern PFNGLVERTEXATTRIB4FNVPROC glVertexAttrib4fNV ;
00611     extern PFNGLVERTEXATTRIB4FVNVPROC glVertexAttrib4fvNV ;
00612     extern PFNGLVERTEXATTRIB4SNVPROC glVertexAttrib4sNV ;
00613     extern PFNGLVERTEXATTRIB4SVNVPROC glVertexAttrib4svNV ;
00614     extern PFNGLVERTEXATTRIB4UBVNVPROC glVertexAttrib4ubvNV ;
00615     extern PFNGLVERTEXATTRIBS1DVNVPROC glVertexAttribs1dvNV ;
00616     extern PFNGLVERTEXATTRIBS1FVNVPROC glVertexAttribs1fvNV ;
00617     extern PFNGLVERTEXATTRIBS1SVNVPROC glVertexAttribs1svNV ;
00618     extern PFNGLVERTEXATTRIBS2DVNVPROC glVertexAttribs2dvNV ;
00619     extern PFNGLVERTEXATTRIBS2FVNVPROC glVertexAttribs2fvNV ;
00620     extern PFNGLVERTEXATTRIBS2SVNVPROC glVertexAttribs2svNV ;
00621     extern PFNGLVERTEXATTRIBS3DVNVPROC glVertexAttribs3dvNV ;
00622     extern PFNGLVERTEXATTRIBS3FVNVPROC glVertexAttribs3fvNV ;
00623     extern PFNGLVERTEXATTRIBS3SVNVPROC glVertexAttribs3svNV ;
00624     extern PFNGLVERTEXATTRIBS4DVNVPROC glVertexAttribs4dvNV ;
00625     extern PFNGLVERTEXATTRIBS4FVNVPROC glVertexAttribs4fvNV ;
00626     extern PFNGLVERTEXATTRIBS4SVNVPROC glVertexAttribs4svNV ;
00627     extern PFNGLVERTEXATTRIBS4UBVNVPROC glVertexAttribs4ubvNV ;
00628 };
00629 
00630 
00631 /* EXT_paletted_texture defines and prototypes from <GL/gl.h> */
00632 #ifndef GL_EXT_paletted_texture
00633 #define GL_COLOR_INDEX1_EXT               0x80E2
00634 #define GL_COLOR_INDEX2_EXT               0x80E3
00635 #define GL_COLOR_INDEX4_EXT               0x80E4
00636 #define GL_COLOR_INDEX8_EXT               0x80E5
00637 #define GL_COLOR_INDEX12_EXT              0x80E6
00638 #define GL_COLOR_INDEX16_EXT              0x80E7
00639 #endif
00640 
00641 namespace glx
00642 {
00643     typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table);
00644     extern PFNGLCOLORTABLEEXTPROC glColorTableEXT;
00645 };
00646 
00647 /* EXT_blend_minmax defines and prototypes from <GL/gl.h> */
00648 #ifndef GL_EXT_blend_minmax
00649 #define GL_FUNC_ADD_EXT                  0x8006
00650 #define GL_MIN_EXT                       0x8007
00651 #define GL_MAX_EXT                       0x8008
00652 
00653 #endif
00654 
00655 namespace glx
00656 {
00657     typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
00658     extern PFNGLBLENDEQUATIONEXTPROC glBlendEquationEXT;
00659 };
00660 
00661 
00662 /* EXT_blend_subtract defines and prototypes from <GL/gl.h> */
00663 #ifndef GL_EXT_blend_subtract
00664 #define GL_FUNC_SUBTRACT_EXT             0x800A
00665 #define GL_FUNC_REVERSE_SUBTRACT_EXT     0x800B
00666 #endif
00667 
00668 /* WGL_EXT_swap_control defines and prototypes from <GL/gl.h> */
00669 namespace glx
00670 {
00671     typedef int (APIENTRY * PFNWGLSWAPINTERVALEXTPROC) (int);
00672     typedef int (APIENTRY * PFNWGLGETSWAPINTERVALEXTPROC) (void);
00673     extern PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT;
00674     extern PFNWGLGETSWAPINTERVALEXTPROC wglGetSwapIntervalEXT;
00675 };
00676 
00677 /* OpenGL 1.2 defines and prototypes from <GL/gl.h> */
00678 #ifndef GL_CLAMP_TO_EDGE
00679 #define GL_CLAMP_TO_EDGE                    0x812F
00680 #endif
00681 
00682 
00683 /* EXT_texture_env_dot3 */
00684 #ifndef GL_EXT_texture_env_dot3
00685 #define GL_EXT_texture_env_dot3
00686 #define GL_DOT3_RGB_EXT                     0x8740
00687 #define GL_DOT3_RGBA_EXT                    0x8741
00688 #endif
00689 
00690 
00691 #ifndef GL_ARB_texture_env_dot3
00692 #define GL_ARB_texture_env_dot3
00693 #define GL_DOT3_RGB_ARB                   0x86AE
00694 #define GL_DOT3_RGBA_ARB                  0x86AF
00695 #endif
00696 
00697 
00698 /* ARB_vertex_program */
00699 #ifndef GL_ARB_vertex_program
00700 #define GL_ARB_vertex_program 1
00701 #define GL_VERTEX_PROGRAM_ARB                            0x8620
00702 #define GL_VERTEX_PROGRAM_POINT_SIZE_ARB                 0x8642
00703 #define GL_VERTEX_PROGRAM_TWO_SIDE_ARB                   0x8643
00704 #define GL_PROGRAM_FORMAT_ASCII_ARB                      0x8875
00705 #define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB               0x8622
00706 #define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB                  0x8623
00707 #define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB                0x8624
00708 #define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB                  0x8625
00709 #define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB            0x886A
00710 #define GL_CURRENT_VERTEX_ATTRIB_ARB                     0x8626
00711 #define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB               0x8645
00712 #define GL_PROGRAM_LENGTH_ARB                            0x8627
00713 #define GL_PROGRAM_FORMAT_ARB                            0x8876
00714 #define GL_PROGRAM_NAME_ARB                              0x8677
00715 #define GL_PROGRAM_INSTRUCTIONS_ARB                      0x88A0
00716 #define GL_MAX_PROGRAM_INSTRUCTIONS_ARB                  0x88A1
00717 #define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB               0x88A2
00718 #define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB           0x88A3
00719 #define GL_PROGRAM_TEMPORARIES_ARB                       0x88A4
00720 #define GL_MAX_PROGRAM_TEMPORARIES_ARB                   0x88A5
00721 #define GL_PROGRAM_NATIVE_TEMPORARIES_ARB                0x88A6
00722 #define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB            0x88A7
00723 #define GL_PROGRAM_PARAMETERS_ARB                        0x88A8
00724 #define GL_MAX_PROGRAM_PARAMETERS_ARB                    0x88A9
00725 #define GL_PROGRAM_NATIVE_PARAMETERS_ARB                 0x88AA
00726 #define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB             0x88AB
00727 #define GL_PROGRAM_ATTRIBS_ARB                           0x88AC
00728 #define GL_MAX_PROGRAM_ATTRIBS_ARB                       0x88AD
00729 #define GL_PROGRAM_NATIVE_ATTRIBS_ARB                    0x88AE
00730 #define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB                0x88AF
00731 #define GL_PROGRAM_ADDRESS_REGISTERS_ARB                 0x88B0
00732 #define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB             0x88B1
00733 #define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB          0x88B2
00734 #define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB      0x88B3
00735 #define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB              0x88B4
00736 #define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB                0x88B5
00737 #define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB               0x88B6
00738 #define GL_PROGRAM_STRING_ARB                            0x8628
00739 #define GL_PROGRAM_ERROR_POSITION_ARB                    0x864B
00740 #define GL_CURRENT_MATRIX_ARB                            0x8641
00741 #define GL_TRANSPOSE_CURRENT_MATRIX_ARB                  0x88B7
00742 #define GL_CURRENT_MATRIX_STACK_DEPTH_ARB                0x8640
00743 #define GL_MAX_VERTEX_ATTRIBS_ARB                        0x8869
00744 #define GL_MAX_PROGRAM_MATRICES_ARB                      0x862F
00745 #define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB            0x862E
00746 #define GL_PROGRAM_ERROR_STRING_ARB                      0x8874
00747 
00748 #define GL_MATRIX0_ARB                                   0x88C0
00749 #define GL_MATRIX1_ARB                                   0x88C1
00750 #define GL_MATRIX2_ARB                                   0x88C2
00751 #define GL_MATRIX3_ARB                                   0x88C3
00752 #define GL_MATRIX4_ARB                                   0x88C4
00753 #define GL_MATRIX5_ARB                                   0x88C5
00754 #define GL_MATRIX6_ARB                                   0x88C6
00755 #define GL_MATRIX7_ARB                                   0x88C7
00756 #define GL_MATRIX8_ARB                                   0x88C8
00757 #define GL_MATRIX9_ARB                                   0x88C9
00758 #define GL_MATRIX10_ARB                                  0x88CA
00759 #define GL_MATRIX11_ARB                                  0x88CB
00760 #define GL_MATRIX12_ARB                                  0x88CC
00761 #define GL_MATRIX13_ARB                                  0x88CD
00762 #define GL_MATRIX14_ARB                                  0x88CE
00763 #define GL_MATRIX15_ARB                                  0x88CF
00764 #define GL_MATRIX16_ARB                                  0x88D0
00765 #define GL_MATRIX17_ARB                                  0x88D1
00766 #define GL_MATRIX18_ARB                                  0x88D2
00767 #define GL_MATRIX19_ARB                                  0x88D3
00768 #define GL_MATRIX20_ARB                                  0x88D4
00769 #define GL_MATRIX21_ARB                                  0x88D5
00770 #define GL_MATRIX22_ARB                                  0x88D6
00771 #define GL_MATRIX23_ARB                                  0x88D7
00772 #define GL_MATRIX24_ARB                                  0x88D8
00773 #define GL_MATRIX25_ARB                                  0x88D9
00774 #define GL_MATRIX26_ARB                                  0x88DA
00775 #define GL_MATRIX27_ARB                                  0x88DB
00776 #define GL_MATRIX28_ARB                                  0x88DC
00777 #define GL_MATRIX29_ARB                                  0x88DD
00778 #define GL_MATRIX30_ARB                                  0x88DE
00779 #define GL_MATRIX31_ARB                                  0x88DF
00780 #endif /* GL_ARB_vertex_program */
00781 
00782 namespace glx
00783 {
00784     typedef void (APIENTRY * PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x);
00785     typedef void (APIENTRY * PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x);
00786     typedef void (APIENTRY * PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x);
00787     typedef void (APIENTRY * PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y);
00788     typedef void (APIENTRY * PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y);
00789     typedef void (APIENTRY * PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y);
00790     typedef void (APIENTRY * PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z);
00791     typedef void (APIENTRY * PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z);
00792     typedef void (APIENTRY * PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z);
00793     typedef void (APIENTRY * PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
00794     typedef void (APIENTRY * PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00795     typedef void (APIENTRY * PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00796     typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
00797     typedef void (APIENTRY * PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v);
00798     typedef void (APIENTRY * PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v);
00799     typedef void (APIENTRY * PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v);
00800     typedef void (APIENTRY * PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v);
00801     typedef void (APIENTRY * PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v);
00802     typedef void (APIENTRY * PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v);
00803     typedef void (APIENTRY * PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v);
00804     typedef void (APIENTRY * PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v);
00805     typedef void (APIENTRY * PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v);
00806     typedef void (APIENTRY * PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v);
00807     typedef void (APIENTRY * PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v);
00808     typedef void (APIENTRY * PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v);
00809     typedef void (APIENTRY * PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v);
00810     typedef void (APIENTRY * PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v);
00811     typedef void (APIENTRY * PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v);
00812     typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v);
00813     typedef void (APIENTRY * PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v);
00814     typedef void (APIENTRY * PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v);
00815     typedef void (APIENTRY * PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v);
00816     typedef void (APIENTRY * PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v);
00817     typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v);
00818     typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v);
00819     typedef void (APIENTRY * PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v);
00820     typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void *pointer);
00821     typedef void (APIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
00822     typedef void (APIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index);
00823     typedef void (APIENTRY * PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const void *string); 
00824     typedef void (APIENTRY * PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program);
00825     typedef void (APIENTRY * PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs);
00826     typedef void (APIENTRY * PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs);
00827     typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00828     typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
00829     typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00830     typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
00831     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00832     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params);
00833     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00834     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params);
00835     typedef void (APIENTRY * PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
00836     typedef void (APIENTRY * PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
00837     typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params);
00838     typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params);
00839     typedef void (APIENTRY * PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params);
00840     typedef void (APIENTRY * PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, void *string);
00841     typedef void (APIENTRY * PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params);
00842     typedef void (APIENTRY * PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params);
00843     typedef void (APIENTRY * PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params);
00844     typedef void (APIENTRY * PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, void **pointer);
00845     typedef GLboolean (APIENTRY * PFNGLISPROGRAMARBPROC) (GLuint program);
00846 
00847     extern PFNGLBINDPROGRAMARBPROC glBindProgramARB;
00848     extern PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB;
00849     extern PFNGLGENPROGRAMSARBPROC glGenProgramsARB;
00850     extern PFNGLISPROGRAMARBPROC glIsProgramARB;
00851 
00852     extern PFNGLVERTEXATTRIB1SARBPROC glVertexAttrib1sARB;
00853     extern PFNGLVERTEXATTRIB1FARBPROC glVertexAttrib1fARB;
00854     extern PFNGLVERTEXATTRIB1DARBPROC glVertexAttrib1dARB;
00855     extern PFNGLVERTEXATTRIB2SARBPROC glVertexAttrib2sARB;
00856     extern PFNGLVERTEXATTRIB2FARBPROC glVertexAttrib2fARB;
00857     extern PFNGLVERTEXATTRIB2DARBPROC glVertexAttrib2dARB;
00858     extern PFNGLVERTEXATTRIB3SARBPROC glVertexAttrib3sARB;
00859     extern PFNGLVERTEXATTRIB3FARBPROC glVertexAttrib3fARB;
00860     extern PFNGLVERTEXATTRIB3DARBPROC glVertexAttrib3dARB;
00861     extern PFNGLVERTEXATTRIB4SARBPROC glVertexAttrib4sARB;
00862     extern PFNGLVERTEXATTRIB4FARBPROC glVertexAttrib4fARB;
00863     extern PFNGLVERTEXATTRIB4DARBPROC glVertexAttrib4dARB;
00864     extern PFNGLVERTEXATTRIB4NUBARBPROC glVertexAttrib4NubARB;
00865     extern PFNGLVERTEXATTRIB1SVARBPROC glVertexAttrib1svARB;
00866     extern PFNGLVERTEXATTRIB1FVARBPROC glVertexAttrib1fvARB;
00867     extern PFNGLVERTEXATTRIB1DVARBPROC glVertexAttrib1dvARB;
00868     extern PFNGLVERTEXATTRIB2SVARBPROC glVertexAttrib2svARB;
00869     extern PFNGLVERTEXATTRIB2FVARBPROC glVertexAttrib2fvARB;
00870     extern PFNGLVERTEXATTRIB2DVARBPROC glVertexAttrib2dvARB;
00871     extern PFNGLVERTEXATTRIB3SVARBPROC glVertexAttrib3svARB;
00872     extern PFNGLVERTEXATTRIB3FVARBPROC glVertexAttrib3fvARB;
00873     extern PFNGLVERTEXATTRIB3DVARBPROC glVertexAttrib3dvARB;
00874     extern PFNGLVERTEXATTRIB4BVARBPROC glVertexAttrib4bvARB;
00875     extern PFNGLVERTEXATTRIB4SVARBPROC glVertexAttrib4svARB;
00876     extern PFNGLVERTEXATTRIB4IVARBPROC glVertexAttrib4ivARB;
00877     extern PFNGLVERTEXATTRIB4UBVARBPROC glVertexAttrib4ubvARB;
00878     extern PFNGLVERTEXATTRIB4USVARBPROC glVertexAttrib4usvARB;
00879     extern PFNGLVERTEXATTRIB4UIVARBPROC glVertexAttrib4uivARB;
00880     extern PFNGLVERTEXATTRIB4FVARBPROC glVertexAttrib4fvARB;
00881     extern PFNGLVERTEXATTRIB4DVARBPROC glVertexAttrib4dvARB;
00882     extern PFNGLVERTEXATTRIB4NBVARBPROC glVertexAttrib4NbvARB;
00883     extern PFNGLVERTEXATTRIB4NSVARBPROC glVertexAttrib4NsvARB;
00884     extern PFNGLVERTEXATTRIB4NIVARBPROC glVertexAttrib4NivARB;
00885     extern PFNGLVERTEXATTRIB4NUBVARBPROC glVertexAttrib4NubvARB;
00886     extern PFNGLVERTEXATTRIB4NUSVARBPROC glVertexAttrib4NusvARB;
00887     extern PFNGLVERTEXATTRIB4NUIVARBPROC glVertexAttrib4NuivARB;
00888 
00889     extern PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB;
00890 
00891     extern PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB;
00892     extern PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB;
00893 
00894     extern PFNGLGETVERTEXATTRIBDVARBPROC glGetVertexAttribdvARB;
00895     extern PFNGLGETVERTEXATTRIBFVARBPROC glGetVertexAttribfvARB;
00896     extern PFNGLGETVERTEXATTRIBIVARBPROC glGetVertexAttribivARB;
00897     extern PFNGLGETVERTEXATTRIBPOINTERVARBPROC glGetVertexAttribPointervARB;
00898 
00899     extern PFNGLPROGRAMENVPARAMETER4DARBPROC glProgramEnvParameter4dARB;
00900     extern PFNGLPROGRAMENVPARAMETER4DVARBPROC glProgramEnvParameter4dvARB;
00901     extern PFNGLPROGRAMENVPARAMETER4FARBPROC glProgramEnvParameter4fARB;
00902     extern PFNGLPROGRAMENVPARAMETER4FVARBPROC glProgramEnvParameter4fvARB;
00903     extern PFNGLPROGRAMLOCALPARAMETER4DARBPROC glProgramLocalParameter4dARB;
00904     extern PFNGLPROGRAMLOCALPARAMETER4DVARBPROC glProgramLocalParameter4dvARB;
00905     extern PFNGLPROGRAMLOCALPARAMETER4FARBPROC glProgramLocalParameter4fARB;
00906     extern PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB;
00907 
00908     extern PFNGLGETPROGRAMENVPARAMETERDVARBPROC glGetProgramEnvParameterdvARB;
00909     extern PFNGLGETPROGRAMENVPARAMETERFVARBPROC glGetProgramEnvParameterfvARB;
00910     extern PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC glGetProgramLocalParameterdvARB;
00911     extern PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC glGetProgramLocalParameterfvARB;
00912 
00913     extern PFNGLPROGRAMSTRINGARBPROC glProgramStringARB;
00914     extern PFNGLGETPROGRAMSTRINGARBPROC glGetProgramStringARB;
00915 
00916     extern PFNGLGETPROGRAMIVARBPROC glGetProgramivARB;
00917 };
00918 
00919 
00920 /* GL_NV_fragment_program */
00921 #ifndef GL_NV_fragment_program
00922 #define GL_NV_fragment_program 1
00923 #define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868
00924 #define GL_FRAGMENT_PROGRAM_NV            0x8870
00925 #define GL_MAX_TEXTURE_COORDS_NV          0x8871
00926 #define GL_MAX_TEXTURE_IMAGE_UNITS_NV     0x8872
00927 #define GL_FRAGMENT_PROGRAM_BINDING_NV    0x8873
00928 #define GL_PROGRAM_ERROR_STRING_NV        0x8874
00929 #endif /* GL_NV_fragment_program */
00930 
00931 #ifndef GL_ARB_vertex_shader
00932 #define GL_VERTEX_SHADER_ARB              0x8B31
00933 #define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A
00934 #define GL_MAX_VARYING_FLOATS_ARB         0x8B4B
00935 #define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C
00936 #define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D
00937 #define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB   0x8B89
00938 #define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A
00939 #endif
00940 
00941 namespace glx
00942 {
00943     typedef void (APIENTRY* PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name);
00944     typedef void (APIENTRY* PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
00945     typedef GLint (APIENTRY* PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
00946 
00947     extern PFNGLBINDATTRIBLOCATIONARBPROC glBindAttribLocationARB;
00948     extern PFNGLGETACTIVEATTRIBARBPROC glGetActiveAttribARB;
00949     extern PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB;
00950 };
00951 
00952 
00953 #ifndef GL_ARB_point_sprite
00954 #define GL_ARB_point_sprite 1
00955 #define GL_POINT_SPRITE_ARB               0x8861
00956 #define GL_COORD_REPLACE_ARB              0x8862
00957 #endif
00958 
00959 
00960 #ifndef GL_ARB_fragment_shader
00961 #define GL_ARB_fragment_shader 1
00962 #define GL_FRAGMENT_SHADER_ARB            0x8B30
00963 #define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49
00964 #endif
00965 
00966 #ifndef GL_ARB_shading_language_100
00967 #define GL_ARB_shading_language_100 1
00968 #endif
00969 
00970 namespace glx
00971 {
00972     typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)    (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00973     typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)    (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00974     typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)   (GLuint id, GLsizei len, const GLubyte *name, const GLfloat v[]);
00975     typedef void (APIENTRY * PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)   (GLuint id, GLsizei len, const GLubyte *name, const GLdouble v[]);
00976     typedef void (APIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
00977     typedef void (APIENTRY * PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
00978 
00979     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FNVPROC)    (GLenum target, GLuint id, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00980     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DNVPROC)    (GLenum target, GLuint id, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
00981     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVNVPROC)   (GLenum target, GLuint id, const GLfloat v[]);
00982     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4DVNVPROC)   (GLenum target, GLuint id, const GLdouble v[]);
00983     typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERFVNVPROC) (GLenum target, GLuint id, GLfloat *params);
00984     typedef void (APIENTRY * PFNGLGETPROGRAMLOCALPARAMETERDVNVPROC) (GLenum target, GLuint id, GLdouble *params);
00985 
00986 
00987     extern PFNGLPROGRAMNAMEDPARAMETER4FNVPROC glProgramNamedParameter4fNV;
00988     extern PFNGLPROGRAMNAMEDPARAMETER4DNVPROC glProgramNamedParameter4dNV;
00989     extern PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC glProgramNamedParameter4fvNV;
00990     extern PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC glProgramNamedParameter4dvNV;
00991     extern PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC glGetProgramNamedParameterfvNV;
00992     extern PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC glGetProgramNamedParameterdvNV;
00993 
00994     extern PFNGLPROGRAMLOCALPARAMETER4FNVPROC glProgramLocalParameter4fNV;
00995     extern PFNGLPROGRAMLOCALPARAMETER4DNVPROC glProgramLocalParameter4dNV;
00996     extern PFNGLPROGRAMLOCALPARAMETER4FVNVPROC glProgramLocalParameter4fvNV;
00997     extern PFNGLPROGRAMLOCALPARAMETER4DVNVPROC glProgramLocalParameter4dvNV;
00998     extern PFNGLGETPROGRAMLOCALPARAMETERFVNVPROC glGetProgramLocalParameterfvNV;
00999     extern PFNGLGETPROGRAMLOCALPARAMETERDVNVPROC glGetProgramLocalParameterdvNV;
01000 };
01001 
01002 
01003 #ifndef GL_ARB_fragment_program
01004 #define GL_ARB_fragment_program 1
01005 // All ARB_fragment_program entry points are shared with ARB_vertex_program.
01006 
01007 #define GL_FRAGMENT_PROGRAM_ARB           0x8804
01008 #define GL_PROGRAM_ALU_INSTRUCTIONS_ARB   0x8805
01009 #define GL_PROGRAM_TEX_INSTRUCTIONS_ARB   0x8806
01010 #define GL_PROGRAM_TEX_INDIRECTIONS_ARB   0x8807
01011 #define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808
01012 #define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809
01013 #define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A
01014 #define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B
01015 #define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C
01016 #define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D
01017 #define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E
01018 #define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F
01019 #define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810
01020 #define GL_MAX_TEXTURE_COORDS_ARB         0x8871
01021 #define GL_MAX_TEXTURE_IMAGE_UNITS_ARB    0x8872
01022 #endif
01023 
01024 
01025 #ifndef GL_ARB_shader_objects
01026 #define GL_ARB_shader_objects 1
01027 #define GL_PROGRAM_OBJECT_ARB             0x8B40
01028 #define GL_SHADER_OBJECT_ARB              0x8B48
01029 #define GL_OBJECT_TYPE_ARB                0x8B4E
01030 #define GL_OBJECT_SUBTYPE_ARB             0x8B4F
01031 #define GL_FLOAT_VEC2_ARB                 0x8B50
01032 #define GL_FLOAT_VEC3_ARB                 0x8B51
01033 #define GL_FLOAT_VEC4_ARB                 0x8B52
01034 #define GL_INT_VEC2_ARB                   0x8B53
01035 #define GL_INT_VEC3_ARB                   0x8B54
01036 #define GL_INT_VEC4_ARB                   0x8B55
01037 #define GL_BOOL_ARB                       0x8B56
01038 #define GL_BOOL_VEC2_ARB                  0x8B57
01039 #define GL_BOOL_VEC3_ARB                  0x8B58
01040 #define GL_BOOL_VEC4_ARB                  0x8B59
01041 #define GL_FLOAT_MAT2_ARB                 0x8B5A
01042 #define GL_FLOAT_MAT3_ARB                 0x8B5B
01043 #define GL_FLOAT_MAT4_ARB                 0x8B5C
01044 #define GL_OBJECT_DELETE_STATUS_ARB       0x8B80
01045 #define GL_OBJECT_COMPILE_STATUS_ARB      0x8B81
01046 #define GL_OBJECT_LINK_STATUS_ARB         0x8B82
01047 #define GL_OBJECT_VALIDATE_STATUS_ARB     0x8B83
01048 #define GL_OBJECT_INFO_LOG_LENGTH_ARB     0x8B84
01049 #define GL_OBJECT_ATTACHED_OBJECTS_ARB    0x8B85
01050 #define GL_OBJECT_ACTIVE_UNIFORMS_ARB     0x8B86
01051 #define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87
01052 #define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88
01053 
01054 typedef char GLcharARB;                // native character
01055 typedef unsigned int GLhandleARB;      // shader object handle
01056 #endif
01057 
01058 
01059 namespace glx
01060 {
01061     typedef void (APIENTRY* PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj);
01062     typedef GLhandleARB (APIENTRY* PFNGLGETHANDLEARBPROC) (GLenum pname);
01063     typedef void (APIENTRY* PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj);
01064     typedef GLhandleARB (APIENTRY* PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType);
01065     typedef void (APIENTRY* PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length);
01066     typedef void (APIENTRY* PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj);
01067     typedef GLhandleARB (APIENTRY* PFNGLCREATEPROGRAMOBJECTARBPROC) (void);
01068     typedef void (APIENTRY* PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj);
01069     typedef void (APIENTRY* PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj);
01070     typedef void (APIENTRY* PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj);
01071     typedef void (APIENTRY* PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj);
01072     typedef void (APIENTRY* PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0);
01073     typedef void (APIENTRY* PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1);
01074     typedef void (APIENTRY* PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
01075     typedef void (APIENTRY* PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
01076     typedef void (APIENTRY* PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0);
01077     typedef void (APIENTRY* PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1);
01078     typedef void (APIENTRY* PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2);
01079     typedef void (APIENTRY* PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
01080     typedef void (APIENTRY* PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
01081     typedef void (APIENTRY* PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
01082     typedef void (APIENTRY* PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
01083     typedef void (APIENTRY* PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value);
01084     typedef void (APIENTRY* PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value);
01085     typedef void (APIENTRY* PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value);
01086     typedef void (APIENTRY* PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value);
01087     typedef void (APIENTRY* PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value);
01088     typedef void (APIENTRY* PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
01089     typedef void (APIENTRY* PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
01090     typedef void (APIENTRY* PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
01091     typedef void (APIENTRY* PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params);
01092     typedef void (APIENTRY* PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params);
01093     typedef void (APIENTRY* PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
01094     typedef void (APIENTRY* PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
01095     typedef GLint (APIENTRY* PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name);
01096     typedef void (APIENTRY* PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
01097     typedef void (APIENTRY* PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params);
01098     typedef void (APIENTRY* PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params);
01099     typedef void (APIENTRY* PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
01100 
01101     extern PFNGLDELETEOBJECTARBPROC glDeleteObjectARB;
01102     extern PFNGLGETHANDLEARBPROC glGetHandleARB;
01103     extern PFNGLDETACHOBJECTARBPROC glDetachObjectARB;
01104     extern PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB;
01105     extern PFNGLSHADERSOURCEARBPROC glShaderSourceARB;
01106     extern PFNGLCOMPILESHADERARBPROC glCompileShaderARB;
01107     extern PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB;
01108     extern PFNGLATTACHOBJECTARBPROC glAttachObjectARB;
01109     extern PFNGLLINKPROGRAMARBPROC glLinkProgramARB;
01110     extern PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB;
01111     extern PFNGLVALIDATEPROGRAMARBPROC glValidateProgramARB;
01112     extern PFNGLUNIFORM1FARBPROC glUniform1fARB;
01113     extern PFNGLUNIFORM2FARBPROC glUniform2fARB;
01114     extern PFNGLUNIFORM3FARBPROC glUniform3fARB;
01115     extern PFNGLUNIFORM4FARBPROC glUniform4fARB;
01116     extern PFNGLUNIFORM1IARBPROC glUniform1iARB;
01117     extern PFNGLUNIFORM2IARBPROC glUniform2iARB;
01118     extern PFNGLUNIFORM3IARBPROC glUniform3iARB;
01119     extern PFNGLUNIFORM4IARBPROC glUniform4iARB;
01120     extern PFNGLUNIFORM1FVARBPROC glUniform1fvARB;
01121     extern PFNGLUNIFORM2FVARBPROC glUniform2fvARB;
01122     extern PFNGLUNIFORM3FVARBPROC glUniform3fvARB;
01123     extern PFNGLUNIFORM4FVARBPROC glUniform4fvARB;
01124     extern PFNGLUNIFORM1IVARBPROC glUniform1ivARB;
01125     extern PFNGLUNIFORM2IVARBPROC glUniform2ivARB;
01126     extern PFNGLUNIFORM3IVARBPROC glUniform3ivARB;
01127     extern PFNGLUNIFORM4IVARBPROC glUniform4ivARB;
01128     extern PFNGLUNIFORMMATRIX2FVARBPROC glUniformMatrix2fvARB;
01129     extern PFNGLUNIFORMMATRIX3FVARBPROC glUniformMatrix3fvARB;
01130     extern PFNGLUNIFORMMATRIX4FVARBPROC glUniformMatrix4fvARB;
01131     extern PFNGLGETOBJECTPARAMETERFVARBPROC glGetObjectParameterfvARB;
01132     extern PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB;
01133     extern PFNGLGETINFOLOGARBPROC glGetInfoLogARB;
01134     extern PFNGLGETATTACHEDOBJECTSARBPROC glGetAttachedObjectsARB;
01135     extern PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB;
01136     extern PFNGLGETACTIVEUNIFORMARBPROC glGetActiveUniformARB;
01137     extern PFNGLGETUNIFORMFVARBPROC glGetUniformfvARB;
01138     extern PFNGLGETUNIFORMIVARBPROC glGetUniformivARB;
01139     extern PFNGLGETSHADERSOURCEARBPROC glGetShaderSourceARB;
01140 };
01141 
01142 
01143 #ifndef GL_VERSION_1_5
01144 /* GL types for handling large vertex buffer objects */
01145 typedef ptrdiff_t GLintptr;
01146 typedef ptrdiff_t GLsizeiptr;
01147 #endif
01148 
01149 #ifndef GL_ARB_vertex_buffer_object
01150 /* GL types for handling large vertex buffer objects */
01151 typedef ptrdiff_t GLintptrARB;
01152 typedef ptrdiff_t GLsizeiptrARB;
01153 #endif
01154 
01155 #ifndef GL_ARB_vertex_buffer_object
01156 #define GL_BUFFER_SIZE_ARB                0x8764
01157 #define GL_BUFFER_USAGE_ARB               0x8765
01158 #define GL_ARRAY_BUFFER_ARB               0x8892
01159 #define GL_ELEMENT_ARRAY_BUFFER_ARB       0x8893
01160 #define GL_ARRAY_BUFFER_BINDING_ARB       0x8894
01161 #define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895
01162 #define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896
01163 #define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897
01164 #define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898
01165 #define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899
01166 #define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A
01167 #define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B
01168 #define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C
01169 #define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D
01170 #define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E
01171 #define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F
01172 #define GL_READ_ONLY_ARB                  0x88B8
01173 #define GL_WRITE_ONLY_ARB                 0x88B9
01174 #define GL_READ_WRITE_ARB                 0x88BA
01175 #define GL_BUFFER_ACCESS_ARB              0x88BB
01176 #define GL_BUFFER_MAPPED_ARB              0x88BC
01177 #define GL_BUFFER_MAP_POINTER_ARB         0x88BD
01178 #define GL_STREAM_DRAW_ARB                0x88E0
01179 #define GL_STREAM_READ_ARB                0x88E1
01180 #define GL_STREAM_COPY_ARB                0x88E2
01181 #define GL_STATIC_DRAW_ARB                0x88E4
01182 #define GL_STATIC_READ_ARB                0x88E5
01183 #define GL_STATIC_COPY_ARB                0x88E6
01184 #define GL_DYNAMIC_DRAW_ARB               0x88E8
01185 #define GL_DYNAMIC_READ_ARB               0x88E9
01186 #define GL_DYNAMIC_COPY_ARB               0x88EA
01187 #endif
01188 
01189 namespace glx
01190 {
01191     typedef void (APIENTRY* PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer);
01192     typedef void (APIENTRY* PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers);
01193     typedef void (APIENTRY* PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers);
01194     typedef GLboolean (APIENTRY* PFNGLISBUFFERARBPROC) (GLuint buffer);
01195     typedef void (APIENTRY* PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
01196     typedef void (APIENTRY* PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
01197     typedef void (APIENTRY* PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
01198     typedef GLvoid* (APIENTRY* PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access);
01199     typedef GLboolean (APIENTRY* PFNGLUNMAPBUFFERARBPROC) (GLenum target);
01200     typedef void (APIENTRY* PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params);
01201     typedef void (APIENTRY* PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params);
01202 
01203     extern PFNGLBINDBUFFERARBPROC glBindBufferARB;
01204     extern PFNGLDELETEBUFFERSARBPROC glDeleteBuffersARB;
01205     extern PFNGLGENBUFFERSARBPROC glGenBuffersARB;
01206     extern PFNGLISBUFFERARBPROC glIsBufferARB;
01207     extern PFNGLBUFFERDATAARBPROC glBufferDataARB;
01208     extern PFNGLBUFFERSUBDATAARBPROC glBufferSubDataARB;
01209     extern PFNGLGETBUFFERSUBDATAARBPROC glGetBufferSubDataARB;
01210     extern PFNGLMAPBUFFERARBPROC glMapBufferARB;
01211     extern PFNGLUNMAPBUFFERARBPROC glUnmapBufferARB;
01212     extern PFNGLGETBUFFERPARAMETERIVARBPROC glGetBufferParameterivARB;
01213     extern PFNGLGETBUFFERPOINTERVARBPROC glGetBufferPointervARB;
01214 };
01215 
01216 
01217 extern void InitExtension(const char* ext);
01218 extern bool ExtensionSupported(const char *ext);
01219 
01220 
01221 
01222 #endif // _CELENGINE_GLEXT_H_

Generated on Sat Jan 14 22:30:27 2006 for Celestia by  doxygen 1.4.1