ATIext.h

//-
// ==========================================================================
// Copyright (C) 1995 - 2006 Autodesk, Inc. and/or its licensors.  All 
// rights reserved.
//
// The coded instructions, statements, computer programs, and/or related 
// material (collectively the "Data") in these files contain unpublished 
// information proprietary to Autodesk, Inc. ("Autodesk") and/or its 
// licensors, which is protected by U.S. and Canadian federal copyright 
// law and by international treaties.
//
// The Data is provided for use exclusively by You. You have the right 
// to use, modify, and incorporate this Data into other products for 
// purposes authorized by the Autodesk software license agreement, 
// without fee.
//
// The copyright notices in the Software and this entire statement, 
// including the above license grant, this restriction and the 
// following disclaimer, must be included in all copies of the 
// Software, in whole or in part, and all derivative works of 
// the Software, unless such copies or derivative works are solely 
// in the form of machine-executable object code generated by a 
// source language processor.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. 
// AUTODESK DOES NOT MAKE AND HEREBY DISCLAIMS ANY EXPRESS OR IMPLIED 
// WARRANTIES INCLUDING, BUT NOT LIMITED TO, THE WARRANTIES OF 
// NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR 
// PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE, OR 
// TRADE PRACTICE. IN NO EVENT WILL AUTODESK AND/OR ITS LICENSORS 
// BE LIABLE FOR ANY LOST REVENUES, DATA, OR PROFITS, OR SPECIAL, 
// DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES, EVEN IF AUTODESK 
// AND/OR ITS LICENSORS HAS BEEN ADVISED OF THE POSSIBILITY 
// OR PROBABILITY OF SUCH DAMAGES.
//
// ==========================================================================
//+

#ifndef _ATIext
#define _ATIext

