diff --git a/projects/clr/rocclr/cmake/FindAMD_UGL.cmake b/projects/clr/rocclr/cmake/FindAMD_UGL.cmake deleted file mode 100644 index 0b09ada65b..0000000000 --- a/projects/clr/rocclr/cmake/FindAMD_UGL.cmake +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (c) 2020 - 2021 Advanced Micro Devices, Inc. All rights reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. - -if(AMD_UGL_FOUND) - return() -endif() - -find_path(AMD_UGL_INCLUDE_DIR GL/glx.h - HINTS - ${AMD_DRIVERS_PATH} - PATHS - # p4 repo layout - ${CMAKE_SOURCE_DIR}/drivers - ${CMAKE_SOURCE_DIR}/../drivers - ${CMAKE_SOURCE_DIR}/../../drivers - # github ent repo layout - ${CMAKE_SOURCE_DIR}/drivers/drivers - ${CMAKE_SOURCE_DIR}/../drivers/drivers - ${CMAKE_SOURCE_DIR}/../../drivers/drivers - PATH_SUFFIXES - ugl/inc - NO_DEFAULT_PATH) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(AMD_UGL - "\nAMD UGL not found" - AMD_UGL_INCLUDE_DIR) -mark_as_advanced(AMD_UGL_INCLUDE_DIR) - -set(AMD_UGL_INCLUDE_DIRS ${AMD_UGL_INCLUDE_DIR}) -mark_as_advanced(AMD_UGL_INCLUDE_DIRS) diff --git a/projects/clr/rocclr/cmake/ROCclrPAL.cmake b/projects/clr/rocclr/cmake/ROCclrPAL.cmake index 4c0ec03234..e39aefeb4f 100644 --- a/projects/clr/rocclr/cmake/ROCclrPAL.cmake +++ b/projects/clr/rocclr/cmake/ROCclrPAL.cmake @@ -46,7 +46,6 @@ set(PAL_BUILD_GFX9 ON) find_package(AMD_PAL) find_package(AMD_HSA_LOADER) -find_package(AMD_UGL) target_sources(rocclr PRIVATE ${ROCCLR_SRC_DIR}/device/pal/palappprofile.cpp @@ -73,7 +72,6 @@ target_sources(rocclr PRIVATE ${ROCCLR_SRC_DIR}/device/pal/palvirtual.cpp) target_compile_definitions(rocclr PUBLIC WITH_PAL_DEVICE PAL_GPUOPEN_OCL) -target_include_directories(rocclr PUBLIC ${AMD_UGL_INCLUDE_DIRS}) target_link_libraries(rocclr PUBLIC pal amdhsaloader) # support for OGL/D3D interop diff --git a/projects/clr/rocclr/include/GL/glATI.h b/projects/clr/rocclr/include/GL/glATI.h new file mode 100644 index 0000000000..73ba1edf7b --- /dev/null +++ b/projects/clr/rocclr/include/GL/glATI.h @@ -0,0 +1,6092 @@ +#ifndef __gl_ATI_h_ +#define __gl_ATI_h_ +/* +** Copyright (C) 1998 - 2022 Advanced Micro Devices, Inc. All rights reserved. +*/ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef __linux__ + +#ifndef APIENTRY +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#endif /* !__linux__ */ + +/* +** Notes: +** +** Listed support is for current drivers and should really only be used +** as a guideline. ISV should still use glGetString() and +** wglGetExtensionsString() to determine the exact set of supported +** GL and WGL extensions. +** +*/ + +/* +** IMPORTANT: +** +** All non-final extensions should use token enumerations in the range +** of 0x6000-0x7fff, as required by the OpenGL spec. +** +*/ + +/* +** OpenGL 1.2 functionality +*/ +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 + +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E + +/* +** D.1 Three-Dimensional Texturing +*/ +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 + +typedef GLvoid (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, + GLint yoffset, GLint zoffset, GLint x, + GLint y, GLsizei width, GLsizei height); +typedef GLvoid (APIENTRY * PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, + GLsizei width, GLsizei height, GLsizei depth, + GLint border, GLenum format, GLenum type, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, + GLint xoffset, GLint yoffset, GLint zoffset, + GLsizei width, GLsizei height, GLsizei depth, + GLenum format, GLenum type, const GLvoid *data); + +/* +** D.2 BGRA Pixel Formats +*/ +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 + +/* +** D.3 Packed Pixel Formats +*/ +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 + +/* +** D.4 Normal Rescaling +*/ +#define GL_RESCALE_NORMAL 0x803A + +/* +** D.5 Separate Specular Color +*/ +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA + +/* +** D.6 Texture Coordinate Edge Clamping +*/ +#define GL_CLAMP_TO_EDGE 0x812F + +/* +** D.7 Texture Level of Detail Control +*/ +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D + +/* +** D.8 Vertex Array Draw Element Range +*/ +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 + +typedef GLvoid (APIENTRY * PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, + GLuint end, GLsizei count, + GLenum type, const GLvoid *indices); +#endif /* GL_VERSION_1_2 */ + + +/* +** OpenGL 1.3 functionality +*/ +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 + +/* +** F.1 Compressed Textures +*/ +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 + +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLint border, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLsizei height, GLint border, + GLsizei imageSize, const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLsizei height, GLsizei depth, + GLint border, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, + GLint xoffset, GLsizei width, + GLenum format, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLint zoffset, GLsizei width, + GLsizei height, GLsizei depth, + GLenum format, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint lod, + GLvoid *img); + +/* +** F.2 Cube Map Textures +*/ +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C + +/* +** F.3 Multisample +*/ +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 + +typedef GLvoid (APIENTRY * PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); + +/* +** F.4 Multitexture +*/ +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 + +typedef GLvoid (APIENTRY * PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef GLvoid (APIENTRY * PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1DPROC) (GLenum texture, GLdouble s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1DVPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1FPROC) (GLenum texture, GLfloat s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1FVPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1IPROC) (GLenum texture, GLint s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1IVPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1SPROC) (GLenum texture, GLshort s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1SVPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2DPROC) (GLenum texture, GLdouble s, GLdouble t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2DVPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2FPROC) (GLenum texture, GLfloat s, GLfloat t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2FVPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2IPROC) (GLenum texture, GLint s, GLint t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2IVPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2SPROC) (GLenum texture, GLshort s, GLshort t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2SVPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3DPROC) (GLenum texture, GLdouble s, GLdouble t, GLdouble r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3DVPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3FPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3FVPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3IPROC) (GLenum texture, GLint s, GLint t, GLint r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3IVPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3SPROC) (GLenum texture, GLshort s, GLshort t, GLshort r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3SVPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4DPROC) (GLenum texture, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4DVPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4FPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4FVPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4IPROC) (GLenum texture, GLint s, GLint t, GLint r, GLint q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4IVPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4SPROC) (GLenum texture, GLshort s, GLshort t, GLshort r, GLshort q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4SVPROC) (GLenum texture, const GLshort *v); + +/* +** F.6 Texture Combine Environment Mode +*/ +#define GL_SUBTRACT 0x84E7 +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_SOURCE0_RGB 0x8580 /* obsolete */ +#define GL_SOURCE1_RGB 0x8581 /* obsolete */ +#define GL_SOURCE2_RGB 0x8582 /* obsolete */ +#define GL_SOURCE0_ALPHA 0x8588 /* obsolete */ +#define GL_SOURCE1_ALPHA 0x8589 /* obsolete */ +#define GL_SOURCE2_ALPHA 0x858A /* obsolete */ +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A + +/* +** F.7 Texture Dot3 Environment Mode +*/ +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF + +/* +** F.8 Texture Border Clamp +*/ +#define GL_CLAMP_TO_BORDER 0x812D + +/* +** F.9 Transpose Matrix +*/ +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 + +typedef GLvoid (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); +typedef GLvoid (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); +typedef GLvoid (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble m[16]); +typedef GLvoid (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat m[16]); + +#endif /* GL_VERSION_1_3 */ + + +/* +** OpenGL 1.4 functionality +*/ +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 + +/* +** G.1 Automatic Mipmap Generation +*/ +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 + +/* +** G.3 Changes to the Imaging Subset +*/ +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 + +typedef GLvoid (APIENTRY * PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef GLvoid (APIENTRY * PFNGLBLENDEQUATIONPROC) (GLenum mode); + +/* +** G.4 Depth Textures and Shadows +*/ +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0X884D +#define GL_COMPARE_R_TO_TEXTURE 0x884E + +/* +** G.5 Fog Coordinate +*/ +#define GL_FOG_COORDINATE_SOURCE 0x8450 /* obsolete */ +#define GL_FOG_COORDINATE 0x8451 /* obsolete */ +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORDINATE 0x8453 /* obsolete */ +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 /* obsolete */ +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 /* obsolete */ +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 /* obsolete */ +#define GL_FOG_COORDINATE_ARRAY 0x8457 /* obsolete */ + +typedef GLvoid (APIENTRY * PFNGLFOGCOORDDPROC) (GLdouble f); +typedef GLvoid (APIENTRY * PFNGLFOGCOORDDVPROC) (const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLFOGCOORDFPROC) (GLfloat f); +typedef GLvoid (APIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); + +/* +** G.6 Multiple Draw Arrays +*/ +typedef GLvoid (APIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef GLvoid (APIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); + +/* +** G.7 Point Parameters +*/ +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 + +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); + +/* +** G.8 Secondary Color +*/ +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E + +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte r, GLbyte g, GLbyte b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble r, GLdouble g, GLdouble b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3FPROC) (GLfloat r, GLfloat g, GLfloat b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3IPROC) (GLint r, GLint g, GLint b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3SPROC) (GLshort r, GLshort g, GLshort b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3UBPROC) (GLubyte r, GLubyte g, GLubyte b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint r, GLuint g, GLuint b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort r, GLushort g, GLushort b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + +/* +** G.9 Separate Blend Functions +*/ +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB + +typedef GLvoid (APIENTRY * PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + +/* +** G.10 Stencil Wrap +*/ +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 + +/* +** G.12 Texture LOD Bias +*/ +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 + +/* +** G.13 Texture Mirrored Repeat +*/ +#define GL_MIRRORED_REPEAT 0x8370 + +/* +** G.14 Window Raster Position +*/ +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2FVPROC) (const GLfloat *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2IVPROC) (const GLint *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2SVPROC) (const GLshort *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3DVPROC) (const GLdouble *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3FVPROC) (const GLfloat *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3IVPROC) (const GLint *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); + +#endif /* GL_VERSION_1_4 */ + +/* +** OpenGL 1.5 functionality +*/ +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 + + +/* +** GL2 Shading Language +*/ +#define GL_SHADER_TYPE 0x8B4F +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 + +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 + +#define GL_VERTEX_SHADER 0x8B31 + +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_MAX_TEXTURE_COORDS 0x8871 + +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 + +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A + +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 + +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 + +#define GL_FRAGMENT_SHADER 0x8B30 + +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 + +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B + +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D + + +/* +** H.1 Buffer Objects +*/ + +#ifndef GL_POINTERS_DEFINED +typedef INT_PTR GLintptr; +typedef INT_PTR GLsizeiptr; +#define GL_POINTERS_DEFINED +#endif + +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA + +typedef GLvoid (APIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef GLvoid (APIENTRY * PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef GLvoid (APIENTRY * PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef GLvoid (APIENTRY * PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLvoid (APIENTRY * PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum value, GLint *data); +typedef GLvoid (APIENTRY * PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid **params); +typedef GLvoid (APIENTRY * PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLboolean (APIENTRY * PFNGLISBUFFERPROC) (GLuint buffer); +typedef GLvoid * (APIENTRY * PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target); + +/* +** H.2 Occlusion Queries +*/ +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_SAMPLES_PASSED 0x8914 + +typedef GLvoid (APIENTRY * PFNGLBEGINQUERYPROC)(GLenum target, GLuint id); +typedef GLvoid (APIENTRY * PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids); +typedef GLvoid (APIENTRY * PFNGLENDQUERYPROC)(GLenum target); +typedef GLvoid (APIENTRY * PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids); +typedef GLvoid (APIENTRY * PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params); +typedef GLboolean (APIENTRY * PFNGLISQUERYPROC)(GLuint id); + +//Conditional Rendering +typedef GLvoid (APIENTRY * PFNGLBEGINCONDITIONALRENDERNV)(GLuint id, GLenum mode); +typedef GLvoid (APIENTRY * PFNGLENDCONDITIONALRENDERNV)(void); + +/* +** H.4 Changed Tokens +*/ +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC1_ALPHA 0x8589 +#define GL_SRC2_ALPHA 0x858A + +#endif /* GL_VERSION_1_5 */ + +/* +** OpenGL 2.0 functionality +*/ +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 + +/* +** I.1 Programmable Shading +*/ + +#define GL_SHADER_TYPE 0x8B4F +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 + +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 + +#define GL_VERTEX_SHADER 0x8B31 + +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_MAX_TEXTURE_COORDS 0x8871 + +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 + +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A + +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 + +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 + +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F + +#define GL_FRAGMENT_SHADER 0x8B30 + +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 + +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B + +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D + +#ifndef GL_CHAR_DEFINED +typedef char GLchar; +#define GL_CHAR_DEFINED +#endif + +typedef GLvoid (APIENTRY *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader); +typedef GLuint (APIENTRY *PFNGLCREATESHADERPROC)(GLenum type); +typedef GLvoid (APIENTRY *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, + const GLchar **string, const GLint *length); +typedef GLvoid (APIENTRY *PFNGLCOMPILESHADERPROC)(GLuint shader); +typedef GLuint (APIENTRY *PFNGLCREATEPROGRAMPROC)(void); +typedef GLvoid (APIENTRY *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader); +typedef GLvoid (APIENTRY *PFNGLLINKPROGRAMPROC)(GLuint program); +typedef GLvoid (APIENTRY *PFNGLUSEPROGRAMPROC)(GLuint program); +typedef GLvoid (APIENTRY *PFNGLVALIDATEPROGRAMPROC)(GLuint program); + +typedef GLvoid (APIENTRY *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0); +typedef GLvoid (APIENTRY *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1); +typedef GLvoid (APIENTRY *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef GLvoid (APIENTRY *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef GLvoid (APIENTRY *PFNGLUNIFORM1IPROC)(GLint location, GLint v0); +typedef GLvoid (APIENTRY *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1); +typedef GLvoid (APIENTRY *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2); +typedef GLvoid (APIENTRY *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef GLvoid (APIENTRY *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, + GLboolean transpose, const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, + GLboolean transpose, const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, + GLboolean transpose, const GLfloat *value); + +typedef GLvoid (APIENTRY *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, + GLsizei *count, GLuint *shaders); +typedef GLint (APIENTRY *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name); +typedef GLvoid (APIENTRY *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, + GLsizei bufSize, GLsizei *length, + GLint *size, GLenum *type, GLchar *name); +typedef GLvoid (APIENTRY *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params); +typedef GLvoid (APIENTRY *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, + GLsizei *length, GLchar *source); + +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v); + +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, + GLboolean normalized, GLsizei stride, + const GLvoid *pointer); + +typedef GLvoid (APIENTRY *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index); +typedef GLvoid (APIENTRY *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index); + +typedef GLvoid (APIENTRY *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name); + +typedef GLvoid (APIENTRY *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, + GLsizei *length, GLint *size, GLenum *type, GLchar *name); + +typedef GLint (APIENTRY *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name); + +typedef GLvoid (APIENTRY *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params); +typedef GLvoid (APIENTRY *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, GLvoid **pointer); + +typedef GLvoid (APIENTRY *PFNGLDELETESHADERPROC)(GLuint shader); +typedef GLboolean (APIENTRY *PFNGLISSHADERPROC)(GLuint shader); +typedef GLvoid (APIENTRY *PFNGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY *PFNGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, + GLsizei *length, GLchar *infoLog); + +typedef GLvoid (APIENTRY *PFNGLDELETEPROGRAMPROC)(GLuint program); +typedef GLboolean (APIENTRY *PFNGLISPROGRAMPROC)(GLuint program); +typedef GLvoid (APIENTRY *PFNGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY *PFNGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, + GLsizei *length, GLchar *infoLog); + +/* +** I.2 Multiple Render Targets +*/ +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 + +typedef GLvoid (APIENTRY *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs); + +/* +** I.4 Point Sprites +*/ +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 + + +/* +** I.5 Separate Stencil +*/ + +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 + +typedef void (APIENTRY *PFNGLSTENCILOPSEPARATE)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRY *PFNGLSTENCILFUNCSEPARATE)(GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRY *PFNGLSTENCILMASKSEPARATE)(GLenum face, GLuint mask); + +/* +** BlendEquationSeparate +*/ +#define GL_BLEND_EQUATION_RGB GL_BLEND_EQUATION +#define GL_BLEND_EQUATION_ALPHA 0x883D + +typedef void (APIENTRY *PFNBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha); + +#endif /* GL_VERSION_2_0 */ + + +/* +** OpenGL 3.0 functionality +*/ +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 + +/* +** Aliases to existing items +*/ +/* Clipping */ +#define GL_MAX_CLIP_DISTANCES 0x0D32 // Alias of GL_MAX_CLIP_PLANES +#define GL_CLIP_DISTANCE0 0x3000 // Alias of GL_CLIP_PLANE0 +#define GL_CLIP_DISTANCE1 0x3001 // Alias of GL_CLIP_PLANE1 +#define GL_CLIP_DISTANCE2 0x3002 // Alias of GL_CLIP_PLANE2 +#define GL_CLIP_DISTANCE3 0x3003 // Alias of GL_CLIP_PLANE3 +#define GL_CLIP_DISTANCE4 0x3004 // Alias of GL_CLIP_PLANE4 +#define GL_CLIP_DISTANCE5 0x3005 // Alias of GL_CLIP_PLANE5 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +/* Texture Compare */ +#define GL_COMPARE_REF_TO_TEXTURE 0x884E // Alias of GL_COMPARE_R_TO_TEXTURE_ARB +/* Varyings */ +#define GL_MAX_VARYING_COMPONENTS 0x8B4B // Alias of GL_MAX_VARYING_FLOATS + +/* +** New Extension query +*/ +#define GL_NUM_EXTENSIONS 0x821D + +typedef GLubyte* (APIENTRY * PFNGETSTRINGIPROC) (GLenum name, GLuint index); + +/* +** New Context items (for new create context) +*/ +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_CONTEXT_FLAGS 0x821E +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_CONTEXT_FLAG_DEBUG_BIT 0x0002 +/* +** Color buffer float +*/ +#define GL_RGBA_FLOAT_MODE 0x8820 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D + +typedef GLvoid (APIENTRY * PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); + +/* +** Conditional rendering +*/ +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 + +typedef GLvoid (APIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef GLvoid (APIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void); + +/* +** Depth buffer float +*/ +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD + +#define GL_DEPTH_COMPONENT32F_NV 0x8DAB +#define GL_DEPTH32F_STENCIL8_NV 0x8DAC + +/* +** Draw buffers 2 +*/ +typedef GLvoid (APIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); +typedef GLvoid (APIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean* data); +typedef GLvoid (APIENTRY * PFNGLCOLORMASKIPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef GLvoid (APIENTRY * PFNGLDISABLEIPROC) (GLenum target, GLuint index); +typedef GLvoid (APIENTRY * PFNGLENABLEIPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRY * PFNGLISENABLEDIPROC) (GLenum target, GLuint index); +typedef GLvoid (APIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat* value); +typedef GLvoid (APIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint* value); +typedef GLvoid (APIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); + +/* +** Framebuffer object +*/ +#define GL_FRAMEBUFFER 0x8D40 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_RENDERBUFFER 0x8D41 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_SAMPLES 0x8D57 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_INDEX 0x8222 +#define GL_DEPTH_BUFFER 0x8223 +#define GL_STENCIL_BUFFER 0x8224 +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 // alias FRAMEBUFFER_BINDING +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 + +typedef GLboolean (APIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef GLvoid (APIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef GLvoid (APIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef GLvoid (APIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef GLvoid (APIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, + GLsizei width, GLsizei height); +typedef GLvoid (APIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (APIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef GLvoid (APIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef GLvoid (APIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef GLvoid (APIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, GLint level); +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, GLint level); +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, + GLint level, GLint zoffset); +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, + GLenum renderbuffertarget, GLuint renderbuffer); +typedef GLvoid (APIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, + GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); + +/* +** framebuffer sRGB +*/ +#define GL_FRAMEBUFFER_SRGB 0x8DB9 + +/* +** GPU shader4 +*/ +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 + +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer); +typedef GLvoid (APIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint* params); +typedef GLvoid (APIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint* params); +typedef GLvoid (APIENTRY * PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef GLvoid (APIENTRY * PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef GLvoid (APIENTRY * PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef GLvoid (APIENTRY * PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef GLvoid (APIENTRY * PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint* params); +typedef GLvoid (APIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint colorNumber, const GLchar* name); +typedef GLvoid (APIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar* name); + +/* +** Geometry Shader Layers (only layers) +*/ +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT 0x8DA9 + +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 + +/* +** Half float +*/ +#define GL_HALF_FLOAT 0x140B + +/* +** Map buffer range +*/ +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_UNIFORM_BUFFER 0x8A11 + +typedef GLvoid* (APIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLbitfield access); +typedef GLvoid (APIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); + +/* +** packed depth and stencil format +*/ +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 + +/* +** packed float +*/ +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B + +/* +** texture arrays +*/ +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D + +/* +** texture compression +*/ +#define GL_COMPRESSED_LUMINANCE_LATC1 0x8C70 +#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1 0x8C71 +#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2 0x8C72 +#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2 0x8C73 +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE + +/* +** texture integer +*/ +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_ALPHA_INTEGER 0x8D97 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_RGB10_A2UI 0x906F + +typedef GLvoid (APIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint* params); +typedef GLvoid (APIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint* params); +typedef GLvoid (APIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLvoid (APIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint* params); + +/* +** texture float +*/ +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_ALPHA32F 0x8816 +#define GL_INTENSITY32F 0x8817 +#define GL_LUMINANCE32F 0x8818 +#define GL_LUMINANCE_ALPHA32F 0x8819 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_ALPHA16F 0x881C +#define GL_INTENSITY16F 0x881D +#define GL_LUMINANCE16F 0x881E +#define GL_LUMINANCE_ALPHA16F 0x881F + +/* +** Texture R/RG +*/ +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C + +/* +** Texture Shared Exponent +*/ +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F + +/* +** Transform feedback +*/ +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F + +typedef GLvoid (APIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLint* offset, GLsizei* size); +typedef GLvoid (APIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef GLvoid (APIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef GLvoid (APIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef GLvoid (APIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const char** varyings, GLenum bufferMode); +typedef GLvoid (APIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name); + +/* +** Vertex array object +*/ +#define GL_VERTEX_ARRAY_BINDING 0x85B5 + +typedef GLvoid (APIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); +typedef GLvoid (APIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); +typedef GLvoid (APIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef GLboolean (APIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array); + +#endif /* GL_VERSION_3_0 */ + + +/* +** OpenGL 3.1 functionality +*/ +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 + +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 + +// GL_EXT_texture_snorm +#define GL_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C + +typedef GLvoid (APIENTRY * PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); + +// primitive restart +#define GL_PRIMITIVE_RESTART 0x8F9D // temporary value +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E // temporary value + +typedef GLvoid (APIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index); + +// texture buffer objects +#define GL_TEXTURE_BUFFER 0x8C2A + +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D + +typedef GLvoid (APIENTRY * PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer); + +#endif /* GL_VERSION_3_1 */ + +/* +** OpenGL 3.2 functionality +*/ +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 + +// WGL/GLX_create_context get values +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_CONTEXT_PROFILE_MASK 0x9126 + +#ifndef GLint64 +#define GLint64 GLint64 +typedef long long GLint64; +#endif + +typedef GLvoid (APIENTRY * PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *params); +typedef GLvoid (APIENTRY * PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data); +typedef GLvoid (APIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum value, GLint *data); + +// sync objects +#ifndef GLsync +#define GLsync GLsync +struct __GLsync; +typedef struct __GLsync* GLsync; +#endif + +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D + +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 + +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull + +#ifndef GLuint64 +#define GLuint64 GLuint64 +typedef unsigned long long GLuint64; +#endif + +typedef GLsync (APIENTRY * PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags); +typedef GLboolean (APIENTRY * PFNGLISSYNCPROC)(GLsync sync); +typedef GLvoid (APIENTRY * PFNGLDELETESYNCPROC)(GLsync sync); + +typedef GLenum (APIENTRY * PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef GLvoid (APIENTRY * PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef GLvoid (APIENTRY * PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); + +#endif /* OpenGL 3.2 functionality */ + + +/* +** OpenGL 3.3 functionality +*/ +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 + +// GL_ARB_texture_swizzle +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 + +// GL_ARB_timer_query +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 + +#endif /* OpenGL 3.3 functionality */ + +/* +** ARB EXTENSIONS +*/ + +// ARB_sampler_object +#ifndef GL_ARB_sampler_object +#define GL_ARB_sampler_object 1 +#define GL_SAMPLER_BINDING 0x8919 +#endif /* ARB_sampler_object */ + +/* +** GL_ARB_color_buffer_float +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_color_buffer_float +#define GL_ARB_color_buffer_float 1 + +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 + +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D + +typedef GLvoid (APIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); + +#endif /* GL_ARB_color_buffer_float */ + +/* +** GL_ARB_depth_texture +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon X2000+ based : Not Supported +** Radeon HD2400+ based : Supported +*/ + +#ifndef GL_ARB_depth_texture +#define GL_ARB_depth_texture 1 + +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B + +#endif /* GL_ARB_depth_texture */ + +/* +** GL_ARB_depth_buffer_float +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 + +#define GL_DEPTH_COMPONENT32F_ARB 0x8CAC +#define GL_DEPTH32F_STENCIL8_ARB 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_ARB 0x8DAD +#define GL_DEPTH_BUFFER_FLOAT_MODE_ARB 0x8CAE + +#endif /* GL_ARB_depth_buffer_float */ + +/* +** GL_ARB_draw_buffers +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_draw_buffers +#define GL_ARB_draw_buffers 1 +// +// requires GL_ARB_fragment_program +// + +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 + +typedef GLvoid (APIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); +#endif /* GL_ARB_draw_buffers */ + +/* +** GL_ARB_fragment_program +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_fragment_program +#define GL_ARB_fragment_program 1 + +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 + +#endif /* GL_ARB_fragment_program */ + +/* +** GL_ARB_fragment_program_shadow +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_fragment_program_shadow +#define GL_ARB_fragment_program_shadow 1 +#endif /* GL_ARB_fragment_program_shadow */ + +/* +** GL_ARB_fragment_shader +** +** Support +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_fragment_shader +#define GL_ARB_fragment_shader 1 + +#define GL_FRAGMENT_SHADER_ARB 0x8B30 + +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 + +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B + +#endif /* GL_ARB_fragment_shader */ + +/* +** GL_ARB_imaging +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_imaging +#define GL_ARB_imaging +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 + +typedef GLvoid (APIENTRY * PFNGLCOLORTABLE)( GLenum,GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef GLvoid (APIENTRY * PFNGLCOLORTABLEPARAMETERFV)( GLenum,GLenum, const GLfloat *); +typedef GLvoid (APIENTRY * PFNGLCOLORTABLEPARAMETERIV)( GLenum,GLenum, const GLint *); +typedef GLvoid (APIENTRY * PFNGLCOPYCOLORTABLE)( GLenum,GLenum, GLint, GLint, GLsizei); +typedef GLvoid (APIENTRY * PFNGLGETCOLORTABLE)( GLenum,GLenum, GLenum, GLvoid *); +typedef GLvoid (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFV)( GLenum,GLenum, GLfloat *); +typedef GLvoid (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIV)( GLenum,GLenum, GLint *); +typedef GLvoid (APIENTRY * PFNGLCOLORSUBTABLE)( GLenum,GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef GLvoid (APIENTRY * PFNGLCOPYCOLORSUBTABLE)( GLenum,GLsizei, GLint, GLint, GLsizei); +typedef GLvoid (APIENTRY * PFNGLCONVOLUTIONFILTER1D)( GLenum,GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef GLvoid (APIENTRY * PFNGLCONVOLUTIONFILTER2D)( GLenum,GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef GLvoid (APIENTRY * PFNGLCONVOLUTIONPARAMETERF)( GLenum,GLenum, GLfloat); +typedef GLvoid (APIENTRY * PFNGLCONVOLUTIONPARAMETERFV)( GLenum,GLenum, const GLfloat *); +typedef GLvoid (APIENTRY * PFNGLCONVOLUTIONPARAMETERI)( GLenum,GLenum, GLint); +typedef GLvoid (APIENTRY * PFNGLCONVOLUTIONPARAMETERIV)( GLenum,GLenum, const GLint *); +typedef GLvoid (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1D)( GLenum,GLenum, GLint, GLint, GLsizei); +typedef GLvoid (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2D)( GLenum,GLenum, GLint, GLint, GLsizei, GLsizei); +typedef GLvoid (APIENTRY * PFNGLGETCONVOLUTIONFILTER)( GLenum,GLenum, GLenum, GLvoid *); +typedef GLvoid (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFV)( GLenum,GLenum, GLfloat *); +typedef GLvoid (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIV)( GLenum,GLenum, GLint *); +typedef GLvoid (APIENTRY * PFNGLGETSEPARABLEFILTER)( GLenum,GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +typedef GLvoid (APIENTRY * PFNGLSEPARABLEFILTER2D)( GLenum,GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +typedef GLvoid (APIENTRY * PFNGLGETHISTOGRAM)( GLenum,GLboolean, GLenum, GLenum, GLvoid *); +typedef GLvoid (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFV)( GLenum,GLenum, GLfloat *); +typedef GLvoid (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIV)( GLenum,GLenum, GLint *); +typedef GLvoid (APIENTRY * PFNGLGETMINMAX)( GLenum,GLboolean, GLenum, GLenum, GLvoid *); +typedef GLvoid (APIENTRY * PFNGLGETMINMAXPARAMETERFV)( GLenum,GLenum, GLfloat *); +typedef GLvoid (APIENTRY * PFNGLGETMINMAXPARAMETERIV)( GLenum,GLenum, GLint *); +typedef GLvoid (APIENTRY * PFNGLHISTOGRAM)( GLenum,GLsizei, GLenum, GLboolean); +typedef GLvoid (APIENTRY * PFNGLMINMAX)( GLenum,GLenum, GLboolean); +typedef GLvoid (APIENTRY * PFNGLRESETHISTOGRAM)( GLenum); +typedef GLvoid (APIENTRY * PFNGLRESETMINMAX)( GLenum); + +#endif /* GL_ARB_imaging */ + +/* +** GL_ARB_matrix_palette +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon X2000+ based : Not Supported +*/ +#ifndef GL_ARB_matrix_palette +#define GL_ARB_matrix_palette 1 + +#define GL_MATRIX_PALETTE_ARB 0x8840 +#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 +#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 +#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 +#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 +#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 +#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 +#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 +#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 +#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 + +typedef GLvoid (APIENTRY * PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); +typedef GLvoid (APIENTRY * PFNGLMATRIXINDEXUBVARBPROC) (GLint size, GLubyte *indices); +typedef GLvoid (APIENTRY * PFNGLMATRIXINDEXUSVARBPROC) (GLint size, GLushort *indices); +typedef GLvoid (APIENTRY * PFNGLMATRIXINDEXUIVARBPROC) (GLint size, GLuint *indices); +typedef GLvoid (APIENTRY * PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); + +#endif /* GL_ARB_matrix_palette */ + +// fixme es11 mod add single precision extension +#ifndef GL_ES11_single_precision +#define GL_ES11_single_precision 1 + +typedef GLvoid (APIENTRY * PFNGLCLEARDEPTHFOES) (GLclampf depth); +typedef GLvoid (APIENTRY * PFNGLCLIPPLANEFOES) (GLenum plane, const GLfloat *equation); +typedef GLvoid (APIENTRY * PFNGLDEPTHRANGEFOES) (GLclampf zNear, GLclampf zFar); +typedef GLvoid (APIENTRY * PFNGLFRUSTUMFOES) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +typedef GLvoid (APIENTRY * PFNGLGETCLIPPLANEFOES) (GLenum plane, GLfloat *equation); +typedef GLvoid (APIENTRY * PFNGLORTHOFOES) (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); + +#endif + +// fixme es11 mod add fixed point +#ifndef GL_ES11_fixed_point +#define GL_ES11_fixed_point 1 + +#ifndef GL_FIXEDPNT_DEFINED +typedef int GLfixed; +typedef int GLclampx; +#define GL_FIXEDPNT_DEFINED +#endif + +typedef GLvoid (APIENTRY * PFNGLALPHAFUNCXOES) (GLenum func, GLclampx ref); +typedef GLvoid (APIENTRY * PFNGLCLEARCOLORXOES) (GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); +typedef GLvoid (APIENTRY * PFNGLCLEARDEPTHXOES) (GLclampx depth); +typedef GLvoid (APIENTRY * PFNGLCLIPPLANEXOES) (GLenum plane, const GLfixed *equation); +typedef GLvoid (APIENTRY * PFNGLCOLOR4XOES) (GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +typedef GLvoid (APIENTRY * PFNGLDEPTHRANGEXOES) (GLclampx zNear, GLclampx zFar); +typedef GLvoid (APIENTRY * PFNGLFOGXOES) (GLenum pname, GLfixed param); +typedef GLvoid (APIENTRY * PFNGLFOGXVOES) (GLenum pname, const GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLFRUSTUMXOES) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +typedef GLvoid (APIENTRY * PFNGLGETCLIPPLANEXOES) (GLenum plane, GLfixed *equation); +typedef GLvoid (APIENTRY * PFNGLGETFIXEDVOES) (GLenum pname, GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLGETLIGHTXVOES) (GLenum light, GLenum pname, GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLGETMATERIALXVOES) (GLenum face, GLenum pname, GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLGETTEXENVXVOES) (GLenum target, GLenum pname, GLfixed* params); +typedef GLvoid (APIENTRY * PFNGLGETTEXPARAMETERXVOES) (GLenum target, GLenum pname, GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLLIGHTMODELXOES) (GLenum pname, GLfixed param); +typedef GLvoid (APIENTRY * PFNGLLIGHTMODELXVOES) (GLenum pname, const GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLLIGHTXOES) (GLenum light, GLenum pname, GLfixed param); +typedef GLvoid (APIENTRY * PFNGLLIGHTXVOES) (GLenum light, GLenum pname, const GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLLINEWIDTHXOES) (GLfixed width); +typedef GLvoid (APIENTRY * PFNGLLOADMATRIXXOES) (const GLfixed * m); +typedef GLvoid (APIENTRY * PFNGLMATERIALXOES) (GLenum face, GLenum pname, GLfixed param); +typedef GLvoid (APIENTRY * PFNGLMATERIALXVOES) (GLenum face, GLenum pname, const GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLMULTMATRIXXOES) (const GLfixed * m); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4XOES) (GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +typedef GLvoid (APIENTRY * PFNGLNORMAL3XOES) (GLfixed nx, GLfixed ny, GLfixed nz); +typedef GLvoid (APIENTRY * PFNGLORTHOXOES) (GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed near, GLfixed far); +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERXOES) (GLenum pname, GLfixed param); +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERXVOES) (GLenum pname, const GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLPOINTSIZEXOES) (GLfixed size); +typedef GLvoid (APIENTRY * PFNGLPOLYGONOFFSETXOES) (GLfixed factor, GLfixed units); +typedef GLvoid (APIENTRY * PFNGLROTATEXOES) (GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +typedef GLvoid (APIENTRY * PFNGLSAMPLECOVERAGEXOES) (GLclampx value, GLboolean invert); +typedef GLvoid (APIENTRY * PFNGLSCALEXOES) (GLfixed x, GLfixed y, GLfixed z); +typedef GLvoid (APIENTRY * PFNGLTEXENVXOES) (GLenum target, GLenum pname, GLfixed param); +typedef GLvoid (APIENTRY * PFNGLTEXENVXVOES) (GLenum target, GLenum pname, const GLfixed * params); +typedef GLvoid (APIENTRY * PFNGLTEXPARAMETERXOES) (GLenum target, GLenum pname, GLfixed param); +typedef GLvoid (APIENTRY * PFNGLTEXPARAMETERXVOES) (GLenum target, GLenum pname, const GLfixed* params); +typedef GLvoid (APIENTRY * PFNGLTRANSLATEXOES) (GLfixed x, GLfixed y, GLfixed z); + +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4BOES) (GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q); + +#endif + +/* +** GL_ARB_multisample +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 + +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 + +typedef GLvoid (APIENTRY * PFNGLSAMPLECOVERAGEARBPROC)(GLclampf value, GLboolean invert); + +#endif /* GL_ARB_multisample */ + +/* +** GL_ARB_multitexture +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#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_TEXTURE_UNITS_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 + +typedef GLvoid (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture); +typedef GLvoid (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum texture, GLdouble s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum texture, GLfloat s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum texture, GLint s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum texture, GLshort s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum texture, GLdouble s, GLdouble t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum texture, GLfloat s, GLfloat t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum texture, GLint s, GLint t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum texture, GLshort s, GLshort t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum texture, GLdouble s, GLdouble t, GLdouble r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum texture, GLint s, GLint t, GLint r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum texture, GLshort s, GLshort t, GLshort r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum texture, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum texture, GLint s, GLint t, GLint r, GLint q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum texture, GLshort s, GLshort t, GLshort r, GLshort q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum texture, const GLshort *v); + +#endif /* GL_ARB_multitexture */ + +/* +** GL_ARB_occlusion_query +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_occlusion_query +#define GL_ARB_occlusion_query 1 + +#define GL_SAMPLES_PASSED_ARB 0x8914 +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 + +typedef GLvoid (APIENTRY * PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint *ids); +typedef GLvoid (APIENTRY * PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRY * PFNGLISQUERYARBPROC)(GLuint id); +typedef GLvoid (APIENTRY * PFNGLBEGINQUERYARBPROC)(GLenum target, GLuint id); +typedef GLvoid (APIENTRY * PFNGLENDQUERYARBPROC)(GLenum target); +typedef GLvoid (APIENTRY * PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLGETQUERYOBJECTIVARBPROC)(GLuint id, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint *params); + +#endif /* GL_ARB_occlusion_query */ + +/* +** GL_ARB_occlusion_query2 +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 + +#define GL_ANY_SAMPLES_PASSED 0x8C2F + +#endif /* GL_ARB_occlusion_query2 */ + +/* +** GL_ARB_pixel_buffer_object +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_pixel_buffer_object +#define GL_ARB_pixel_buffer_object 1 + +#define PIXEL_PACK_BUFFER_ARB 0x88EB +#define PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF + +#endif /* GL_ARB_pixel_buffer_object */ + + +/* +** GL_ARB_point_parameters +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_point_parameters +#define GL_ARB_point_parameters 1 + +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 + +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, GLfloat *params); + +#endif /* GL_ARB_point_parameters */ + +/* +** GL_ARB_point_sprite +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_point_sprite +#define GL_ARB_point_sprite 1 + +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 + +#endif /* GL_ARB_point_sprite */ + +/* +** GL_ARB_shader_objects +** +** Support +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_shader_objects +#define GL_ARB_shader_objects 1 + +#define GL_PROGRAM_OBJECT_ARB 0x8B40 + +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 + +#define GL_SHADER_OBJECT_ARB 0x8B48 + +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 + +#ifndef GL_CHAR_ARB_DEFINED +typedef char GLcharARB; +#define GL_CHAR_ARB_DEFINED +#endif + +#ifndef GL_HANDLE_ARB_DEFINED +typedef unsigned int GLhandleARB; +#define GL_HANDLE_ARB_DEFINED +#endif + +typedef GLvoid (APIENTRY *PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj); +typedef GLhandleARB (APIENTRY *PFNGLGETHANDLEARBPROC)(GLenum pname); +typedef GLvoid (APIENTRY *PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, + GLhandleARB attachedObj); +typedef GLhandleARB (APIENTRY *PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType); +typedef GLvoid (APIENTRY *PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, + GLsizei count, + const GLcharARB **string, + const GLint *length); +typedef GLvoid (APIENTRY *PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj); +typedef GLhandleARB (APIENTRY *PFNGLCREATEPROGRAMOBJECTARBPROC)(void); +typedef GLvoid (APIENTRY *PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, + GLhandleARB obj); +typedef GLvoid (APIENTRY *PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj); +typedef GLvoid (APIENTRY *PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj); +typedef GLvoid (APIENTRY *PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj); +typedef GLvoid (APIENTRY *PFNGLUNIFORM1FARBPROC)(GLint location, + GLfloat v0); +typedef GLvoid (APIENTRY *PFNGLUNIFORM2FARBPROC)(GLint location, + GLfloat v0, + GLfloat v1); +typedef GLvoid (APIENTRY *PFNGLUNIFORM3FARBPROC)(GLint location, + GLfloat v0, + GLfloat v1, + GLfloat v2); +typedef GLvoid (APIENTRY *PFNGLUNIFORM4FARBPROC)(GLint location, + GLfloat v0, + GLfloat v1, + GLfloat v2, + GLfloat v3); +typedef GLvoid (APIENTRY *PFNGLUNIFORM1IARBPROC)(GLint location, + GLint v0); +typedef GLvoid (APIENTRY *PFNGLUNIFORM2IARBPROC)(GLint location, + GLint v0, + GLint v1); +typedef GLvoid (APIENTRY *PFNGLUNIFORM3IARBPROC)(GLint location, + GLint v0, + GLint v1, + GLint v2); +typedef GLvoid (APIENTRY *PFNGLUNIFORM4IARBPROC)(GLint location, + GLint v0, + GLint v1, + GLint v2, + GLint v3); +typedef GLvoid (APIENTRY *PFNGLUNIFORM1FVARBPROC)(GLint location, + GLsizei count, + const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM2FVARBPROC)(GLint location, + GLsizei count, + const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM3FVARBPROC)(GLint location, + GLsizei count, + const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM4FVARBPROC)(GLint location, + GLsizei count, + const GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM1IVARBPROC)(GLint location, + GLsizei count, + const GLint *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM2IVARBPROC)(GLint location, + GLsizei count, + const GLint *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM3IVARBPROC)(GLint location, + GLsizei count, + const GLint *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORM4IVARBPROC)(GLint location, + GLsizei count, + const GLint *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, + GLsizei count, + GLboolean transpose, + GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, + GLsizei count, + GLboolean transpose, + GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, + GLsizei count, + GLboolean transpose, + GLfloat *value); +typedef GLvoid (APIENTRY *PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, + GLenum pname, + GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, + GLenum pname, + GLint *params); +typedef GLvoid (APIENTRY *PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, + GLsizei maxLength, + GLsizei *length, + GLcharARB *infoLog); +typedef GLvoid (APIENTRY *PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj, + GLsizei maxCount, + GLsizei *count, + GLhandleARB *obj); +typedef GLint (APIENTRY *PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, + const GLcharARB *name); +typedef GLvoid (APIENTRY *PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, + GLuint index, + GLsizei maxLength, + GLsizei *length, + GLint *size, + GLenum *type, + GLcharARB *name); +typedef GLvoid (APIENTRY *PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, + GLint location, + GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, + GLint location, + GLint *params); +typedef GLvoid (APIENTRY *PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, + GLsizei maxLength, + GLsizei *length, + GLcharARB *source); + +#endif /* GL_ARB_shader_objects */ + +/* +** GL_ARB_shading_language_100 +** +** Support +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_shading_language_100 +#define GL_ARB_shading_language_100 1 + +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C + +#endif /* GL_ARB_shading_language_100 */ + +/* +** GL_ARB_shadow +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ + +#ifndef GL_ARB_shadow +#define GL_ARB_shadow 1 + +/* +** GL_ARB_shadow +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ + +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0X884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E + +#endif /* GL_ARB_shadow */ + +/* +** GL_ARB_shadow_ambient +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_shadow_ambient +#define GL_ARB_shadow_ambient 1 + +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF + +#endif /* GL_ARB_shadow_ambient */ + +/* +** GL_ARB_texture_border_clamp +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_border_clamp +#define GL_ARB_texture_border_clamp 1 + +#define GL_CLAMP_TO_BORDER_ARB 0x812D + +#endif /* GL_ARB_texture_border_clamp */ + +/* +** GL_ARB_texture_compression +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_compression +#define GL_ARB_texture_compression 1 + +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 + +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLsizei height, GLsizei depth, + GLint border, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLsizei height, GLint border, + GLsizei imageSize, const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level, + GLenum internalFormat, GLsizei width, + GLint border, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (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); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level, + GLint xoffset, GLint yoffset, + GLsizei width, GLsizei height, + GLenum format, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level, + GLint xoffset, GLsizei width, + GLenum format, GLsizei imageSize, + const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod, + GLvoid *img); + + +#endif /* GL_ARB_texture_compression */ + +/* +** GL_ARB_texture_cube_map +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_cube_map +#define GL_ARB_texture_cube_map 1 + +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#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 /* GL_ARB_texture_cube_map */ + +/* +** GL_ARB_texture_env_add +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_env_add +#define GL_ARB_texture_env_add 1 + +#endif /* GL_ARB_texture_env_add */ + +/* +** GL_ARB_texture_env_combine +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ + +#ifndef GL_ARB_texture_env_combine +#define GL_ARB_texture_env_combine 1 + +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#define GL_SUBTRACT_ARB 0x84E7 + +#endif /* GL_ARB_texture_env_combine */ + +/* +** GL_ARB_texture_env_crossbar +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_env_crossbar +#define GL_ARB_texture_env_crossbar 1 + +#endif /* GL_ARB_texture_env_crossbar */ + +/* +** GL_ARB_texture_env_dot3 +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_env_dot3 +#define GL_ARB_texture_env_dot3 1 + +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF + +#endif /* GL_ARB_texture_env_dot3 */ + +/* +** GL_ARB_texture_float +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_float +#define GL_ARB_texture_float 1 + +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 + +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 + +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F + +#endif /* GL_ARB_texture_float */ + +/* +** GL_ARB_texture_mirrored_repeat +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_mirrored_repeat +#define GL_ARB_texture_mirrored_repeat 1 + +#define GL_MIRRORED_REPEAT_ARB 0x8370 + +#endif /* GL_ARB_texture_mirrored_repeat */ + +/* +** GL_ARB_texture_non_power_of_two +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_non_power_of_two +#define GL_ARB_texture_non_power_of_two 1 +#endif /* GL_ARB_texture_non_power_of_two */ + +/* +** GL_ARB_texture_rectangle +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_texture_rectangle +#define GL_ARB_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 + +#endif /* GL_ARB_texture_rectangle */ + + +/* +** GL_ARB_transpose_matrix +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_transpose_matrix +#define GL_ARB_transpose_matrix 1 + +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 + +typedef GLvoid (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat m[16]); +typedef GLvoid (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble m[16]); +typedef GLvoid (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat m[16]); +typedef GLvoid (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble m[16]); + +#endif /* GL_ARB_transpose_matrix */ + +/* +** GL_ARB_vertex_blend +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_vertex_blend +#define GL_ARB_vertex_blend 1 + +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850a +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F + +typedef GLvoid (APIENTRY *PFNGLWEIGHTBVARBPROC)(GLint size, GLbyte *weights); +typedef GLvoid (APIENTRY *PFNGLWEIGHTSVARBPROC)(GLint size, GLshort *weights); +typedef GLvoid (APIENTRY *PFNGLWEIGHTIVARBPROC)(GLint size, GLint *weights); +typedef GLvoid (APIENTRY *PFNGLWEIGHTFVARBPROC)(GLint size, GLfloat *weights); +typedef GLvoid (APIENTRY *PFNGLWEIGHTDVARBPROC)(GLint size, GLdouble *weights); +typedef GLvoid (APIENTRY *PFNGLWEIGHTUBVARBPROC)(GLint size, GLubyte *weights); +typedef GLvoid (APIENTRY *PFNGLWEIGHTUSVARBPROC)(GLint size, GLushort *weights); +typedef GLvoid (APIENTRY *PFNGLWEIGHTUIVARBPROC)(GLint size, GLuint *weights); +typedef GLvoid (APIENTRY *PFNGLWEIGHTPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, GLvoid *pointer); +typedef GLvoid (APIENTRY *PFNGLVERTEXBLENDARBPROC)(GLint count); + +#endif /* GL_ARB_vertex_blend */ + +/* +** GL_ARB_vertex_buffer_object +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_vertex_buffer_object +#define GL_ARB_vertex_buffer_object 1 + +typedef INT_PTR GLintptrARB; +typedef INT_PTR GLsizeiptrARB; + +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_ACCESS_FLAGS_ARB 0x911F +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_LENGTH_ARB 0x9120 +#define GL_BUFFER_MAP_OFFSET_ARB 0x9121 +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD + +typedef GLvoid (APIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); +typedef GLvoid (APIENTRY * PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); +typedef GLvoid (APIENTRY * PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRY * PFNGLISBUFFERARBPROC) (GLuint buffer); +typedef GLvoid (APIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +typedef GLvoid (APIENTRY * PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +typedef GLvoid (APIENTRY * PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +typedef GLvoid * (APIENTRY * PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRY * PFNGLUNMAPBUFFERARBPROC) (GLenum target); +typedef GLvoid (APIENTRY * PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid **params); + +#endif /* GL_ARB_vertex_buffer_object*/ + +/* +** GL_ARB_vertex_program +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_vertex_program +#define GL_ARB_vertex_program 1 + +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_COLOR_SUM_ARB 0x8458 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF + +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint *v); +typedef GLvoid (APIENTRY *PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type, + GLboolean normalized, GLsizei stride, + const GLvoid *pointer); +typedef GLvoid (APIENTRY *PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); +typedef GLvoid (APIENTRY *PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index); +typedef GLvoid (APIENTRY *PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef GLvoid (APIENTRY *PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program); +typedef GLvoid (APIENTRY *PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint *programs); +typedef GLvoid (APIENTRY *PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint *programs); +typedef GLvoid (APIENTRY *PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef GLvoid (APIENTRY *PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef GLvoid (APIENTRY *PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params); +typedef GLvoid (APIENTRY *PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef GLvoid (APIENTRY *PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef GLvoid (APIENTRY *PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params); +typedef GLvoid (APIENTRY *PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params); +typedef GLvoid (APIENTRY *PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params); +typedef GLvoid (APIENTRY *PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY *PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, GLvoid *string); +typedef GLvoid (APIENTRY *PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble *params); +typedef GLvoid (APIENTRY *PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY *PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, GLvoid **pointer); +typedef GLboolean (APIENTRY *PFNGLISPROGRAMARBPROC)(GLuint program); + +#endif /* GL_ARB_vertex_program */ + +/* +** GL_ARB_vertex_shader +** +** Support +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_vertex_shader +#define GL_ARB_vertex_shader 1 + +#define GL_VERTEX_SHADER_ARB 0x8B31 + +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D + +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A + + + +typedef GLvoid (APIENTRY *PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, + GLuint index, + const GLcharARB *name); +typedef GLvoid (APIENTRY *PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, + GLuint index, + GLsizei maxLength, + GLsizei *length, + GLint *size, + GLenum *type, + GLcharARB *name); +typedef GLint (APIENTRY *PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, + const GLcharARB *name); + +#endif /* GL_ARB_vertex_shader */ + +/* +** GL_ARB_window_pos +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ARB_window_pos +#define GL_ARB_window_pos 1 + +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2DARBPROC) (double x, double y); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2FARBPROC) (float x, float y); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2IARBPROC) (int x, int y); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2SARBPROC) (short x, short y); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2IVARBPROC) (const int *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2SVARBPROC) (const short *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2FVARBPROC) (const float *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS2DVARBPROC) (const double *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3IARBPROC) (int x, int y, int z); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3SARBPROC) (short x, short y, short z); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3FARBPROC) (float x, float y, float z); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3DARBPROC) (double x, double y, double z); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3IVARBPROC) (const int *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const short *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3FVARBPROC) (const float *p); +typedef GLvoid (APIENTRY * PFNGLWINDOWPOS3DVARBPROC) (const double *p); + +#endif /* GL_ARB_window_pos */ + +/* +** GL_ARB_draw_instanced +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon HD2000+ based : Supported +** Radeon HD3000+ based : Supported +** Radeon HD4000+ based : Supported +*/ + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 + +typedef GLvoid (APIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef GLvoid (APIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); + +#endif + +/* +** GL_ARB_instanced_arrays +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon HD2000+ based : Supported +** Radeon HD3000+ based : Supported +** Radeon HD4000+ based : Supported +*/ + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE + +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC)(GLuint index, GLuint divisor); + +#endif + +/* +** GL_ARB_texture_buffer_object +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon HD2000+ based : Supported +** Radeon HD3000+ based : Supported +** Radeon HD4000+ based : Supported +*/ + +#ifndef GL_ARB_texture_buffer_object +#define GL_ARB_texture_buffer_object 1 + +#define GL_TEXTURE_BUFFER_ARB 0x8C2A + +#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E + +typedef GLvoid (APIENTRY * PFNGLTEXBUFFERARBPROC)(GLenum target, GLenum internalformat, GLuint buffer); + +#endif + + +/* +** GL_ARB_uniform_buffer_object +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon HD2000+ based : Supported +** Radeon HD3000+ based : Supported +** Radeon HD4000+ based : Supported +*/ + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 + +#define GL_UNIFORM_BUFFER_ARB 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING_ARB 0x8A28 +#define GL_UNIFORM_BUFFER_START_ARB 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE_ARB 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS_ARB 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_ARB 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS_ARB 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS_ARB 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS_ARB 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE_ARB 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS_ARB 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT_ARB 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH_ARB 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS_ARB 0x8A36 +#define GL_UNIFORM_TYPE_ARB 0x8A37 +#define GL_UNIFORM_SIZE_ARB 0x8A38 +#define GL_UNIFORM_NAME_LENGTH_ARB 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX_ARB 0x8A3A +#define GL_UNIFORM_OFFSET_ARB 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE_ARB 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE_ARB 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR_ARB 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING_ARB 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE_ARB 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH_ARB 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS_ARB 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES_ARB 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER_ARB 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER_ARB 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER_ARB 0x8A46 +#define GL_INVALID_INDEX_ARB 0xFFFFFFFFu + +typedef GLvoid (APIENTRY * PFNGETUNIFORMINDICESARBPROC)(GLuint program, GLsizei uniformCount, const GLchar** uniformNames, GLuint* uniformIndices); +typedef GLvoid (APIENTRY * PFNGETACTIVEUNIFORMSIVARBPROC)(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); +typedef GLvoid (APIENTRY * PFNGETACTIVEUNIFORMNAMEARBPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName); +typedef GLuint (APIENTRY * PFNGETUNIFORMBLOCKINDEXARBPROC)(GLuint program, const GLchar* uniformBlockName); +typedef GLvoid (APIENTRY * PFNGETACTIVEUNIFORMBLOCKIVARBPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); +typedef GLvoid (APIENTRY * PFNGETACTIVEUNIFORMBLOCKNAMEARBPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); +typedef GLvoid (APIENTRY * PFNUNIFORMBLOCKBINDINGARBPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + +#endif + +/* +** ATI EXTENSIONS +*/ + +/* +** GL_ATI_draw_buffers +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_draw_buffers +#define GL_ATI_draw_buffers 1 + +#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 +#define GL_DRAW_BUFFER0_ATI 0x8825 +#define GL_DRAW_BUFFER1_ATI 0x8826 +#define GL_DRAW_BUFFER2_ATI 0x8827 +#define GL_DRAW_BUFFER3_ATI 0x8828 +#define GL_DRAW_BUFFER4_ATI 0x8829 +#define GL_DRAW_BUFFER5_ATI 0x882A +#define GL_DRAW_BUFFER6_ATI 0x882B +#define GL_DRAW_BUFFER7_ATI 0x882C +#define GL_DRAW_BUFFER8_ATI 0x882D +#define GL_DRAW_BUFFER9_ATI 0x882E +#define GL_DRAW_BUFFER10_ATI 0x882F +#define GL_DRAW_BUFFER11_ATI 0x8830 +#define GL_DRAW_BUFFER12_ATI 0x8831 +#define GL_DRAW_BUFFER13_ATI 0x8832 +#define GL_DRAW_BUFFER14_ATI 0x8833 +#define GL_DRAW_BUFFER15_ATI 0x8834 + +typedef GLvoid (APIENTRY * PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); +#endif + +/* +** GL_ATI_element_array +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_element_array +#define GL_ATI_element_array 1 + +#define GL_ELEMENT_ARRAY_ATI 0x8768 + +#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 +#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A + +typedef GLvoid (APIENTRY * PFNGLELEMENTPOINTERATIPROC)(GLenum type, const GLvoid *pointer); +typedef GLvoid (APIENTRY * PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count); +typedef GLvoid (APIENTRY * PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count); + +#endif /* GL_ATI_element_array */ + +/* +** GL_ATI_envmap_bumpmap +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_envmap_bumpmap +#define GL_ATI_envmap_bumpmap 1 + +#define GL_BUMP_ROT_MATRIX_ATI 0x8775 +#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 +#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 +#define GL_BUMP_TEX_UNITS_ATI 0x8778 +#define GL_DUDV_ATI 0x8779 +#define GL_DU8DV8_ATI 0x877A +#define GL_BUMP_ENVMAP_ATI 0x877B +#define GL_BUMP_TARGET_ATI 0x877C + +typedef GLvoid (APIENTRY * PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef GLvoid (APIENTRY * PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); +typedef GLvoid (APIENTRY * PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); +typedef GLvoid (APIENTRY * PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); + +#endif /* GL_ATI_envmap_bumpmap */ + +/* +** GL_ATI_fragment_shader +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#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 + +typedef GLuint (APIENTRY *PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range); +typedef GLvoid (APIENTRY *PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id); +typedef GLvoid (APIENTRY *PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id); +typedef GLvoid (APIENTRY *PFNGLBEGINFRAGMENTSHADERATIPROC)(void); +typedef GLvoid (APIENTRY *PFNGLENDFRAGMENTSHADERATIPROC)(void); +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); + +#endif /* GL_ATI_fragment_shader */ + +/* +** GL_ATI_map_object_buffer +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_map_object_buffer +#define GL_ATI_map_object_buffer 1 + +typedef GLvoid *(APIENTRY * PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer); +typedef GLvoid (APIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC)(GLuint buffer); + +#endif /* GL_ATI_map_object_buffer */ + +/* +** GL_ATI_pn_triangles +** +** Support +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon X2000+ based : Not Supported +*/ +#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 + +typedef GLvoid (APIENTRY *PFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param); +typedef GLvoid (APIENTRY *PFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param); + +#endif /* GL_ATI_pn_triangles */ + +/* +** GL_ATI_separate_stencil +** +** Support +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_separate_stencil +#define GL_ATI_separate_stencil 1 + +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 + +typedef GLvoid (APIENTRY *PFNGLSTENCILOPSEPARATEATIPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef GLvoid (APIENTRY *PFNGLSTENCILFUNCSEPARATEATIPROC)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); + +#endif /* GL_ATI_separate_stencil */ + +/* +** GL_ATI_shader_texture_lod +** +** Support +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ + +#ifndef GL_ATI_shader_texture_lod +#define GL_ATI_shader_texture_lod 1 +#endif /* GL_ATI_shader_texture_lod */ + +/* +** GL_ATI_texture_compression_3dc +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_texture_compression_3dc +#define GL_ATI_texture_compression_3dc 1 + +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 + +#endif /* GL_ATI_texture_compression_3dc */ + +/* +** GL_ATI_texture_float +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_texture_float +#define GL_ATI_texture_float 1 + +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif /* GL_ATI_texture_float */ + +/* +** GL_ATI_texture_mirror_once +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 + +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 + +#endif /* GL_ATI_texture_mirror_once */ + +/* +** GL_ATI_vertex_array_object +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_vertex_array_object +#define GL_ATI_vertex_array_object 1 + +#define GL_STATIC_ATI 0x8760 +#define GL_DYNAMIC_ATI 0x8761 +#define GL_PRESERVE_ATI 0x8762 +#define GL_DISCARD_ATI 0x8763 + +#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 +#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 +#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 +#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 + +typedef GLuint (APIENTRY * PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const GLvoid *pointer, GLenum usage); +typedef GLboolean (APIENTRY * PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer); +typedef GLvoid (APIENTRY * PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset, GLsizei size, + const GLvoid *pointer, GLenum preserve); +typedef GLvoid (APIENTRY * PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname, GLfloat *params); +typedef GLvoid (APIENTRY * PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer); +typedef GLvoid (APIENTRY * PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type, + GLsizei stride, GLuint buffer, GLuint offset); +typedef GLvoid (APIENTRY * PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname, GLfloat *params); +typedef GLvoid (APIENTRY * PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, + GLsizei stride, GLuint buffer, GLuint offset); +typedef GLvoid (APIENTRY * PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname, GLfloat *params); +typedef GLvoid (APIENTRY * PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname, GLint *params); +#endif /* GL_ATI_vertex_array_object */ + +/* +** GL_ATI_vertex_attrib_array_object +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_vertex_attrib_array_object +#define GL_ATI_vertex_attrib_array_object 1 + +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)(GLuint index, GLint size, GLenum type, + GLboolean normalized, GLsizei stride, + GLuint buffer, GLuint offset); +typedef GLvoid (APIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)(GLuint index, GLenum pname, + GLfloat *params); +typedef GLvoid (APIENTRY * PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)(GLuint index, GLenum pname, + GLint *params); + +#endif /* GL_ATI_vertex_attrib_array_object */ + +/* +** GL_ATI_vertex_streams +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_vertex_streams +#define GL_ATI_vertex_streams 1 + +#define GL_MAX_VERTEX_STREAMS_ATI 0x876B +#define GL_VERTEX_SOURCE_ATI 0x876C +#define GL_VERTEX_STREAM0_ATI 0x876D +#define GL_VERTEX_STREAM1_ATI 0x876E +#define GL_VERTEX_STREAM2_ATI 0x876F +#define GL_VERTEX_STREAM3_ATI 0x8770 +#define GL_VERTEX_STREAM4_ATI 0x8771 +#define GL_VERTEX_STREAM5_ATI 0x8772 +#define GL_VERTEX_STREAM6_ATI 0x8773 +#define GL_VERTEX_STREAM7_ATI 0x8774 + +typedef GLvoid (APIENTRY * PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); +typedef GLvoid (APIENTRY * PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); +typedef GLvoid (APIENTRY * PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef GLvoid (APIENTRY * PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte x, GLbyte y, GLbyte z); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *v); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); +typedef GLvoid (APIENTRY * PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *v); + +#endif /* GL_ATI_vertex_streams */ + +/* +** GL_ATI_visibility_query +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATI_visibility_query +#define GL_ATI_visibility_query 1 + +#define GL_MAX_VISIBILITY_QUERY_IDS_ATI 0x8836 + +typedef GLvoid (APIENTRY * PFNGLGENVISIBILITYQUERIESATIPROC)(GLsizei n, GLuint *ids); +typedef GLvoid (APIENTRY * PFNGLDELETEVISIBILITYQUERIESATIPROC)(GLsizei n, const GLuint *ids); +typedef GLvoid (APIENTRY * PFNGLBEGINDEFINEVISIBILITYQUERYATIPROC)(GLuint id); +typedef GLvoid (APIENTRY * PFNGLENDDEFINEVISIBILITYQUERYATIPROC)(void); +typedef GLvoid (APIENTRY * PFNGLBEGINUSEVISIBILITYQUERYATIPROC)(GLuint id); +typedef GLvoid (APIENTRY * PFNGLENDUSEVISIBILITYQUERYATIPROC)(void); + +#endif /* GL_ATI_visibility_query */ + +/* +** ATIX EXTENSIONS +*/ + +/* +** GL_ATI_texture_env_combine3 +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATIX_texture_env_combine3 +#define GL_ATIX_texture_env_combine3 + +#define GL_MODULATE_ADD_ATIX 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATIX 0x8745 +#define GL_MODULATE_SUBTRACT_ATIX 0x8746 + +#endif /* GL_ATIX_texture_env_combine3 */ + +#ifndef GL_ATI_texture_env_combine3 +#define GL_ATI_texture_env_combine3 + +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 + +#endif /* GL_ATI_texture_env_combine3 */ + +/* +** GL_ATIX_texture_env_route +** +** Support +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATIX_texture_env_route +#define GL_ATIX_texture_env_route 1 + +#define GL_SECONDARY_COLOR_ATIX 0x8747 +#define GL_TEXTURE_OUTPUT_RGB_ATIX 0x8748 +#define GL_TEXTURE_OUTPUT_ALPHA_ATIX 0x8749 + +#endif /* GL_ATIX_texture_env_route */ + +/* +** GL_ATIX_vertex_shader_output_point_size +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_ATIX_vertex_shader_output_point_size +#define GL_ATIX_vertex_shader_output_point_size 1 + +#define GL_OUTPUT_POINT_SIZE_ATIX 0x610E + +#endif /* GL_ATIX_vertex_shader_output_point_size */ + +/* +** EXT EXTENSIONS +*/ +/* +** GL_EXT_abgr +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_abgr +#define GL_EXT_abgr 1 + +#define GL_ABGR_EXT 0x8000 + +#endif /* GL_EXT_abgr */ + + +/* +** GL_EXT_bgra +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_bgra +#define GL_EXT_bgra 1 + +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 + +#endif /* GL_EXT_bgra */ + +/* +** GL_EXT_blend_color +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_blend_color +#define GL_EXT_blend_color 1 + +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 + +typedef GLvoid (APIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + +#endif /* GL_EXT_blend_color */ + +/* +** GL_EXT_blend_func_separate +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ + +#ifndef GL_EXT_blend_func_separate +#define GL_EXT_blend_func_separate 1 + +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB + +typedef GLvoid (APIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif /* GL_EXT_blend_func_separate */ + +/* +** GL_EXT_blend_minmax +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_blend_minmax +#define GL_EXT_blend_minmax 1 + +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 + +typedef GLvoid (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); + +#endif /* GL_EXT_blend_minmax */ + +/* +** GL_EXT_blend_subtract +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_blend_subtract +#define GL_EXT_blend_subtract 1 + +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B + +#endif /* GL_EXT_blend_subtract */ + +/* +** GL_EXT_clip_volume_hint +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_clip_volume_hint +#define GL_EXT_clip_volume_hint 1 + +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 + +#endif /* GL_EXT_clip_volume_hint */ + +/* +** GL_EXT_compiled_vertex_array +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_compiled_vertex_array +#define GL_EXT_compiled_vertex_array 1 + +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 + +typedef GLvoid (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); +typedef GLvoid (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); + +#endif /* GL_EXT_compiled_vertex_array */ + +/* +** GL_EXT_direct_state_access +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_direct_state_access +#define GL_EXT_direct_state_access 1 + +#define GL_PROGRAM_MATRIX_EXT 0x8E2D +#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E +#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F + +#endif /* GL_EXT_direct_state_access */ + +/* +** GL_EXT_draw_range_elements +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_draw_range_elements +#define GL_EXT_draw_range_elements 1 + +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 + +typedef GLvoid (APIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, + GLuint end, GLsizei count, + GLenum type, const GLvoid *indices); + +#endif /* GL_EXT_draw_range_elements */ + +/* +** GL_EXT_fog_coord +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_fog_coord +#define GL_EXT_fog_coord 1 + +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 + +typedef GLvoid (APIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat f); +typedef GLvoid (APIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble f); +typedef GLvoid (APIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, GLvoid *pointer); + +#endif /* GL_EXT_fog_coord */ + +/* +** GL_EXT_framebuffer_object +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_framebuffer_object +#define GL_EXT_framebuffer_object 1 + +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_FRAMEBUFFER_STATUS_ERROR_EXT 0x8CDE +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 + +typedef GLboolean (APIENTRY * PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer); +typedef GLvoid (APIENTRY * PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer); +typedef GLvoid (APIENTRY * PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint *renderbuffers); +typedef GLvoid (APIENTRY * PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint *renderbuffers); +typedef GLvoid (APIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, + GLsizei width, GLsizei height); +typedef GLvoid (APIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint* params); +typedef GLboolean (APIENTRY * PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer); +typedef GLvoid (APIENTRY * PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer); +typedef GLvoid (APIENTRY * PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers); +typedef GLvoid (APIENTRY * PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target); +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, GLint level); +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, GLint level); +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, + GLenum textarget, GLuint texture, + GLint level, GLint zoffset); +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, + GLenum renderbuffertarget, GLuint renderbuffer); +typedef GLvoid (APIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, + GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLGENERATEMIPMAPEXTPROC)(GLenum target); + +#endif /* GL_EXT_framebuffer_object */ + +/* +** GL_EXT_framebuffer_sRGB +** +** Support: +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_framebuffer_sRGB +#define GL_EXT_framebuffer_sRGB 1 + +#define GL_FRAMEBUFFER_SRGB_EXT 0X8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0X8DBA + +#endif /* GL_EXT_framebuffer_sRGB */ + + +/* +** GL_EXT_gpu_shader4 +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_gpu_shader4 +#define GL_EXT_gpu_shader4 1 + +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 + +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI1IEXT) (GLuint index, GLint x); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI2IEXT) (GLuint index, GLint x, GLint y); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI3IEXT) (GLuint index, GLint x, GLint y, GLint z); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4IEXT) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI1UIEXT) (GLuint index, GLuint x); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI2UIEXT) (GLuint index, GLuint x, GLuint y); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI3UIEXT) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4UIEXT) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI1IVEXT) (GLuint index, const GLint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI2IVEXT) (GLuint index, const GLint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI3IVEXT) (GLuint index, const GLint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4IVEXT) (GLuint index, const GLint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI1UIVEXT) (GLuint index, const GLuint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI2UIVEXT) (GLuint index, const GLuint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI3UIVEXT) (GLuint index, const GLuint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4UIVEXT) (GLuint index, const GLuint* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4BVEXT) (GLuint index, const GLbyte* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4SVEXT) (GLuint index, const GLshort* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4UBVEXT) (GLuint index, const GLubyte* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBI4USVEXT) (GLuint index, const GLushort* v); +typedef GLvoid (APIENTRY * PFNGLVERTEXATTRIBIPOINTEREXT) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer); +typedef GLvoid (APIENTRY * PFNGLGETVERTEXATTRIBIIVEXT) (GLuint index, GLenum pname, GLint* params); +typedef GLvoid (APIENTRY * PFNGLGETVERTEXATTRIBIUIVEXT) (GLuint index, GLenum pname, GLuint* params); +typedef GLvoid (APIENTRY * PFNGLUNIFORM1UIEXT) (GLint location, GLuint v0); +typedef GLvoid (APIENTRY * PFNGLUNIFORM2UIEXT) (GLint location, GLuint v0, GLuint v1); +typedef GLvoid (APIENTRY * PFNGLUNIFORM3UIEXT) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef GLvoid (APIENTRY * PFNGLUNIFORM4UIEXT) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef GLvoid (APIENTRY * PFNGLUNIFORM1UIVEXT) (GLint location, GLsizei count, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLUNIFORM2UIVEXT) (GLint location, GLsizei count, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLUNIFORM3UIVEXT) (GLint location, GLsizei count, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLUNIFORM4UIVEXT) (GLint location, GLsizei count, const GLuint* value); +typedef GLvoid (APIENTRY * PFNGLGETUNIFORMUIVEXT) (GLuint program, GLint location, GLuint* params); +typedef GLvoid (APIENTRY * PFNGLBINDFRAGDATALOCATIONEXT) (GLuint program, GLuint colorNumber, const GLchar* name); +typedef GLvoid (APIENTRY * PFNGLGETFRAGDATALOCATIONEXT) (GLuint program, const GLchar* name); +#endif /* GL_EXT_gpu_shader4 */ + + +/* +** GL_EXT_multi_draw_arrays +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_multi_draw_arrays +#define GL_EXT_multi_draw_arrays 1 + +typedef GLvoid (APIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef GLvoid (APIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); + +#endif /* GL_EXT_multi_draw_arrays */ + +/* +** GL_EXT_packed_pixels +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_packed_pixels +#define GL_EXT_packed_pixels 1 + +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 + +#endif /* GL_EXT_packed_pixels */ + +/* +** GL_EXT_point_parameters +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_point_parameters +#define GL_EXT_point_parameters 1 + +#define GL_POINT_SIZE_MIN_EXT 0x8126 +#define GL_POINT_SIZE_MAX_EXT 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 +#define GL_DISTANCE_ATTENUATION_EXT 0x8129 + +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); +typedef GLvoid (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); + +#endif /* GL_EXT_point_parameters */ + +/* +** GL_EXT_polygon_offset +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_polygon_offset +#define GL_EXT_polygon_offset 1 + +#define GL_POLYGON_OFFSET_EXT GL_POLYGON_OFFSET_FILL +#define GL_POLYGON_OFFSET_FACTOR_EXT GL_POLYGON_OFFSET_FACTOR +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 + +#endif /* GL_EXT_polygon_offset */ + +/* +** GL_EXT_rescale_normal +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_rescale_normal +#define GL_EXT_rescale_normal 1 + +#define GL_RESCALE_NORMAL_EXT 0x803A + +#endif /* GL_EXT_rescale_normal */ + +/* +** GL_EXT_secondary_color +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_secondary_color +#define GL_EXT_secondary_color 1 + +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E + +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat r, GLfloat g, GLfloat b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble r, GLdouble g, GLdouble b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte r, GLbyte g, GLbyte b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort r, GLshort g, GLshort b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3IEXTPROC) (GLint r, GLint g, GLint b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3UBEXTPROC)(GLubyte r, GLubyte g, GLubyte b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC)(GLushort r, GLushort g, GLushort b); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC)(GLuint r, GLuint g, GLuint b); + +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3UBVEXTPROC)(const GLubyte *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC)(const GLushort *v); +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC)(const GLuint *v); + +typedef GLvoid (APIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLvoid *pointer); + +#endif /* GL_EXT_secondary_color */ + +/* +** GL_EXT_separate_specular_color +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_separate_specular_color +#define GL_EXT_separate_specular_color 1 + +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA + +#endif /* GL_EXT_separate_specular_color */ + +/* +** GL_EXT_shadow_funcs +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_shadow_funcs +#define GL_EXT_shadow_funcs 1 +#endif /* GL_EXT_shadow_funcs */ + +/* +** GL_EXT_stencil_wrap +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_stencil_wrap +#define GL_EXT_stencil_wrap 1 + +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 + +#endif /* GL_EXT_stencil_wrap */ + +/* +** GL_EXT_texgen_reflection +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texgen_reflection +#define GL_EXT_texgen_reflection 1 + +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 + +#endif /* GL_EXT_texgen_reflection */ + +/* +** GL_EXT_texture3D +** +** Support: +** Rage 128 based : Supported (software) +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture3D +#define GL_EXT_texture3D 1 + +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 + + +typedef GLvoid (APIENTRY * PFNGLTEXIMAGE3DEXTPROC)(GLenum target, GLint level, GLenum internalformat, + GLsizei width, GLsizei height, GLsizei depth, + GLint border, GLenum format, GLenum type, + const GLvoid* pixels); + +#endif /* GL_EXT_texture3D */ + +/* +** GL_EXT_texture_compression_s3tc +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 + +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 + +#endif /* GL_EXT_texture_compression_s3tc */ + +/* +** GL_EXT_texture_cube_map +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_cube_map +#define GL_EXT_texture_cube_map 1 + +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C + +#endif /* GL_EXT_texture_cube_map */ + +/* +** GL_EXT_texture_edge_clamp +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_edge_clamp +#define GL_EXT_texture_edge_clamp 1 + +#define GL_CLAMP_TO_EDGE_EXT 0x812F + +#endif /* GL_EXT_texture_edge_clamp */ + +/* +** GL_EXT_texture_env_add +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_env_add +#define GL_EXT_texture_env_add 1 + +#endif /* GL_EXT_texture_env_add */ + +/* +** GL_EXT_texture_env_combine +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_env_combine +#define GL_EXT_texture_env_combine 1 + +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 + +#endif /* GL_EXT_texture_env_combine */ + +/* +** GL_EXT_texture_env_dot3 +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_env_dot3 +#define GL_EXT_texture_env_dot3 1 + +#define GL_DOT3_RGB_EXT 0x8740 +#define GL_DOT3_RGBA_EXT 0x8741 + +#endif /* GL_EXT_texture_env_dot3 */ + +/* +** GL_EXT_texture_filter_anisotropic +** +** Support: +** +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 + +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF + +#endif /* GL_EXT_texture_filter_anisotropic */ + +/* +** GL_EXT_texture_lod_bias +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_lod_bias +#define GL_EXT_texture_lod_bias 1 + +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD + +#endif /* GL_EXT_texture_lod_bias */ + +/* +** GL_EXT_texture_mirror_clamp +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 + +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 + +#endif /* GL_EXT_texture_mirror_clamp */ + +/* +** GL_EXT_texture_object +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_object +#define GL_EXT_texture_object 1 + +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A + +typedef GLvoid (APIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); +typedef GLvoid (APIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); +typedef GLvoid (APIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); +typedef GLvoid (APIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +typedef GLboolean (APIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef GLboolean (APIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture); + +#endif /* GL_EXT_texture_object */ + +/* +** GL_EXT_texture_rectangle +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_rectangle +#define GL_EXT_texture_rectangle 1 + +#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 + +#endif /* GL_EXT_texture_rectangle */ + +/* +** GL_EXT_vertex_array +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_vertex_array +#define GL_EXT_vertex_array 1 + +#ifndef ENUMS_GL_EXT_vertex_array +#define ENUMS_GL_EXT_vertex_array +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +#endif // ENUMS_GL_EXT_vertex_array + +typedef GLvoid (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); +typedef GLvoid (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef GLvoid (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); +typedef GLvoid (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); +typedef GLvoid (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); +typedef GLvoid (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef GLvoid (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef GLvoid (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); +typedef GLvoid (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); + +#endif /* GL_EXT_vertex_array */ + +/* +** GL_EXT_vertex_shader +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#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_LOCAL_CONSTANTS_EXT 0x87CC +#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_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 + +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); + +#endif /* GL_EXT_vertex_shader */ + +/* +** GL_EXT_bindable_uniform +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_bindable_uniform +#define GL_EXT_bindable_uniform 1 + +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +#define GL_UNIFORM_BUFFER_EXT 0x8DEE + +typedef GLvoid (APIENTRY * PFNGLUNIFORMBUFFEREXT) (GLuint program, GLint location, GLuint buffer); +typedef GLint (APIENTRY * PFNGLGETUNIFORMBUFFERSIZEEXT)(GLuint program, GLint location); +typedef GLintptr (APIENTRY * PFNGLGETUNIFORMOFFSETEXT)(GLuint program, GLint location); + +#endif /* GL_EXT_bindable_uniform */ + +/* +** GL_EXT_texture_integer +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ + +#ifndef GL_EXT_texture_integer +#define GL_EXT_texture_integer 1 + +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B + +typedef GLvoid (APIENTRY * PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint* params); +typedef GLvoid (APIENTRY * PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint* params); +typedef GLvoid (APIENTRY * PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLvoid (APIENTRY * PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint* params); +typedef GLvoid (APIENTRY * PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); +typedef GLvoid (APIENTRY * PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); + +#endif /* GL_EXT_texture_integer */ + +/* +** GL_EXT_texture_array +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ + +#ifndef GL_EXT_texture_array +#define GL_EXT_texture_array 1 + +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 + + +typedef GLvoid (APIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)(GLenum target, GLenum attachment, + GLuint texture, + GLint level, GLint layer); + +#endif /* GL_ARB_texture_array */ + + +/* +** GL_EXT_texture_swizzle +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_EXT_texture_swizzle +#define GL_EXT_texture_swizzle 1 +#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 +#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 +#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 +#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 + +#endif /* GL_EXT_texture_swizzle */ + + + +/* +** GL_ARB_texture_cube_map_array +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon HD2000+ based : Not Supported +** Radeon HD3000+ based : Supported +** Radeon HD4000+ based : Supported +*/ +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F +#endif /* GL_ARB_texture_cube_map_array */ + +/* +** GL_EXT_texture_buffer_object +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon HD2000+ based : Supported +** Radeon HD3000+ based : Supported +** Radeon HD4000+ based : Supported +*/ + + +#ifndef GL_EXT_texture_buffer_object +#define GL_EXT_texture_buffer_object 1 + +#define GL_TEXTURE_BUFFER_EXT 0x8C2A + +#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D +#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E + +typedef GLvoid (APIENTRY * PFNGLTEXBUFFEREXTPROC)(GLenum target, GLenum internalformat, GLuint buffer); + +#endif + +/* +** GL_EXT_copy_buffer +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Not Supported +** Radeon 9500+ based : Not Supported +** Radeon X800+ based : Not Supported +** Radeon X1000+ based : Not Supported +** Radeon HD2000+ based : Supported +** Radeon HD3000+ based : Supported +** Radeon HD4000+ based : Supported +*/ +#ifndef GL_EXT_copy_buffer +#define GL_EXT_copy_buffer 1 + +#define GL_COPY_READ_BUFFER_EXT 0x8F36 +#define GL_COPY_WRITE_BUFFER_EXT 0x8F37 + +typedef GLvoid (APIENTRY * PFNGLCOPYBUFFERSUBDATAEXTPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); + +#endif /* GL_EXT_copy_buffer */ + +// GL_NV_explicit_multisample +#define GL_SAMPLE_POSITION_NV 0x8E50 +#define GL_SAMPLE_MASK_NV 0x8E51 +#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 +#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 +#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 +#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 +#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 +#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 +#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 +#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 + +typedef GLvoid (APIENTRY * PFNGLSAMPLEMASKINDEXEDPROC) (GLuint index, GLbitfield value); +typedef GLvoid (APIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); +typedef GLvoid (APIENTRY * PFNGLTEXRENDERBUFFERPROC) (GLenum target, GLuint buffer); + +// GL_ARB_texture_multisample +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0X9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D + +typedef GLvoid (APIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield value); +typedef GLvoid (APIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, + GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef GLvoid (APIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, + GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + +// GL_EXT_timer_query +#define GL_TIME_ELAPSED_EXT 0x88BF + +/* +** IHV EXTENSIONS +*/ + +/* +** AMD_name_gen_delete +** +** Support: All HW supported +*/ +#ifndef AMD_name_gen_delete +#define AMD_name_gen_delete 1 + +#define GL_DATA_BUFFER_AMD 0x9151 +#define GL_PERFORMANCE_MONITOR_AMD 0x9152 +#define GL_QUERY_OBJECT_AMD 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 +#define GL_SAMPLER_OBJECT_AMD 0x9155 + +#endif /* AMD_name_gen_delete */ + +/* +** AMD_debug_output +** +** Support: All HW supported +*/ + +#ifndef GL_AMD_debug_output +#define GL_AMD_debug_output 1 + +#define GL_DEBUG_FILTER_CATEGORY_AMD 0x9140 +#define GL_DEBUG_FILTER_SEVERITY_AMD 0x9141 +#define GL_DEBUG_FILTER_ID_AMD 0x9142 + +#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 + +#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 +#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 + +#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 +#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A +#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B +#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C +#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D +#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E +#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F +#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 + +typedef GLvoid (APIENTRY * GLDEBUGPROCAMD)(GLuint id, + GLenum category, + GLenum severity, + GLsizei length, + const GLchar* message, + GLvoid* userParam); + +typedef GLvoid (APIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, + GLenum severity, + GLsizei count, + const GLuint* ids, + GLboolean enabled); + +typedef GLvoid (APIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, + GLenum severity, + GLuint id, + GLsizei length, + const GLchar* buf); + +typedef GLvoid (APIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLvoid* param, GLvoid* userParam); + +typedef GLuint (APIENTRY * PFNGETDEBUGMESSAGELOGAMDPROC)(GLuint count, + GLsizei bufsize, + GLenum* categories, + GLuint* severities, + GLuint* ids, + GLsizei* lengths, + GLchar* message); + +#endif + +#ifndef GL_AMD_sample_positions +#define GL_AMD_sample_positions + +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F + +#endif //GL_AMD_sample_positions + +/* +** HP_occlusion_test +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_HP_occlusion_test +#define GL_HP_occlusion_test 1 + +#define GL_OCCLUSION_TEST_HP 0x8165 +#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 + +#endif /* HP_occlusion_test */ + +/* +** GL_NV_blend_square +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_NV_blend_square +#define GL_NV_blend_square 1 + +#endif /* GL_NV_blend_square */ + +/* +** GL_NV_occlusion_query +** +** Support: +** +** Rage 128 based : Not Supported +** Radeon 7000+ based : Not Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_NV_occlusion_query +#define GL_NV_occlusion_query 1 + +#define GL_PIXEL_COUNTER_BITS_NV 0x8864 +#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 +#define GL_PIXEL_COUNT_NV 0x8866 +#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 + +typedef GLvoid (APIENTRY * PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); +typedef GLvoid (APIENTRY * PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRY * PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); +typedef GLvoid (APIENTRY * PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); +typedef GLvoid (APIENTRY * PFNGLENDOCCLUSIONQUERYNVPROC) (void); +typedef GLvoid (APIENTRY * PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); +typedef GLvoid (APIENTRY * PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); + +#endif /* GL_NV_occlusion_query */ + +/* +** GL_NV_texgen_reflection +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_NV_texgen_reflection +#define GL_NV_texgen_reflection 1 + +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 + +#endif /* GL_NV_texgen_reflection */ + +/* +** GL_S3_s3tc +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_S3_s3tc +#define GL_S3_s3tc 1 + +#define GL_RGB_S3TC 0x83A0 +#define GL_RGB4_S3TC 0x83A1 +#define GL_RGBA_S3TC 0x83A2 +#define GL_RGBA4_S3TC 0x83A3 + +#endif /* GL_S3_s3tc */ + +/* +** GL_SGI_color_matrix +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_SGI_color_matrix +#define GL_SGI_color_matrix 1 + +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB + +#endif /* GL_SGI_color_matrix */ + +/* +** GL_SGIS_generate_mipmap +** +** Support: +** Rage 128 based : Not Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_SGIS_generate_mipmap +#define GL_SGIS_generate_mipmap 1 + +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 + +#endif /* GL_SGIS_generate_mipmap */ + +/* +** GL_SGIS_multitexture +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_SGIS_multitexture +#define GL_SGIS_multitexture 1 + +#define TEXTURE0_SGIS 0x835E +#define TEXTURE1_SGIS 0x835F +#define GL_SELECTED_TEXTURE_SGIS 0x83C0 +#define GL_SELECTED_TEXTURE_COORD_SET_SGIS 0x83C1 +#define GL_SELECTED_TEXTURE_TRANSFORM_SGIS 0x83C2 +#define GL_MAX_TEXTURES_SGIS 0x83C3 +#define GL_MAX_TEXTURE_COORD_SETS_SGIS 0x83C4 +#define GL_TEXTURE_ENV_COORD_SET_SGIS 0x83C5 +#define GL_TEXTURE0_SGIS 0x83C6 +#define GL_TEXTURE1_SGIS 0x83C7 +#define GL_TEXTURE2_SGIS 0x83C8 +#define GL_TEXTURE3_SGIS 0x83C9 +#define GL_TEXTURE4_SGIS 0x83CA +#define GL_TEXTURE5_SGIS 0x83CB +#define GL_TEXTURE6_SGIS 0x83CC +#define GL_TEXTURE7_SGIS 0x83CD +#define GL_TEXTURE8_SGIS 0x83CE +#define GL_TEXTURE9_SGIS 0x83CF +#define GL_TEXTURE10_SGIS 0x83D0 +#define GL_TEXTURE11_SGIS 0x83D1 +#define GL_TEXTURE12_SGIS 0x83D2 +#define GL_TEXTURE13_SGIS 0x83D3 +#define GL_TEXTURE14_SGIS 0x83D4 +#define GL_TEXTURE15_SGIS 0x83D5 +#define GL_TEXTURE16_SGIS 0x83D6 +#define GL_TEXTURE17_SGIS 0x83D7 +#define GL_TEXTURE18_SGIS 0x83D8 +#define GL_TEXTURE19_SGIS 0x83D9 +#define GL_TEXTURE20_SGIS 0x83DA +#define GL_TEXTURE21_SGIS 0x83DB +#define GL_TEXTURE22_SGIS 0x83DC +#define GL_TEXTURE23_SGIS 0x83DD +#define GL_TEXTURE24_SGIS 0x83DE +#define GL_TEXTURE25_SGIS 0x83DF +#define GL_TEXTURE26_SGIS 0x83E0 +#define GL_TEXTURE27_SGIS 0x83E1 +#define GL_TEXTURE28_SGIS 0x83E2 +#define GL_TEXTURE29_SGIS 0x83E3 +#define GL_TEXTURE30_SGIS 0x83E4 +#define GL_TEXTURE31_SGIS 0x83E5 + +typedef GLvoid (APIENTRY * PFNGLSELECTTEXTURESGISPROC) (GLenum texture); +typedef GLvoid (APIENTRY * PFNGLSELECTTEXTURETRANSFORMSGISPROC) (GLenum texture); +typedef GLvoid (APIENTRY * PFNGLSELECTTEXTURECOORDSETSGISPROC) (GLenum texture); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1DSGISPROC) (GLenum texture, GLdouble s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1DVSGISPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1FSGISPROC) (GLenum texture, GLfloat s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1FVSGISPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1ISGISPROC) (GLenum texture, GLint s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1IVSGISPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1SSGISPROC) (GLenum texture, GLshort s); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD1SVSGISPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2DSGISPROC) (GLenum texture, GLdouble s, GLdouble t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2DVSGISPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2FSGISPROC) (GLenum texture, GLfloat s, GLfloat t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2FVSGISPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2ISGISPROC) (GLenum texture, GLint s, GLint t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2IVSGISPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2SSGISPROC) (GLenum texture, GLshort s, GLshort t); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD2SVSGISPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3DSGISPROC) (GLenum texture, GLdouble s, GLdouble t, GLdouble r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3DVSGISPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3FSGISPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3FVSGISPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3ISGISPROC) (GLenum texture, GLint s, GLint t, GLint r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3IVSGISPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3SSGISPROC) (GLenum texture, GLshort s, GLshort t, GLshort r); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD3SVSGISPROC) (GLenum texture, const GLshort *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4DSGISPROC) (GLenum texture, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4DVSGISPROC) (GLenum texture, const GLdouble *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4FSGISPROC) (GLenum texture, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4FVSGISPROC) (GLenum texture, const GLfloat *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4ISGISPROC) (GLenum texture, GLint s, GLint t, GLint r, GLint q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4IVSGISPROC) (GLenum texture, const GLint *v); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4SSGISPROC) (GLenum texture, GLshort s, GLshort t, GLshort r, GLshort q); +typedef GLvoid (APIENTRY * PFNGLMULTITEXCOORD4SVSGISPROC) (GLenum texture, const GLshort *v); + +#endif /* GL_SGIS_multitexture */ + +/* +** GL_SGIS_texture_border_clamp +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_SGIS_texture_border_clamp +#define GL_SGIS_texture_border_clamp 1 + +#define GL_CLAMP_TO_BORDER_SGIS 0x812D + +#endif + +/* +** GL_SGIS_texture_edge_clamp +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_SGIS_texture_edge_clamp +#define GL_SGIS_texture_edge_clamp 1 + +#define GL_CLAMP_TO_EDGE_SGIS 0x812F + +#endif /* GL_SGIS_texture_edge_clamp */ + +/* +** GL_SGIS_texture_lod +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_SGIS_texture_lod +#define GL_SGIS_texture_lod 1 + +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D + +#endif /* GL_SGIS_texture_lod */ + +/* +** GL_SUN_multi_draw_arrays +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_SUN_multi_draw_arrays +#define GL_SUN_multi_draw_arrays 1 + +typedef GLvoid (APIENTRY * PFNGLMULTIDRAWARRAYSSUNPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +typedef GLvoid (APIENTRY * PFNGLMULTIDRAWELEMENTSSUNPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); + +#endif /* GL_SUN_multi_draw_arrays */ + +/* +** ISV EXTENSIONS +*/ + +/* +** GL_KTX_buffer_region +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef __linux__ +#ifndef GL_KTX_buffer_region +#define GL_KTX_buffer_region 1 + +#define GL_KTX_FRONT_REGION 0x0 +#define GL_KTX_BACK_REGION 0x1 +#define GL_KTX_Z_REGION 0x2 +#define GL_KTX_STENCIL_REGION 0x3 + +typedef GLuint (APIENTRY * PFNGLBUFFERREGIONENABLEDEXTPROC) (void); +typedef HANDLE (APIENTRY * PFNGLNEWBUFFERREGIONEXTPROC) (GLenum region); +typedef GLvoid (APIENTRY * PFNGLDELETEBUFFERREGIONEXTPROC) (HANDLE hRegion); +typedef GLvoid (APIENTRY * PFNGLREADBUFFERREGIONEXTPROC) (HANDLE hRegion, GLint x, GLint y, GLsizei width, GLsizei height); +typedef GLvoid (APIENTRY * PFNGLDRAWBUFFERREGIONEXTPROC) (HANDLE hRegion, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest); + +#endif /* GL_KTX_buffer_region */ +#endif // !__linux__ + +/* +** GL_WIN_swap_hint +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef __linux__ +#ifndef GL_WIN_swap_hint +#define GL_WIN_swap_hint 1 + +typedef GLvoid (APIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height); + +#endif /* GL_WIN_swap_hint */ +#endif // !__linux__ + +/* +** GL_APPLE_client_storage +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 + +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 + +#endif /* GL_APPLE_client_storage */ + +/* +** GL_APPLE_texture_range +** +** Support: +** Rage 128 based : Supported +** Radeon 7000+ based : Supported +** Radeon 8500+ based : Supported +** Radeon 9500+ based : Supported +** Radeon X800+ based : Supported +** Radeon X1000+ based : Supported +** Radeon X2000+ based : Supported +*/ +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 + +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF + +typedef GLvoid (APIENTRY * PFNGLTEXTURERANGEAPPLEPROC)(GLenum target, GLsizei length, GLvoid *pointer); +typedef GLvoid (APIENTRY * PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)(GLenum target, GLenum pname, GLvoid **params); + +#endif /* GL_APPLE_texture_range */ + +/* +** GL_ARB_depth_clamp +** +** Support: +** 6XX and beyond +*/ +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp + +#define GL_DEPTH_CLAMP 0x864F + +#endif /* GL_ARB_depth_clamp */ + +/* +** GL_ARB_seamless_cube_map +** +** Support: +** 6XX and beyond +*/ +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F + +#endif /* GL_ARB_seamless_cube_map */ + +/* +** AMD_pinned_memory +** +** Support: All HW supported +*/ +#ifndef AMD_pinned_memory +#define AMD_pinned_memory + +#define GL_EXTERNAL_VIRTUAL_MEMORY_AMD 0x9160 + +#endif /* AMD_pinned_memory */ + +/* +** AMD_bus_addressable_memory +** +** Support: All Workstation HW supported +*/ +#ifndef AMD_bus_addressable_memory +#define AMD_bus_addressable_memory + +#define GL_BUS_ADDRESSABLE_MEMORY_AMD 0x9168 +#define GL_EXTERNAL_PHYSICAL_MEMORY_AMD 0x9169 + +typedef GLvoid (APIENTRY * PFNGLREADMARKERAMDPROC) (GLuint buffer); +typedef GLvoid (APIENTRY * PFNGLWAITMARKERAMDPROC) (GLuint buffer, GLuint marker); +typedef GLvoid (APIENTRY * PFNGLWRITEMARKERAMDPROC) (GLuint buffer, GLuint marker, GLuint64 offset); +typedef GLvoid (APIENTRY * PFNGLMAKEBUFFERSRESIDENTAMDPROC) (GLsizei count, GLuint* buffers, GLuint64* baddrs, GLuint64* maddrs); +typedef GLvoid (APIENTRY * PFNGLBUFFERBUSADDRESSAMDPROC) (GLenum target, GLsizeiptr size, GLuint64 baddrs, GLuint64 maddrs); + +#endif /* AMD_bus_addressable_memory */ + +/* ARB_debug_output */ +#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 + +#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 +#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 + +#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 +#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 + +#define GL_DEBUG_SOURCE_API_ARB 0x8246 +#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 +#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 +#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 +#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A +#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B + +#define GL_DEBUG_TYPE_ERROR_ARB 0x824C +#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D +#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E +#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F +#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 +#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 + +#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 +#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 + +typedef GLvoid (APIENTRY * PFNGLDEBUGMESSAGECONTROLARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); +typedef GLvoid (APIENTRY * PFNGLDEBUGMESSAGEINSERTARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* buf); +typedef GLvoid (APIENTRY * PFNGLDEBUGMESSAGECALLBACKARB)(GLvoid* callback, GLvoid* userParam); +typedef GLuint (APIENTRY * PFNGLGETDEBUGMESSAGELOGARB)(GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, GLchar* messageLog); + +typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, + GLenum type, + GLuint id, + GLenum severity, + GLsizei length, + const GLchar* message, + GLvoid* userParam); +// end ARB_debug_output + + +/* ARB_debug_group (KHR_debug) */ +#define GL_DEBUG_TYPE_MARKER 0x8268 +#define GL_DEBUG_TYPE_PUSH_GROUP 0x8269 +#define GL_DEBUG_TYPE_POP_GROUP 0x826A +#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B +#define GL_MAX_DEBUG_GROUP_STACK_DEPTH 0x826C +#define GL_DEBUG_GROUP_STACK_DEPTH 0x826D +#define GL_MAX_LABEL_LENGTH 0x82E8 + +typedef void (APIENTRY * PFNLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar * message); +typedef void (APIENTRY * PFNGLPOPDEBUGGROUPPROC)(void); +// end ARB_debug_group + +/* ARB_debug_output2 (KHR_debug) */ +#define GL_DEBUG_OUTPUT 0x92E0 +// end ARB_debug_output2 + +/* ARB_debug_label (KHR_debug) */ +typedef void (APIENTRY * PFNGLOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei length, const GLchar *label); +typedef void (APIENTRY * PFNGLGETOBJECTLABELPROC) (GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label); +typedef void (APIENTRY * PFNGLOBJECTPTRLABELPROC) (const void *ptr, GLsizei length, const GLchar *label); +typedef void (APIENTRY * PFNGLGETOBJECTPTRLABELPROC) (const void *ptr, GLsizei bufSize, GLsizei *length, GLchar *label); +// end ARB_debug_label + +/* AMD_array_buffer */ +typedef GLint (APIENTRY * PFNGLGETBUFFERARRAYINDEXAMDPROC)(GLuint program, const GLchar * name); +typedef GLvoid (APIENTRY * PFNGLARRAYBUFFERBINDINGAMDPROC)(GLuint program, GLuint arrayBufferIndex, GLuint arrayBufferBinding); +// END AMD_array_buffer +/* +** EXT_texture_storage +** +** Support: All HW supported +*/ + +#ifndef GL_EXT_texture_storage +#define GL_EXT_texture_storage 1 + +typedef GLvoid (APIENTRY * PFNGLTEXSTORAGE1DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef GLvoid (APIENTRY * PFNGLTEXSTORAGE2DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef GLvoid (APIENTRY * PFNGLTEXSTORAGE3DEXT) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +typedef GLvoid (APIENTRY * PFNGLTEXTURESTORAGE1DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef GLvoid (APIENTRY * PFNGLTEXTURESTORAGE2DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef GLvoid (APIENTRY * PFNGLTEXTURESTORAGE3DEXT) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); + +#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912F + +#endif // end GL_EXT_texture_storage + +/*AMD_compute_shader*/ +#define GL_COMPUTE_SHADER_AMD 0x6969 + +typedef GLvoid (APIENTRY *PFNGLDISPATCHCOMPUTEAMDPROC)(GLuint program, + GLuint workdim, + const GLuint* global_work_size, + const GLuint* local_work_size); +// end AMD_compute_shader + +/*AMD_transform_feedback4*/ +#define GL_STREAM_RASTERIZATION_AMD 0x91A0 +// end AMD_transform_feedback4 + + +/* ARB_explicit_uniform_location */ +#define GL_MAX_UNIFORM_LOCATIONS 0x826E + +#ifdef __cplusplus +} +#endif + + +#endif /* __gl_ATI_h_ */ diff --git a/projects/clr/rocclr/include/GL/glATIInternal.h b/projects/clr/rocclr/include/GL/glATIInternal.h new file mode 100644 index 0000000000..28e62d8433 --- /dev/null +++ b/projects/clr/rocclr/include/GL/glATIInternal.h @@ -0,0 +1,351 @@ +#ifndef __gl_ATI_Internal_h_ +#define __gl_ATI_Internal_h_ + + +/* Copyright (C) 2004 - 2022 Advanced Micro Devices, Inc. */ + +#ifdef __cplusplus +extern "C" { +#endif + + +#ifndef APIENTRY +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif +#if defined(ATI_OS_WIN) +#include +#elif (defined(ATI_OS_LINUX) || defined(LINUX)) +#include +#endif + +/* EXPORTED GSL INTERFACES */ +#ifndef GL_ATI_subset_layer +#define GL_ATI_subset_layer 1 + +/* GSL CAPS extension */ +#define GL_HWCAPS_MAX_VERTEX_COUNT_GSL 0x121000 +#define GL_HWCAPS_MAX_BYTE_INDEX_COUNT_GSL 0x121001 +#define GL_HWCAPS_MAX_SHORT_INDEX_COUNT_GSL 0x121002 +#define GL_HWCAPS_MAX_INT_INDEX_COUNT_GSL 0x121003 +#define GL_HWCAPS_MAX_CLIP_PLANES_GSL 0x121004 + +#define GL_HWCAPS_BYTE_COMPONENT_COUNT_GSL 0x121010 +#define GL_HWCAPS_UNSIGNED_BYTE_COMPONENT_COUNT_GSL 0x121011 +#define GL_HWCAPS_SHORT_COMPONENT_COUNT_GSL 0x121012 +#define GL_HWCAPS_UNSIGNED_SHORT_COMPONENT_COUNT_GSL 0x121013 +#define GL_HWCAPS_INT_COMPONENT_COUNT_GSL 0x121014 +#define GL_HWCAPS_UNSIGNED_INT_COMPONENT_COUNT_GSL 0x121015 +#define GL_HWCAPS_FLOAT16_COMPONENT_COUNT_GSL 0x121016 +#define GL_HWCAPS_FLOAT_COMPONENT_COUNT_GSL 0x121017 +#define GL_HWCAPS_DOUBLE_COMPONENT_COUNT_GSL 0x121018 + +#define GL_HWCAPS_BYTE_COMPONENT_VALUES_GSL 0x121020 +#define GL_HWCAPS_UNSIGNED_BYTE_COMPONENT_VALUES_GSL 0x121021 +#define GL_HWCAPS_SHORT_COMPONENT_VALUES_GSL 0x121022 +#define GL_HWCAPS_UNSIGNED_SHORT_COMPONENT_VALUES_GSL 0x121023 +#define GL_HWCAPS_INT_COMPONENT_VALUES_GSL 0x121024 +#define GL_HWCAPS_UNSIGNED_INT_COMPONENT_VALUES_GSL 0x121025 +#define GL_HWCAPS_FLOAT16_COMPONENT_VALUES_GSL 0x121026 +#define GL_HWCAPS_FLOAT_COMPONENT_VALUES_GSL 0x121027 +#define GL_HWCAPS_DOUBLE_COMPONENT_VALUES_GSL 0x121028 + +#define GL_HWCAPS_HIERARCHICAL_DEPTH_AVAILABLE_GSL 0x121030 +#define GL_HWCAPS_COMPRESSED_DEPTH_AVAILABLE_GSL 0x121031 +#define GL_HWCAPS_COMPRESSED_COLOR_AVAILABLE_GSL 0x121032 +#define GL_HWCAPS_FBUFFER_AVAILABLE_GSL 0x121033 + +/* GSL ChromaKey extension */ +#define GL_TEXTURE_CHROMAKEY_MODE_GSL 0x122000 +#define GL_CHROMA_DISABLE_GSL 0x122001 +#define GL_CHROMA_KILL_GSL 0x122002 +#define GL_CHROMA_BLEND_GSL 0x122003 +#define GL_TEXTURE_CHROMAKEY_COLOR_GSL 0x122004 + +/* GSL namespace extension */ +#define GL_INTERNAL_NAMESPACE_GSL 0x123000 +#define GL_GL_NAMESPACE_GSL 0x123001 + +/* GSL uber buffers extension */ +#define GL_COLOR_BUFFER_GSL 0x124000 +#define GL_COLOR_BUFFER1_GSL 0x124001 +#define GL_COLOR_BUFFER2_GSL 0x124002 +#define GL_COLOR_BUFFER3_GSL 0x124003 +#define GL_COLOR_BUFFER4_GSL 0x124004 +#define GL_COLOR_BUFFER5_GSL 0x124005 +#define GL_COLOR_BUFFER6_GSL 0x124006 +#define GL_COLOR_BUFFER7_GSL 0x124007 +#define GL_COMPRESSED_COLOR_GSL 0x124008 +#define GL_COMPRESSED_DEPTH_GSL 0x124009 +#define GL_DEPTH_BUFFER_GSL 0x12400a +#define GL_DEPTH_COMPONENT24_STENCIL8_GSL 0x12400b +#define GL_DEPTH_EXPAND_STATE_GSL 0x12400c +#define GL_DRAW_FRAMEBUFFER_GSL 0x12400d +#define GL_DRAW_FRAMEBUFFER_BINDING_GSL 0x12400e +#define GL_FBUFFER_GSL 0x12400f +#define GL_GENERIC_ARRAY_GSL 0x124010 +#define GL_HIERARCHICAL_DEPTH_GSL 0x124011 +#define GL_IMAGES_GSL 0x124012 +#define GL_MACRO_TILING_GSL 0x124013 +#define GL_MAPMEM_NO_SYNC_GSL 0x124014 +#define GL_MAPMEM_READ_ONLY_GSL 0x124015 +#define GL_MAPMEM_READ_WRITE_GSL 0x124016 +#define GL_MEMORY_LOCATION_GSL 0x124017 +#define GL_MICRO_TILING_GSL 0x124018 +#define GL_MIPMAP_GSL 0x124019 +#define GL_MULTI_WRITE_GSL 0x12401a +#define GL_PRIMARY_SURFACE_GSL 0x12401b +#define GL_VERTEX_BUFFER_GSL 0x12401c +#define GL_WIDTH_GSL 0x12401d +#define GL_HEIGHT_GSL 0x12401e +#define GL_FORMAT_GSL 0x12401f + +//EP TestHookAMD +#define GL_EP_TIMMO_ENABLE_AMD_TEST_HOOK 0x12f000 +#define GL_EP_TIMMO_GET_ENABLED_AMD_TEST_HOOK 0x12f001 +#define GL_EP_TIMMO_NEVER_DISABLE_AMD_TEST_HOOK 0x12f002 +#define GL_EP_TIMMO_LIMIT_VIRTUAL_MEMORY_AMD_TEST_HOOK 0x12f003 +#define GL_EP_TIMMO_GET_NEVER_DISABLED_AMD_TEST_HOOK 0x12f004 +#define GL_EP_TIMMO_MATRIX_ENABLE_AMD_TEST_HOOK 0x12f005 +#define GL_EP_TIMMO_MATRIX_GET_ENABLED_AMD_TEST_HOOK 0x12f006 +#define GL_EP_TIMMO_GET_NTOTAL_VERTICES_AMD_TEST_HOOK 0x12f007 +#define GL_EP_TIMMO_GET_STAT_RESUME_COUNT_AMD_TEST_HOOK 0x12f008 +#define GL_EP_TIMMO_GET_STAT_RESUME_VERTICES_AMD_TEST_HOOK 0x12f009 +#define GL_EP_TIMMO_GET_STAT_OVERWRITE_COUNT_AMD_TEST_HOOK 0x12f00a +#define GL_EP_TIMMO_GET_STAT_OVERWRITE_TOKEN_AMD_TEST_HOOK 0x12f00b +#define GL_EP_TIMMO_GET_STAT_OVERWRITE_BLITS_AMD_TEST_HOOK 0x12f00c +#define GL_EP_TIMMO_GET_STAT_OVERWRITE_BYTES_AMD_TEST_HOOK 0x12f00d +#define GL_EP_TIMMO_GET_STAT_OVERWRITE_GAP_AMD_TEST_HOOK 0x12f00e + +#define GL_EP_DLIST_CACHE_ENABLE_AMD_TEST_HOOK 0x12f00f +#define GL_EP_DLIST_CACHE_GET_ENABLED_AMD_TEST_HOOK 0x12f010 +#define GL_EP_DLIST_CACHE_STAT_RESET_AMD_TEST_HOOK 0x12f011 +#define GL_EP_DLIST_CACHE_GET_STAT_CACHES_AMD_TEST_HOOK 0x12f012 +#define GL_EP_DLIST_CACHE_GET_STAT_CACHED_AMD_TEST_HOOK 0x12f013 +#define GL_EP_DLIST_CACHE_GET_STAT_REJECTED_AMD_TEST_HOOK 0x12f014 +#define GL_EP_DLIST_CACHE_GET_STAT_CALLED_AMD_TEST_HOOK 0x12f015 +#define GL_EP_DLIST_CACHE_GET_STAT_FOUND_IN_SEQUENCE_AMD_TEST_HOOK 0x12f016 +#define GL_EP_DLIST_CACHE_GET_STAT_FOUND_OUT_OF_SEQUENCE_AMD_TEST_HOOK 0x12f017 + +#define GL_EP_SELECT_MODE_AMD_TEST_HOOK 0x12f018 +#define GL_EP_SELECT_GET_MODE_AMD_TEST_HOOK 0x12f019 + +/* GSL guardband extension */ +#define GL_CLIP_GUARDBAND_GSL 0x125000 + +/* GSL stipple extension */ +#define GL_TEXTURE_COORD_7_RASTERIZER_GEN_GSL 0x126000 + +/* GSL texture unit parameter extension */ +#define GL_TEXTURE_SWIZZLE_GSL 0x127000 + +/* GSL double rate clear extension */ +#define GL_DOUBLE_RATE_CLEAR_GSL 0x128000 + +/* GSL Interfaces */ + +typedef GLvoid (APIENTRY *PFNGLRESOLVEMVPUPROC)(GLuint name1, GLuint name2); +typedef GLvoid (APIENTRY *PFNGLBINDFRAMEBUFFERGSLPROC)(GLenum target, GLuint buffer); +typedef GLvoid (APIENTRY *PFNGLCREATEFRAMEBUFFERGSLPROC)(GLuint* buffer); +typedef GLvoid (APIENTRY *PFNGLDELETEFRAMEBUFFERGSLPROC)(GLuint buffer); +typedef GLboolean (APIENTRY *PFNGLISFRAMEBUFFERGSLPROC)(GLuint buffer); +typedef GLvoid (APIENTRY *PFNGLFRAMEBUFFERPARAMETERIVGSLPROC)(GLuint fbo,GLenum pname, const GLint* params); +typedef GLvoid (APIENTRY *PFNGLGETFRAMEBUFFERPARAMETERIVGSLPROC)(GLenum pname, GLint* params); +typedef GLvoid (APIENTRY *PFNGLALLOCMEM1DGSLPROC)(GLuint format, GLuint width, GLuint np, const GLint *properties, GLuint* mem); +typedef GLvoid (APIENTRY *PFNGLALLOCMEM2DGSLPROC)(GLuint format, GLuint width, GLuint height, GLuint np, const GLint *properties, GLuint* mem, const GLuint memSrc); +typedef GLvoid (APIENTRY *PFNGLALLOCMEM3DGSLPROC)(GLuint format, GLuint width, GLuint height, GLuint depth, GLuint np, const GLint *properties, GLuint* mem); +typedef GLuint (APIENTRY *PFNGLGETMEMPROPERTYGSLPROC)(GLuint mem, GLuint pname); +typedef GLvoid (APIENTRY *PFNGLDELETEMEMOBJGSLPROC)(GLuint mem); +typedef GLuint (APIENTRY *PFNGLGETTEXTUREMEMGSLPROC)(GLuint textureObject, GLenum pname); +typedef GLuint (APIENTRY *PFNGLGETVERTEXBUFFERMEMGSLPROC)(GLuint vertexBufferObject, GLenum pname); +typedef GLuint (APIENTRY *PFNGLGETFRAMEBUFFERMEMGSLPROC)(GLuint frameBufferObject, GLenum pname); +typedef GLvoid (APIENTRY *PFNGLATTACHTEXTUREMEMGSLPROC)(GLuint textureObject, GLenum pname, GLuint memObj); +typedef GLvoid (APIENTRY *PFNGLATTACHVERTEXBUFFERMEMGSLPROC)(GLuint vertexBufferObject, GLenum pname, GLuint memObj); +typedef GLvoid (APIENTRY *PFNGLATTACHFRAMEBUFFERMEMGSLPROC)(GLuint framebufferObject, GLenum pname, GLuint memObj); +typedef GLvoid* (APIENTRY *PFNGLMAPMEMIMAGEGSLPROC)(GLuint name, GLuint access); +typedef GLvoid (APIENTRY *PFNGLUNMAPMEMIMAGEGSLPROC)(GLuint name); +typedef GLvoid (APIENTRY *PFNGLLOADMEMOBJGSLPROC)(GLuint memObject, GLuint width, GLuint height, const GLvoid* srcAddr, GLenum srcFmt, GLuint srcPitch, GLuint dstX, GLuint dstY, GLuint dstLayer, GLuint dstLvl); +typedef GLvoid (APIENTRY *PFNGLFBUFFERPASSGSLPROC)(GLuint pass); + +typedef GLvoid (APIENTRY *PFNGLSETNAMESPACEGSLPROC)(GLenum eNameSpace); + +typedef GLenum (APIENTRY *PFNGLGETNAMESPACEGSLPROC)(void); + +typedef GLvoid (APIENTRY *PFNGLCLIPPARAMETERFVGSLPROC)(GLenum target, const GLfloat *params); +typedef GLvoid (APIENTRY *PFNGLTEXUNITPARAMETERGSLPROC)(GLenum unit, GLenum pname, const GLvoid* params); + +#endif /* GL_ATI_subset_layer */ + + +/* CAL -GL Interop extension */ +#define GL_RESOURCE_ATTACH_TEXTURE_AMD 0x12a000 +#define GL_RESOURCE_ATTACH_FRAMEBUFFER_AMD 0x12a001 +#define GL_RESOURCE_ATTACH_RENDERBUFFER_AMD 0x12a002 +#define GL_RESOURCE_ATTACH_VERTEXBUFFER_AMD 0x12a003 + +/* flags */ +#define GL_INTEROP_HSA 0x1 ///< In case of HSA-OGL interop set flag to this. +#define GL_INTEROP_SVM 0x2 ///< In case of OCL-OGL interop on SVM set flag to this. +#define GL_INTEROP_HIP 0x4 ///< In case of HIP-OGL interop set flag to this. + +/* miscellaneous */ +#define GL_TEXTURE_ALL_LEVELS_AMD -1 +#define GL_TEXTURE_ALL_LAYERS_AMD -1 + +#ifndef GLuintp +typedef uintptr_t GLuintp; +#endif + +#ifndef GLlonglong +typedef long long GLlonglong; +#endif + +typedef struct GLResourceRec { + GLenum type; + GLuint name; + GLuint flags; + GLuintp mbResHandle; + GLuint level; ///< Start level to attach + GLuint numLevels; ///< Number of levels to attach (can be set to GL_TEXTURE_ALL_LEVELS_AMD) + GLuint layer; ///< Start layer to attach + GLuint numLayers; ///< Number of layers to attach (can be set to GL_TEXTURE_ALL_LAYERS_AMD) +} GLResource; + + +typedef struct GLResourceDimRec { + GLuint width; + GLuint height; + GLuint depth; +}GLResourceDim; + +#define GLRDATA_MAX_LAYERS 8192 + +#define GL_RESOURCE_DATA_VERSION 7 + +typedef enum GLResourceDataVersionEnum +{ + GL_RESOURCE_DATA_HAS_OBJECT_ATTRIB_TYPE = 5, + GL_RESOURCE_DATA_HAS_MIPMAP_LEVELS_INFORMATION = 6, + GL_RESOURCE_DATA_HAS_SRD_INFORMATION = 7, +} GLResourceDataVersion; + +typedef struct GLResourceDataRec { + GLuint size; + GLuint version; + GLuint surfaceSize; ///< Size of the base surface. + GLuint pad; + GLuintp offset; ///< Offset pointing to the sub resource's surface. + GLuintp mbResHandle; + GLuint format; + GLuint flags; + GLuint tilingMode; + GLuint swizzles[GLRDATA_MAX_LAYERS]; + GLResourceDim paddedDimensions; + GLResourceDim rawDimensions; + GLlonglong cardAddr; ///< Address of the base surface (add offset to get the actual address of the sub surface) + GLlonglong p2pAddr; + GLlonglong mc_size; + GLuint cpuAccess; + GLuintp handle; + GLuint perSurfTileInfo; + GLuint objectAttribType; + GLuint sharedBufferID; + GLuint levels; + GLuint swizzlesMip[GLRDATA_MAX_LAYERS]; + GLuint textureSRDSize; + GLuint samplerSRDSize; + GLuint textureSRD[8]; + GLuint samplerSRD[8]; + GLboolean isDoppDesktopTexture; + GLboolean isDoppPresentTexture; + GLuint isTilingRotated; + GLuint vidpnSourceId; + GLboolean isDisplayable; + +} GLResourceData; + + + +#ifndef GL_ATI_internal_debug +#define GL_ATI_internal_debug 1 +/* +** float16_input_type +** +** Support: +** Rage 128 based : Unsupported +** Radeon 7000+ based : Unsupported +** Radeon 8500+ based : Unsupported +** Radeon 9500+ based : Supported +*/ +//#ifndef float16_input_type +//#define float16_input_type 1 + +#define GL_FLOAT16_ATI 0x140B + +//#endif /* float16_input_type */ + + +/* gl_MB_TestHookAMD */ +#define GL_MB_EVICT_ALL_TEXTURE_OBJS_AMD_TEST_HOOK 0x12a000 +#define GL_MB_EVICT_TEXTURE_OBJ_AMD_TEST_HOOK 0x12a001 +#define GL_MB_GET_FREE_SIZE_AMD_TEST_HOOK 0x12a002 +#define GL_MB_GET_TEXTURE_OBJ_SIZE_AMD_TEST_HOOK 0x12a003 +#define GL_MB_SET_MAX_VID_MEM_ALLOCS_AMD_TEST_HOOK 0x12a004 + +#define GL_APT_SET_SHADER_REPLACEMENT_AMD_TEST_HOOK 0x12a081 +#define GL_APT_GET_CATALYST_AI_SETTING_AMD_TEST_HOOK 0x12a082 +#define GL_APT_SET_CATALYST_AI_SETTINGAMD_TEST_HOOK 0x12a083 +#define GL_APT_GET_ALLOW_TEXTURE_ANALYSE_AMD_TEST_HOOK 0x12a084 +#define GL_APT_SET_ALLOW_TEXTURE_ANALYSE_AMD_TEST_HOOK 0x12a085 + +#define GL_SVT_DISABLE_SW_PATH_AMD_TEST_HOOK 0x12a800 +#define GL_SVT_SET_CURRENT_PUNT_KEY_AMD_TEST_HOOK 0x12a801 +#define GL_SVT_GET_CURRENT_PUNT_KEY_AMD_TEST_HOOK 0x12a802 +#define GL_SVT_SET_PUNT_CONDITION_AMD_TEST_HOOK 0x12a803 +#define GL_SVT_GET_PUNT_CONDITION_AMD_TEST_HOOK 0x12a804 +#define GL_SVT_FORCE_SW_PATH_AMD_TEST_HOOK 0x12a805 + +#define GL_SVT_PUNT_CAN_NOT_HANDLE_VS_AMD_TEST_HOOK 0x12b000 +#define GL_SVT_PUNT_CAN_NOT_HANDLE_FS_AMD_TEST_HOOK 0x12b001 +#define GL_SVT_PUNT_FS_USES_POSITION_AMD_TEST_HOOK 0x12b002 + +#define GL_SVT_PUNT_NON_HW_RENDERABLE_BUFFER_AMD_TEST_HOOK 0x12b010 + +#define GL_SVT_PUNT_NON_RESIDENT_TEXTURE_AMD_TEST_HOOK 0x12b020 +#define GL_SVT_PUNT_TEXTURE_WITH_BORDER_AMD_TEST_HOOK 0x12b021 +#define GL_SVT_PUNT_LOD_CLAMPING_NEEDED_AMD_TEST_HOOK 0x12b022 +#define GL_SVT_PUNT_UNSUPPORTED_NPOT_TEXTURE_AMD_TEST_HOOK 0x12b023 +#define GL_SVT_PUNT_WIDE_FORMAT_IN_USE_AMD_TEST_HOOK 0x12b024 + +#define GL_SVT_PUNT_NON_HW_RENDER_MODE_AMD_TEST_HOOK 0x12b030 + +#define GL_SVT_PUNT_FRONT_POLYGON_MODE_AMD_TEST_HOOK 0x12b040 +#define GL_SVT_PUNT_BACK_POLYGON_MODE_AMD_TEST_HOOK 0x12b041 +#define GL_SVT_PUNT_SEPARATE_STENCIL_AMD_TEST_HOOK 0x12b042 +#define GL_SVT_PUNT_UNSUPPORTED_2S_STENCIL_AMD_TEST_HOOK 0x12b043 +#define GL_SVT_PUNT_WIDE_SMOOTH_POINTS_AMD_TEST_HOOK 0x12b044 +#define GL_SVT_PUNT_WIDE_SMOOTH_LINES_AMD_TEST_HOOK 0x12b045 +#define GL_SVT_PUNT_POLYGON_OFFSET_FILL_AMD_TEST_HOOK 0x12b046 +#define GL_SVT_PUNT_POLYGON_OFFSET_LINE_AMD_TEST_HOOK 0x12b047 +#define GL_SVT_PUNT_POLYGON_OFFSET_POINT_AMD_TEST_HOOK 0x12b048 +#define GL_SVT_PUNT_AA_STIPPLE_TEX_UNIT_AMD_TEST_HOOK 0x12b049 +#define GL_SVT_PUNT_CRIPPLED_STIPPLING_AMD_TEST_HOOK 0x12b04A +#define GL_SVT_PUNT_CRIPPLED_WIDE_FORMATS_AMD_TEST_HOOK 0x12b04B + +#define GL_CATALYST_AI_DISABLED_AMD_TEST_HOOK 0 +#define GL_CATALYST_AI_STANDARD_AMD_TEST_HOOK 1 +#define GL_CATALYST_AI_ADVANCED_AMD_TEST_HOOK 2 + +typedef GLint (APIENTRY *PFNGL__GLLTESTBACKDOORATIPROC)(GLint op, GLint iParamCount, GLint* pParams); + +typedef GLvoid* (APIENTRY *PFNGLREGISTERSHADERSTRINGGLLPROC)(GLenum target, GLvoid* string, GLvoid* replaceString); +typedef GLvoid (APIENTRY *PFNGLUNREGISTERSHADERSTRINGGLLPROC)(GLvoid* shader); + +#endif // GL_ATI_internal_debug + +#ifdef __cplusplus +} +#endif + + +#endif /* __gl_ATI_Internal_h_ */ diff --git a/projects/clr/rocclr/include/GL/glXATIPrivate.h b/projects/clr/rocclr/include/GL/glXATIPrivate.h new file mode 100644 index 0000000000..ba81509208 --- /dev/null +++ b/projects/clr/rocclr/include/GL/glXATIPrivate.h @@ -0,0 +1,123 @@ +/* ============================================================ + +Copyright (c) 2007 Advanced Micro Devices, Inc. All rights reserved. + +Redistribution and use of this material is permitted under the following +conditions: + +Redistributions must retain the above copyright notice and all terms of this +license. + +In no event shall anyone redistributing or accessing or using this material +commence or participate in any arbitration or legal action relating to this +material against Advanced Micro Devices, Inc. or any copyright holders or +contributors. The foregoing shall survive any expiration or termination of +this license or any agreement or access or use related to this material. + +ANY BREACH OF ANY TERM OF THIS LICENSE SHALL RESULT IN THE IMMEDIATE REVOCATION +OF ALL RIGHTS TO REDISTRIBUTE, ACCESS OR USE THIS MATERIAL. + +THIS MATERIAL IS PROVIDED BY ADVANCED MICRO DEVICES, INC. AND ANY COPYRIGHT +HOLDERS AND CONTRIBUTORS "AS IS" IN ITS CURRENT CONDITION AND WITHOUT ANY +REPRESENTATIONS, GUARANTEE, OR WARRANTY OF ANY KIND OR IN ANY WAY RELATED TO +SUPPORT, INDEMNITY, ERROR FREE OR UNINTERRUPTED OPERATION, OR THAT IT IS FREE +FROM DEFECTS OR VIRUSES. ALL OBLIGATIONS ARE HEREBY DISCLAIMED - WHETHER +EXPRESS, IMPLIED, OR STATUTORY - INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED +WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, +ACCURACY, COMPLETENESS, OPERABILITY, QUALITY OF SERVICE, OR NON-INFRINGEMENT. +IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. OR ANY COPYRIGHT HOLDERS OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, REVENUE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED OR BASED ON ANY THEORY OF LIABILITY +ARISING IN ANY WAY RELATED TO THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. THE ENTIRE AND AGGREGATE LIABILITY OF ADVANCED MICRO DEVICES, +INC. AND ANY COPYRIGHT HOLDERS AND CONTRIBUTORS SHALL NOT EXCEED TEN DOLLARS +(US $10.00). ANYONE REDISTRIBUTING OR ACCESSING OR USING THIS MATERIAL ACCEPTS +THIS ALLOCATION OF RISK AND AGREES TO RELEASE ADVANCED MICRO DEVICES, INC. AND +ANY COPYRIGHT HOLDERS AND CONTRIBUTORS FROM ANY AND ALL LIABILITIES, +OBLIGATIONS, CLAIMS, OR DEMANDS IN EXCESS OF TEN DOLLARS (US $10.00). THE +FOREGOING ARE ESSENTIAL TERMS OF THIS LICENSE AND, IF ANY OF THESE TERMS ARE +CONSTRUED AS UNENFORCEABLE, FAIL IN ESSENTIAL PURPOSE, OR BECOME VOID OR +DETRIMENTAL TO ADVANCED MICRO DEVICES, INC. OR ANY COPYRIGHT HOLDERS OR +CONTRIBUTORS FOR ANY REASON, THEN ALL RIGHTS TO REDISTRIBUTE, ACCESS OR USE +THIS MATERIAL SHALL TERMINATE IMMEDIATELY. MOREOVER, THE FOREGOING SHALL +SURVIVE ANY EXPIRATION OR TERMINATION OF THIS LICENSE OR ANY AGREEMENT OR +ACCESS OR USE RELATED TO THIS MATERIAL. + +NOTICE IS HEREBY PROVIDED, AND BY REDISTRIBUTING OR ACCESSING OR USING THIS +MATERIAL SUCH NOTICE IS ACKNOWLEDGED, THAT THIS MATERIAL MAY BE SUBJECT TO +RESTRICTIONS UNDER THE LAWS AND REGULATIONS OF THE UNITED STATES OR OTHER +COUNTRIES, WHICH INCLUDE BUT ARE NOT LIMITED TO, U.S. EXPORT CONTROL LAWS SUCH +AS THE EXPORT ADMINISTRATION REGULATIONS AND NATIONAL SECURITY CONTROLS AS +DEFINED THEREUNDER, AS WELL AS STATE DEPARTMENT CONTROLS UNDER THE U.S. +MUNITIONS LIST. THIS MATERIAL MAY NOT BE USED, RELEASED, TRANSFERRED, IMPORTED, +EXPORTED AND/OR RE-EXPORTED IN ANY MANNER PROHIBITED UNDER ANY APPLICABLE LAWS, +INCLUDING U.S. EXPORT CONTROL LAWS REGARDING SPECIFICALLY DESIGNATED PERSONS, +COUNTRIES AND NATIONALS OF COUNTRIES SUBJECT TO NATIONAL SECURITY CONTROLS. +MOREOVER, THE FOREGOING SHALL SURVIVE ANY EXPIRATION OR TERMINATION OF ANY +LICENSE OR AGREEMENT OR ACCESS OR USE RELATED TO THIS MATERIAL. + +NOTICE REGARDING THE U.S. GOVERNMENT AND DOD AGENCIES: This material is +provided with "RESTRICTED RIGHTS" and/or "LIMITED RIGHTS" as applicable to +computer software and technical data, respectively. Use, duplication, +distribution or disclosure by the U.S. Government and/or DOD agencies is +subject to the full extent of restrictions in all applicable regulations, +including those found at FAR52.227 and DFARS252.227 et seq. and any successor +regulations thereof. Use of this material by the U.S. Government and/or DOD +agencies is acknowledgment of the proprietary rights of any copyright holders +and contributors, including those of Advanced Micro Devices, Inc., as well as +the provisions of FAR52.227-14 through 23 regarding privately developed and/or +commercial computer software. + +This license forms the entire agreement regarding the subject matter hereof and +supersedes all proposals and prior discussions and writings between the parties +with respect thereto. This license does not affect any ownership, rights, title, +or interest in, or relating to, this material. No terms of this license can be +modified or waived, and no breach of this license can be excused, unless done +so in a writing signed by all affected parties. Each term of this license is +separately enforceable. If any term of this license is determined to be or +becomes unenforceable or illegal, such term shall be reformed to the minimum +extent necessary in order for this license to remain in effect in accordance +with its terms as modified by such reformation. This license shall be governed +by and construed in accordance with the laws of the State of Texas without +regard to rules on conflicts of law of any state or jurisdiction or the United +Nations Convention on the International Sale of Goods. All disputes arising out +of this license shall be subject to the jurisdiction of the federal and state +courts in Austin, Texas, and all defenses are hereby waived concerning personal +jurisdiction and venue of these courts. + +============================================================ */ + +#ifndef __glx_ATI_Private_h_ +#define __glx_ATI_Private_h_ + + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef GLX_AMD_CL_Interop +#define GLX_AMD_CL_Interop 1 + +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXBeginCLInteropAMD(GLXContext context, GLuint flags); +extern Bool glXEndCLInteropAMD (GLXContext context, GLuint flags); +extern Bool glXResourceAttachAMD (GLXContext context, GLvoid* resource, GLvoid* pResourceData); +extern Bool glXResourceDetachAMD (GLXContext context, GLvoid* resource); +extern Bool glxGetContextMVPUINFOAMD(GLXContext context,GLuint * deviceId, GLuint * chainMask); +#else +typedef Bool (* PFNGLXBEGINCLINTEROPAMD)(GLXContext context, GLuint flags); +typedef Bool (* PFNGLXENDCLINTEROPAMD) (GLXContext context, GLuint flags); +typedef Bool (* PFNGLXRESOURCEATTACHAMD) (GLXContext context, GLvoid* resource, GLvoid* pResourceData); +typedef Bool (* PFNGLXRESOURCEDETACHAMD) (GLXContext context, GLvoid* resource); +typedef Bool (* PFNGLXGETCONTEXTMVPUINFOAMD)(GLXContext context, GLuint * deviceId, GLuint * chainMask); +#endif + +#endif /*GLX_AMD_CL_Interop */ + +#ifdef __cplusplus +} +#endif + +#endif /* __glx_ATI_Private_h_ */ diff --git a/projects/clr/rocclr/include/GL/glx.h b/projects/clr/rocclr/include/GL/glx.h new file mode 100644 index 0000000000..5a52512c50 --- /dev/null +++ b/projects/clr/rocclr/include/GL/glx.h @@ -0,0 +1,519 @@ +/* + * Mesa 3-D graphics library + * Version: 6.5 + * + * Copyright (C) 1999-2006 Brian Paul All Rights Reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN + * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + + +#ifndef GLX_H +#define GLX_H + + +#ifdef __VMS +#include +# ifdef __cplusplus +/* VMS Xlib.h gives problems with C++. + * this avoids a bunch of trivial warnings */ +#pragma message disable nosimpint +#endif +#endif +#include +#include +#ifdef __VMS +# ifdef __cplusplus +#pragma message enable nosimpint +#endif +#endif +#include + + +#if defined(USE_MGL_NAMESPACE) +#include "glx_mangle.h" +#endif + + +#ifdef __cplusplus +extern "C" { +#endif + + +#define GLX_VERSION_1_1 1 +#define GLX_VERSION_1_2 1 +#define GLX_VERSION_1_3 1 +#define GLX_VERSION_1_4 1 + +#define GLX_EXTENSION_NAME "GLX" + + + +/* + * Tokens for glXChooseVisual and glXGetConfig: + */ +#define GLX_USE_GL 1 +#define GLX_BUFFER_SIZE 2 +#define GLX_LEVEL 3 +#define GLX_RGBA 4 +#define GLX_DOUBLEBUFFER 5 +#define GLX_STEREO 6 +#define GLX_AUX_BUFFERS 7 +#define GLX_RED_SIZE 8 +#define GLX_GREEN_SIZE 9 +#define GLX_BLUE_SIZE 10 +#define GLX_ALPHA_SIZE 11 +#define GLX_DEPTH_SIZE 12 +#define GLX_STENCIL_SIZE 13 +#define GLX_ACCUM_RED_SIZE 14 +#define GLX_ACCUM_GREEN_SIZE 15 +#define GLX_ACCUM_BLUE_SIZE 16 +#define GLX_ACCUM_ALPHA_SIZE 17 + + +/* + * Error codes returned by glXGetConfig: + */ +#define GLX_BAD_SCREEN 1 +#define GLX_BAD_ATTRIBUTE 2 +#define GLX_NO_EXTENSION 3 +#define GLX_BAD_VISUAL 4 +#define GLX_BAD_CONTEXT 5 +#define GLX_BAD_VALUE 6 +#define GLX_BAD_ENUM 7 + + +/* + * GLX 1.1 and later: + */ +#define GLX_VENDOR 1 +#define GLX_VERSION 2 +#define GLX_EXTENSIONS 3 + + +/* + * GLX 1.3 and later: + */ +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_DONT_CARE 0xFFFFFFFF +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_VISUAL_ID 0x800B +#define GLX_SCREEN 0x800C +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_RGBA_TYPE 0x8014 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_PBUFFER 0x801C +#define GLX_WIDTH 0x801D +#define GLX_HEIGHT 0x801E +#define GLX_EVENT_MASK 0x801F +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 +#define GLX_PBUFFER_HEIGHT 0x8040 +#define GLX_PBUFFER_WIDTH 0x8041 +#define GLX_RGBA_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_RGBA_FLOAT_BIT 0x00000004 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 + + +/* + * GLX 1.4 and later: + */ +#define GLX_SAMPLE_BUFFERS 0x186a0 /*100000*/ +#define GLX_SAMPLES 0x186a1 /*100001*/ + + + +typedef struct __GLXcontextRec *GLXContext; +typedef XID GLXPixmap; +typedef XID GLXDrawable; +/* GLX 1.3 and later */ +typedef struct __GLXFBConfigRec *GLXFBConfig; +typedef XID GLXFBConfigID; +typedef XID GLXContextID; +typedef XID GLXWindow; +typedef XID GLXPbuffer; + + + +extern XVisualInfo* glXChooseVisual( Display *dpy, int screen, + int *attribList ); + +extern GLXContext glXCreateContext( Display *dpy, XVisualInfo *vis, + GLXContext shareList, Bool direct ); + +extern void glXDestroyContext( Display *dpy, GLXContext ctx ); + +extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable, + GLXContext ctx); + +extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst, + unsigned long mask ); + +extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable ); + +extern GLXPixmap glXCreateGLXPixmap( Display *dpy, XVisualInfo *visual, + Pixmap pixmap ); + +extern void glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap ); + +extern Bool glXQueryExtension( Display *dpy, int *errorb, int *event ); + +extern Bool glXQueryVersion( Display *dpy, int *maj, int *min ); + +extern Bool glXIsDirect( Display *dpy, GLXContext ctx ); + +extern int glXGetConfig( Display *dpy, XVisualInfo *visual, + int attrib, int *value ); + +extern GLXContext glXGetCurrentContext( void ); + +extern GLXDrawable glXGetCurrentDrawable( void ); + +extern void glXWaitGL( void ); + +extern void glXWaitX( void ); + +extern void glXUseXFont( Font font, int first, int count, int list ); + + + +/* GLX 1.1 and later */ +extern const char *glXQueryExtensionsString( Display *dpy, int screen ); + +extern const char *glXQueryServerString( Display *dpy, int screen, int name ); + +extern const char *glXGetClientString( Display *dpy, int name ); + + +/* GLX 1.2 and later */ +extern Display *glXGetCurrentDisplay( void ); + +/* GLX 1.3 and later */ +extern GLXFBConfig *glXChooseFBConfig( Display *dpy, int screen, + const int *attribList, int *nitems ); + +extern int glXGetFBConfigAttrib( Display *dpy, GLXFBConfig config, + int attribute, int *value ); + +extern GLXFBConfig *glXGetFBConfigs( Display *dpy, int screen, + int *nelements ); + +extern XVisualInfo *glXGetVisualFromFBConfig( Display *dpy, + GLXFBConfig config ); + +extern GLXWindow glXCreateWindow( Display *dpy, GLXFBConfig config, + Window win, const int *attribList ); + +extern void glXDestroyWindow( Display *dpy, GLXWindow window ); + +extern GLXPixmap glXCreatePixmap( Display *dpy, GLXFBConfig config, + Pixmap pixmap, const int *attribList ); + +extern void glXDestroyPixmap( Display *dpy, GLXPixmap pixmap ); + +extern GLXPbuffer glXCreatePbuffer( Display *dpy, GLXFBConfig config, + const int *attribList ); + +extern void glXDestroyPbuffer( Display *dpy, GLXPbuffer pbuf ); + +extern void glXQueryDrawable( Display *dpy, GLXDrawable draw, int attribute, + unsigned int *value ); + +extern GLXContext glXCreateNewContext( Display *dpy, GLXFBConfig config, + int renderType, GLXContext shareList, + Bool direct ); + +extern Bool glXMakeContextCurrent( Display *dpy, GLXDrawable draw, + GLXDrawable read, GLXContext ctx ); + +extern GLXDrawable glXGetCurrentReadDrawable( void ); + +extern int glXQueryContext( Display *dpy, GLXContext ctx, int attribute, + int *value ); + +extern void glXSelectEvent( Display *dpy, GLXDrawable drawable, + unsigned long mask ); + +extern void glXGetSelectedEvent( Display *dpy, GLXDrawable drawable, + unsigned long *mask ); + +/* GLX 1.3 function pointer typedefs */ +typedef GLXFBConfig * (* PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); +typedef GLXFBConfig * (* PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); +typedef int (* PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); +typedef XVisualInfo * (* PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); +typedef GLXWindow (* PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); +typedef void (* PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); +typedef GLXPixmap (* PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); +typedef void (* PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); +typedef GLXPbuffer (* PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); +typedef void (* PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); +typedef void (* PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); +typedef GLXContext (* PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef Bool (* PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef GLXDrawable (* PFNGLXGETCURRENTREADDRAWABLEPROC) (void); +typedef Display * (* PFNGLXGETCURRENTDISPLAYPROC) (void); +typedef int (* PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); +typedef void (* PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); +typedef void (* PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); + + +/* + * ARB 2. GLX_ARB_get_proc_address + */ +#ifndef GLX_ARB_get_proc_address +#define GLX_ARB_get_proc_address 1 + +typedef void (*__GLXextFuncPtr)(void); +extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); + +#endif /* GLX_ARB_get_proc_address */ + + + +/* GLX 1.4 and later */ +extern void (*glXGetProcAddress(const GLubyte *procname))( void ); + +/* GLX 1.4 function pointer typedefs */ +typedef __GLXextFuncPtr (* PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); + + +#ifndef GLX_GLXEXT_LEGACY + +#include + +#endif /* GLX_GLXEXT_LEGACY */ + + +/** + ** The following aren't in glxext.h yet. + **/ + + +/* + * ???. GLX_NV_vertex_array_range + */ +#ifndef GLX_NV_vertex_array_range +#define GLX_NV_vertex_array_range + +extern void *glXAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +extern void glXFreeMemoryNV(GLvoid *pointer); +typedef void * ( * PFNGLXALLOCATEMEMORYNVPROC) (GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority); +typedef void ( * PFNGLXFREEMEMORYNVPROC) (GLvoid *pointer); + +#endif /* GLX_NV_vertex_array_range */ + + +/* + * ???. GLX_MESA_allocate_memory + */ +#ifndef GLX_MESA_allocate_memory +#define GLX_MESA_allocate_memory 1 + +extern void *glXAllocateMemoryMESA(Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority); +extern void glXFreeMemoryMESA(Display *dpy, int scrn, void *pointer); +extern GLuint glXGetMemoryOffsetMESA(Display *dpy, int scrn, const void *pointer); +typedef void * ( * PFNGLXALLOCATEMEMORYMESAPROC) (Display *dpy, int scrn, size_t size, float readfreq, float writefreq, float priority); +typedef void ( * PFNGLXFREEMEMORYMESAPROC) (Display *dpy, int scrn, void *pointer); +typedef GLuint (* PFNGLXGETMEMORYOFFSETMESAPROC) (Display *dpy, int scrn, const void *pointer); + +#endif /* GLX_MESA_allocate_memory */ + + +/* + * ARB ?. GLX_ARB_render_texture + * XXX This was never finalized! + */ +#ifndef GLX_ARB_render_texture +#define GLX_ARB_render_texture 1 + +extern Bool glXBindTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); +extern Bool glXReleaseTexImageARB(Display *dpy, GLXPbuffer pbuffer, int buffer); +extern Bool glXDrawableAttribARB(Display *dpy, GLXDrawable draw, const int *attribList); + +#endif /* GLX_ARB_render_texture */ + + +/* + * Remove this when glxext.h is updated. + */ +#ifndef GLX_NV_float_buffer +#define GLX_NV_float_buffer 1 + +#define GLX_FLOAT_COMPONENTS_NV 0x20B0 + +#endif /* GLX_NV_float_buffer */ + + + +/* + * #?. GLX_MESA_swap_frame_usage + */ +#ifndef GLX_MESA_swap_frame_usage +#define GLX_MESA_swap_frame_usage 1 + +extern int glXGetFrameUsageMESA(Display *dpy, GLXDrawable drawable, float *usage); +extern int glXBeginFrameTrackingMESA(Display *dpy, GLXDrawable drawable); +extern int glXEndFrameTrackingMESA(Display *dpy, GLXDrawable drawable); +extern int glXQueryFrameTrackingMESA(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); + +typedef int (*PFNGLXGETFRAMEUSAGEMESAPROC) (Display *dpy, GLXDrawable drawable, float *usage); +typedef int (*PFNGLXBEGINFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); +typedef int (*PFNGLXENDFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable); +typedef int (*PFNGLXQUERYFRAMETRACKINGMESAPROC)(Display *dpy, GLXDrawable drawable, int64_t *swapCount, int64_t *missedFrames, float *lastMissedUsage); + +#endif /* GLX_MESA_swap_frame_usage */ + + + +/* + * #?. GLX_MESA_swap_control + */ +#ifndef GLX_MESA_swap_control +#define GLX_MESA_swap_control 1 + +extern int glXSwapIntervalMESA(unsigned int interval); +extern int glXGetSwapIntervalMESA(void); + +typedef int (*PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval); +typedef int (*PFNGLXGETSWAPINTERVALMESAPROC)(void); + +#endif /* GLX_MESA_swap_control */ + + + +/* + * #?. GLX_EXT_texture_from_pixmap + * XXX not finished? + */ +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_EXT_texture_from_pixmap 1 + +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 +#define GLX_Y_INVERTED_EXT 0x20D4 + +#define GLX_TEXTURE_FORMAT_EXT 0x20D5 +#define GLX_TEXTURE_TARGET_EXT 0x20D6 +#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 + +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA + +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 + +#define GLX_TEXTURE_1D_EXT 0x20DB +#define GLX_TEXTURE_2D_EXT 0x20DC +#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD + +#define GLX_FRONT_LEFT_EXT 0x20DE +#define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_LEFT_EXT 0x20E0 +#define GLX_BACK_RIGHT_EXT 0x20E1 +#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT +#define GLX_BACK_EXT GLX_BACK_LEFT_EXT +#define GLX_AUX0_EXT 0x20E2 +#define GLX_AUX1_EXT 0x20E3 +#define GLX_AUX2_EXT 0x20E4 +#define GLX_AUX3_EXT 0x20E5 +#define GLX_AUX4_EXT 0x20E6 +#define GLX_AUX5_EXT 0x20E7 +#define GLX_AUX6_EXT 0x20E8 +#define GLX_AUX7_EXT 0x20E9 +#define GLX_AUX8_EXT 0x20EA +#define GLX_AUX9_EXT 0x20EB + +extern void glXBindTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); +extern void glXReleaseTexImageEXT(Display *dpy, GLXDrawable drawable, int buffer); + +#endif /* GLX_EXT_texture_from_pixmap */ + + + + +/*** Should these go here, or in another header? */ +/* +** GLX Events +*/ +typedef struct { + int event_type; /* GLX_DAMAGED or GLX_SAVED */ + int draw_type; /* GLX_WINDOW or GLX_PBUFFER */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came for SendEvent request */ + Display *display; /* display the event was read from */ + GLXDrawable drawable; /* XID of Drawable */ + unsigned int buffer_mask; /* mask indicating which buffers are affected */ + unsigned int aux_buffer; /* which aux buffer was affected */ + int x, y; + int width, height; + int count; /* if nonzero, at least this many more */ +} GLXPbufferClobberEvent; + +typedef union __GLXEvent { + GLXPbufferClobberEvent glxpbufferclobber; + long pad[24]; +} GLXEvent; + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/projects/clr/rocclr/include/GL/glxATI.h b/projects/clr/rocclr/include/GL/glxATI.h new file mode 100644 index 0000000000..54b16f190a --- /dev/null +++ b/projects/clr/rocclr/include/GL/glxATI.h @@ -0,0 +1,205 @@ +#ifndef __glx_ATI_h_ +#define __glx_ATI_h_ +// +// Copyright (c) 2002 Advanced Micro Devices, Inc. All rights reserved. +// + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Notes: +** +** Listed support is for current drivers and should really only be used +** as a guideline. ISV should still use glGetString() and +** glXGetClientString() to determine the exact set of supported +** GL and GLX extensions. +** +*/ + +#ifndef GLX_ATI_pixel_format_float +#define GLX_ATI_pixel_format_float 1 + +#define GLX_RGBA_FLOAT_ATI_BIT 0x00000100 + +#endif // GLX_ATI_pixel_format_float + +#ifndef GLX_RGBA_FLOAT_BIT +#define GLX_RGBA_FLOAT_BIT 0x00000004 +#endif //GLX_RGBA_FLOAT_BIT + +#ifndef GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT +#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 +#endif //GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT + +#ifndef GLX_ATI_render_texture +#define GLX_ATI_render_texture 1 + +#define GLX_BIND_TO_TEXTURE_RGB_ATI 0x9800 // need real tokens here +#define GLX_BIND_TO_TEXTURE_RGBA_ATI 0x9801 +#define GLX_TEXTURE_FORMAT_ATI 0x9802 +#define GLX_TEXTURE_TARGET_ATI 0x9803 +#define GLX_MIPMAP_TEXTURE_ATI 0x9804 +#define GLX_TEXTURE_RGB_ATI 0x9805 +#define GLX_TEXTURE_RGBA_ATI 0x9806 +#define GLX_NO_TEXTURE_ATI 0x9807 +#define GLX_TEXTURE_CUBE_MAP_ATI 0x9808 +#define GLX_TEXTURE_1D_ATI 0x9809 +#define GLX_TEXTURE_2D_ATI 0x980A +#define GLX_MIPMAP_LEVEL_ATI 0x980B +#define GLX_CUBE_MAP_FACE_ATI 0x980C +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980D +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980E +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980F +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810 +#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811 +#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812 +#define GLX_FRONT_LEFT_ATI 0x9813 +#define GLX_FRONT_RIGHT_ATI 0x9814 +#define GLX_BACK_LEFT_ATI 0x9815 +#define GLX_BACK_RIGHT_ATI 0x9816 +#define GLX_AUX0_ATI 0x9817 +#define GLX_AUX1_ATI 0x9818 +#define GLX_AUX2_ATI 0x9819 +#define GLX_AUX3_ATI 0x981A +#define GLX_AUX4_ATI 0x981B +#define GLX_AUX5_ATI 0x981C +#define GLX_AUX6_ATI 0x981D +#define GLX_AUX7_ATI 0x981E +#define GLX_AUX8_ATI 0x981F +#define GLX_AUX9_ATI 0x9820 +#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI 0x9821 +#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI 0x9822 + +typedef void (* PFNGLXBINDTEXIMAGEATIPROC)(Display *dpy, GLXPbuffer pbuf, int buffer); +typedef void (* PFNGLXRELEASETEXIMAGEATIPROC)(Display *dpy, GLXPbuffer pbuf, int buffer); +typedef void (* PFNGLXDRAWABLEATTRIBATIPROC)(Display *dpy, GLXDrawable draw, const int *attrib_list); + +#endif // GLX_ATI_render_texture + +#ifndef GLX_ARB_multisample +#define GLX_ARB_multisample 1 + +#define GLX_SAMPLE_BUFFERS_ARB 100000 +#define GLX_SAMPLES_ARB 100001 + +// put GL interface here for convenience +#ifndef GL_ARB_multisample +#define GL_ARB_multisample 1 +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 + +typedef GLvoid (APIENTRY * PFNGLSAMPLECOVERAGEARBPROC)(GLclampf value, GLboolean invert); +#endif /* GL_ARB_multisample */ + +#endif // GLX_ARB_multisample + + +#ifndef HPV_transmit_buffer +//#define HPV_transmit_buffer 1 +#endif + +#ifdef HPV_transmit_buffer + +#define GLX_TRANSMITTABLE_HPV 0x70000001 +#define GLX_TRANSMIT_FORMAT_HPV 0x70000002 + +#define GLX_RGB_HPV 0x70000003 +#define GLX_RGBA_HPV 0x70000004 +#define GLX_DEPTH_HPV 0x70000005 +#define GLX_DEPTH_STENCIL_HPV 0x70000006 +#define GLX_RGB_DEPTH_HPV 0x70000007 +#define GLX_RGBA_DEPTH_STENCIL_HPV 0x70000008 + + +#define GLX_PBUFFER_PITCH_HPV 0x70000009 + +#define GLX_TRANSMIT_HOR_ADDR_TIME_HPV 0x7000000A +#define GLX_TRANSMIT_HOR_FP_TIME_HPV 0x7000000B +#define GLX_TRANSMIT_HOR_SYNC_TIME_HPV 0x7000000C +#define GLX_TRANSMIT_HOR_BP_TIME_HPV 0x7000000D +#define GLX_TRANSMIT_HOR_POLARITY_HPV 0x7000000E +#define GLX_TRANSMIT_VER_ADDR_TIME_HPV 0x7000000F +#define GLX_TRANSMIT_VER_FP_TIME_HPV 0x70000010 +#define GLX_TRANSMIT_VER_SYNC_TIME_HPV 0x70000011 +#define GLX_TRANSMIT_VER_BP_TIME_HPV 0x70000012 +#define GLX_TRANSMIT_VER_POLARITY_HPV 0x70000013 +#define GLX_TRANSMIT_PIXELCLOCK_HPV 0x70000014 + +#define GLX_TRANSMIT_STEREO_ID_NONE 0x70000020 +#define GLX_TRANSMIT_STEREO_ID_1 0x70000021 +#define GLX_TRANSMIT_STEREO_ID_2 0x70000022 +#define GLX_TRANSMIT_STEREO_ID_3 0x70000023 + +typedef BOOL (APIENTRY * PFNGLXTRANSMITPBUFFERHPVPROC) ( + Display *dpy, + GLXPbuffer pBuffer, + unsigned int id, + unsigned int idStereo, + BOOL wait); +typedef BOOL (APIENTRY * PFNGLXTRANSMITSTOPHPVPROC) (Display *dpy); + +#endif /* HPV_transmit_buffer */ + + +#ifndef GLX_NV_swap_group +#define GLX_NV_swap_group 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXJoinSwapGroupNV(Display *dpy, GLXDrawable drawable, GLuint group); +extern Bool glXQuerySwapGroupNV(Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); +extern Bool glXBindSwapBarrierNV(Display *dpy, GLuint group, GLuint barrier); +extern Bool glXQueryMaxSwapGroupsNV(Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); +extern Bool glXQueryFrameCountNV(Display *dpy, int screen, GLuint *count); +extern Bool glXResetFrameCountNV(Display *dpy, int screen); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint group); +typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); +typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display *dpy, GLuint group, GLuint barrier); +typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); +typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display *dpy, int screen, GLuint *count); +typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display *dpy, int screen); +#endif /* GLX_NV_swap_group */ + +/* + * GLX_ARB_create_context + */ +#ifndef GLX_ARB_create_context +#define GLX_ARB_create_context 1 + +#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define GLX_CONTEXT_FLAGS_ARB 0x2094 +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 +#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 + +extern GLXContext glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); +#endif /* GLX_ARB_create_context */ + +/* + * GLX_ARB_context_flush_control + */ +#ifndef GLX_ARB_context_flush_control +#define GLX_ARB_context_flush_control 1 + +#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 +#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 +#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 + +#endif /* GLX_ARB_context_flush_control */ + +#ifdef __cplusplus +} +#endif + +#endif /* __glx_ATI_h_ */ diff --git a/projects/clr/rocclr/include/GL/glxext.h b/projects/clr/rocclr/include/GL/glxext.h new file mode 100644 index 0000000000..c4aae16917 --- /dev/null +++ b/projects/clr/rocclr/include/GL/glxext.h @@ -0,0 +1,937 @@ +#ifndef __glxext_h_ +#define __glxext_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** Copyright (c) 2007 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/*************************************************************/ + +/* Header file version number, required by OpenGL ABI for Linux */ +/* glxext.h last updated 2008/10/22 */ +/* Current version at http://www.opengl.org/registry/ */ +#define GLX_GLXEXT_VERSION 21 + +#ifndef GLX_VERSION_1_3 +#define GLX_WINDOW_BIT 0x00000001 +#define GLX_PIXMAP_BIT 0x00000002 +#define GLX_PBUFFER_BIT 0x00000004 +#define GLX_RGBA_BIT 0x00000001 +#define GLX_COLOR_INDEX_BIT 0x00000002 +#define GLX_RGBA_FLOAT_BIT 0x00000004 +#define GLX_PBUFFER_CLOBBER_MASK 0x08000000 +#define GLX_FRONT_LEFT_BUFFER_BIT 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT 0x00000008 +#define GLX_AUX_BUFFERS_BIT 0x00000010 +#define GLX_DEPTH_BUFFER_BIT 0x00000020 +#define GLX_STENCIL_BUFFER_BIT 0x00000040 +#define GLX_ACCUM_BUFFER_BIT 0x00000080 +#define GLX_CONFIG_CAVEAT 0x20 +#define GLX_X_VISUAL_TYPE 0x22 +#define GLX_TRANSPARENT_TYPE 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE 0x24 +#define GLX_TRANSPARENT_RED_VALUE 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE 0x28 +#define GLX_DONT_CARE 0xFFFFFFFF +#define GLX_NONE 0x8000 +#define GLX_SLOW_CONFIG 0x8001 +#define GLX_TRUE_COLOR 0x8002 +#define GLX_DIRECT_COLOR 0x8003 +#define GLX_PSEUDO_COLOR 0x8004 +#define GLX_STATIC_COLOR 0x8005 +#define GLX_GRAY_SCALE 0x8006 +#define GLX_STATIC_GRAY 0x8007 +#define GLX_TRANSPARENT_RGB 0x8008 +#define GLX_TRANSPARENT_INDEX 0x8009 +#define GLX_VISUAL_ID 0x800B +#define GLX_SCREEN 0x800C +#define GLX_NON_CONFORMANT_CONFIG 0x800D +#define GLX_DRAWABLE_TYPE 0x8010 +#define GLX_RENDER_TYPE 0x8011 +#define GLX_X_RENDERABLE 0x8012 +#define GLX_FBCONFIG_ID 0x8013 +#define GLX_RGBA_TYPE 0x8014 +#define GLX_COLOR_INDEX_TYPE 0x8015 +#define GLX_MAX_PBUFFER_WIDTH 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT 0x8017 +#define GLX_MAX_PBUFFER_PIXELS 0x8018 +#define GLX_PRESERVED_CONTENTS 0x801B +#define GLX_LARGEST_PBUFFER 0x801C +#define GLX_WIDTH 0x801D +#define GLX_HEIGHT 0x801E +#define GLX_EVENT_MASK 0x801F +#define GLX_DAMAGED 0x8020 +#define GLX_SAVED 0x8021 +#define GLX_WINDOW 0x8022 +#define GLX_PBUFFER 0x8023 +#define GLX_PBUFFER_HEIGHT 0x8040 +#define GLX_PBUFFER_WIDTH 0x8041 +#endif + +#ifndef GLX_VERSION_1_4 +#define GLX_SAMPLE_BUFFERS 100000 +#define GLX_SAMPLES 100001 +#endif + +#ifndef GLX_ARB_get_proc_address +#endif + +#ifndef GLX_ARB_multisample +#define GLX_SAMPLE_BUFFERS_ARB 100000 +#define GLX_SAMPLES_ARB 100001 +#endif + +#ifndef GLX_ARB_fbconfig_float +#define GLX_RGBA_FLOAT_TYPE_ARB 0x20B9 +#define GLX_RGBA_FLOAT_BIT_ARB 0x00000004 +#endif + +#ifndef GLX_ARB_create_context +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x00000001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define GLX_CONTEXT_FLAGS_ARB 0x2094 +#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 +#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_ASIC_ID_AMD 0x91c4 //chip id +#define GLX_CONTEXT_ASIC_FAMILY_AMD 0x91c5 //asic family +#define GLX_CONTEXT_ASIC_REV_AMD 0x91c6 //asic revision +#define GLX_CONTEXT_DEVICE_MEMORY_SIZE_AMD 0x91c7 //asic device memory +#define GLX_CONTEXT_DUMMY_DEVICE_AMD 0xffffffff //used to define dummy context +#define GLXBadProfileARB 13 +#endif + +#ifndef GLX_SGIS_multisample +#define GLX_SAMPLE_BUFFERS_SGIS 100000 +#define GLX_SAMPLES_SGIS 100001 +#endif + +#ifndef GLX_EXT_visual_info +#define GLX_X_VISUAL_TYPE_EXT 0x22 +#define GLX_TRANSPARENT_TYPE_EXT 0x23 +#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24 +#define GLX_TRANSPARENT_RED_VALUE_EXT 0x25 +#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26 +#define GLX_TRANSPARENT_BLUE_VALUE_EXT 0x27 +#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28 +#define GLX_NONE_EXT 0x8000 +#define GLX_TRUE_COLOR_EXT 0x8002 +#define GLX_DIRECT_COLOR_EXT 0x8003 +#define GLX_PSEUDO_COLOR_EXT 0x8004 +#define GLX_STATIC_COLOR_EXT 0x8005 +#define GLX_GRAY_SCALE_EXT 0x8006 +#define GLX_STATIC_GRAY_EXT 0x8007 +#define GLX_TRANSPARENT_RGB_EXT 0x8008 +#define GLX_TRANSPARENT_INDEX_EXT 0x8009 +#endif + +#ifndef GLX_SGI_swap_control +#endif + +#ifndef GLX_SGI_video_sync +#endif + +#ifndef GLX_SGI_make_current_read +#endif + +#ifndef GLX_SGIX_video_source +#endif + +#ifndef GLX_EXT_visual_rating +#define GLX_VISUAL_CAVEAT_EXT 0x20 +#define GLX_SLOW_VISUAL_EXT 0x8001 +#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800D +/* reuse GLX_NONE_EXT */ +#endif + +#ifndef GLX_EXT_import_context +#define GLX_SHARE_CONTEXT_EXT 0x800A +#define GLX_VISUAL_ID_EXT 0x800B +#define GLX_SCREEN_EXT 0x800C +#endif + +#ifndef GLX_SGIX_fbconfig +#define GLX_WINDOW_BIT_SGIX 0x00000001 +#define GLX_PIXMAP_BIT_SGIX 0x00000002 +#define GLX_RGBA_BIT_SGIX 0x00000001 +#define GLX_COLOR_INDEX_BIT_SGIX 0x00000002 +#define GLX_DRAWABLE_TYPE_SGIX 0x8010 +#define GLX_RENDER_TYPE_SGIX 0x8011 +#define GLX_X_RENDERABLE_SGIX 0x8012 +#define GLX_FBCONFIG_ID_SGIX 0x8013 +#define GLX_RGBA_TYPE_SGIX 0x8014 +#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015 +/* reuse GLX_SCREEN_EXT */ +#endif + +#ifndef GLX_SGIX_pbuffer +#define GLX_PBUFFER_BIT_SGIX 0x00000004 +#define GLX_BUFFER_CLOBBER_MASK_SGIX 0x08000000 +#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX 0x00000001 +#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x00000002 +#define GLX_BACK_LEFT_BUFFER_BIT_SGIX 0x00000004 +#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX 0x00000008 +#define GLX_AUX_BUFFERS_BIT_SGIX 0x00000010 +#define GLX_DEPTH_BUFFER_BIT_SGIX 0x00000020 +#define GLX_STENCIL_BUFFER_BIT_SGIX 0x00000040 +#define GLX_ACCUM_BUFFER_BIT_SGIX 0x00000080 +#define GLX_SAMPLE_BUFFERS_BIT_SGIX 0x00000100 +#define GLX_MAX_PBUFFER_WIDTH_SGIX 0x8016 +#define GLX_MAX_PBUFFER_HEIGHT_SGIX 0x8017 +#define GLX_MAX_PBUFFER_PIXELS_SGIX 0x8018 +#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX 0x8019 +#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801A +#define GLX_PRESERVED_CONTENTS_SGIX 0x801B +#define GLX_LARGEST_PBUFFER_SGIX 0x801C +#define GLX_WIDTH_SGIX 0x801D +#define GLX_HEIGHT_SGIX 0x801E +#define GLX_EVENT_MASK_SGIX 0x801F +#define GLX_DAMAGED_SGIX 0x8020 +#define GLX_SAVED_SGIX 0x8021 +#define GLX_WINDOW_SGIX 0x8022 +#define GLX_PBUFFER_SGIX 0x8023 +#endif + +#ifndef GLX_SGI_cushion +#endif + +#ifndef GLX_SGIX_video_resize +#define GLX_SYNC_FRAME_SGIX 0x00000000 +#define GLX_SYNC_SWAP_SGIX 0x00000001 +#endif + +#ifndef GLX_SGIX_dmbuffer +#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX 0x8024 +#endif + +#ifndef GLX_SGIX_swap_group +#endif + +#ifndef GLX_SGIX_swap_barrier +#endif + +#ifndef GLX_SGIS_blended_overlay +#define GLX_BLENDED_RGBA_SGIS 0x8025 +#endif + +#ifndef GLX_SGIS_shared_multisample +#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS 0x8026 +#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027 +#endif + +#ifndef GLX_SUN_get_transparent_index +#endif + +#ifndef GLX_3DFX_multisample +#define GLX_SAMPLE_BUFFERS_3DFX 0x8050 +#define GLX_SAMPLES_3DFX 0x8051 +#endif + +#ifndef GLX_MESA_copy_sub_buffer +#endif + +#ifndef GLX_MESA_pixmap_colormap +#endif + +#ifndef GLX_MESA_release_buffers +#endif + +#ifndef GLX_MESA_set_3dfx_mode +#define GLX_3DFX_WINDOW_MODE_MESA 0x1 +#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2 +#endif + +#ifndef GLX_SGIX_visual_select_group +#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 +#endif + +#ifndef GLX_OML_swap_method +#define GLX_SWAP_METHOD_OML 0x8060 +#define GLX_SWAP_EXCHANGE_OML 0x8061 +#define GLX_SWAP_COPY_OML 0x8062 +#define GLX_SWAP_UNDEFINED_OML 0x8063 +#endif + +#ifndef GLX_OML_sync_control +#endif + +#ifndef GLX_NV_float_buffer +#define GLX_FLOAT_COMPONENTS_NV 0x20B0 +#endif + +#ifndef GLX_SGIX_hyperpipe +#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 +#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 +#define GLX_BAD_HYPERPIPE_SGIX 92 +#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 +#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 +#define GLX_PIPE_RECT_SGIX 0x00000001 +#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 +#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 +#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 +#define GLX_HYPERPIPE_ID_SGIX 0x8030 +#endif + +#ifndef GLX_MESA_agp_offset +#endif + +#ifndef GLX_EXT_fbconfig_packed_float +#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20B1 +#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT 0x00000008 +#endif + +#ifndef GLX_EXT_framebuffer_sRGB +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20B2 +#endif + +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_TEXTURE_1D_BIT_EXT 0x00000001 +#define GLX_TEXTURE_2D_BIT_EXT 0x00000002 +#define GLX_TEXTURE_RECTANGLE_BIT_EXT 0x00000004 +#define GLX_BIND_TO_TEXTURE_RGB_EXT 0x20D0 +#define GLX_BIND_TO_TEXTURE_RGBA_EXT 0x20D1 +#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT 0x20D2 +#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20D3 +#define GLX_Y_INVERTED_EXT 0x20D4 +#define GLX_TEXTURE_FORMAT_EXT 0x20D5 +#define GLX_TEXTURE_TARGET_EXT 0x20D6 +#define GLX_MIPMAP_TEXTURE_EXT 0x20D7 +#define GLX_TEXTURE_FORMAT_NONE_EXT 0x20D8 +#define GLX_TEXTURE_FORMAT_RGB_EXT 0x20D9 +#define GLX_TEXTURE_FORMAT_RGBA_EXT 0x20DA +#define GLX_TEXTURE_1D_EXT 0x20DB +#define GLX_TEXTURE_2D_EXT 0x20DC +#define GLX_TEXTURE_RECTANGLE_EXT 0x20DD +#define GLX_FRONT_LEFT_EXT 0x20DE +#define GLX_FRONT_RIGHT_EXT 0x20DF +#define GLX_BACK_LEFT_EXT 0x20E0 +#define GLX_BACK_RIGHT_EXT 0x20E1 +#define GLX_FRONT_EXT GLX_FRONT_LEFT_EXT +#define GLX_BACK_EXT GLX_BACK_LEFT_EXT +#define GLX_AUX0_EXT 0x20E2 +#define GLX_AUX1_EXT 0x20E3 +#define GLX_AUX2_EXT 0x20E4 +#define GLX_AUX3_EXT 0x20E5 +#define GLX_AUX4_EXT 0x20E6 +#define GLX_AUX5_EXT 0x20E7 +#define GLX_AUX6_EXT 0x20E8 +#define GLX_AUX7_EXT 0x20E9 +#define GLX_AUX8_EXT 0x20EA +#define GLX_AUX9_EXT 0x20EB +#endif + +#ifndef GLX_NV_present_video +#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 +#endif + +#ifndef GLX_NV_video_out +#define GLX_VIDEO_OUT_COLOR_NV 0x20C3 +#define GLX_VIDEO_OUT_ALPHA_NV 0x20C4 +#define GLX_VIDEO_OUT_DEPTH_NV 0x20C5 +#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define GLX_VIDEO_OUT_FRAME_NV 0x20C8 +#define GLX_VIDEO_OUT_FIELD_1_NV 0x20C9 +#define GLX_VIDEO_OUT_FIELD_2_NV 0x20CA +#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20CB +#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20CC +#endif + +#ifndef GLX_NV_swap_group +#endif + +#ifndef GLX_AMD_gpu_association +#define GLX_GPU_VENDOR_AMD 0x1F00 +#define GLX_GPU_RENDERER_STRING_AMD 0x1F01 +#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define GLX_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define GLX_GPU_RAM_AMD 0x21A3 +#define GLX_GPU_CLOCK_AMD 0x21A4 +#define GLX_GPU_NUM_PIPES_AMD 0x21A5 +#define GLX_GPU_NUM_SIMD_AMD 0x21A6 +#define GLX_GPU_NUM_RB_AMD 0x21A7 +#define GLX_GPU_NUM_SPI_AMD 0x21A8 +#endif + +#ifndef GLX_EXT_buffer_age +#define GLX_BACK_BUFFER_AGE_EXT 0x20F4 +#endif +/*************************************************************/ + +#ifndef GLX_ARB_get_proc_address +typedef void (*__GLXextFuncPtr)(void); +#endif + +#ifndef GLX_SGIX_video_source +typedef XID GLXVideoSourceSGIX; +#endif + +#ifndef GLX_SGIX_fbconfig +typedef XID GLXFBConfigIDSGIX; +typedef struct __GLXFBConfigRec *GLXFBConfigSGIX; +#endif + +#ifndef GLX_SGIX_pbuffer +typedef XID GLXPbufferSGIX; +typedef struct { + int type; + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came for SendEvent request */ + Display *display; /* display the event was read from */ + GLXDrawable drawable; /* i.d. of Drawable */ + int event_type; /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */ + int draw_type; /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */ + unsigned int mask; /* mask indicating which buffers are affected*/ + int x, y; + int width, height; + int count; /* if nonzero, at least this many more */ +} GLXBufferClobberEventSGIX; +#endif + +#ifndef GLEXT_64_TYPES_DEFINED +/* This code block is duplicated in glext.h, so must be protected */ +#define GLEXT_64_TYPES_DEFINED +/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ +/* (as used in the GLX_OML_sync_control extension). */ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +#elif defined(__sun__) || defined(__digital__) +#include +#if defined(__STDC__) +#if defined(__arch64__) || defined(_LP64) +typedef long int int64_t; +typedef unsigned long int uint64_t; +#else +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#endif /* __arch64__ */ +#endif /* __STDC__ */ +#elif defined( __VMS ) || defined(__sgi) +#include +#elif defined(__SCO__) || defined(__USLC__) +#include +#elif defined(__UNIXOS2__) || defined(__SOL64__) +typedef long int int32_t; +typedef long long int int64_t; +typedef unsigned long long int uint64_t; +#elif defined(_WIN32) && defined(__GNUC__) +#include +#elif defined(_WIN32) +typedef __int32 int32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include /* Fallback option */ +#endif +#endif + +#ifndef GLX_VERSION_1_3 +#define GLX_VERSION_1_3 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXFBConfig * glXGetFBConfigs (Display *, int, int *); +extern GLXFBConfig * glXChooseFBConfig (Display *, int, const int *, int *); +extern int glXGetFBConfigAttrib (Display *, GLXFBConfig, int, int *); +extern XVisualInfo * glXGetVisualFromFBConfig (Display *, GLXFBConfig); +extern GLXWindow glXCreateWindow (Display *, GLXFBConfig, Window, const int *); +extern void glXDestroyWindow (Display *, GLXWindow); +extern GLXPixmap glXCreatePixmap (Display *, GLXFBConfig, Pixmap, const int *); +extern void glXDestroyPixmap (Display *, GLXPixmap); +extern GLXPbuffer glXCreatePbuffer (Display *, GLXFBConfig, const int *); +extern void glXDestroyPbuffer (Display *, GLXPbuffer); +extern void glXQueryDrawable (Display *, GLXDrawable, int, unsigned int *); +extern GLXContext glXCreateNewContext (Display *, GLXFBConfig, int, GLXContext, Bool); +extern Bool glXMakeContextCurrent (Display *, GLXDrawable, GLXDrawable, GLXContext); +extern GLXDrawable glXGetCurrentReadDrawable (void); +extern Display * glXGetCurrentDisplay (void); +extern int glXQueryContext (Display *, GLXContext, int, int *); +extern void glXSelectEvent (Display *, GLXDrawable, unsigned long); +extern void glXGetSelectedEvent (Display *, GLXDrawable, unsigned long *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXFBConfig * ( * PFNGLXGETFBCONFIGSPROC) (Display *dpy, int screen, int *nelements); +typedef GLXFBConfig * ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); +typedef int ( * PFNGLXGETFBCONFIGATTRIBPROC) (Display *dpy, GLXFBConfig config, int attribute, int *value); +typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGPROC) (Display *dpy, GLXFBConfig config); +typedef GLXWindow ( * PFNGLXCREATEWINDOWPROC) (Display *dpy, GLXFBConfig config, Window win, const int *attrib_list); +typedef void ( * PFNGLXDESTROYWINDOWPROC) (Display *dpy, GLXWindow win); +typedef GLXPixmap ( * PFNGLXCREATEPIXMAPPROC) (Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list); +typedef void ( * PFNGLXDESTROYPIXMAPPROC) (Display *dpy, GLXPixmap pixmap); +typedef GLXPbuffer ( * PFNGLXCREATEPBUFFERPROC) (Display *dpy, GLXFBConfig config, const int *attrib_list); +typedef void ( * PFNGLXDESTROYPBUFFERPROC) (Display *dpy, GLXPbuffer pbuf); +typedef void ( * PFNGLXQUERYDRAWABLEPROC) (Display *dpy, GLXDrawable draw, int attribute, unsigned int *value); +typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); +typedef Bool ( * PFNGLXMAKECONTEXTCURRENTPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLEPROC) (void); +typedef Display * ( * PFNGLXGETCURRENTDISPLAYPROC) (void); +typedef int ( * PFNGLXQUERYCONTEXTPROC) (Display *dpy, GLXContext ctx, int attribute, int *value); +typedef void ( * PFNGLXSELECTEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long event_mask); +typedef void ( * PFNGLXGETSELECTEDEVENTPROC) (Display *dpy, GLXDrawable draw, unsigned long *event_mask); +#endif + +#ifndef GLX_VERSION_1_4 +#define GLX_VERSION_1_4 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern __GLXextFuncPtr glXGetProcAddress (const GLubyte *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSPROC) (const GLubyte *procName); +#endif + +#ifndef GLX_ARB_get_proc_address +#define GLX_ARB_get_proc_address 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern __GLXextFuncPtr glXGetProcAddressARB (const GLubyte *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef __GLXextFuncPtr ( * PFNGLXGETPROCADDRESSARBPROC) (const GLubyte *procName); +#endif + +#ifndef GLX_ARB_multisample +#define GLX_ARB_multisample 1 +#endif + +#ifndef GLX_ARB_fbconfig_float +#define GLX_ARB_fbconfig_float 1 +#endif + +#ifndef GLX_ARB_create_context +#define GLX_ARB_create_context 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXContext glXCreateContextAttribsARB (Display *, GLXFBConfig, GLXContext, Bool, const int *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); +#endif + +#ifndef GLX_SGIS_multisample +#define GLX_SGIS_multisample 1 +#endif + +#ifndef GLX_EXT_visual_info +#define GLX_EXT_visual_info 1 +#endif + +#ifndef GLX_SGI_swap_control +#define GLX_SGI_swap_control 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXSwapIntervalSGI (int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); +#endif + +#ifndef GLX_SGI_video_sync +#define GLX_SGI_video_sync 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXGetVideoSyncSGI (unsigned int *); +extern int glXWaitVideoSyncSGI (int, int, unsigned int *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int *count); +typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int *count); +#endif + +#ifndef GLX_SGI_make_current_read +#define GLX_SGI_make_current_read 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXMakeCurrentReadSGI (Display *, GLXDrawable, GLXDrawable, GLXContext); +extern GLXDrawable glXGetCurrentReadDrawableSGI (void); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXMAKECURRENTREADSGIPROC) (Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx); +typedef GLXDrawable ( * PFNGLXGETCURRENTREADDRAWABLESGIPROC) (void); +#endif + +#ifndef GLX_SGIX_video_source +#define GLX_SGIX_video_source 1 +#ifdef _VL_H +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXVideoSourceSGIX glXCreateGLXVideoSourceSGIX (Display *, int, VLServer, VLPath, int, VLNode); +extern void glXDestroyGLXVideoSourceSGIX (Display *, GLXVideoSourceSGIX); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXVideoSourceSGIX ( * PFNGLXCREATEGLXVIDEOSOURCESGIXPROC) (Display *display, int screen, VLServer server, VLPath path, int nodeClass, VLNode drainNode); +typedef void ( * PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC) (Display *dpy, GLXVideoSourceSGIX glxvideosource); +#endif /* _VL_H */ +#endif + +#ifndef GLX_EXT_visual_rating +#define GLX_EXT_visual_rating 1 +#endif + +#ifndef GLX_EXT_import_context +#define GLX_EXT_import_context 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Display * glXGetCurrentDisplayEXT (void); +extern int glXQueryContextInfoEXT (Display *, GLXContext, int, int *); +extern GLXContextID glXGetContextIDEXT (const GLXContext); +extern GLXContext glXImportContextEXT (Display *, GLXContextID); +extern void glXFreeContextEXT (Display *, GLXContext); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Display * ( * PFNGLXGETCURRENTDISPLAYEXTPROC) (void); +typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display *dpy, GLXContext context, int attribute, int *value); +typedef GLXContextID ( * PFNGLXGETCONTEXTIDEXTPROC) (const GLXContext context); +typedef GLXContext ( * PFNGLXIMPORTCONTEXTEXTPROC) (Display *dpy, GLXContextID contextID); +typedef void ( * PFNGLXFREECONTEXTEXTPROC) (Display *dpy, GLXContext context); +#endif + +#ifndef GLX_SGIX_fbconfig +#define GLX_SGIX_fbconfig 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXGetFBConfigAttribSGIX (Display *, GLXFBConfigSGIX, int, int *); +extern GLXFBConfigSGIX * glXChooseFBConfigSGIX (Display *, int, int *, int *); +extern GLXPixmap glXCreateGLXPixmapWithConfigSGIX (Display *, GLXFBConfigSGIX, Pixmap); +extern GLXContext glXCreateContextWithConfigSGIX (Display *, GLXFBConfigSGIX, int, GLXContext, Bool); +extern XVisualInfo * glXGetVisualFromFBConfigSGIX (Display *, GLXFBConfigSGIX); +extern GLXFBConfigSGIX glXGetFBConfigFromVisualSGIX (Display *, XVisualInfo *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXGETFBCONFIGATTRIBSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int attribute, int *value); +typedef GLXFBConfigSGIX * ( * PFNGLXCHOOSEFBCONFIGSGIXPROC) (Display *dpy, int screen, int *attrib_list, int *nelements); +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, Pixmap pixmap); +typedef GLXContext ( * PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct); +typedef XVisualInfo * ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLXFBConfigSGIX config); +typedef GLXFBConfigSGIX ( * PFNGLXGETFBCONFIGFROMVISUALSGIXPROC) (Display *dpy, XVisualInfo *vis); +#endif + +#ifndef GLX_SGIX_pbuffer +#define GLX_SGIX_pbuffer 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXPbufferSGIX glXCreateGLXPbufferSGIX (Display *, GLXFBConfigSGIX, unsigned int, unsigned int, int *); +extern void glXDestroyGLXPbufferSGIX (Display *, GLXPbufferSGIX); +extern int glXQueryGLXPbufferSGIX (Display *, GLXPbufferSGIX, int, unsigned int *); +extern void glXSelectEventSGIX (Display *, GLXDrawable, unsigned long); +extern void glXGetSelectedEventSGIX (Display *, GLXDrawable, unsigned long *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXPbufferSGIX ( * PFNGLXCREATEGLXPBUFFERSGIXPROC) (Display *dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int *attrib_list); +typedef void ( * PFNGLXDESTROYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf); +typedef int ( * PFNGLXQUERYGLXPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int *value); +typedef void ( * PFNGLXSELECTEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long mask); +typedef void ( * PFNGLXGETSELECTEDEVENTSGIXPROC) (Display *dpy, GLXDrawable drawable, unsigned long *mask); +#endif + +#ifndef GLX_SGI_cushion +#define GLX_SGI_cushion 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXCushionSGI (Display *, Window, float); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXCUSHIONSGIPROC) (Display *dpy, Window window, float cushion); +#endif + +#ifndef GLX_SGIX_video_resize +#define GLX_SGIX_video_resize 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern int glXBindChannelToWindowSGIX (Display *, int, int, Window); +extern int glXChannelRectSGIX (Display *, int, int, int, int, int, int); +extern int glXQueryChannelRectSGIX (Display *, int, int, int *, int *, int *, int *); +extern int glXQueryChannelDeltasSGIX (Display *, int, int, int *, int *, int *, int *); +extern int glXChannelRectSyncSGIX (Display *, int, int, GLenum); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef int ( * PFNGLXBINDCHANNELTOWINDOWSGIXPROC) (Display *display, int screen, int channel, Window window); +typedef int ( * PFNGLXCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int x, int y, int w, int h); +typedef int ( * PFNGLXQUERYCHANNELRECTSGIXPROC) (Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh); +typedef int ( * PFNGLXQUERYCHANNELDELTASSGIXPROC) (Display *display, int screen, int channel, int *x, int *y, int *w, int *h); +typedef int ( * PFNGLXCHANNELRECTSYNCSGIXPROC) (Display *display, int screen, int channel, GLenum synctype); +#endif + +#ifndef GLX_SGIX_dmbuffer +#define GLX_SGIX_dmbuffer 1 +#ifdef _DM_BUFFER_H_ +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXAssociateDMPbufferSGIX (Display *, GLXPbufferSGIX, DMparams *, DMbuffer); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXASSOCIATEDMPBUFFERSGIXPROC) (Display *dpy, GLXPbufferSGIX pbuffer, DMparams *params, DMbuffer dmbuffer); +#endif /* _DM_BUFFER_H_ */ +#endif + +#ifndef GLX_SGIX_swap_group +#define GLX_SGIX_swap_group 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXJoinSwapGroupSGIX (Display *, GLXDrawable, GLXDrawable); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXJOINSWAPGROUPSGIXPROC) (Display *dpy, GLXDrawable drawable, GLXDrawable member); +#endif + +#ifndef GLX_SGIX_swap_barrier +#define GLX_SGIX_swap_barrier 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXBindSwapBarrierSGIX (Display *, GLXDrawable, int); +extern Bool glXQueryMaxSwapBarriersSGIX (Display *, int, int *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXBINDSWAPBARRIERSGIXPROC) (Display *dpy, GLXDrawable drawable, int barrier); +typedef Bool ( * PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC) (Display *dpy, int screen, int *max); +#endif + +#ifndef GLX_SUN_get_transparent_index +#define GLX_SUN_get_transparent_index 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Status glXGetTransparentIndexSUN (Display *, Window, Window, long *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Status ( * PFNGLXGETTRANSPARENTINDEXSUNPROC) (Display *dpy, Window overlay, Window underlay, long *pTransparentIndex); +#endif + +#ifndef GLX_MESA_copy_sub_buffer +#define GLX_MESA_copy_sub_buffer 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXCopySubBufferMESA (Display *, GLXDrawable, int, int, int, int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXCOPYSUBBUFFERMESAPROC) (Display *dpy, GLXDrawable drawable, int x, int y, int width, int height); +#endif + +#ifndef GLX_MESA_pixmap_colormap +#define GLX_MESA_pixmap_colormap 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXPixmap glXCreateGLXPixmapMESA (Display *, XVisualInfo *, Pixmap, Colormap); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXPixmap ( * PFNGLXCREATEGLXPIXMAPMESAPROC) (Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap); +#endif + +#ifndef GLX_MESA_release_buffers +#define GLX_MESA_release_buffers 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXReleaseBuffersMESA (Display *, GLXDrawable); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXRELEASEBUFFERSMESAPROC) (Display *dpy, GLXDrawable drawable); +#endif + +#ifndef GLX_MESA_set_3dfx_mode +#define GLX_MESA_set_3dfx_mode 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXSet3DfxModeMESA (int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXSET3DFXMODEMESAPROC) (int mode); +#endif + +#ifndef GLX_SGIX_visual_select_group +#define GLX_SGIX_visual_select_group 1 +#endif + +#ifndef GLX_OML_swap_method +#define GLX_OML_swap_method 1 +#endif + +#ifndef GLX_OML_sync_control +#define GLX_OML_sync_control 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern Bool glXGetSyncValuesOML (Display *, GLXDrawable, int64_t *, int64_t *, int64_t *); +extern Bool glXGetMscRateOML (Display *, GLXDrawable, int32_t *, int32_t *); +extern int64_t glXSwapBuffersMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t); +extern Bool glXWaitForMscOML (Display *, GLXDrawable, int64_t, int64_t, int64_t, int64_t *, int64_t *, int64_t *); +extern Bool glXWaitForSbcOML (Display *, GLXDrawable, int64_t, int64_t *, int64_t *, int64_t *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef Bool ( * PFNGLXGETSYNCVALUESOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc); +typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator); +typedef int64_t ( * PFNGLXSWAPBUFFERSMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder); +typedef Bool ( * PFNGLXWAITFORMSCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc); +typedef Bool ( * PFNGLXWAITFORSBCOMLPROC) (Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc); +#endif + +#ifndef GLX_NV_float_buffer +#define GLX_NV_float_buffer 1 +#endif + +#ifndef GLX_SGIX_hyperpipe +#define GLX_SGIX_hyperpipe 1 + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int networkId; +} GLXHyperpipeNetworkSGIX; + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int channel; + unsigned int + participationType; + int timeSlice; +} GLXHyperpipeConfigSGIX; + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int srcXOrigin, srcYOrigin, srcWidth, srcHeight; + int destXOrigin, destYOrigin, destWidth, destHeight; +} GLXPipeRect; + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int XOrigin, YOrigin, maxHeight, maxWidth; +} GLXPipeRectLimits; + +#ifdef GLX_GLXEXT_PROTOTYPES +extern GLXHyperpipeNetworkSGIX * glXQueryHyperpipeNetworkSGIX (Display *, int *); +extern int glXHyperpipeConfigSGIX (Display *, int, int, GLXHyperpipeConfigSGIX *, int *); +extern GLXHyperpipeConfigSGIX * glXQueryHyperpipeConfigSGIX (Display *, int, int *); +extern int glXDestroyHyperpipeConfigSGIX (Display *, int); +extern int glXBindHyperpipeSGIX (Display *, int); +extern int glXQueryHyperpipeBestAttribSGIX (Display *, int, int, int, void *, void *); +extern int glXHyperpipeAttribSGIX (Display *, int, int, int, void *); +extern int glXQueryHyperpipeAttribSGIX (Display *, int, int, int, void *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); +typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); +typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); +typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); +typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); +typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); +#endif + +#ifndef GLX_MESA_agp_offset +#define GLX_MESA_agp_offset 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern unsigned int glXGetAGPOffsetMESA (const void *); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef unsigned int ( * PFNGLXGETAGPOFFSETMESAPROC) (const void *pointer); +#endif + +#ifndef GLX_EXT_fbconfig_packed_float +#define GLX_EXT_fbconfig_packed_float 1 +#endif + +#ifndef GLX_EXT_framebuffer_sRGB +#define GLX_EXT_framebuffer_sRGB 1 +#endif + +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_EXT_texture_from_pixmap 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern void glXBindTexImageEXT (Display *, GLXDrawable, int, const int *); +extern void glXReleaseTexImageEXT (Display *, GLXDrawable, int); +#endif /* GLX_GLXEXT_PROTOTYPES */ +typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer, const int *attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display *dpy, GLXDrawable drawable, int buffer); +#endif + +#ifndef GLX_NV_present_video +#define GLX_NV_present_video 1 +#endif + +#ifndef GLX_NV_video_out +#define GLX_NV_video_out 1 +#endif + +#ifndef GLX_NV_swap_group +#define GLX_NV_swap_group 1 +#endif + +#ifndef GLX_AMD_gpu_association +#define GLX_AMD_gpu_association 1 +#ifdef GLX_GLXEXT_PROTOTYPES +extern unsigned int glXGetGPUIDsAMD(unsigned int maxCount, unsigned int *ids); +extern int glXGetGPUInfoAMD(unsigned int id, int property, GLenum dataType, + unsigned int size, void *data); +extern unsigned int glXGetContextGPUIDAMD(GLXContext ctx); +extern GLXContext glXCreateAssociatedContextAMD(unsigned int id, GLXContext share_list); +extern GLXContext glXCreateAssociatedContextAttribsAMD(unsigned int id, GLXContext share_context, + const int *attribList); +extern Bool glXDeleteAssociatedContextAMD(GLXContext ctx); +extern Bool glXMakeAssociatedContextCurrentAMD(GLXContext ctx); +extern GLXContext glXGetCurrentAssociatedContextAMD(void); +extern void glXBlitContextFramebufferAMD(GLXContext dstCtx, GLint srcX0, GLint srcY0, + GLint srcX1, GLint srcY1, GLint dstX0, + GLint dstY0, GLint dstX1, GLint dstY1, + GLbitfield mask, GLenum filter); +#endif +typedef unsigned int (*PFNGLXGETGPUIDSAMDPROC)(unsigned int maxCount, unsigned int *ids); +typedef int (*PFNGLXGETGPUINFOAMDPROC)(unsigned int id, int property, GLenum dataType, + unsigned int size, void *data); +typedef unsigned int (*PFNGLXGETCONTEXTGPUIDAMDPROC)(GLXContext ctx); +typedef GLXContext (*PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC)(unsigned int id, GLXContext share_list); +typedef GLXContext (*PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)(unsigned int id, GLXContext share_context, + const int *attribList); +typedef Bool (*PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC)(GLXContext ctx); +typedef Bool (*PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(GLXContext ctx); +typedef GLXContext (*PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void); +typedef void (*PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC)(GLXContext dstCtx, GLint srcX0, GLint srcY0, + GLint srcX1, GLint srcY1, GLint dstX0, + GLint dstY0, GLint dstX1, GLint dstY1, + GLbitfield mask, GLenum filter); +#endif + +#ifndef GLX_EXT_buffer_age +#define GLX_EXT_buffer_age 1 +#endif + + +#ifndef GLX_AMD_display_post_processing +#define GLX_AMD_display_post_processing +extern GLXContext glXGetPostProcessContextAMD(Display *dpy); +extern GLXDrawable glXGetPostProcessDrawableAMD(Display *dpy); +extern unsigned int glXEnablePostProcessAMD(GLboolean enable); +extern unsigned int glXSetDesktopSurfaceSizeAMD(unsigned int width, unsigned int height, unsigned int defaultPresentTexture ); +extern unsigned int glXPresentDesktopAMD(unsigned int presentTexture, unsigned int displayIndex, const unsigned int *attrib_list ); +#define GLX_WAIT_FOR_PREVIOUS_VSYNC 0x21A9 +#define GLX_SUCCEEDED 0x21AA +//Returned by glXPresentDesktopAMD: +#define GLX_DESKTOP_CHANGED 0x21AB +#define GLX_DESKTOP_SURFACE_LOST 0x21AC +#define GLX_PRESENT_SURFACE_LOST 0x21AD +#define GLX_INCONSISTENT_PRESENT_SURFACES 0x21AE +#define GLX_POST_PROCESSING_DISABLED 0x21AF +#define GLX_BAD_SURFACE 0x91C1 +//Returned by glXEnablePostProcessAMD: +#define GLX_POST_PROCESSING_NOT_SUPPORTED 0x91C2 +//Returned by glXSetDesktopSurfaceSizeAMD: +#define GLX_DESKTOP_SIZE_CHANGE_NOT_ALLOWED 0x91C3 +#define GLX_DESKTOP_SIZE_NOT_SUPPORTED 0x9cC0 +//Accepted by the parameter of glXQueryDrawable: +#define GLX_DISPLAY_COUNT 0x91C4 +#define GLX_CONTEXT_POST_PROCESS_AMD 0x3050 +#endif + +#ifndef GLX_ARB_create_context_robustness +#define GLX_ARB_create_context_robustness +#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 +#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#endif + +#ifndef GLX_ARB_context_flush_control +#define GLX_ARB_context_flush_control +#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 +#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 +#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/projects/clr/rocclr/include/GL/wglATI.h b/projects/clr/rocclr/include/GL/wglATI.h new file mode 100644 index 0000000000..1102fff61c --- /dev/null +++ b/projects/clr/rocclr/include/GL/wglATI.h @@ -0,0 +1,550 @@ +#ifndef __wgl_ATI_h_ +#define __wgl_ATI_h_ +// +// Copyright (c) 1998 Advanced Micro Devices, Inc. All rights reserved. +// + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APIENTRY +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +/* +** Notes: +** +** Listed support is for current drivers and should really only be used +** as a guideline. ISV should still use glGetString() and +** wglGetExtensionsString() to determine the exact set of supported +** GL and WGL extensions. +** +*/ + +/* +** WGL_ARB_extensions_string +** +** Support: +** Rage 128 * based : Supported +** Radeon * based : Supported +*/ +#ifndef WGL_ARB_extensions_string +#define WGL_ARB_extensions_string 1 + +typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hDC); + +#endif /* WGL_ARB_extensions_string */ + +/* +** WGL_ARB_pixel_format +** +** Support: +** Rage 128 * based : Supported +** Radeon * based : Supported +*/ +#ifndef WGL_ARB_pixel_format +#define WGL_ARB_pixel_format 1 + +#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000 +#define WGL_DRAW_TO_WINDOW_ARB 0x2001 +#define WGL_DRAW_TO_BITMAP_ARB 0x2002 +#define WGL_ACCELERATION_ARB 0x2003 +#define WGL_NEED_PALETTE_ARB 0x2004 +#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005 +#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006 +#define WGL_SWAP_METHOD_ARB 0x2007 +#define WGL_NUMBER_OVERLAYS_ARB 0x2008 +#define WGL_NUMBER_UNDERLAYS_ARB 0x2009 +#define WGL_TRANSPARENT_ARB 0x200A +#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037 +#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038 +#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039 +#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A +#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B +#define WGL_SHARE_DEPTH_ARB 0x200C +#define WGL_SHARE_STENCIL_ARB 0x200D +#define WGL_SHARE_ACCUM_ARB 0x200E +#define WGL_SUPPORT_GDI_ARB 0x200F +#define WGL_SUPPORT_OPENGL_ARB 0x2010 +#define WGL_DOUBLE_BUFFER_ARB 0x2011 +#define WGL_STEREO_ARB 0x2012 +#define WGL_PIXEL_TYPE_ARB 0x2013 +#define WGL_COLOR_BITS_ARB 0x2014 +#define WGL_RED_BITS_ARB 0x2015 +#define WGL_RED_SHIFT_ARB 0x2016 +#define WGL_GREEN_BITS_ARB 0x2017 +#define WGL_GREEN_SHIFT_ARB 0x2018 +#define WGL_BLUE_BITS_ARB 0x2019 +#define WGL_BLUE_SHIFT_ARB 0x201A +#define WGL_ALPHA_BITS_ARB 0x201B +#define WGL_ALPHA_SHIFT_ARB 0x201C +#define WGL_ACCUM_BITS_ARB 0x201D +#define WGL_ACCUM_RED_BITS_ARB 0x201E +#define WGL_ACCUM_GREEN_BITS_ARB 0x201F +#define WGL_ACCUM_BLUE_BITS_ARB 0x2020 +#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021 +#define WGL_DEPTH_BITS_ARB 0x2022 +#define WGL_STENCIL_BITS_ARB 0x2023 +#define WGL_AUX_BUFFERS_ARB 0x2024 +#define WGL_NO_ACCELERATION_ARB 0x2025 +#define WGL_GENERIC_ACCELERATION_ARB 0x2026 +#define WGL_FULL_ACCELERATION_ARB 0x2027 +#define WGL_SWAP_EXCHANGE_ARB 0x2028 +#define WGL_SWAP_COPY_ARB 0x2029 +#define WGL_SWAP_UNDEFINED_ARB 0x202A +#define WGL_TYPE_RGBA_ARB 0x202B +#define WGL_TYPE_COLORINDEX_ARB 0x202C +#define WGL_TYPE_RGBA_FLOAT_ARB 0x21A0 + +#define WGL_FLOAT_COMPONENTS_NV 0x20B0 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV 0x20B1 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV 0x20B2 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV 0x20B3 +#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20B4 +#define WGL_TEXTURE_FLOAT_R_NV 0x20B5 +#define WGL_TEXTURE_FLOAT_RG_NV 0x20B6 +#define WGL_TEXTURE_FLOAT_RGB_NV 0x20B7 +#define WGL_TEXTURE_FLOAT_RGBA_NV 0x20B8 +#define WGL_TEXTURE_RECTANGLE_NV 0x20A2 + + + +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBIVARBPROC) ( + HDC hDC, + int iPixelFormat, + int iLayerPlane, + UINT nAttributes, + const int *piAttributes, + int *piValues); +typedef BOOL (WINAPI * PFNWGLGETPIXELFORMATATTRIBFVARBPROC) ( + HDC hDC, + int iPixelFormat, + int iLayerPlane, + UINT nAttributes, + const int *piAttributes, + FLOAT *pfValues); +typedef BOOL (WINAPI * PFNWGLCHOOSEPIXELFORMATARBPROC) ( + HDC hDC, + const int *piAttribIList, + const FLOAT *pfAttribFList, + UINT nMaxFormats, + int *piFormats, + UINT *nNumFormats); + +#endif /* WGL_ARB_pixel_format */ + +/* +** WGL_ARB_make_current_read +** +** Support: +** Rage 128 * based : Supported +** Radeon * based : Supported +*/ +#ifndef WGL_ARB_make_current_read +#define WGL_ARB_make_current_read 1 + +typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, + HDC hReadDC, + HGLRC hGLRC); +typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); + +#endif /* WGL_ARB_make_current_read */ + +/* +** WGL_ARB_multisample +** +** Support: +** Rage 128 * based : Not Supported +** Radeon * based : Not Supported +*/ +#ifndef WGL_ARB_multisample +#define WGL_ARB_multisample 1 + +#define WGL_SAMPLE_BUFFERS_ARB 0x2041 +#define WGL_SAMPLES_ARB 0x2042 + +#endif /* WGL_ARB_multisample */ + +/* +** WGL_ARB_pbuffer +** +** Support: +** Rage 128 * based : Supported +** Radeon * based : Supported +*/ +#ifndef WGL_ARB_pbuffer +#define WGL_ARB_pbuffer 1 + +#define WGL_DRAW_TO_PBUFFER_ARB 0x202D +#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202E +#define WGL_MAX_PBUFFER_WIDTH_ARB 0x202F +#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030 +#define WGL_PBUFFER_LARGEST_ARB 0x2033 +#define WGL_PBUFFER_WIDTH_ARB 0x2034 +#define WGL_PBUFFER_HEIGHT_ARB 0x2035 +#define WGL_PBUFFER_LOST_ARB 0x2036 + +DECLARE_HANDLE(HPBUFFERARB); + +typedef HPBUFFERARB (WINAPI * PFNWGLCREATEPBUFFERARBPROC) ( + HDC hDC, + int iPixelFormat, + int iWidth, + int iHeight, + const int *piAttribList); +typedef HDC (WINAPI * PFNWGLGETPBUFFERDCARBPROC) (HPBUFFERARB hPbuffer); +typedef int (WINAPI * PFNWGLRELEASEPBUFFERDCARBPROC) ( + HPBUFFERARB hPbuffer, + HDC hDC); +typedef BOOL (WINAPI * PFNWGLDESTROYPBUFFERARBPROC) (HPBUFFERARB hPbuffer); +typedef BOOL (WINAPI * PFNWGLQUERYPBUFFERARBPROC) ( + HPBUFFERARB hPbuffer, + int iAttribute, + int *piValue); + +#endif /* WGL_ARB_pbuffer */ + + +/* +** WGL_ARB_render_texture +** +** Support: +** Rage 128 * based : Supported +** Radeon * based : Supported +*/ +#ifndef WGL_ARB_render_texture +#define WGL_ARB_render_texture 1 + +#define WGL_BIND_TO_TEXTURE_RGB_ARB 0x2070 +#define WGL_BIND_TO_TEXTURE_RGBA_ARB 0x2071 +#define WGL_TEXTURE_FORMAT_ARB 0x2072 +#define WGL_TEXTURE_TARGET_ARB 0x2073 +#define WGL_MIPMAP_TEXTURE_ARB 0x2074 +#define WGL_TEXTURE_RGB_ARB 0x2075 +#define WGL_TEXTURE_RGBA_ARB 0x2076 +#define WGL_NO_TEXTURE_ARB 0x2077 +#define WGL_TEXTURE_CUBE_MAP_ARB 0x2078 +#define WGL_TEXTURE_1D_ARB 0x2079 +#define WGL_TEXTURE_2D_ARB 0x207A +#define WGL_MIPMAP_LEVEL_ARB 0x207B +#define WGL_CUBE_MAP_FACE_ARB 0x207C +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207D +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207E +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207F +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080 +#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081 +#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082 +#define WGL_FRONT_LEFT_ARB 0x2083 +#define WGL_FRONT_RIGHT_ARB 0x2084 +#define WGL_BACK_LEFT_ARB 0x2085 +#define WGL_BACK_RIGHT_ARB 0x2086 +#define WGL_AUX0_ARB 0x2087 +#define WGL_AUX1_ARB 0x2088 +#define WGL_AUX2_ARB 0x2089 +#define WGL_AUX3_ARB 0x208A +#define WGL_AUX4_ARB 0x208B +#define WGL_AUX5_ARB 0x208C +#define WGL_AUX6_ARB 0x208D +#define WGL_AUX7_ARB 0x208E +#define WGL_AUX8_ARB 0x208F +#define WGL_AUX9_ARB 0x2090 + +typedef BOOL (WINAPI * PFNWGLBINDTEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL (WINAPI * PFNWGLRELEASETEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer); +typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC)(HPBUFFERARB hPbuffer, + const int *piAttribList); +#endif + + +/* +** WGL_EXT_extensions_string +** +** Support: +** Rage 128 * based : Supported +** Radeon * based : Supported +*/ +#ifndef WGL_EXT_extensions_string +#define WGL_EXT_extensions_string 1 + +typedef const char * (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (VOID); + +#endif /* WGL_EXT_extensions_string */ + +/* +** WGL_EXT_swap_control +** +** Support: +** Rage 128 * based : Supported +** Radeon * based : Supported +*/ +#ifndef WGL_EXT_swap_control +#define WGL_EXT_swap_control 1 + +typedef BOOL (WINAPI * PFNWGLSWAPINTERVALEXTPROC) (int interval); +typedef int (WINAPI * PFNWGLGETSWAPINTERVALEXTPROC) (VOID); + +#endif /* WGL_EXT_swap_control */ + +#ifndef WGL_ATI_pixel_format_float +#define WGL_ATI_pixel_format_float 1 + +#define WGL_TYPE_RGBA_FLOAT_ATI 0x21A0 +#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 +#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 +#endif + +/* EXT_packed_float*/ +#ifndef WGL_EXT_pixel_format_unsigned_float +#define WGL_EXT_pixel_format_unsigned_float 1 +#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20A8 +#endif +/* +** HPV_transmit_buffer +** +** Support: +** under development, currently r300 only +** disabled unless define HPV_transmit_buffer in build. +** +*/ +#ifdef HPV_transmit_buffer + +#define WGL_TRANSMITTABLE_HPV 0x70000001 +#define WGL_TRANSMIT_FORMAT_HPV 0x70000002 + +#define GLX_TRANSMITTABLE_HPV 0x70000001 +#define GLX_TRANSMIT_FORMAT_HPV 0x70000002 + +#define WGL_RGB_HPV 0x70000003 +#define WGL_RGBA_HPV 0x70000004 +#define WGL_DEPTH_HPV 0x70000005 +#define WGL_DEPTH_STENCIL_HPV 0x70000006 +#define WGL_RGB_DEPTH_HPV 0x70000007 +#define WGL_RGBA_DEPTH_STENCIL_HPV 0x70000008 + +#define GLX_RGB_HPV 0x70000003 +#define GLX_RGBA_HPV 0x70000004 +#define GLX_DEPTH_HPV 0x70000005 +#define GLX_DEPTH_STENCIL_HPV 0x70000006 +#define GLX_RGB_DEPTH_HPV 0x70000007 +#define GLX_RGBA_DEPTH_STENCIL_HPV 0x70000008 + + +#define WGL_PBUFFER_PITCH_HPV 0x70000009 + +#define GLX_PBUFFER_PITCH_HPV 0x70000009 + +#define WGL_TRANSMIT_HOR_ADDR_TIME_HPV 0x7000000A +#define WGL_TRANSMIT_HOR_FP_TIME_HPV 0x7000000B +#define WGL_TRANSMIT_HOR_SYNC_TIME_HPV 0x7000000C +#define WGL_TRANSMIT_HOR_BP_TIME_HPV 0x7000000D +#define WGL_TRANSMIT_HOR_POLARITY_HPV 0x7000000E +#define WGL_TRANSMIT_VER_ADDR_TIME_HPV 0x7000000F +#define WGL_TRANSMIT_VER_FP_TIME_HPV 0x70000010 +#define WGL_TRANSMIT_VER_SYNC_TIME_HPV 0x70000011 +#define WGL_TRANSMIT_VER_BP_TIME_HPV 0x70000012 +#define WGL_TRANSMIT_VER_POLARITY_HPV 0x70000013 +#define WGL_TRANSMIT_PIXELCLOCK_HPV 0x70000014 + +#define GLX_TRANSMIT_HOR_ADDR_TIME_HPV 0x7000000A +#define GLX_TRANSMIT_HOR_FP_TIME_HPV 0x7000000B +#define GLX_TRANSMIT_HOR_SYNC_TIME_HPV 0x7000000C +#define GLX_TRANSMIT_HOR_BP_TIME_HPV 0x7000000D +#define GLX_TRANSMIT_HOR_POLARITY_HPV 0x7000000E +#define GLX_TRANSMIT_VER_ADDR_TIME_HPV 0x7000000F +#define GLX_TRANSMIT_VER_FP_TIME_HPV 0x70000010 +#define GLX_TRANSMIT_VER_SYNC_TIME_HPV 0x70000011 +#define GLX_TRANSMIT_VER_BP_TIME_HPV 0x70000012 +#define GLX_TRANSMIT_VER_POLARITY_HPV 0x70000013 +#define GLX_TRANSMIT_PIXELCLOCK_HPV 0x70000014 + + +typedef void (WINAPI * PFNWGLTRANSMITPBUFFERHPVPROC) ( + HPBUFFERARB hPbuffer, + unsigned int id); +typedef void (WINAPI * PFNWGLTRANSMITSTOPHPVPROC) (VOID); + +#endif /* HPV_transmit_buffer */ + + +/* +** WGL_EXT_framebuffer_sRGB +** +** Support: +** Rage 128 * based : Not Supported +** Radeon * based : Not Supported +*/ +#ifndef WGL_EXT_framebuffer_sRGB +#define WGL_EXT_framebuffer_sRGB 1 + +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20A9 + +#endif /* EXT_framebuffer_sRGB */ + +/* +** WGL_ATI_render_texture_rectangle +** +** Support: +** Rage 128 * based : Not Supported +** Radeon * based : Supported +*/ +#ifndef WGL_ATI_render_texture_rectangle +#define WGL_ATI_render_texture_rectangle 1 + +#define WGL_TEXTURE_RECTANGLE_ATI 0x21A5 + +#endif /* WGL_ATI_render_texture_rectangle */ + +/* +** WGL_ARB_buffer_region +** +** Support: +** Rage 128 * based : Not Supported +** Radeon * based : Supported +*/ +#ifndef WGL_ARB_buffer_region +#define WGL_ARB_buffer_region 1 + +typedef HANDLE (WINAPI* PFNWGLCREATEBUFFERREGIONARB)(HDC hDC, int iLayerPlane, UINT uType); +typedef VOID (WINAPI* PFNWGLDELETEBUFFERREGIONARB)(HANDLE hRegion); +typedef BOOL (WINAPI* PFNWGLSAVEBUFFERREGIONARB)(HANDLE hRegion, int x, int y, int width, int height); +typedef BOOL (WINAPI* PFNWGLRESTOREBUFFERREGIONARB)(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc); + +#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x00000001 +#define WGL_BACK_COLOR_BUFFER_BIT_ARB 0x00000002 +#define WGL_DEPTH_BUFFER_BIT_ARB 0x00000004 +#define WGL_STENCIL_BUFFER_BIT_ARB 0x00000008 + +#endif /* WGL_ARB_buffer_region */ + + +#ifndef WGL_I3D_genlock +#define WGL_I3D_genlock 1 + +#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D 0x2044 +#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D 0x2045 +#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046 +#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D 0x2047 +#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D 0x2048 +#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D 0x2049 +#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D 0x204A +#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D 0x204B +#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D 0x204C + +typedef BOOL (WINAPI* PFNWGLENABLEGENLOCKI3DPROC)(HDC hDC); +typedef BOOL (WINAPI* PFNWGLDISABLEGENLOCKI3DPROC)(HDC hDC); +typedef BOOL (WINAPI* PFNWGLISENABLEDGENLOCKI3DPROC)(HDC hDC, BOOL *pFlag); +typedef BOOL (WINAPI* PFNWGLGENLOCKSOURCEI3DPROC)(HDC hDC, UINT uSource); +typedef BOOL (WINAPI* PFNWGLGETGENLOCKSOURCEI3DPROC)(HDC hDC, UINT *uSource); +typedef BOOL (WINAPI* PFNWGLGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT uEdge); +typedef BOOL (WINAPI* PFNWGLGETGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT *uEdge); +typedef BOOL (WINAPI* PFNWGLGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT uRate); +typedef BOOL (WINAPI* PFNWGLGETGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT *uRate); +typedef BOOL (WINAPI* PFNWGLGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT uDelay); +typedef BOOL (WINAPI* PFNWGLGETGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT *uDelay); +typedef BOOL (WINAPI* PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC)(HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay); + +#endif /* WGL_I3D_genlock */ + + +#ifndef WGL_NV_swap_group +#define WGL_NV_swap_group 1 + +typedef BOOL (WINAPI* PFNWGLJOINSWAPGROUPNVPROC)(HDC hDC, GLuint group); +typedef BOOL (WINAPI* PFNWGLBINDSWAPBARRIERNVPROC)(GLuint group, GLuint barrier); +typedef BOOL (WINAPI* PFNWGLQUERYSWAPGROUPNVPROC)(HDC hDC, GLuint *group, GLuint *barrier); +typedef BOOL (WINAPI* PFNWGLQUERYMAXSWAPGROUPSNVPROC)(HDC hDC, GLuint *maxGroups, GLuint *maxBarriers); +typedef BOOL (WINAPI* PFNWGLQUERYFRAMECOUNTNVPROC)(HDC hDC, GLuint *count); +typedef BOOL (WINAPI* PFNWGLRESETFRAMECOUNTNVPROC)(HDC hDC); + +#endif /* WGL_NV_swap_group */ + +#ifndef WGL_ARB_create_context +#define WGL_ARB_create_context 1 + +#define WGL_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define WGL_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define WGL_CONTEXT_LAYER_PLANE_ARB 0x2093 +#define WGL_CONTEXT_FLAGS_ARB 0x2094 +#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 +#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x0004 +#define WGL_CONTEXT_NO_ERROR_BIT 0x0008 +#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 +#define WGL_CONTEXT_OPENGL_NO_ERROR_ARB 0x31B3 + +#define WGL_CONTEXT_ASIC_ID_AMD 0x91c4 //chip id +#define WGL_CONTEXT_ASIC_FAMILY_AMD 0x91c5 //asic family +#define WGL_CONTEXT_ASIC_REV_AMD 0x91c6 //asic revision +#define WGL_CONTEXT_DEVICE_MEMORY_SIZE_AMD 0x91c7 //asic device memory + +#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 + +#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 + +#define ERROR_INVALID_VERSION_ARB 0x2095 +#define ERROR_INVALID_PROFILE_ARB 0x2096 +#define ERROR_INVALID_ATTRIBS_ARB 0xBAAD // This enum doesn't exist in any WGL spec + +typedef HGLRC (WINAPI* PFNWGLCREATECONTEXTATTRIBSARB)(HDC hDC, HGLRC hShareContext, const int *attribList); +#endif + +#ifndef WGL_AMD_gpu_association +#define WGL_AMD_gpu_association 1 + +#define WGL_GPU_VENDOR 0x1F00 +#define WGL_GPU_RENDERER_STRING 0x1F01 +#define WGL_GPU_OPENGL_VERSION_STRING 0x1F02 +#define WGL_GPU_FASTEST_TARGET_GPUS 0x21A2 +#define WGL_GPU_RAM 0x21A3 +#define WGL_GPU_CLOCK 0x21A4 +#define WGL_GPU_NUM_PIPES 0x21A5 +#define WGL_GPU_NUM_SIMD 0x21A6 +#define WGL_GPU_NUM_RB 0x21A7 +#define WGL_GPU_NUM_SPI 0x21A8 + +#define WGL_CONTEXT_DUMMY_DEVICE_AMD ~0UL //used to define the dummy context + +typedef UINT (WINAPI *PFNWGLGETGPUIDSAMDXPROC) (UINT maxcount, UINT *ids); +typedef HGLRC (WINAPI *PFNWGLCREATEASSOCIATEDCONTEXTAMDXPORC) (UINT ids); +typedef BOOL (WINAPI *PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDXPORC) (HGLRC hglrc); +typedef BOOL (WINAPI *PFNWGLDELETEASSOCIATEDCONTEXTAMDXPORC) (HGLRC hglrc); +typedef HGLRC (WINAPI *PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDXPORC) (void); +typedef UINT (WINAPI *PFNWGLGETCONTEXTGPUIDAMDXPORC) (HGLRC hglrc); +typedef INT (WINAPI *PFNWGLGETGPUINFOAMDXPROC) (UINT id, GLenum infoType, GLenum dataType, UINT size, void *data); +typedef VOID (WINAPI *PFNWGLBLITCONTEXTFRAMEBUFFERAMDXPORC) (HGLRC hglrc, + int srcX0, int srcY0, int srcX1, int srcY1, + int dstX0, int dstY0, int dstX1, int dstY1, + GLbitfield mask, GLenum filter); +#endif /* WGL_AMD_gpu_association */ + +/* + * WGL_ARB_context_flush_control + */ +#ifndef WGL_ARB_context_flush_control +#define WGL_ARB_context_flush_control 1 + +#define WGL_CONTEXT_RELEASE_BEHAVIOR_ARB 0x2097 +#define WGL_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB 0x0000 +#define WGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB 0x2098 + +#endif /* WGL_ARB_context_flush_control */ + + +#ifndef WGL_EXT_colorspace +#define WGL_EXT_colorspace 1 + +#define WGL_COLORSPACE_EXT 0x309D +#define WGL_COLORSPACE_SRGB_EXT 0x3089 +#define WGL_COLORSPACE_LINEAR_EXT 0x308A + +#endif /* WGL_EXT_colorspace */ + + +#ifdef __cplusplus +} +#endif + +#endif /* __wgl_ATI_h_ */ diff --git a/projects/clr/rocclr/include/GL/wglATIPrivate.h b/projects/clr/rocclr/include/GL/wglATIPrivate.h new file mode 100644 index 0000000000..1179c45238 --- /dev/null +++ b/projects/clr/rocclr/include/GL/wglATIPrivate.h @@ -0,0 +1,120 @@ +/* ============================================================ + +Copyright (c) 2007 Advanced Micro Devices, Inc. All rights reserved. + +Redistribution and use of this material is permitted under the following +conditions: + +Redistributions must retain the above copyright notice and all terms of this +license. + +In no event shall anyone redistributing or accessing or using this material +commence or participate in any arbitration or legal action relating to this +material against Advanced Micro Devices, Inc. or any copyright holders or +contributors. The foregoing shall survive any expiration or termination of +this license or any agreement or access or use related to this material. + +ANY BREACH OF ANY TERM OF THIS LICENSE SHALL RESULT IN THE IMMEDIATE REVOCATION +OF ALL RIGHTS TO REDISTRIBUTE, ACCESS OR USE THIS MATERIAL. + +THIS MATERIAL IS PROVIDED BY ADVANCED MICRO DEVICES, INC. AND ANY COPYRIGHT +HOLDERS AND CONTRIBUTORS "AS IS" IN ITS CURRENT CONDITION AND WITHOUT ANY +REPRESENTATIONS, GUARANTEE, OR WARRANTY OF ANY KIND OR IN ANY WAY RELATED TO +SUPPORT, INDEMNITY, ERROR FREE OR UNINTERRUPTED OPERATION, OR THAT IT IS FREE +FROM DEFECTS OR VIRUSES. ALL OBLIGATIONS ARE HEREBY DISCLAIMED - WHETHER +EXPRESS, IMPLIED, OR STATUTORY - INCLUDING, BUT NOT LIMITED TO, ANY IMPLIED +WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, +ACCURACY, COMPLETENESS, OPERABILITY, QUALITY OF SERVICE, OR NON-INFRINGEMENT. +IN NO EVENT SHALL ADVANCED MICRO DEVICES, INC. OR ANY COPYRIGHT HOLDERS OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, PUNITIVE, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT +OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, REVENUE, DATA, OR PROFITS; OR +BUSINESS INTERRUPTION) HOWEVER CAUSED OR BASED ON ANY THEORY OF LIABILITY +ARISING IN ANY WAY RELATED TO THIS MATERIAL, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGE. THE ENTIRE AND AGGREGATE LIABILITY OF ADVANCED MICRO DEVICES, +INC. AND ANY COPYRIGHT HOLDERS AND CONTRIBUTORS SHALL NOT EXCEED TEN DOLLARS +(US $10.00). ANYONE REDISTRIBUTING OR ACCESSING OR USING THIS MATERIAL ACCEPTS +THIS ALLOCATION OF RISK AND AGREES TO RELEASE ADVANCED MICRO DEVICES, INC. AND +ANY COPYRIGHT HOLDERS AND CONTRIBUTORS FROM ANY AND ALL LIABILITIES, +OBLIGATIONS, CLAIMS, OR DEMANDS IN EXCESS OF TEN DOLLARS (US $10.00). THE +FOREGOING ARE ESSENTIAL TERMS OF THIS LICENSE AND, IF ANY OF THESE TERMS ARE +CONSTRUED AS UNENFORCEABLE, FAIL IN ESSENTIAL PURPOSE, OR BECOME VOID OR +DETRIMENTAL TO ADVANCED MICRO DEVICES, INC. OR ANY COPYRIGHT HOLDERS OR +CONTRIBUTORS FOR ANY REASON, THEN ALL RIGHTS TO REDISTRIBUTE, ACCESS OR USE +THIS MATERIAL SHALL TERMINATE IMMEDIATELY. MOREOVER, THE FOREGOING SHALL +SURVIVE ANY EXPIRATION OR TERMINATION OF THIS LICENSE OR ANY AGREEMENT OR +ACCESS OR USE RELATED TO THIS MATERIAL. + +NOTICE IS HEREBY PROVIDED, AND BY REDISTRIBUTING OR ACCESSING OR USING THIS +MATERIAL SUCH NOTICE IS ACKNOWLEDGED, THAT THIS MATERIAL MAY BE SUBJECT TO +RESTRICTIONS UNDER THE LAWS AND REGULATIONS OF THE UNITED STATES OR OTHER +COUNTRIES, WHICH INCLUDE BUT ARE NOT LIMITED TO, U.S. EXPORT CONTROL LAWS SUCH +AS THE EXPORT ADMINISTRATION REGULATIONS AND NATIONAL SECURITY CONTROLS AS +DEFINED THEREUNDER, AS WELL AS STATE DEPARTMENT CONTROLS UNDER THE U.S. +MUNITIONS LIST. THIS MATERIAL MAY NOT BE USED, RELEASED, TRANSFERRED, IMPORTED, +EXPORTED AND/OR RE-EXPORTED IN ANY MANNER PROHIBITED UNDER ANY APPLICABLE LAWS, +INCLUDING U.S. EXPORT CONTROL LAWS REGARDING SPECIFICALLY DESIGNATED PERSONS, +COUNTRIES AND NATIONALS OF COUNTRIES SUBJECT TO NATIONAL SECURITY CONTROLS. +MOREOVER, THE FOREGOING SHALL SURVIVE ANY EXPIRATION OR TERMINATION OF ANY +LICENSE OR AGREEMENT OR ACCESS OR USE RELATED TO THIS MATERIAL. + +NOTICE REGARDING THE U.S. GOVERNMENT AND DOD AGENCIES: This material is +provided with "RESTRICTED RIGHTS" and/or "LIMITED RIGHTS" as applicable to +computer software and technical data, respectively. Use, duplication, +distribution or disclosure by the U.S. Government and/or DOD agencies is +subject to the full extent of restrictions in all applicable regulations, +including those found at FAR52.227 and DFARS252.227 et seq. and any successor +regulations thereof. Use of this material by the U.S. Government and/or DOD +agencies is acknowledgment of the proprietary rights of any copyright holders +and contributors, including those of Advanced Micro Devices, Inc., as well as +the provisions of FAR52.227-14 through 23 regarding privately developed and/or +commercial computer software. + +This license forms the entire agreement regarding the subject matter hereof and +supersedes all proposals and prior discussions and writings between the parties +with respect thereto. This license does not affect any ownership, rights, title, +or interest in, or relating to, this material. No terms of this license can be +modified or waived, and no breach of this license can be excused, unless done +so in a writing signed by all affected parties. Each term of this license is +separately enforceable. If any term of this license is determined to be or +becomes unenforceable or illegal, such term shall be reformed to the minimum +extent necessary in order for this license to remain in effect in accordance +with its terms as modified by such reformation. This license shall be governed +by and construed in accordance with the laws of the State of Texas without +regard to rules on conflicts of law of any state or jurisdiction or the United +Nations Convention on the International Sale of Goods. All disputes arising out +of this license shall be subject to the jurisdiction of the federal and state +courts in Austin, Texas, and all defenses are hereby waived concerning personal +jurisdiction and venue of these courts. + +============================================================ */ +#ifndef __wgl_ATI_Private_h_ +#define __wgl_ATI_Private_h_ + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APIENTRY +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#ifndef WGL_AMD_CL_Interop +#define WGL_AMD_CL_Interop 1 + +typedef BOOL (WINAPI* PFNWGLBEGINCLINTEROPAMD)(HGLRC hglrc, GLuint flags); +typedef BOOL (WINAPI* PFNWGLENDCLINTEROPAMD) (HGLRC hglrc, GLuint flags); +typedef BOOL (WINAPI* PFNWGLRESOURCEATTACHAMD) (HGLRC hglrc, GLvoid* resource, GLvoid* pResourceData); +typedef BOOL (WINAPI* PFNWGLRESOURCEDETACHAMD) (HGLRC hglrc, GLvoid* resource); +typedef BOOL (WINAPI* PFNWGLGETCONTEXTGPUINFOAMD) (HGLRC hglrc, LUID* adapterLUID, UINT* chainBitmask); +typedef BOOL (WINAPI* PFNWGLMULTIRESOURCEACQUIREAMD) (HGLRC hglrc, GLvoid** resource, GLuint numResources); +typedef BOOL (WINAPI* PFNWGLMULTIRESOURCERELEASEAMD) (HGLRC hglrc, GLvoid** resource, GLuint numResources); + +#endif /* WGL_AMD_CL_Interop */ + +#ifdef __cplusplus +} +#endif + +#endif /* __wgl_ATI_Private_h_ */