#ifdef __cplusplus
extern "C" {
#endif

//
// Description:
//              ATI extensions header file
//
//

#ifndef APIENTRY
#       ifdef _WIN32
#               define WIN32_LEAN_AND_MEAN 1
#               include <windows.h>
#       else
#               define APIENTRY
#       endif
#endif

#if defined(OSMac_MachO_)
#include <OpenGL/gl.h>
#else
#include <GL/gl.h>
#endif

#ifndef GL_CLAMP_TO_EDGE_EXT
        #define GL_CLAMP_TO_EDGE_EXT                            0x812F
#endif

//
// ATI PN triangles extension
//
#ifndef GL_ATI_pn_triangles
        #define GL_ATI_pn_triangles 1

        #define GL_PN_TRIANGLES_ATI                             0x87F0
        #define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI       0x87F1
        #define GL_PN_TRIANGLES_POINT_MODE_ATI                  0x87F2
        #define GL_PN_TRIANGLES_NORMAL_MODE_ATI                 0x87F3
        #define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI           0x87F4
        #define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI           0x87F5
        #define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI            0x87F6
        #define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI          0x87F7
        #define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI               0x87F8

#ifdef GL_GLEXT_PROTOTYPES
#error blah
        extern void glPNTrianglesiATI( GLenum pname, GLint param );
        extern void glPNTrianglesfATI( GLenum pname, GLfloat param );
#else
        #define _BIND_PN_EXTENSIONS_REQUIRED
        typedef void (APIENTRY *PFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param);
        typedef void (APIENTRY *PFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param);
        extern PFNGLPNTRIANGLESIATIPROC glPNTrianglesiATI;
        extern PFNGLPNTRIANGLESFATIPROC glPNTrianglesfATI;
#endif

#endif // GL_ATI_pn_triangles

//
// Programmable vertex shading extension
//
#ifndef GL_EXT_vertex_shader
        #define GL_EXT_vertex_shader 1
        #define GL_VERTEX_SHADER_EXT                                                            0x8780
        #define GL_VERTEX_SHADER_BINDING_EXT                                            0x8781
        #define GL_OP_INDEX_EXT                                                                         0x8782
        #define GL_OP_NEGATE_EXT                                                                        0x8783
        #define GL_OP_DOT3_EXT                                                                          0x8784
        #define GL_OP_DOT4_EXT                                                                          0x8785
        #define GL_OP_MUL_EXT                                                                           0x8786
        #define GL_OP_ADD_EXT                                                                           0x8787
        #define GL_OP_MADD_EXT                                                                          0x8788
        #define GL_OP_FRAC_EXT                                                                          0x8789
        #define GL_OP_MAX_EXT                                                                           0x878A
        #define GL_OP_MIN_EXT                                                                           0x878B
        #define GL_OP_SET_GE_EXT                                                                        0x878C
        #define GL_OP_SET_LT_EXT                                                                        0x878D
        #define GL_OP_CLAMP_EXT                                                                         0x878E
        #define GL_OP_FLOOR_EXT                                                                         0x878F
        #define GL_OP_ROUND_EXT                                                                         0x8790
        #define GL_OP_EXP_BASE_2_EXT                                                            0x8791
        #define GL_OP_LOG_BASE_2_EXT                                                            0x8792
        #define GL_OP_POWER_EXT                                                                         0x8793
        #define GL_OP_RECIP_EXT                                                                         0x8794
        #define GL_OP_RECIP_SQRT_EXT                                                            0x8795
        #define GL_OP_SUB_EXT                                                                           0x8796
        #define GL_OP_CROSS_PRODUCT_EXT                                                         0x8797
        #define GL_OP_MULTIPLY_MATRIX_EXT                                                       0x8798
        #define GL_OP_MOV_EXT                                                                           0x8799
        #define GL_OUTPUT_VERTEX_EXT                                                            0x879A
        #define GL_OUTPUT_COLOR0_EXT                                                            0x879B
        #define GL_OUTPUT_COLOR1_EXT                                                            0x879C
        #define GL_OUTPUT_TEXTURE_COORD0_EXT                                            0x879D
        #define GL_OUTPUT_TEXTURE_COORD1_EXT                                            0x879E
        #define GL_OUTPUT_TEXTURE_COORD2_EXT                                            0x879F
        #define GL_OUTPUT_TEXTURE_COORD3_EXT                                            0x87A0
        #define GL_OUTPUT_TEXTURE_COORD4_EXT                                            0x87A1
        #define GL_OUTPUT_TEXTURE_COORD5_EXT                                            0x87A2
        #define GL_OUTPUT_TEXTURE_COORD6_EXT                                            0x87A3
        #define GL_OUTPUT_TEXTURE_COORD7_EXT                                            0x87A4
        #define GL_OUTPUT_TEXTURE_COORD8_EXT                                            0x87A5
        #define GL_OUTPUT_TEXTURE_COORD9_EXT                                            0x87A6
        #define GL_OUTPUT_TEXTURE_COORD10_EXT                                           0x87A7
        #define GL_OUTPUT_TEXTURE_COORD11_EXT                                           0x87A8
        #define GL_OUTPUT_TEXTURE_COORD12_EXT                                           0x87A9
        #define GL_OUTPUT_TEXTURE_COORD13_EXT                                           0x87AA
        #define GL_OUTPUT_TEXTURE_COORD14_EXT                                           0x87AB
        #define GL_OUTPUT_TEXTURE_COORD15_EXT                                           0x87AC
        #define GL_OUTPUT_TEXTURE_COORD16_EXT                                           0x87AD
        #define GL_OUTPUT_TEXTURE_COORD17_EXT                                           0x87AE
        #define GL_OUTPUT_TEXTURE_COORD18_EXT                                           0x87AF
        #define GL_OUTPUT_TEXTURE_COORD19_EXT                                           0x87B0
        #define GL_OUTPUT_TEXTURE_COORD20_EXT                                           0x87B1
        #define GL_OUTPUT_TEXTURE_COORD21_EXT                                           0x87B2
        #define GL_OUTPUT_TEXTURE_COORD22_EXT                                           0x87B3
        #define GL_OUTPUT_TEXTURE_COORD23_EXT                                           0x87B4
        #define GL_OUTPUT_TEXTURE_COORD24_EXT                                           0x87B5
        #define GL_OUTPUT_TEXTURE_COORD25_EXT                                           0x87B6
        #define GL_OUTPUT_TEXTURE_COORD26_EXT                                           0x87B7
        #define GL_OUTPUT_TEXTURE_COORD27_EXT                                           0x87B8
        #define GL_OUTPUT_TEXTURE_COORD28_EXT                                           0x87B9
        #define GL_OUTPUT_TEXTURE_COORD29_EXT                                           0x87BA
        #define GL_OUTPUT_TEXTURE_COORD30_EXT                                           0x87BB
        #define GL_OUTPUT_TEXTURE_COORD31_EXT                                           0x87BC
        #define GL_OUTPUT_FOG_EXT                                                                       0x87BD
        #define GL_SCALAR_EXT                                                                           0x87BE
        #define GL_VECTOR_EXT                                                                           0x87BF
        #define GL_MATRIX_EXT                                                                           0x87C0
        #define GL_VARIANT_EXT                                                                          0x87C1
        #define GL_INVARIANT_EXT                                                                        0x87C2
        #define GL_LOCAL_CONSTANT_EXT                                                           0x87C3
        #define GL_LOCAL_EXT                                                                            0x87C4
        #define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT                           0x87C5
        #define GL_MAX_VERTEX_SHADER_VARIANTS_EXT                                       0x87C6
        #define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT                                     0x87C7
        #define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                        0x87C8
        #define GL_MAX_VERTEX_SHADER_LOCALS_EXT                                         0x87C9
        #define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT         0x87CA
        #define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT                     0x87CB
        #define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT           0x87CC
        #define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT      0x87CD
        #define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT                       0x87CE
        #define GL_VERTEX_SHADER_INSTRUCTIONS_EXT                                       0x87CF
        #define GL_VERTEX_SHADER_VARIANTS_EXT                                           0x87D0
        #define GL_VERTEX_SHADER_INVARIANTS_EXT                                         0x87D1
        #define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                            0x87D2
        #define GL_VERTEX_SHADER_LOCALS_EXT                                                     0x87D3
        #define GL_VERTEX_SHADER_OPTIMIZED_EXT                                          0x87D4
        #define GL_X_EXT                                                                                        0x87D5
        #define GL_Y_EXT                                                                                        0x87D6
        #define GL_Z_EXT                                                                                        0x87D7
        #define GL_W_EXT                                                                                        0x87D8
        #define GL_NEGATIVE_X_EXT                                                                       0x87D9
        #define GL_NEGATIVE_Y_EXT                                                                       0x87DA
        #define GL_NEGATIVE_Z_EXT                                                                       0x87DB
        #define GL_NEGATIVE_W_EXT                                                                       0x87DC
        #define GL_ZERO_EXT                                                                                     0x87DD
        #define GL_ONE_EXT                                                                                      0x87DE
        #define GL_NEGATIVE_ONE_EXT                                                                     0x87DF
        #define GL_NORMALIZED_RANGE_EXT                                                         0x87E0
        #define GL_FULL_RANGE_EXT                                                                       0x87E1
        #define GL_CURRENT_VERTEX_EXT                                                           0x87E2
        #define GL_MVP_MATRIX_EXT                                                                       0x87E3
        #define GL_VARIANT_VALUE_EXT                                                            0x87E4
        #define GL_VARIANT_DATATYPE_EXT                                                         0x87E5
        #define GL_VARIANT_ARRAY_STRIDE_EXT                                                     0x87E6
        #define GL_VARIANT_ARRAY_TYPE_EXT                                                       0x87E7
        #define GL_VARIANT_ARRAY_EXT                                                            0x87E8
        #define GL_VARIANT_ARRAY_POINTER_EXT                                            0x87E9
        #define GL_INVARIANT_VALUE_EXT                                                          0x87EA
        #define GL_INVARIANT_DATATYPE_EXT                                                       0x87EB
        #define GL_LOCAL_CONSTANT_VALUE_EXT                                                     0x87EC
        #define GL_LOCAL_CONSTANT_DATATYPE_EXT                                          0x87ED

#ifdef GL_GLEXT_PROTOTYPES
        extern void glBeginVertexShaderEXT( void );
    extern void glEndVertexShaderEXT( void );
    extern void glBindVertexShaderEXT( GLuint id );
    extern GLuint glGenVertexShadersEXT( GLuint range );
    extern void glDeleteVertexShaderEXT( GLuint id );
    extern void glShaderOp1EXT( GLenum op, GLuint res, GLuint arg1 );
    extern void glShaderOp2EXT( GLenum op, GLuint res, GLuint arg1, GLuint arg2 );
    extern void glShaderOp3EXT( GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3 );
    extern void glSwizzleEXT( GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, 
                     GLenum outW );
    extern void glWriteMaskEXT( GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ,
                      GLenum outW );
    extern void glInsertComponentEXT( GLuint res, GLuint src, GLuint num );
    extern void glExtractComponentEXT( GLuint res, GLuint src, GLuint num );
    extern GLuint glGenSymbolsEXT(GLenum datatype,GLenum storagetype,GLenum range,
                     GLuint components ); 
    extern void glSetInvariantEXT( GLuint id, GLenum type, void *addr );
    extern void glSetLocalConstantEXT( GLuint id, GLenum type, void *addr );
    extern void glVariantbvEXT( GLuint id, GLbyte *addr );
    extern void glVariantsvEXT( GLuint id, GLshort *addr );
    extern void glVariantivEXT( GLuint id, GLint *addr );
    extern void glVariantfvEXT( GLuint id, GLfloat *addr );
    extern void glVariantdvEXT( GLuint id, GLdouble *addr );
    extern void glVariantubvEXT( GLuint id, GLubyte *addr );
    extern void glVariantusvEXT( GLuint id, GLshort *addr );
    extern void glVariantuivEXT( GLuint id, GLuint *addr );
    extern void glVariantPointerEXT( GLuint id, GLenum type, GLuint stride, void *addr );
    extern void glEnableVariantClientStateEXT( GLuint id);
    extern void glDisableVariantClientStateEXT( GLuint id);
    extern GLuint glBindLightParameterEXT( GLenum light, GLenum value);
    extern GLuint glBindMaterialParameterEXT( GLenum face, GLenum value);
    extern GLuint glBindTexGenParameterEXT( GLenum unit, GLenum coord, GLenum value);
    extern GLuint glBindTextureUnitParameterEXT( GLenum unit, GLenum value);
    extern GLuint glBindParameterEXT( GLenum value);
    extern GLboolean glIsVariantEnabledEXT( GLuint id, GLenum cap);
    extern void glGetVariantBooleanvEXT( GLuint id, GLenum value, boolean *data);
    extern void glGetVariantIntegervEXT( GLuint id, GLenum value, GLint *data);
    extern void glGetVariantFloatvEXT( GLuint id, GLenum value, GLfloat *data);
    extern void glGetVariantPointervEXT( GLuint id, GLenum value, void **data);
    extern void glGetInvariantBooleanvEXT( GLuint id, GLenum value, boolean *data);
    extern void glGetInvariantIntegervEXT( GLuint id, GLenum value, GLint *data);
    extern void glGetInvariantFloatvEXT( GLuint id, GLenum value, GLfloat *data);
    extern void glGetLocalConstantBooleanvEXT( GLuint id, GLenum value, boolean *data);
    extern void glGetLocalConstantIntegervEXT( GLuint id, GLenum value, GLint *data);
    extern void glGetLocalConstantFloatvEXT( GLuint id, GLenum value, GLfloat *data);
#else
        #define _BIND_EXT_VERTEX_SHADER_EXTENSIONS_REQUIRED
        typedef GLvoid    (APIENTRY * PFNGLBEGINVERTEXSHADEREXTPROC) (void);
        typedef GLvoid    (APIENTRY * PFNGLENDVERTEXSHADEREXTPROC) (void);
        typedef GLvoid    (APIENTRY * PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id);
        typedef GLuint    (APIENTRY * PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range);
        typedef GLvoid    (APIENTRY * PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id);
        typedef GLvoid    (APIENTRY * PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1);
        typedef GLvoid    (APIENTRY * PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1,
                                                                                                                  GLuint arg2);
        typedef GLvoid    (APIENTRY * PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1,
                                                                                                                  GLuint arg2, GLuint arg3);
        typedef GLvoid    (APIENTRY * PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX,
                                                                                                                GLenum outY, GLenum outZ, GLenum outW);
        typedef GLvoid    (APIENTRY * PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX,
                                                                                                                  GLenum outY, GLenum outZ, GLenum outW);
        typedef GLvoid    (APIENTRY * PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
        typedef GLvoid    (APIENTRY * PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num);
        typedef GLuint    (APIENTRY * PFNGLGENSYMBOLSEXTPROC) (GLenum dataType, GLenum storageType,
                                                                                                                   GLenum range, GLuint components);
        typedef GLvoid    (APIENTRY * PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr);
        typedef GLvoid    (APIENTRY * PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, GLvoid *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTBVEXTPROC) (GLuint id, GLbyte *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTSVEXTPROC) (GLuint id, GLshort *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTIVEXTPROC) (GLuint id, GLint *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTFVEXTPROC) (GLuint id, GLfloat *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTDVEXTPROC) (GLuint id, GLdouble *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTUBVEXTPROC) (GLuint id, GLubyte *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTUSVEXTPROC) (GLuint id, GLushort *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTUIVEXTPROC) (GLuint id, GLuint *addr);
        typedef GLvoid    (APIENTRY * PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type,
                                                                                                                           GLuint stride, GLvoid *addr);
        typedef GLvoid    (APIENTRY * PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
        typedef GLvoid    (APIENTRY * PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id);
        typedef GLuint    (APIENTRY * PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value);
        typedef GLuint    (APIENTRY * PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value);
        typedef GLuint    (APIENTRY * PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord,
                                                                                                                                        GLenum value);
        typedef GLuint    (APIENTRY * PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value);
        typedef GLuint    (APIENTRY * PFNGLBINDPARAMETEREXTPROC) (GLenum value);
        typedef GLboolean (APIENTRY * PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap);
        typedef GLvoid    (APIENTRY * PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                   GLboolean *data);
        typedef GLvoid    (APIENTRY * PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                   GLint *data);
        typedef GLvoid    (APIENTRY * PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                   GLfloat *data);
        typedef GLvoid    (APIENTRY * PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                   GLvoid **data);
        typedef GLvoid    (APIENTRY * PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                         GLboolean *data);
        typedef GLvoid    (APIENTRY * PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                         GLint *data);
        typedef GLvoid    (APIENTRY * PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                   GLfloat *data);
        typedef GLvoid    (APIENTRY * PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                                 GLboolean *data);
        typedef GLvoid    (APIENTRY * PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                                 GLint *data);
        typedef GLvoid    (APIENTRY * PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value,
                                                                                                                                           GLfloat *data);
        extern PFNGLBEGINVERTEXSHADEREXTPROC glBeginVertexShaderEXT;
    extern PFNGLENDVERTEXSHADEREXTPROC glEndVertexShaderEXT;
    extern PFNGLBINDVERTEXSHADEREXTPROC glBindVertexShaderEXT;
    extern PFNGLGENVERTEXSHADERSEXTPROC glGenVertexShadersEXT;
    extern PFNGLDELETEVERTEXSHADEREXTPROC glDeleteVertexShaderEXT;
    extern PFNGLSHADEROP1EXTPROC glShaderOp1EXT;
    extern PFNGLSHADEROP2EXTPROC glShaderOp2EXT;
    extern PFNGLSHADEROP3EXTPROC glShaderOp3EXT;
    extern PFNGLSWIZZLEEXTPROC glSwizzleEXT;
    extern PFNGLWRITEMASKEXTPROC glWriteMaskEXT;
    extern PFNGLINSERTCOMPONENTEXTPROC glInsertComponentEXT;
    extern PFNGLEXTRACTCOMPONENTEXTPROC glExtractComponentEXT;
    extern PFNGLGENSYMBOLSEXTPROC glGenSymbolsEXT;
    extern PFNGLSETINVARIANTEXTPROC glSetInvariantEXT;
    extern PFNGLSETLOCALCONSTANTEXTPROC glSetLocalConstantEXT;
    extern PFNGLVARIANTBVEXTPROC glVariantbvEXT;
    extern PFNGLVARIANTSVEXTPROC glVariantsvEXT;
    extern PFNGLVARIANTIVEXTPROC glVariantivEXT;
    extern PFNGLVARIANTFVEXTPROC glVariantfvEXT;
    extern PFNGLVARIANTDVEXTPROC glVariantdvEXT;
    extern PFNGLVARIANTUBVEXTPROC glVariantubvEXT;
    extern PFNGLVARIANTUSVEXTPROC glVariantusvEXT;
    extern PFNGLVARIANTUIVEXTPROC glVariantuivEXT;
    extern PFNGLVARIANTPOINTEREXTPROC glVariantPointerEXT;
    extern PFNGLENABLEVARIANTCLIENTSTATEEXTPROC glEnableVariantClientStateEXT;
    extern PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC glDisableVariantClientStateEXT;
    extern PFNGLBINDLIGHTPARAMETEREXTPROC glBindLightParameterEXT;
    extern PFNGLBINDMATERIALPARAMETEREXTPROC glBindMaterialParameterEXT;
    extern PFNGLBINDTEXGENPARAMETEREXTPROC glBindTexGenParameterEXT;
    extern PFNGLBINDTEXTUREUNITPARAMETEREXTPROC glBindTextureUnitParameterEXT;
        extern PFNGLBINDPARAMETEREXTPROC glBindParameterEXT;
    extern PFNGLISVARIANTENABLEDEXTPROC glIsVariantEnabledEXT;
    extern PFNGLGETVARIANTBOOLEANVEXTPROC glGetVariantBooleanvEXT;
    extern PFNGLGETVARIANTINTEGERVEXTPROC glGetVariantIntegervEXT;
    extern PFNGLGETVARIANTFLOATVEXTPROC glGetVariantFloatvEXT;
    extern PFNGLGETVARIANTPOINTERVEXTPROC glGetVariantPointervEXT;
        extern PFNGLGETINVARIANTBOOLEANVEXTPROC glGetInvariantBooleanvEXT;
    extern PFNGLGETINVARIANTINTEGERVEXTPROC glGetInvariantIntegervEXT;
    extern PFNGLGETINVARIANTFLOATVEXTPROC glGetInvariantFloatvEXT;
        extern PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC glGetLocalConstantBooleanvEXT;
    extern PFNGLGETLOCALCONSTANTINTEGERVEXTPROC glGetLocalConstantIntegervEXT;
    extern PFNGLGETLOCALCONSTANTFLOATVEXTPROC glGetLocalConstantFloatvEXT;
#endif
#endif /* GL_EXT_vertex_shader */

//
// Fragment / pixel shading extension
#ifndef GL_ATI_fragment_shader
        #define GL_ATI_fragment_shader 1

        #define GL_FRAGMENT_SHADER_ATI                                          0x8920
        #define GL_REG_0_ATI                                                            0x8921
        #define GL_REG_1_ATI                                                            0x8922
        #define GL_REG_2_ATI                                                            0x8923
        #define GL_REG_3_ATI                                                            0x8924
        #define GL_REG_4_ATI                                                            0x8925
        #define GL_REG_5_ATI                                                            0x8926
        #define GL_REG_6_ATI                                                            0x8927
        #define GL_REG_7_ATI                                                            0x8928
        #define GL_REG_8_ATI                                                            0x8929
        #define GL_REG_9_ATI                                                            0x892A
        #define GL_REG_10_ATI                                                           0x892B
        #define GL_REG_11_ATI                                                           0x892C
        #define GL_REG_12_ATI                                                           0x892D
        #define GL_REG_13_ATI                                                           0x892E
        #define GL_REG_14_ATI                                                           0x892F
        #define GL_REG_15_ATI                                                           0x8930
        #define GL_REG_16_ATI                                                           0x8931
        #define GL_REG_17_ATI                                                           0x8932
        #define GL_REG_18_ATI                                                           0x8933
        #define GL_REG_19_ATI                                                           0x8934
        #define GL_REG_20_ATI                                                           0x8935
        #define GL_REG_21_ATI                                                           0x8936
        #define GL_REG_22_ATI                                                           0x8937
        #define GL_REG_23_ATI                                                           0x8938
        #define GL_REG_24_ATI                                                           0x8939
        #define GL_REG_25_ATI                                                           0x893A
        #define GL_REG_26_ATI                                                           0x893B
        #define GL_REG_27_ATI                                                           0x893C
        #define GL_REG_28_ATI                                                           0x893D
        #define GL_REG_29_ATI                                                           0x893E
        #define GL_REG_30_ATI                                                           0x893F
        #define GL_REG_31_ATI                                                           0x8940
        #define GL_CON_0_ATI                                                            0x8941
        #define GL_CON_1_ATI                                                            0x8942
        #define GL_CON_2_ATI                                                            0x8943
        #define GL_CON_3_ATI                                                            0x8944
        #define GL_CON_4_ATI                                                            0x8945
        #define GL_CON_5_ATI                                                            0x8946
        #define GL_CON_6_ATI                                                            0x8947
        #define GL_CON_7_ATI                                                            0x8948
        #define GL_CON_8_ATI                                                            0x8949
        #define GL_CON_9_ATI                                                            0x894A
        #define GL_CON_10_ATI                                                           0x894B
        #define GL_CON_11_ATI                                                           0x894C
        #define GL_CON_12_ATI                                                           0x894D
        #define GL_CON_13_ATI                                                           0x894E
        #define GL_CON_14_ATI                                                           0x894F
        #define GL_CON_15_ATI                                                           0x8950
        #define GL_CON_16_ATI                                                           0x8951
        #define GL_CON_17_ATI                                                           0x8952
        #define GL_CON_18_ATI                                                           0x8953
        #define GL_CON_19_ATI                                                           0x8954
        #define GL_CON_20_ATI                                                           0x8955
        #define GL_CON_21_ATI                                                           0x8956
        #define GL_CON_22_ATI                                                           0x8957
        #define GL_CON_23_ATI                                                           0x8958
        #define GL_CON_24_ATI                                                           0x8959
        #define GL_CON_25_ATI                                                           0x895A
        #define GL_CON_26_ATI                                                           0x895B
        #define GL_CON_27_ATI                                                           0x895C
        #define GL_CON_28_ATI                                                           0x895D
        #define GL_CON_29_ATI                                                           0x895E
        #define GL_CON_30_ATI                                                           0x895F
        #define GL_CON_31_ATI                                                           0x8960
        #define GL_MOV_ATI                                                                      0x8961
        #define GL_ADD_ATI                                                                      0x8963
        #define GL_MUL_ATI                                                                      0x8964
        #define GL_SUB_ATI                                                                      0x8965
        #define GL_DOT3_ATI                                                                     0x8966
        #define GL_DOT4_ATI                                                                     0x8967
        #define GL_MAD_ATI                                                                      0x8968
        #define GL_LERP_ATI                                                                     0x8969
        #define GL_CND_ATI                                                                      0x896A
        #define GL_CND0_ATI                                                                     0x896B
        #define GL_DOT2_ADD_ATI                                                         0x896C
        #define GL_SECONDARY_INTERPOLATOR_ATI                           0x896D
        #define GL_NUM_FRAGMENT_REGISTERS_ATI                           0x896E
        #define GL_NUM_FRAGMENT_CONSTANTS_ATI                           0x896F
        #define GL_NUM_PASSES_ATI                                                       0x8970
        #define GL_NUM_INSTRUCTIONS_PER_PASS_ATI                        0x8971
        #define GL_NUM_INSTRUCTIONS_TOTAL_ATI                           0x8972
        #define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI        0x8973
        #define GL_NUM_LOOPBACK_COMPONENTS_ATI                          0x8974
        #define GL_COLOR_ALPHA_PAIRING_ATI                                      0x8975
        #define GL_SWIZZLE_STR_ATI                                                      0x8976
        #define GL_SWIZZLE_STQ_ATI                                                      0x8977
        #define GL_SWIZZLE_STR_DR_ATI                                           0x8978
        #define GL_SWIZZLE_STQ_DQ_ATI                                           0x8979
        #define GL_SWIZZLE_STRQ_ATI                                                     0x897A
        #define GL_SWIZZLE_STRQ_DQ_ATI                                          0x897B
        #define GL_RED_BIT_ATI                                                          0x00000001
        #define GL_GREEN_BIT_ATI                                                        0x00000002
        #define GL_BLUE_BIT_ATI                                                         0x00000004
        #define GL_2X_BIT_ATI                                                           0x00000001
        #define GL_4X_BIT_ATI                                                           0x00000002
        #define GL_8X_BIT_ATI                                                           0x00000004
        #define GL_HALF_BIT_ATI                                                         0x00000008
        #define GL_QUARTER_BIT_ATI                                                      0x00000010
        #define GL_EIGHTH_BIT_ATI                                                       0x00000020
        #define GL_SATURATE_BIT_ATI                                                     0x00000040
        #define GL_COMP_BIT_ATI                                                         0x00000002
        #define GL_NEGATE_BIT_ATI                                                       0x00000004
        #define GL_BIAS_BIT_ATI                                                         0x00000008

#ifdef GL_GLEXT_PROTOTYPES
        extern GLuint glGenFragmentShadersATI ( GLuint range );
    extern void glBindFragmentShaderATI ( GLuint id );
    extern void glDeleteFragmentShaderATI ( GLuint id );
    extern void glBeginFragmentShaderATI ( GLvoid );
    extern void glEndFragmentShaderATI ( GLvoid );
    extern void glPassTexCoordATI ( GLuint dst, GLuint coord, GLenum swizzle );
    extern void glSampleMapATI ( GLuint dst, GLuint interp, GLenum swizzle );
    extern void glColorFragmentOp1ATI ( GLenum op, GLuint dst, GLuint dstMask, 
                                GLuint dstMod, GLuint arg1, GLuint arg1Rep, 
                                GLuint arg1Mod );
    extern void glColorFragmentOp2ATI ( GLenum op, GLuint dst, GLuint dstMask, 
                                GLuint dstMod, GLuint arg1, GLuint arg1Rep, 
                                GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, 
                                GLuint arg2Mod );
    extern void glColorFragmentOp3ATI ( GLenum op, GLuint dst, GLuint dstMask, 
                                GLuint dstMod, GLuint arg1, GLuint arg1Rep, 
                                GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, 
                                GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, 
                                GLuint arg3Mod );
    extern void glAlphaFragmentOp1ATI ( GLenum op, GLuint dst, GLuint dstMod, 
                                GLuint arg1, GLuint arg1Rep, GLuint arg1Mod );
    extern void glAlphaFragmentOp2ATI ( GLenum op, GLuint dst, GLuint dstMod, 
                                GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, 
                                GLuint arg2, GLuint arg2Rep, GLuint arg2Mod );
    extern void glAlphaFragmentOp3ATI ( GLenum op, GLuint dst, GLuint dstMod, 
                                GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
                                GLuint arg2, GLuint arg2Rep, GLuint arg2Mod,
                                GLuint arg3, GLuint arg3Rep, GLuint arg3Mod );
    extern void glSetFragmentShaderConstantATI ( GLuint dst, const float *value );
#else
        #define _BIND_EXT_FRAGMENT_SHADER_EXTENSIONS_REQUIRED
        typedef GLuint (APIENTRY *PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range);
        typedef GLvoid (APIENTRY *PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id);
        typedef GLvoid (APIENTRY *PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id);
        typedef GLvoid (APIENTRY *PFNGLBEGINFRAGMENTSHADERATIPROC)(GLvoid);
        typedef GLvoid (APIENTRY *PFNGLENDFRAGMENTSHADERATIPROC)(GLvoid);
        typedef GLvoid (APIENTRY *PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle);
        typedef GLvoid (APIENTRY *PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle);
        typedef GLvoid (APIENTRY *PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
                                                                                   GLuint dstMod, GLuint arg1, GLuint arg1Rep,
                                                                                   GLuint arg1Mod);
        typedef GLvoid (APIENTRY *PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
                                                                                   GLuint dstMod, GLuint arg1, GLuint arg1Rep,
                                                                                   GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
                                                                                   GLuint arg2Mod);
        typedef GLvoid (APIENTRY *PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask,
                                                                                   GLuint dstMod, GLuint arg1, GLuint arg1Rep,
                                                                                   GLuint arg1Mod, GLuint arg2, GLuint arg2Rep,
                                                                                   GLuint arg2Mod, GLuint arg3, GLuint arg3Rep,
                                                                                   GLuint arg3Mod);
        typedef GLvoid (APIENTRY *PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
                                                                                   GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
        typedef GLvoid (APIENTRY *PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
                                                                                   GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
                                                                                   GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
        typedef GLvoid (APIENTRY *PFNGLALPHAFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMod,
                                                                                   GLuint arg1, GLuint arg1Rep, GLuint arg1Mod,
                                                                                   GLuint arg2, GLuint arg2Rep, GLuint arg2Mod,
                                                                                   GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
        typedef GLvoid (APIENTRY *PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat *value);

        extern PFNGLGENFRAGMENTSHADERSATIPROC glGenFragmentShadersATI;
    extern PFNGLBINDFRAGMENTSHADERATIPROC glBindFragmentShaderATI;
    extern PFNGLDELETEFRAGMENTSHADERATIPROC glDeleteFragmentShaderATI;
    extern PFNGLBEGINFRAGMENTSHADERATIPROC glBeginFragmentShaderATI;
    extern PFNGLENDFRAGMENTSHADERATIPROC glEndFragmentShaderATI;
    extern PFNGLPASSTEXCOORDATIPROC glPassTexCoordATI;
    extern PFNGLSAMPLEMAPATIPROC glSampleMapATI;
    extern PFNGLCOLORFRAGMENTOP1ATIPROC glColorFragmentOp1ATI;
    extern PFNGLCOLORFRAGMENTOP2ATIPROC glColorFragmentOp2ATI;
    extern PFNGLCOLORFRAGMENTOP3ATIPROC glColorFragmentOp3ATI;
    extern PFNGLALPHAFRAGMENTOP1ATIPROC glAlphaFragmentOp1ATI;
    extern PFNGLALPHAFRAGMENTOP2ATIPROC glAlphaFragmentOp2ATI;
    extern PFNGLALPHAFRAGMENTOP3ATIPROC glAlphaFragmentOp3ATI;
    extern PFNGLSETFRAGMENTSHADERCONSTANTATIPROC glSetFragmentShaderConstantATI;
#endif
#endif /* GL_ATI_fragment_shader */

// Multitexturing. 
#ifndef GL_ARB_multitexture
        #define GL_ARB_multitexture 1

        #define GL_ACTIVE_TEXTURE_ARB               0x84E0
        #define GL_CLIENT_ACTIVE_TEXTURE_ARB        0x84E1
        #define GL_MAX_ACTIVE_TEXTURES_ARB          0x84E2
        #define GL_TEXTURE0_ARB                     0x84C0
        #define GL_TEXTURE1_ARB                     0x84C1
        #define GL_TEXTURE2_ARB                     0x84C2
        #define GL_TEXTURE3_ARB                     0x84C3
        #define GL_TEXTURE4_ARB                     0x84C4
        #define GL_TEXTURE5_ARB                     0x84C5
        #define GL_TEXTURE6_ARB                     0x84C6
        #define GL_TEXTURE7_ARB                     0x84C7
        #define GL_TEXTURE8_ARB                     0x84C8
        #define GL_TEXTURE9_ARB                     0x84C9
        #define GL_TEXTURE10_ARB                    0x84CA
        #define GL_TEXTURE11_ARB                    0x84CB
        #define GL_TEXTURE12_ARB                    0x84CC
        #define GL_TEXTURE13_ARB                    0x84CD
        #define GL_TEXTURE14_ARB                    0x84CE
        #define GL_TEXTURE15_ARB                    0x84CF
        #define GL_TEXTURE16_ARB                    0x84D0
        #define GL_TEXTURE17_ARB                    0x84D1
        #define GL_TEXTURE18_ARB                    0x84D2
        #define GL_TEXTURE19_ARB                    0x84D3
        #define GL_TEXTURE20_ARB                    0x84D4
        #define GL_TEXTURE21_ARB                    0x84D5
        #define GL_TEXTURE22_ARB                    0x84D6
        #define GL_TEXTURE23_ARB                    0x84D7
        #define GL_TEXTURE24_ARB                    0x84D8
        #define GL_TEXTURE25_ARB                    0x84D9
        #define GL_TEXTURE26_ARB                    0x84DA
        #define GL_TEXTURE27_ARB                    0x84DB
        #define GL_TEXTURE28_ARB                    0x84DC
        #define GL_TEXTURE29_ARB                    0x84DD
        #define GL_TEXTURE30_ARB                    0x84DE
        #define GL_TEXTURE31_ARB                    0x84DF

#ifdef GL_GLEXT_PROTOTYPES
        extern void APIENTRY glActiveTextureARB (GLenum);
        extern void APIENTRY glClientActiveTextureARB (GLenum);
        extern void APIENTRY glMultiTexCoord1dARB (GLenum, GLdouble);
        extern void APIENTRY glMultiTexCoord1dvARB (GLenum, const GLdouble *);
        extern void APIENTRY glMultiTexCoord1fARB (GLenum, GLfloat);
        extern void APIENTRY glMultiTexCoord1fvARB (GLenum, const GLfloat *);
        extern void APIENTRY glMultiTexCoord1iARB (GLenum, GLint);
        extern void APIENTRY glMultiTexCoord1ivARB (GLenum, const GLint *);
        extern void APIENTRY glMultiTexCoord1sARB (GLenum, GLshort);
        extern void APIENTRY glMultiTexCoord1svARB (GLenum, const GLshort *);
        extern void APIENTRY glMultiTexCoord2dARB (GLenum, GLdouble, GLdouble);
        extern void APIENTRY glMultiTexCoord2dvARB (GLenum, const GLdouble *);
        extern void APIENTRY glMultiTexCoord2fARB (GLenum, GLfloat, GLfloat);
        extern void APIENTRY glMultiTexCoord2fvARB (GLenum, const GLfloat *);
        extern void APIENTRY glMultiTexCoord2iARB (GLenum, GLint, GLint);
        extern void APIENTRY glMultiTexCoord2ivARB (GLenum, const GLint *);
        extern void APIENTRY glMultiTexCoord2sARB (GLenum, GLshort, GLshort);
        extern void APIENTRY glMultiTexCoord2svARB (GLenum, const GLshort *);
        extern void APIENTRY glMultiTexCoord3dARB (GLenum, GLdouble, GLdouble, GLdouble);
        extern void APIENTRY glMultiTexCoord3dvARB (GLenum, const GLdouble *);
        extern void APIENTRY glMultiTexCoord3fARB (GLenum, GLfloat, GLfloat, GLfloat);
        extern void APIENTRY glMultiTexCoord3fvARB (GLenum, const GLfloat *);
        extern void APIENTRY glMultiTexCoord3iARB (GLenum, GLint, GLint, GLint);
        extern void APIENTRY glMultiTexCoord3ivARB (GLenum, const GLint *);
        extern void APIENTRY glMultiTexCoord3sARB (GLenum, GLshort, GLshort, GLshort);
        extern void APIENTRY glMultiTexCoord3svARB (GLenum, const GLshort *);
        extern void APIENTRY glMultiTexCoord4dARB (GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
        extern void APIENTRY glMultiTexCoord4dvARB (GLenum, const GLdouble *);
        extern void APIENTRY glMultiTexCoord4fARB (GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
        extern void APIENTRY glMultiTexCoord4fvARB (GLenum, const GLfloat *);
        extern void APIENTRY glMultiTexCoord4iARB (GLenum, GLint, GLint, GLint, GLint);
        extern void APIENTRY glMultiTexCoord4ivARB (GLenum, const GLint *);
        extern void APIENTRY glMultiTexCoord4sARB (GLenum, GLshort, GLshort, GLshort, GLshort);
        extern void APIENTRY glMultiTexCoord4svARB (GLenum, const GLshort *);
#else
        #define _BIND_MULTITEXTURE_EXTENSION_REQURIED 1
        typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
        typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum texture, GLdouble s);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum texture, const GLdouble *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum texture, GLfloat s);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum texture, const GLfloat *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum texture, GLint s);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum texture, const GLint *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum texture, GLshort s);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum texture, const GLshort *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum texture, GLdouble s, GLdouble t);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum texture, const GLdouble *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum texture, GLfloat s, GLfloat t);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum texture, const GLfloat *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum texture, GLint s, GLint t);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum texture, const GLint *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum texture, GLshort s, GLshort t);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum texture, const GLshort *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum texture, GLdouble s, GLdouble t, GLdouble r);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum texture, const GLdouble *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum texture, const GLfloat *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum texture, GLint s, GLint t, GLint r);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum texture, const GLint *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum texture, GLshort s, GLshort t, GLshort r);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum texture, const GLshort *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum texture, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum texture, const GLdouble *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum texture, const GLfloat *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum texture, GLint s, GLint t, GLint r, GLint q);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum texture, const GLint *v);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum texture, GLshort s, GLshort t, GLshort r, GLshort q);
        typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum texture, const GLshort *v);
        extern PFNGLACTIVETEXTUREARBPROC glActiveTextureARB ;
        extern PFNGLCLIENTACTIVETEXTUREARBPROC glClientActiveTextureARB ;
        extern PFNGLMULTITEXCOORD1DARBPROC glMultiTexCoord1dARB ;
        extern PFNGLMULTITEXCOORD1DVARBPROC glMultiTexCoord1dvARB ;
        extern PFNGLMULTITEXCOORD1FARBPROC glMultiTexCoord1fARB ;
        extern PFNGLMULTITEXCOORD1FVARBPROC glMultiTexCoord1fvARB ;
        extern PFNGLMULTITEXCOORD1IARBPROC glMultiTexCoord1iARB ;
        extern PFNGLMULTITEXCOORD1IVARBPROC glMultiTexCoord1ivARB ;
        extern PFNGLMULTITEXCOORD1SARBPROC glMultiTexCoord1sARB ;
        extern PFNGLMULTITEXCOORD1SVARBPROC glMultiTexCoord1svARB ;
        extern PFNGLMULTITEXCOORD2DARBPROC glMultiTexCoord2dARB ;
        extern PFNGLMULTITEXCOORD2DVARBPROC glMultiTexCoord2dvARB ;
        extern PFNGLMULTITEXCOORD2FARBPROC glMultiTexCoord2fARB ;
        extern PFNGLMULTITEXCOORD2FVARBPROC glMultiTexCoord2fvARB ;
        extern PFNGLMULTITEXCOORD2IARBPROC glMultiTexCoord2iARB ;
        extern PFNGLMULTITEXCOORD2IVARBPROC glMultiTexCoord2ivARB ;
        extern PFNGLMULTITEXCOORD2SARBPROC glMultiTexCoord2sARB ;
        extern PFNGLMULTITEXCOORD2SVARBPROC glMultiTexCoord2svARB ;
        extern PFNGLMULTITEXCOORD3DARBPROC glMultiTexCoord3dARB ;
        extern PFNGLMULTITEXCOORD3DVARBPROC glMultiTexCoord3dvARB ;
        extern PFNGLMULTITEXCOORD3FARBPROC glMultiTexCoord3fARB ;
        extern PFNGLMULTITEXCOORD3FVARBPROC glMultiTexCoord3fvARB ;
        extern PFNGLMULTITEXCOORD3IARBPROC glMultiTexCoord3iARB ;
        extern PFNGLMULTITEXCOORD3IVARBPROC glMultiTexCoord3ivARB ;
        extern PFNGLMULTITEXCOORD3SARBPROC glMultiTexCoord3sARB ;
        extern PFNGLMULTITEXCOORD3SVARBPROC glMultiTexCoord3svARB ;
        extern PFNGLMULTITEXCOORD4DARBPROC glMultiTexCoord4dARB ;
        extern PFNGLMULTITEXCOORD4DVARBPROC glMultiTexCoord4dvARB ;
        extern PFNGLMULTITEXCOORD4FARBPROC glMultiTexCoord4fARB ;
        extern PFNGLMULTITEXCOORD4FVARBPROC glMultiTexCoord4fvARB ;
        extern PFNGLMULTITEXCOORD4IARBPROC glMultiTexCoord4iARB ;
        extern PFNGLMULTITEXCOORD4IVARBPROC glMultiTexCoord4ivARB ;
        extern PFNGLMULTITEXCOORD4SARBPROC glMultiTexCoord4sARB ;
        extern PFNGLMULTITEXCOORD4SVARBPROC glMultiTexCoord4svARB ;
#endif

#endif /* GL_ARB_multitexture */

/* GL_ARB_texture_cube_map */
#ifndef GL_TEXTURE_CUBE_MAP_ARB
        #define GL_TEXTURE_CUBE_MAP_ARB                                 0x8513
        #define GL_TEXTURE_BINDING_CUBE_MAP_ARB                 0x8514
        #define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB              0x8515
        #define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB              0x8516
        #define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB              0x8517
        #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB              0x8518
        #define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB              0x8519
        #define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB              0x851A
        #define GL_PROXY_TEXTURE_CUBE_MAP_ARB                   0x851B
        #define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB                0x851C
#endif

extern GLboolean initialize_ATI_Extension(char *extensionString);

#ifdef __cplusplus
}
#endif

#endif /* _ATIext */



Autodesk® Maya® 2009 © 1997-2008 Autodesk, Inc. All rights reserved. Generated with doxygen 1.5.6