From 73c4646b40110c3629b2fe0ee26bd465f3842947 Mon Sep 17 00:00:00 2001 From: "erwin.coumans" Date: Mon, 5 Mar 2012 00:18:24 +0000 Subject: [PATCH] updated version of glew, and use static glew under Windows (CMake and premake project updates) --- Demos/MultiThreadedDemo/CMakeLists.txt | 8 +- Demos/OpenCLClothDemo/AMD/CMakeLists.txt | 11 +- Demos/OpenCLClothDemo/AMD/premake4.lua | 7 +- Demos/OpenCLClothDemo/Intel/premake4.lua | 8 +- Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt | 12 +- Demos/OpenCLClothDemo/NVidia/CMakeLists.txt | 12 +- Demos/OpenCLClothDemo/NVidia/premake4.lua | 8 +- Demos/ParticlesOpenCL/AMD/CMakeLists.txt | 11 +- Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt | 11 +- Demos/ParticlesOpenCL/NVidia/CMakeLists.txt | 12 +- Demos/SerializeDemo/AMD/CMakeLists.txt | 24 +- Demos/SerializeDemo/AMD/premake4.lua | 4 +- Demos/SerializeDemo/testFile.bullet | Bin 145656 -> 171368 bytes Demos/SoftDemo/AMD/premake4.lua | 4 +- Demos/SoftDemo/SoftDemo.cpp | 2 +- Demos/premake4.lua | 8 +- Glut/GL/glew.h | 5184 ++++++++++++++++++- Glut/GL/glxew.h | 558 +- Glut/GL/wglew.h | 417 +- Glut/btGlutInclude.h | 43 + Glut/glew32.lib | Bin 308030 -> 0 bytes Glut/glew32s.lib | Bin 0 -> 1288450 bytes Glut/glew64.lib | Bin 304614 -> 0 bytes Glut/glew64s.lib | Bin 0 -> 1378464 bytes glew32.dll | Bin 204800 -> 0 bytes glew64.dll | Bin 229376 -> 0 bytes msvc/vs2008_dx11.bat | 5 - msvc/vs2008_opencl.bat | 8 - msvc/vs2010_dx11.bat | 5 + msvc/vs2010_opencl.bat | 8 + 30 files changed, 6078 insertions(+), 292 deletions(-) create mode 100644 Glut/btGlutInclude.h delete mode 100644 Glut/glew32.lib create mode 100644 Glut/glew32s.lib delete mode 100644 Glut/glew64.lib create mode 100644 Glut/glew64s.lib delete mode 100644 glew32.dll delete mode 100644 glew64.dll delete mode 100644 msvc/vs2008_dx11.bat delete mode 100644 msvc/vs2008_opencl.bat create mode 100644 msvc/vs2010_dx11.bat create mode 100644 msvc/vs2010_opencl.bat diff --git a/Demos/MultiThreadedDemo/CMakeLists.txt b/Demos/MultiThreadedDemo/CMakeLists.txt index 063e96ea1..75da82097 100644 --- a/Demos/MultiThreadedDemo/CMakeLists.txt +++ b/Demos/MultiThreadedDemo/CMakeLists.txt @@ -16,6 +16,10 @@ ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL ${VECTOR_MATH_INCLUDE} ) +IF(WIN32) + ADD_DEFINITIONS(-DGLEW_STATIC) +ENDIF(WIN32) + LINK_LIBRARIES( OpenGLSupport BulletMultiThreaded BulletDynamics BulletCollision LinearMath ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} ) @@ -34,15 +38,11 @@ IF (CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppMultiThreadedDemo POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppMultiThreadedDemo POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW64.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ELSE(CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppMultiThreadedDemo POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR}) - ADD_CUSTOM_COMMAND( TARGET AppMultiThreadedDemo POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW32.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ENDIF(CMAKE_CL_64) ENDIF(WIN32) diff --git a/Demos/OpenCLClothDemo/AMD/CMakeLists.txt b/Demos/OpenCLClothDemo/AMD/CMakeLists.txt index 1795f83c0..dcba3c8f5 100644 --- a/Demos/OpenCLClothDemo/AMD/CMakeLists.txt +++ b/Demos/OpenCLClothDemo/AMD/CMakeLists.txt @@ -10,12 +10,15 @@ ${AMD_OPENCL_INCLUDES} ADD_DEFINITIONS(-DUSE_AMD_OPENCL) ADD_DEFINITIONS(-DCL_PLATFORM_AMD) +IF(WIN32) +ADD_DEFINITIONS(-DGLEW_STATIC) +ENDIF(WIN32) IF (CMAKE_CL_64) SET(CMAK_GLEW_LIBRARY - ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64.lib ) + ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib ) ELSE(CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib ) ENDIF(CMAKE_CL_64) @@ -60,15 +63,11 @@ IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_AMD POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_AMD POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW64.DLL ${CMAKE_CURRENT_BINARY_DIR}) ELSE(CMAKE_CL_64) ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_AMD POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_AMD POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW32.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF(CMAKE_CL_64) ENDIF(WIN32) ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_AMD POST_BUILD diff --git a/Demos/OpenCLClothDemo/AMD/premake4.lua b/Demos/OpenCLClothDemo/AMD/premake4.lua index edaf53acc..6d7836245 100644 --- a/Demos/OpenCLClothDemo/AMD/premake4.lua +++ b/Demos/OpenCLClothDemo/AMD/premake4.lua @@ -25,15 +25,18 @@ "opengl32" } + configuration { "Windows" } + defines { "GLEW_STATIC"} + configuration "x64" links { "glut64", - "glew64" + "glew64s" } configuration "x32" links { "glut32", - "glew32" + "glew32s" } configuration{} diff --git a/Demos/OpenCLClothDemo/Intel/premake4.lua b/Demos/OpenCLClothDemo/Intel/premake4.lua index d2f9c1088..930f8e703 100644 --- a/Demos/OpenCLClothDemo/Intel/premake4.lua +++ b/Demos/OpenCLClothDemo/Intel/premake4.lua @@ -25,15 +25,19 @@ "opengl32" } + configuration { "Windows" } + defines { "GLEW_STATIC"} + + configuration "x64" links { "glut64", - "glew64" + "glew64s" } configuration "x32" links { "glut32", - "glew32" + "glew32s" } configuration{} diff --git a/Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt b/Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt index 9470e1c3d..608b16ea0 100644 --- a/Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt +++ b/Demos/OpenCLClothDemo/MiniCL/CMakeLists.txt @@ -8,12 +8,16 @@ ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL ADD_DEFINITIONS(-DUSE_MINICL) +IF(WIN32) +ADD_DEFINITIONS(-DGLEW_STATIC) +ENDIF(WIN32) + IF (WIN32) IF (CMAKE_CL_64) SET(CMAK_GLEW_LIBRARY - ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64.lib ) + ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib ) ELSE(CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib ) ENDIF(CMAKE_CL_64) ENDIF() @@ -56,16 +60,12 @@ IF (CMAKE_CL_64) ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_Mini POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_Mini POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW64.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ELSE(CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_Mini POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_Mini POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW32.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ENDIF(CMAKE_CL_64) diff --git a/Demos/OpenCLClothDemo/NVidia/CMakeLists.txt b/Demos/OpenCLClothDemo/NVidia/CMakeLists.txt index 565bb047c..fab2f0be1 100644 --- a/Demos/OpenCLClothDemo/NVidia/CMakeLists.txt +++ b/Demos/OpenCLClothDemo/NVidia/CMakeLists.txt @@ -10,14 +10,16 @@ ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL ${NVIDIA_OPENCL_INCLUDES} ) - +IF(WIN32) +ADD_DEFINITIONS(-DGLEW_STATIC) +ENDIF(WIN32) IF (CMAKE_CL_64) SET(CMAK_GLEW_LIBRARY - ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64.lib ) + ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib ) ELSE(CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib ) ENDIF(CMAKE_CL_64) @@ -58,16 +60,12 @@ IF (CMAKE_CL_64) ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_NVidia POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_NVidia POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW64.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ELSE(CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_NVidia POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppOpenCLClothDemo_NVidia POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW32.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ENDIF(CMAKE_CL_64) diff --git a/Demos/OpenCLClothDemo/NVidia/premake4.lua b/Demos/OpenCLClothDemo/NVidia/premake4.lua index 4a0f36c35..00ae41206 100644 --- a/Demos/OpenCLClothDemo/NVidia/premake4.lua +++ b/Demos/OpenCLClothDemo/NVidia/premake4.lua @@ -25,15 +25,19 @@ "opengl32" } + configuration { "Windows" } + defines { "GLEW_STATIC"} + + configuration "x64" links { "glut64", - "glew64" + "glew64s" } configuration "x32" links { "glut32", - "glew32" + "glew32s" } configuration{} diff --git a/Demos/ParticlesOpenCL/AMD/CMakeLists.txt b/Demos/ParticlesOpenCL/AMD/CMakeLists.txt index 6dfe27b88..657d1efc0 100644 --- a/Demos/ParticlesOpenCL/AMD/CMakeLists.txt +++ b/Demos/ParticlesOpenCL/AMD/CMakeLists.txt @@ -10,12 +10,15 @@ ${AMD_OPENCL_INCLUDES} ADD_DEFINITIONS(-DUSE_AMD_OPENCL) ADD_DEFINITIONS(-DCL_PLATFORM_AMD) +IF(WIN32) +ADD_DEFINITIONS(-DGLEW_STATIC) +ENDIF(WIN32) IF (CMAKE_CL_64) SET(CMAK_GLEW_LIBRARY - ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64.lib ) + ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib ) ELSE(CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib ) ENDIF(CMAKE_CL_64) @@ -59,8 +62,6 @@ IF (CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_AMD POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_AMD POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW64.DLL ${CMAKE_CURRENT_BINARY_DIR}) ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_AMD POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/ParticlesOpenCL/ParticlesOCL.cl ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() @@ -68,8 +69,6 @@ ELSE(CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_AMD POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR}) - ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_AMD POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW32.DLL ${CMAKE_CURRENT_BINARY_DIR}) ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_AMD POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/Demos/ParticlesOpenCL/ParticlesOCL.cl ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() diff --git a/Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt b/Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt index 7e57ef3a7..b97fe0bc7 100644 --- a/Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt +++ b/Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt @@ -11,12 +11,15 @@ ADD_DEFINITIONS(-DUSE_MINICL) #to get this to compile under linux, you could try setting CMAK_GLEW_LIBRARY #to /usr/lib/libGLEW.so +IF(WIN32) +ADD_DEFINITIONS(-DGLEW_STATIC) +ENDIF(WIN32) IF(WIN32) IF (CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib ) ELSE(CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib ) ENDIF(CMAKE_CL_64) ENDIF(WIN32) @@ -67,15 +70,11 @@ IF (CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_Mini POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_Mini POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW64.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ELSE(CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_Mini POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR}) - ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_Mini POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW32.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ENDIF(CMAKE_CL_64) ENDIF(WIN32) diff --git a/Demos/ParticlesOpenCL/NVidia/CMakeLists.txt b/Demos/ParticlesOpenCL/NVidia/CMakeLists.txt index 8013a970f..1241f216a 100644 --- a/Demos/ParticlesOpenCL/NVidia/CMakeLists.txt +++ b/Demos/ParticlesOpenCL/NVidia/CMakeLists.txt @@ -11,11 +11,15 @@ ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL ${NVIDIA_OPENCL_INCLUDES} ) +IF(WIN32) +ADD_DEFINITIONS(-DGLEW_STATIC) +ENDIF(WIN32) + IF(WIN32) IF (CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib ) ELSE(CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib ) ENDIF(CMAKE_CL_64) ELSE() IF(UNIX AND NOT APPLE) @@ -64,15 +68,11 @@ IF (CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_Nv POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} ) - ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_Nv POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW64.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ELSE(CMAKE_CL_64) IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_Nv POST_BUILD COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR}) - ADD_CUSTOM_COMMAND( TARGET AppParticlesOCL_Nv POST_BUILD - COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLEW32.DLL ${CMAKE_CURRENT_BINARY_DIR}) ENDIF() ENDIF(CMAKE_CL_64) diff --git a/Demos/SerializeDemo/AMD/CMakeLists.txt b/Demos/SerializeDemo/AMD/CMakeLists.txt index 88644d5d9..ab13f6ebd 100644 --- a/Demos/SerializeDemo/AMD/CMakeLists.txt +++ b/Demos/SerializeDemo/AMD/CMakeLists.txt @@ -12,11 +12,16 @@ ${AMD_OPENCL_INCLUDES} ADD_DEFINITIONS(-DDESERIALIZE_SOFT_BODIES) ADD_DEFINITIONS(-DUSE_AMD_OPENCL) ADD_DEFINITIONS(-DCL_PLATFORM_AMD) + +IF(WIN32) +ADD_DEFINITIONS(-DGLEW_STATIC) +ENDIF(WIN32) + IF (CMAKE_CL_64) SET(CMAK_GLEW_LIBRARY - ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64.lib ) + ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew64s.lib ) ELSE(CMAKE_CL_64) - SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32.lib ) + SET(CMAK_GLEW_LIBRARY ${BULLET_PHYSICS_SOURCE_DIR}/Glut/glew32s.lib ) ENDIF(CMAKE_CL_64) @@ -111,6 +116,21 @@ ELSE (USE_GLUT) ) ENDIF (USE_GLUT) +IF(WIN32) +IF (CMAKE_CL_64) + IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) + ADD_CUSTOM_COMMAND( TARGET AppSerializeDemo_AMD POST_BUILD + COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/glut64.dll ${CMAKE_CURRENT_BINARY_DIR} ) + ENDIF() +ELSE(CMAKE_CL_64) + IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) + ADD_CUSTOM_COMMAND( TARGET AppSerializeDemo_AMD POST_BUILD + COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${BULLET_PHYSICS_SOURCE_DIR}/GLUT32.DLL ${CMAKE_CURRENT_BINARY_DIR}) + ENDIF() +ENDIF(CMAKE_CL_64) +ENDIF(WIN32) + + IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES AND NOT INTERNAL_UPDATE_SERIALIZATION_STRUCTURES) ADD_CUSTOM_COMMAND( TARGET AppSerializeDemo_AMD diff --git a/Demos/SerializeDemo/AMD/premake4.lua b/Demos/SerializeDemo/AMD/premake4.lua index 2f59b49e5..360633b70 100644 --- a/Demos/SerializeDemo/AMD/premake4.lua +++ b/Demos/SerializeDemo/AMD/premake4.lua @@ -28,12 +28,12 @@ configuration "x64" links { "glut64", - "glew64" + "glew64s" } configuration "x32" links { "glut32", - "glew32" + "glew32s" } configuration{} diff --git a/Demos/SerializeDemo/testFile.bullet b/Demos/SerializeDemo/testFile.bullet index 6c8c1fbd7854e07d97d64ebb505e2db6c8217342..d535938f066791f0f6f12f50b6c83689721a9d9f 100644 GIT binary patch delta 71439 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 delta 46564 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 diff --git a/Demos/SoftDemo/AMD/premake4.lua b/Demos/SoftDemo/AMD/premake4.lua index 2e3d16cbe..2ff088758 100644 --- a/Demos/SoftDemo/AMD/premake4.lua +++ b/Demos/SoftDemo/AMD/premake4.lua @@ -29,12 +29,12 @@ configuration "x64" links { "glut64", - "glew64" + "glew64s" } configuration "x32" links { "glut32", - "glew32" + "glew32s" } configuration{} diff --git a/Demos/SoftDemo/SoftDemo.cpp b/Demos/SoftDemo/SoftDemo.cpp index cd0c8aa7e..0a370c1e9 100644 --- a/Demos/SoftDemo/SoftDemo.cpp +++ b/Demos/SoftDemo/SoftDemo.cpp @@ -159,7 +159,7 @@ public: size_t program_length = strlen(kernelSource); - cl_program m_cpProgram = btOpenCLUtils::compileCLProgramFromString(m_cxMainContext, m_device, kernelSource, &ciErrNum, additionalMacros,srcFileNameForCaching); + cl_program m_cpProgram = btOpenCLUtils::compileCLProgramFromString(m_cxMainContext, m_device, kernelSource, &ciErrNum, additionalMacros); // Create the kernel diff --git a/Demos/premake4.lua b/Demos/premake4.lua index 58cededdc..7f40dc350 100644 --- a/Demos/premake4.lua +++ b/Demos/premake4.lua @@ -12,10 +12,16 @@ function createDemos( demos, incdirs, linknames) includedirs {incdirs} configuration { "Windows" } - links { "glut32","glew32","opengl32" } + defines { "GLEW_STATIC"} + links { "opengl32" } includedirs{ "../Glut" } libdirs {"../Glut"} files { "../msvc/bullet.rc" } + + configuration {"Windows", "x32"} + links {"glew32s","glut32"} + configuration {"Windows", "x64"} + links {"glew64s", "glut64"} configuration {"MacOSX"} --print "hello" diff --git a/Glut/GL/glew.h b/Glut/GL/glew.h index 0a31eec37..f70103d11 100644 --- a/Glut/GL/glew.h +++ b/Glut/GL/glew.h @@ -1,7 +1,7 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2006, Milan Ikits -** Copyright (C) 2002-2006, Marcelo E. Magallon +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev ** All rights reserved. ** @@ -30,39 +30,57 @@ */ /* -** License Applicability. Except to the extent portions of this file are -** made subject to an alternative license as permitted in the SGI Free -** Software License B, Version 1.1 (the "License"), the contents of this -** file are subject only to the provisions of the License. You may not use -** this file except in compliance with the License. You may obtain a copy -** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 -** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 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. + */ + +/* +** Copyright (c) 2007 The Khronos Group Inc. ** -** http://oss.sgi.com/projects/FreeB +** 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: ** -** Note that, as provided in the License, the Software is distributed on an -** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS -** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND -** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A -** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. ** -** Original Code. The Original Code is: OpenGL Sample Implementation, -** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, -** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. -** Copyright in any portions created by third parties is as indicated -** elsewhere herein. All Rights Reserved. -** -** Additional Notice Provisions: This software was created using the -** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has -** not been independently verified as being compliant with the OpenGL(R) -** version 1.2.1 Specification. +** 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. */ #ifndef __glew_h__ #define __glew_h__ #define __GLEW_H__ -#if defined(__gl_h_) || defined(__GL_H__) +#if defined(__gl_h_) || defined(__GL_H__) || defined(__X_GL_H) #error gl.h included before glew.h #endif #if defined(__glext_h_) || defined(__GLEXT_H_) @@ -74,11 +92,12 @@ #define __gl_h_ #define __GL_H__ +#define __X_GL_H #define __glext_h_ #define __GLEXT_H_ #define __gl_ATI_h_ -#if defined(_WIN32) || defined(__CYGWIN__) || defined(__MINGW32__) +#if defined(_WIN32) /* * GLEW does not include to avoid name space pollution. @@ -88,7 +107,7 @@ /* */ #ifndef APIENTRY #define GLEW_APIENTRY_DEFINED -# if defined(__CYGWIN__) || defined(__MINGW32__) +# if defined(__MINGW32__) || defined(__CYGWIN__) # define APIENTRY __stdcall # elif (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) # define APIENTRY __stdcall @@ -97,14 +116,14 @@ # endif #endif #ifndef GLAPI -# if defined(__CYGWIN__) || defined(__MINGW32__) +# if defined(__MINGW32__) || defined(__CYGWIN__) # define GLAPI extern # endif #endif /* */ #ifndef CALLBACK #define GLEW_CALLBACK_DEFINED -# if defined(__CYGWIN__) || defined(__MINGW32__) +# if defined(__MINGW32__) || defined(__CYGWIN__) # define CALLBACK __attribute__ ((__stdcall__)) # elif (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) # define CALLBACK __stdcall @@ -124,13 +143,13 @@ typedef unsigned short wchar_t; #endif /* */ #if !defined(_W64) -# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && defined(_MSC_VER) && _MSC_VER >= 1300 # define _W64 __w64 # else # define _W64 # endif #endif -#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) +#if !defined(_PTRDIFF_T_DEFINED) && !defined(_PTRDIFF_T_) && !defined(__MINGW64__) # ifdef _WIN64 typedef __int64 ptrdiff_t; # else @@ -141,7 +160,7 @@ typedef _W64 int ptrdiff_t; #endif #ifndef GLAPI -# if defined(__CYGWIN__) || defined(__MINGW32__) +# if defined(__MINGW32__) || defined(__CYGWIN__) # define GLAPI extern # else # define GLAPI WINGDIAPI @@ -153,9 +172,10 @@ typedef _W64 int ptrdiff_t; #endif /* - * GLEW_STATIC needs to be set when using the static version. - * GLEW_BUILD is set when building the DLL version. + * GLEW_STATIC is defined for static library. + * GLEW_BUILD is defined for building the DLL library. */ + #ifdef GLEW_STATIC # define GLEWAPI extern #else @@ -179,9 +199,32 @@ typedef _W64 int ptrdiff_t; #include +/* SGI MIPSPro doesn't like stdint.h in C++ mode */ + +#if defined(__sgi) && !defined(__GNUC__) +#include +#else +#include +#endif + #define GLEW_APIENTRY_DEFINED #define APIENTRY -#define GLEWAPI extern + +/* + * GLEW_STATIC is defined for static library. + */ + +#ifdef GLEW_STATIC +# define GLEWAPI extern +#else +# if defined(__GNUC__) && __GNUC__>=4 +# define GLEWAPI extern __attribute__ ((visibility("default"))) +# elif defined(__SUNPRO_C) || defined(__SUNPRO_CC) +# define GLEWAPI extern __global +# else +# define GLEWAPI extern +# endif +#endif /* */ #ifndef GLAPI @@ -202,48 +245,77 @@ extern "C" { #ifndef GL_VERSION_1_1 #define GL_VERSION_1_1 1 -#if defined(__APPLE__) -typedef unsigned long GLenum; -typedef unsigned long GLbitfield; -typedef unsigned long GLuint; -typedef long GLint; -typedef long GLsizei; -#else typedef unsigned int GLenum; typedef unsigned int GLbitfield; typedef unsigned int GLuint; typedef int GLint; typedef int GLsizei; -#endif typedef unsigned char GLboolean; typedef signed char GLbyte; typedef short GLshort; typedef unsigned char GLubyte; typedef unsigned short GLushort; +typedef unsigned long GLulong; typedef float GLfloat; typedef float GLclampf; typedef double GLdouble; typedef double GLclampd; typedef void GLvoid; -#if defined(_MSC_VER) && _MSC_VER < 1310 -# ifdef _WIN64 +#if defined(_MSC_VER) && _MSC_VER < 1400 typedef __int64 GLint64EXT; typedef unsigned __int64 GLuint64EXT; -# else -typedef _W64 int GLint64EXT; -typedef _W64 unsigned int GLuint64EXT; -# endif -#else +#elif defined(_MSC_VER) || defined(__BORLANDC__) typedef signed long long GLint64EXT; typedef unsigned long long GLuint64EXT; +#else +# if defined(__MINGW32__) || defined(__CYGWIN__) +#include +# endif +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; #endif +typedef GLint64EXT GLint64; +typedef GLuint64EXT GLuint64; +typedef struct __GLsync *GLsync; +typedef char GLchar; + +#define GL_ZERO 0 +#define GL_FALSE 0 +#define GL_LOGIC_OP 0x0BF1 +#define GL_NONE 0 +#define GL_TEXTURE_COMPONENTS 0x1003 +#define GL_NO_ERROR 0 +#define GL_POINTS 0x0000 +#define GL_CURRENT_BIT 0x00000001 +#define GL_TRUE 1 +#define GL_ONE 1 +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_POINT_BIT 0x00000002 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_LINE_STRIP 0x0003 +#define GL_LINE_BIT 0x00000004 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON 0x0009 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 #define GL_ACCUM 0x0100 #define GL_LOAD 0x0101 #define GL_RETURN 0x0102 #define GL_MULT 0x0103 #define GL_ADD 0x0104 #define GL_NEVER 0x0200 +#define GL_ACCUM_BUFFER_BIT 0x00000200 #define GL_LESS 0x0201 #define GL_EQUAL 0x0202 #define GL_LEQUAL 0x0203 @@ -251,39 +323,6 @@ typedef unsigned long long GLuint64EXT; #define GL_NOTEQUAL 0x0205 #define GL_GEQUAL 0x0206 #define GL_ALWAYS 0x0207 -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0x000fffff -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 -#define GL_ZERO 0 -#define GL_ONE 1 #define GL_SRC_COLOR 0x0300 #define GL_ONE_MINUS_SRC_COLOR 0x0301 #define GL_SRC_ALPHA 0x0302 @@ -293,26 +332,7 @@ typedef unsigned long long GLuint64EXT; #define GL_DST_COLOR 0x0306 #define GL_ONE_MINUS_DST_COLOR 0x0307 #define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_TRUE 1 -#define GL_FALSE 0 -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A -#define GL_NONE 0 +#define GL_STENCIL_BUFFER_BIT 0x00000400 #define GL_FRONT_LEFT 0x0400 #define GL_FRONT_RIGHT 0x0401 #define GL_BACK_LEFT 0x0402 @@ -326,7 +346,6 @@ typedef unsigned long long GLuint64EXT; #define GL_AUX1 0x040A #define GL_AUX2 0x040B #define GL_AUX3 0x040C -#define GL_NO_ERROR 0 #define GL_INVALID_ENUM 0x0500 #define GL_INVALID_VALUE 0x0501 #define GL_INVALID_OPERATION 0x0502 @@ -347,6 +366,7 @@ typedef unsigned long long GLuint64EXT; #define GL_COPY_PIXEL_TOKEN 0x0706 #define GL_LINE_RESET_TOKEN 0x0707 #define GL_EXP 0x0800 +#define GL_VIEWPORT_BIT 0x00000800 #define GL_EXP2 0x0801 #define GL_CW 0x0900 #define GL_CCW 0x0901 @@ -563,6 +583,7 @@ typedef unsigned long long GLuint64EXT; #define GL_SELECTION_BUFFER_POINTER 0x0DF3 #define GL_SELECTION_BUFFER_SIZE 0x0DF4 #define GL_TEXTURE_WIDTH 0x1000 +#define GL_TRANSFORM_BIT 0x00001000 #define GL_TEXTURE_HEIGHT 0x1001 #define GL_TEXTURE_INTERNAL_FORMAT 0x1003 #define GL_TEXTURE_BORDER_COLOR 0x1004 @@ -570,14 +591,6 @@ typedef unsigned long long GLuint64EXT; #define GL_DONT_CARE 0x1100 #define GL_FASTEST 0x1101 #define GL_NICEST 0x1102 -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 #define GL_AMBIENT 0x1200 #define GL_DIFFUSE 0x1201 #define GL_SPECULAR 0x1202 @@ -590,6 +603,17 @@ typedef unsigned long long GLuint64EXT; #define GL_QUADRATIC_ATTENUATION 0x1209 #define GL_COMPILE 0x1300 #define GL_COMPILE_AND_EXECUTE 0x1301 +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A #define GL_CLEAR 0x1500 #define GL_AND 0x1501 #define GL_AND_REVERSE 0x1502 @@ -645,6 +669,7 @@ typedef unsigned long long GLuint64EXT; #define GL_VERSION 0x1F02 #define GL_EXTENSIONS 0x1F03 #define GL_S 0x2000 +#define GL_ENABLE_BIT 0x00002000 #define GL_T 0x2001 #define GL_R 0x2002 #define GL_Q 0x2003 @@ -671,14 +696,42 @@ typedef unsigned long long GLuint64EXT; #define GL_TEXTURE_WRAP_T 0x2803 #define GL_CLAMP 0x2900 #define GL_REPEAT 0x2901 -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff -#define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_POLYGON_OFFSET_UNITS 0x2A00 #define GL_POLYGON_OFFSET_POINT 0x2A01 #define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_R3_G3_B2 0x2A10 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 +#define GL_LIGHT0 0x4000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 +#define GL_HINT_BIT 0x00008000 #define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 #define GL_ALPHA4 0x803B #define GL_ALPHA8 0x803C #define GL_ALPHA12 0x803D @@ -698,7 +751,6 @@ typedef unsigned long long GLuint64EXT; #define GL_INTENSITY8 0x804B #define GL_INTENSITY12 0x804C #define GL_INTENSITY16 0x804D -#define GL_R3_G3_B2 0x2A10 #define GL_RGB4 0x804F #define GL_RGB5 0x8050 #define GL_RGB8 0x8051 @@ -750,28 +802,18 @@ typedef unsigned long long GLuint64EXT; #define GL_INDEX_ARRAY_POINTER 0x8091 #define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 #define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D -#define GL_LOGIC_OP GL_INDEX_LOGIC_OP -#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT #define GL_COLOR_INDEX1_EXT 0x80E2 #define GL_COLOR_INDEX2_EXT 0x80E3 #define GL_COLOR_INDEX4_EXT 0x80E4 #define GL_COLOR_INDEX8_EXT 0x80E5 #define GL_COLOR_INDEX12_EXT 0x80E6 #define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000fffff +#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff GLAPI void GLAPIENTRY glAccum (GLenum op, GLfloat value); GLAPI void GLAPIENTRY glAlphaFunc (GLenum func, GLclampf ref); @@ -1116,11 +1158,13 @@ GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei heigh /* ---------------------------------- GLU ---------------------------------- */ +#ifndef GLEW_NO_GLU /* this is where we can safely include GLU */ -#if defined(__APPLE__) && defined(__MACH__) -#include -#else -#include +# if defined(__APPLE__) && defined(__MACH__) +# include +# else +# include +# endif #endif /* ----------------------------- GL_VERSION_1_2 ---------------------------- */ @@ -1184,6 +1228,15 @@ typedef void (GLAPIENTRY * PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, #endif /* GL_VERSION_1_2 */ +/* ---------------------------- GL_VERSION_1_2_1 --------------------------- */ + +#ifndef GL_VERSION_1_2_1 +#define GL_VERSION_1_2_1 1 + +#define GLEW_VERSION_1_2_1 GLEW_GET_VAR(__GLEW_VERSION_1_2_1) + +#endif /* GL_VERSION_1_2_1 */ + /* ----------------------------- GL_VERSION_1_3 ---------------------------- */ #ifndef GL_VERSION_1_3 @@ -1440,7 +1493,9 @@ typedef void (GLAPIENTRY * PFNGLFOGCOORDFVPROC) (const GLfloat *coord); typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, GLfloat *params); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); @@ -1457,7 +1512,7 @@ typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); typedef void (GLAPIENTRY * PFNGLWINDOWPOS2DVPROC) (const GLdouble *p); typedef void (GLAPIENTRY * PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); @@ -1487,6 +1542,8 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); #define glMultiDrawElements GLEW_GET_FUN(__glewMultiDrawElements) #define glPointParameterf GLEW_GET_FUN(__glewPointParameterf) #define glPointParameterfv GLEW_GET_FUN(__glewPointParameterfv) +#define glPointParameteri GLEW_GET_FUN(__glewPointParameteri) +#define glPointParameteriv GLEW_GET_FUN(__glewPointParameteriv) #define glSecondaryColor3b GLEW_GET_FUN(__glewSecondaryColor3b) #define glSecondaryColor3bv GLEW_GET_FUN(__glewSecondaryColor3bv) #define glSecondaryColor3d GLEW_GET_FUN(__glewSecondaryColor3d) @@ -1581,8 +1638,8 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVPROC) (const GLshort *p); #define GL_DYNAMIC_COPY 0x88EA #define GL_SAMPLES_PASSED 0x8914 -typedef ptrdiff_t GLsizeiptr; typedef ptrdiff_t GLintptr; +typedef ptrdiff_t GLsizeiptr; typedef void (GLAPIENTRY * PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); typedef void (GLAPIENTRY * PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); @@ -1718,8 +1775,6 @@ typedef GLboolean (GLAPIENTRY * PFNGLUNMAPBUFFERPROC) (GLenum target); #define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 #define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -typedef char GLchar; - typedef void (GLAPIENTRY * PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); typedef void (GLAPIENTRY * PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar* name); typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum, GLenum); @@ -1739,12 +1794,12 @@ typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const G typedef void (GLAPIENTRY * PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLchar* infoLog); typedef void (GLAPIENTRY * PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint* param); typedef void (GLAPIENTRY * PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei* length, GLchar* infoLog); -typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLint obj, GLsizei maxLength, GLsizei* length, GLchar* source); +typedef void (GLAPIENTRY * PFNGLGETSHADERSOURCEPROC) (GLuint obj, GLsizei maxLength, GLsizei* length, GLchar* source); typedef void (GLAPIENTRY * PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint* param); -typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLint programObj, const GLchar* name); +typedef GLint (GLAPIENTRY * PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar* name); typedef void (GLAPIENTRY * PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat* params); typedef void (GLAPIENTRY * PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint* params); -typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint, GLenum, GLvoid*); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint, GLenum, GLvoid**); typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBDVPROC) (GLuint, GLenum, GLdouble*); typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBFVPROC) (GLuint, GLenum, GLfloat*); typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIVPROC) (GLuint, GLenum, GLint*); @@ -1922,6 +1977,12 @@ typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint si #define GL_PIXEL_UNPACK_BUFFER 0x88EC #define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED #define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A #define GL_SRGB 0x8C40 #define GL_SRGB8 0x8C41 #define GL_SRGB_ALPHA 0x8C42 @@ -1953,6 +2014,400 @@ typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei #endif /* GL_VERSION_2_1 */ +/* ----------------------------- GL_VERSION_3_0 ---------------------------- */ + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 + +#define GL_MAX_CLIP_DISTANCES GL_MAX_CLIP_PLANES +#define GL_CLIP_DISTANCE5 GL_CLIP_PLANE5 +#define GL_CLIP_DISTANCE1 GL_CLIP_PLANE1 +#define GL_CLIP_DISTANCE3 GL_CLIP_PLANE3 +#define GL_COMPARE_REF_TO_TEXTURE GL_COMPARE_R_TO_TEXTURE_ARB +#define GL_CLIP_DISTANCE0 GL_CLIP_PLANE0 +#define GL_CLIP_DISTANCE4 GL_CLIP_PLANE4 +#define GL_CLIP_DISTANCE2 GL_CLIP_PLANE2 +#define GL_MAX_VARYING_COMPONENTS GL_MAX_VARYING_FLOATS +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_DEPTH_BUFFER 0x8223 +#define GL_STENCIL_BUFFER 0x8224 +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_VERTEX_COLOR 0x891A +#define GL_CLAMP_FRAGMENT_COLOR 0x891B +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#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_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 +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#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 +#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_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#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_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#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_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#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 void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERPROC) (GLuint, GLenum); +typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum); +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONPROC) (GLuint, GLuint, const GLchar*); +typedef void (GLAPIENTRY * PFNGLCLAMPCOLORPROC) (GLenum, GLenum); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFIPROC) (GLenum, GLint, GLfloat, GLint); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERFVPROC) (GLenum, GLint, const GLfloat*); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERIVPROC) (GLenum, GLint, const GLint*); +typedef void (GLAPIENTRY * PFNGLCLEARBUFFERUIVPROC) (GLenum, GLint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLCOLORMASKIPROC) (GLuint, GLboolean, GLboolean, GLboolean, GLboolean); +typedef void (GLAPIENTRY * PFNGLDISABLEIPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLENABLEIPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETBOOLEANI_VPROC) (GLenum, GLuint, GLboolean*); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATALOCATIONPROC) (GLuint, const GLchar*); +typedef const GLubyte* (GLAPIENTRY * PFNGLGETSTRINGIPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIIVPROC) (GLenum, GLenum, GLint*); +typedef void (GLAPIENTRY * PFNGLGETTEXPARAMETERIUIVPROC) (GLenum, GLenum, GLuint*); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint, GLuint, GLsizei, GLsizei *, GLsizei *, GLenum *, GLchar *); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUIVPROC) (GLuint, GLint, GLuint*); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIIVPROC) (GLuint, GLenum, GLint*); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint, GLenum, GLuint*); +typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDIPROC) (GLenum, GLuint); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIIVPROC) (GLenum, GLenum, const GLint*); +typedef void (GLAPIENTRY * PFNGLTEXPARAMETERIUIVPROC) (GLenum, GLenum, const GLuint*); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint, GLsizei, const GLchar **, GLenum); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIPROC) (GLint, GLuint); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UIVPROC) (GLint, GLsizei, const GLuint*); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIPROC) (GLint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UIVPROC) (GLint, GLsizei, const GLuint*); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIPROC) (GLint, GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UIVPROC) (GLint, GLsizei, const GLuint*); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIPROC) (GLint, GLuint, GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UIVPROC) (GLint, GLsizei, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IPROC) (GLuint, GLint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1IVPROC) (GLuint, const GLint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIPROC) (GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI1UIVPROC) (GLuint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IPROC) (GLuint, GLint, GLint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2IVPROC) (GLuint, const GLint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIPROC) (GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI2UIVPROC) (GLuint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IPROC) (GLuint, GLint, GLint, GLint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3IVPROC) (GLuint, const GLint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIPROC) (GLuint, GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI3UIVPROC) (GLuint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4BVPROC) (GLuint, const GLbyte*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IPROC) (GLuint, GLint, GLint, GLint, GLint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4IVPROC) (GLuint, const GLint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4SVPROC) (GLuint, const GLshort*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UBVPROC) (GLuint, const GLubyte*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIPROC) (GLuint, GLuint, GLuint, GLuint, GLuint); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4UIVPROC) (GLuint, const GLuint*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBI4USVPROC) (GLuint, const GLushort*); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint, GLint, GLenum, GLsizei, const GLvoid*); + +#define glBeginConditionalRender GLEW_GET_FUN(__glewBeginConditionalRender) +#define glBeginTransformFeedback GLEW_GET_FUN(__glewBeginTransformFeedback) +#define glBindFragDataLocation GLEW_GET_FUN(__glewBindFragDataLocation) +#define glClampColor GLEW_GET_FUN(__glewClampColor) +#define glClearBufferfi GLEW_GET_FUN(__glewClearBufferfi) +#define glClearBufferfv GLEW_GET_FUN(__glewClearBufferfv) +#define glClearBufferiv GLEW_GET_FUN(__glewClearBufferiv) +#define glClearBufferuiv GLEW_GET_FUN(__glewClearBufferuiv) +#define glColorMaski GLEW_GET_FUN(__glewColorMaski) +#define glDisablei GLEW_GET_FUN(__glewDisablei) +#define glEnablei GLEW_GET_FUN(__glewEnablei) +#define glEndConditionalRender GLEW_GET_FUN(__glewEndConditionalRender) +#define glEndTransformFeedback GLEW_GET_FUN(__glewEndTransformFeedback) +#define glGetBooleani_v GLEW_GET_FUN(__glewGetBooleani_v) +#define glGetFragDataLocation GLEW_GET_FUN(__glewGetFragDataLocation) +#define glGetStringi GLEW_GET_FUN(__glewGetStringi) +#define glGetTexParameterIiv GLEW_GET_FUN(__glewGetTexParameterIiv) +#define glGetTexParameterIuiv GLEW_GET_FUN(__glewGetTexParameterIuiv) +#define glGetTransformFeedbackVarying GLEW_GET_FUN(__glewGetTransformFeedbackVarying) +#define glGetUniformuiv GLEW_GET_FUN(__glewGetUniformuiv) +#define glGetVertexAttribIiv GLEW_GET_FUN(__glewGetVertexAttribIiv) +#define glGetVertexAttribIuiv GLEW_GET_FUN(__glewGetVertexAttribIuiv) +#define glIsEnabledi GLEW_GET_FUN(__glewIsEnabledi) +#define glTexParameterIiv GLEW_GET_FUN(__glewTexParameterIiv) +#define glTexParameterIuiv GLEW_GET_FUN(__glewTexParameterIuiv) +#define glTransformFeedbackVaryings GLEW_GET_FUN(__glewTransformFeedbackVaryings) +#define glUniform1ui GLEW_GET_FUN(__glewUniform1ui) +#define glUniform1uiv GLEW_GET_FUN(__glewUniform1uiv) +#define glUniform2ui GLEW_GET_FUN(__glewUniform2ui) +#define glUniform2uiv GLEW_GET_FUN(__glewUniform2uiv) +#define glUniform3ui GLEW_GET_FUN(__glewUniform3ui) +#define glUniform3uiv GLEW_GET_FUN(__glewUniform3uiv) +#define glUniform4ui GLEW_GET_FUN(__glewUniform4ui) +#define glUniform4uiv GLEW_GET_FUN(__glewUniform4uiv) +#define glVertexAttribI1i GLEW_GET_FUN(__glewVertexAttribI1i) +#define glVertexAttribI1iv GLEW_GET_FUN(__glewVertexAttribI1iv) +#define glVertexAttribI1ui GLEW_GET_FUN(__glewVertexAttribI1ui) +#define glVertexAttribI1uiv GLEW_GET_FUN(__glewVertexAttribI1uiv) +#define glVertexAttribI2i GLEW_GET_FUN(__glewVertexAttribI2i) +#define glVertexAttribI2iv GLEW_GET_FUN(__glewVertexAttribI2iv) +#define glVertexAttribI2ui GLEW_GET_FUN(__glewVertexAttribI2ui) +#define glVertexAttribI2uiv GLEW_GET_FUN(__glewVertexAttribI2uiv) +#define glVertexAttribI3i GLEW_GET_FUN(__glewVertexAttribI3i) +#define glVertexAttribI3iv GLEW_GET_FUN(__glewVertexAttribI3iv) +#define glVertexAttribI3ui GLEW_GET_FUN(__glewVertexAttribI3ui) +#define glVertexAttribI3uiv GLEW_GET_FUN(__glewVertexAttribI3uiv) +#define glVertexAttribI4bv GLEW_GET_FUN(__glewVertexAttribI4bv) +#define glVertexAttribI4i GLEW_GET_FUN(__glewVertexAttribI4i) +#define glVertexAttribI4iv GLEW_GET_FUN(__glewVertexAttribI4iv) +#define glVertexAttribI4sv GLEW_GET_FUN(__glewVertexAttribI4sv) +#define glVertexAttribI4ubv GLEW_GET_FUN(__glewVertexAttribI4ubv) +#define glVertexAttribI4ui GLEW_GET_FUN(__glewVertexAttribI4ui) +#define glVertexAttribI4uiv GLEW_GET_FUN(__glewVertexAttribI4uiv) +#define glVertexAttribI4usv GLEW_GET_FUN(__glewVertexAttribI4usv) +#define glVertexAttribIPointer GLEW_GET_FUN(__glewVertexAttribIPointer) + +#define GLEW_VERSION_3_0 GLEW_GET_VAR(__GLEW_VERSION_3_0) + +#endif /* GL_VERSION_3_0 */ + +/* ----------------------------- GL_VERSION_3_1 ---------------------------- */ + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 + +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#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 +#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#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 +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum, GLint, GLsizei, GLsizei); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum, GLsizei, GLenum, const GLvoid*, GLsizei); +typedef void (GLAPIENTRY * PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint); +typedef void (GLAPIENTRY * PFNGLTEXBUFFERPROC) (GLenum, GLenum, GLuint); + +#define glDrawArraysInstanced GLEW_GET_FUN(__glewDrawArraysInstanced) +#define glDrawElementsInstanced GLEW_GET_FUN(__glewDrawElementsInstanced) +#define glPrimitiveRestartIndex GLEW_GET_FUN(__glewPrimitiveRestartIndex) +#define glTexBuffer GLEW_GET_FUN(__glewTexBuffer) + +#define GLEW_VERSION_3_1 GLEW_GET_VAR(__GLEW_VERSION_3_1) + +#endif /* GL_VERSION_3_1 */ + +/* ----------------------------- GL_VERSION_3_2 ---------------------------- */ + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 + +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum, GLenum, GLuint, GLint); +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum, GLenum, GLint64 *); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64I_VPROC) (GLenum, GLuint, GLint64 *); + +#define glFramebufferTexture GLEW_GET_FUN(__glewFramebufferTexture) +#define glGetBufferParameteri64v GLEW_GET_FUN(__glewGetBufferParameteri64v) +#define glGetInteger64i_v GLEW_GET_FUN(__glewGetInteger64i_v) + +#define GLEW_VERSION_3_2 GLEW_GET_VAR(__GLEW_VERSION_3_2) + +#endif /* GL_VERSION_3_2 */ + +/* ----------------------------- GL_VERSION_3_3 ---------------------------- */ + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#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 +#define GL_RGB10_A2UI 0x906F + +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); + +#define glVertexAttribDivisor GLEW_GET_FUN(__glewVertexAttribDivisor) + +#define GLEW_VERSION_3_3 GLEW_GET_VAR(__GLEW_VERSION_3_3) + +#endif /* GL_VERSION_3_3 */ + +/* ----------------------------- GL_VERSION_4_0 ---------------------------- */ + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 + +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8F9F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGPROC) (GLclampf value); + +#define glBlendEquationSeparatei GLEW_GET_FUN(__glewBlendEquationSeparatei) +#define glBlendEquationi GLEW_GET_FUN(__glewBlendEquationi) +#define glBlendFuncSeparatei GLEW_GET_FUN(__glewBlendFuncSeparatei) +#define glBlendFunci GLEW_GET_FUN(__glewBlendFunci) +#define glMinSampleShading GLEW_GET_FUN(__glewMinSampleShading) + +#define GLEW_VERSION_4_0 GLEW_GET_VAR(__GLEW_VERSION_4_0) + +#endif /* GL_VERSION_4_0 */ + +/* ----------------------------- GL_VERSION_4_1 ---------------------------- */ + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 + +#define GLEW_VERSION_4_1 GLEW_GET_VAR(__GLEW_VERSION_4_1) + +#endif /* GL_VERSION_4_1 */ + /* -------------------------- GL_3DFX_multisample -------------------------- */ #ifndef GL_3DFX_multisample @@ -1992,6 +2447,247 @@ typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); #endif /* GL_3DFX_texture_compression_FXT1 */ +/* ----------------------- GL_AMD_blend_minmax_factor ---------------------- */ + +#ifndef GL_AMD_blend_minmax_factor +#define GL_AMD_blend_minmax_factor 1 + +#define GL_FACTOR_MIN_AMD 0x901C +#define GL_FACTOR_MAX_AMD 0x901D + +#define GLEW_AMD_blend_minmax_factor GLEW_GET_VAR(__GLEW_AMD_blend_minmax_factor) + +#endif /* GL_AMD_blend_minmax_factor */ + +/* ----------------------- GL_AMD_conservative_depth ----------------------- */ + +#ifndef GL_AMD_conservative_depth +#define GL_AMD_conservative_depth 1 + +#define GLEW_AMD_conservative_depth GLEW_GET_VAR(__GLEW_AMD_conservative_depth) + +#endif /* GL_AMD_conservative_depth */ + +/* -------------------------- GL_AMD_debug_output -------------------------- */ + +#ifndef GL_AMD_debug_output +#define GL_AMD_debug_output 1 + +#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 void (APIENTRY *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); + +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, void* userParam); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const char* buf); +typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum* categories, GLuint* severities, GLuint* ids, GLsizei* lengths, char* message); + +#define glDebugMessageCallbackAMD GLEW_GET_FUN(__glewDebugMessageCallbackAMD) +#define glDebugMessageEnableAMD GLEW_GET_FUN(__glewDebugMessageEnableAMD) +#define glDebugMessageInsertAMD GLEW_GET_FUN(__glewDebugMessageInsertAMD) +#define glGetDebugMessageLogAMD GLEW_GET_FUN(__glewGetDebugMessageLogAMD) + +#define GLEW_AMD_debug_output GLEW_GET_VAR(__GLEW_AMD_debug_output) + +#endif /* GL_AMD_debug_output */ + +/* ---------------------- GL_AMD_depth_clamp_separate ---------------------- */ + +#ifndef GL_AMD_depth_clamp_separate +#define GL_AMD_depth_clamp_separate 1 + +#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E +#define GL_DEPTH_CLAMP_FAR_AMD 0x901F + +#define GLEW_AMD_depth_clamp_separate GLEW_GET_VAR(__GLEW_AMD_depth_clamp_separate) + +#endif /* GL_AMD_depth_clamp_separate */ + +/* ----------------------- GL_AMD_draw_buffers_blend ----------------------- */ + +#ifndef GL_AMD_draw_buffers_blend +#define GL_AMD_draw_buffers_blend 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +#define glBlendEquationIndexedAMD GLEW_GET_FUN(__glewBlendEquationIndexedAMD) +#define glBlendEquationSeparateIndexedAMD GLEW_GET_FUN(__glewBlendEquationSeparateIndexedAMD) +#define glBlendFuncIndexedAMD GLEW_GET_FUN(__glewBlendFuncIndexedAMD) +#define glBlendFuncSeparateIndexedAMD GLEW_GET_FUN(__glewBlendFuncSeparateIndexedAMD) + +#define GLEW_AMD_draw_buffers_blend GLEW_GET_VAR(__GLEW_AMD_draw_buffers_blend) + +#endif /* GL_AMD_draw_buffers_blend */ + +/* ------------------------- GL_AMD_name_gen_delete ------------------------ */ + +#ifndef GL_AMD_name_gen_delete +#define GL_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 + +typedef void (GLAPIENTRY * PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint* names); +typedef void (GLAPIENTRY * PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint* names); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); + +#define glDeleteNamesAMD GLEW_GET_FUN(__glewDeleteNamesAMD) +#define glGenNamesAMD GLEW_GET_FUN(__glewGenNamesAMD) +#define glIsNameAMD GLEW_GET_FUN(__glewIsNameAMD) + +#define GLEW_AMD_name_gen_delete GLEW_GET_VAR(__GLEW_AMD_name_gen_delete) + +#endif /* GL_AMD_name_gen_delete */ + +/* ----------------------- GL_AMD_performance_monitor ---------------------- */ + +#ifndef GL_AMD_performance_monitor +#define GL_AMD_performance_monitor 1 + +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_COUNTER_TYPE_AMD 0x8BC0 +#define GL_COUNTER_RANGE_AMD 0x8BC1 +#define GL_UNSIGNED_INT64_AMD 0x8BC2 +#define GL_PERCENTAGE_AMD 0x8BC3 +#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 +#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 +#define GL_PERFMON_RESULT_AMD 0x8BC6 + +typedef void (GLAPIENTRY * PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GLAPIENTRY * PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); +typedef void (GLAPIENTRY * PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); +typedef void (GLAPIENTRY * PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint* monitors); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint* data, GLint *bytesWritten); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, void* data); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei* length, char *counterString); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint* numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei* length, char *groupString); +typedef void (GLAPIENTRY * PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint* numGroups, GLsizei groupsSize, GLuint *groups); +typedef void (GLAPIENTRY * PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint* counterList); + +#define glBeginPerfMonitorAMD GLEW_GET_FUN(__glewBeginPerfMonitorAMD) +#define glDeletePerfMonitorsAMD GLEW_GET_FUN(__glewDeletePerfMonitorsAMD) +#define glEndPerfMonitorAMD GLEW_GET_FUN(__glewEndPerfMonitorAMD) +#define glGenPerfMonitorsAMD GLEW_GET_FUN(__glewGenPerfMonitorsAMD) +#define glGetPerfMonitorCounterDataAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterDataAMD) +#define glGetPerfMonitorCounterInfoAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterInfoAMD) +#define glGetPerfMonitorCounterStringAMD GLEW_GET_FUN(__glewGetPerfMonitorCounterStringAMD) +#define glGetPerfMonitorCountersAMD GLEW_GET_FUN(__glewGetPerfMonitorCountersAMD) +#define glGetPerfMonitorGroupStringAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupStringAMD) +#define glGetPerfMonitorGroupsAMD GLEW_GET_FUN(__glewGetPerfMonitorGroupsAMD) +#define glSelectPerfMonitorCountersAMD GLEW_GET_FUN(__glewSelectPerfMonitorCountersAMD) + +#define GLEW_AMD_performance_monitor GLEW_GET_VAR(__GLEW_AMD_performance_monitor) + +#endif /* GL_AMD_performance_monitor */ + +/* ------------------------ GL_AMD_sample_positions ------------------------ */ + +#ifndef GL_AMD_sample_positions +#define GL_AMD_sample_positions 1 + +#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F + +typedef void (GLAPIENTRY * PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat* val); + +#define glSetMultisamplefvAMD GLEW_GET_FUN(__glewSetMultisamplefvAMD) + +#define GLEW_AMD_sample_positions GLEW_GET_VAR(__GLEW_AMD_sample_positions) + +#endif /* GL_AMD_sample_positions */ + +/* ------------------ GL_AMD_seamless_cubemap_per_texture ------------------ */ + +#ifndef GL_AMD_seamless_cubemap_per_texture +#define GL_AMD_seamless_cubemap_per_texture 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884F + +#define GLEW_AMD_seamless_cubemap_per_texture GLEW_GET_VAR(__GLEW_AMD_seamless_cubemap_per_texture) + +#endif /* GL_AMD_seamless_cubemap_per_texture */ + +/* ---------------------- GL_AMD_shader_stencil_export --------------------- */ + +#ifndef GL_AMD_shader_stencil_export +#define GL_AMD_shader_stencil_export 1 + +#define GLEW_AMD_shader_stencil_export GLEW_GET_VAR(__GLEW_AMD_shader_stencil_export) + +#endif /* GL_AMD_shader_stencil_export */ + +/* ------------------------ GL_AMD_texture_texture4 ------------------------ */ + +#ifndef GL_AMD_texture_texture4 +#define GL_AMD_texture_texture4 1 + +#define GLEW_AMD_texture_texture4 GLEW_GET_VAR(__GLEW_AMD_texture_texture4) + +#endif /* GL_AMD_texture_texture4 */ + +/* --------------- GL_AMD_transform_feedback3_lines_triangles -------------- */ + +#ifndef GL_AMD_transform_feedback3_lines_triangles +#define GL_AMD_transform_feedback3_lines_triangles 1 + +#define GLEW_AMD_transform_feedback3_lines_triangles GLEW_GET_VAR(__GLEW_AMD_transform_feedback3_lines_triangles) + +#endif /* GL_AMD_transform_feedback3_lines_triangles */ + +/* -------------------- GL_AMD_vertex_shader_tessellator ------------------- */ + +#ifndef GL_AMD_vertex_shader_tessellator +#define GL_AMD_vertex_shader_tessellator 1 + +#define GL_SAMPLER_BUFFER_AMD 0x9001 +#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 +#define GL_TESSELLATION_MODE_AMD 0x9004 +#define GL_TESSELLATION_FACTOR_AMD 0x9005 +#define GL_DISCRETE_AMD 0x9006 +#define GL_CONTINUOUS_AMD 0x9007 + +typedef void (GLAPIENTRY * PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); +typedef void (GLAPIENTRY * PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); + +#define glTessellationFactorAMD GLEW_GET_FUN(__glewTessellationFactorAMD) +#define glTessellationModeAMD GLEW_GET_FUN(__glewTessellationModeAMD) + +#define GLEW_AMD_vertex_shader_tessellator GLEW_GET_VAR(__GLEW_AMD_vertex_shader_tessellator) + +#endif /* GL_AMD_vertex_shader_tessellator */ + +/* ----------------------- GL_APPLE_aux_depth_stencil ---------------------- */ + +#ifndef GL_APPLE_aux_depth_stencil +#define GL_APPLE_aux_depth_stencil 1 + +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 + +#define GLEW_APPLE_aux_depth_stencil GLEW_GET_VAR(__GLEW_APPLE_aux_depth_stencil) + +#endif /* GL_APPLE_aux_depth_stencil */ + /* ------------------------ GL_APPLE_client_storage ------------------------ */ #ifndef GL_APPLE_client_storage @@ -2008,9 +2704,9 @@ typedef void (GLAPIENTRY * PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); #ifndef GL_APPLE_element_array #define GL_APPLE_element_array 1 -#define GL_ELEMENT_ARRAY_APPLE 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x876A +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E typedef void (GLAPIENTRY * PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); @@ -2082,6 +2778,48 @@ typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint #endif /* GL_APPLE_float_pixels */ +/* ---------------------- GL_APPLE_flush_buffer_range ---------------------- */ + +#ifndef GL_APPLE_flush_buffer_range +#define GL_APPLE_flush_buffer_range 1 + +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 + +typedef void (GLAPIENTRY * PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); + +#define glBufferParameteriAPPLE GLEW_GET_FUN(__glewBufferParameteriAPPLE) +#define glFlushMappedBufferRangeAPPLE GLEW_GET_FUN(__glewFlushMappedBufferRangeAPPLE) + +#define GLEW_APPLE_flush_buffer_range GLEW_GET_VAR(__GLEW_APPLE_flush_buffer_range) + +#endif /* GL_APPLE_flush_buffer_range */ + +/* ----------------------- GL_APPLE_object_purgeable ----------------------- */ + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 + +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D + +typedef void (GLAPIENTRY * PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint* params); +typedef GLenum (GLAPIENTRY * PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (GLAPIENTRY * PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); + +#define glGetObjectParameterivAPPLE GLEW_GET_FUN(__glewGetObjectParameterivAPPLE) +#define glObjectPurgeableAPPLE GLEW_GET_FUN(__glewObjectPurgeableAPPLE) +#define glObjectUnpurgeableAPPLE GLEW_GET_FUN(__glewObjectUnpurgeableAPPLE) + +#define GLEW_APPLE_object_purgeable GLEW_GET_VAR(__GLEW_APPLE_object_purgeable) + +#endif /* GL_APPLE_object_purgeable */ + /* ------------------------- GL_APPLE_pixel_buffer ------------------------- */ #ifndef GL_APPLE_pixel_buffer @@ -2093,6 +2831,31 @@ typedef GLboolean (GLAPIENTRY * PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint #endif /* GL_APPLE_pixel_buffer */ +/* ---------------------------- GL_APPLE_rgb_422 --------------------------- */ + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 + +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_422_APPLE 0x8A1F + +#define GLEW_APPLE_rgb_422 GLEW_GET_VAR(__GLEW_APPLE_rgb_422) + +#endif /* GL_APPLE_rgb_422 */ + +/* --------------------------- GL_APPLE_row_bytes -------------------------- */ + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 + +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 + +#define GLEW_APPLE_row_bytes GLEW_GET_VAR(__GLEW_APPLE_row_bytes) + +#endif /* GL_APPLE_row_bytes */ + /* ------------------------ GL_APPLE_specular_vector ----------------------- */ #ifndef GL_APPLE_specular_vector @@ -2168,6 +2931,7 @@ typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); #define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F #define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 #define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_STORAGE_CLIENT_APPLE 0x85B4 #define GL_STORAGE_CACHED_APPLE 0x85BE #define GL_STORAGE_SHARED_APPLE 0x85BF @@ -2183,6 +2947,42 @@ typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void #endif /* GL_APPLE_vertex_array_range */ +/* ------------------- GL_APPLE_vertex_program_evaluators ------------------ */ + +#ifndef GL_APPLE_vertex_program_evaluators +#define GL_APPLE_vertex_program_evaluators 1 + +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 + +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble* points); +typedef void (GLAPIENTRY * PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat* points); + +#define glDisableVertexAttribAPPLE GLEW_GET_FUN(__glewDisableVertexAttribAPPLE) +#define glEnableVertexAttribAPPLE GLEW_GET_FUN(__glewEnableVertexAttribAPPLE) +#define glIsVertexAttribEnabledAPPLE GLEW_GET_FUN(__glewIsVertexAttribEnabledAPPLE) +#define glMapVertexAttrib1dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1dAPPLE) +#define glMapVertexAttrib1fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib1fAPPLE) +#define glMapVertexAttrib2dAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2dAPPLE) +#define glMapVertexAttrib2fAPPLE GLEW_GET_FUN(__glewMapVertexAttrib2fAPPLE) + +#define GLEW_APPLE_vertex_program_evaluators GLEW_GET_VAR(__GLEW_APPLE_vertex_program_evaluators) + +#endif /* GL_APPLE_vertex_program_evaluators */ + /* --------------------------- GL_APPLE_ycbcr_422 -------------------------- */ #ifndef GL_APPLE_ycbcr_422 @@ -2196,6 +2996,82 @@ typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, void #endif /* GL_APPLE_ycbcr_422 */ +/* ------------------------ GL_ARB_ES2_compatibility ----------------------- */ + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 + +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD + +typedef void (GLAPIENTRY * PFNGLCLEARDEPTHFPROC) (GLclampf d); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); +typedef void (GLAPIENTRY * PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint* range, GLint *precision); +typedef void (GLAPIENTRY * PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (GLAPIENTRY * PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint* shaders, GLenum binaryformat, const GLvoid*binary, GLsizei length); + +#define glClearDepthf GLEW_GET_FUN(__glewClearDepthf) +#define glDepthRangef GLEW_GET_FUN(__glewDepthRangef) +#define glGetShaderPrecisionFormat GLEW_GET_FUN(__glewGetShaderPrecisionFormat) +#define glReleaseShaderCompiler GLEW_GET_FUN(__glewReleaseShaderCompiler) +#define glShaderBinary GLEW_GET_FUN(__glewShaderBinary) + +#define GLEW_ARB_ES2_compatibility GLEW_GET_VAR(__GLEW_ARB_ES2_compatibility) + +#endif /* GL_ARB_ES2_compatibility */ + +/* ----------------------- GL_ARB_blend_func_extended ---------------------- */ + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 + +#define GL_SRC1_COLOR 0x88F9 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC + +typedef void (GLAPIENTRY * PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const char * name); +typedef GLint (GLAPIENTRY * PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const char * name); + +#define glBindFragDataLocationIndexed GLEW_GET_FUN(__glewBindFragDataLocationIndexed) +#define glGetFragDataIndex GLEW_GET_FUN(__glewGetFragDataIndex) + +#define GLEW_ARB_blend_func_extended GLEW_GET_VAR(__GLEW_ARB_blend_func_extended) + +#endif /* GL_ARB_blend_func_extended */ + +/* ---------------------------- GL_ARB_cl_event ---------------------------- */ + +#ifndef GL_ARB_cl_event +#define GL_ARB_cl_event 1 + +#define GL_SYNC_CL_EVENT_ARB 0x8240 +#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 + +typedef struct _cl_context *cl_context; +typedef struct _cl_event *cl_event; + +typedef GLsync (GLAPIENTRY * PFNGLCREATESYNCFROMCLEVENTARBPROC) (cl_context context, cl_event event, GLbitfield flags); + +#define glCreateSyncFromCLeventARB GLEW_GET_FUN(__glewCreateSyncFromCLeventARB) + +#define GLEW_ARB_cl_event GLEW_GET_VAR(__GLEW_ARB_cl_event) + +#endif /* GL_ARB_cl_event */ + /* ----------------------- GL_ARB_color_buffer_float ----------------------- */ #ifndef GL_ARB_color_buffer_float @@ -2215,6 +3091,99 @@ typedef void (GLAPIENTRY * PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp) #endif /* GL_ARB_color_buffer_float */ +/* -------------------------- GL_ARB_compatibility ------------------------- */ + +#ifndef GL_ARB_compatibility +#define GL_ARB_compatibility 1 + +#define GLEW_ARB_compatibility GLEW_GET_VAR(__GLEW_ARB_compatibility) + +#endif /* GL_ARB_compatibility */ + +/* --------------------------- GL_ARB_copy_buffer -------------------------- */ + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 + +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 + +typedef void (GLAPIENTRY * PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + +#define glCopyBufferSubData GLEW_GET_FUN(__glewCopyBufferSubData) + +#define GLEW_ARB_copy_buffer GLEW_GET_VAR(__GLEW_ARB_copy_buffer) + +#endif /* GL_ARB_copy_buffer */ + +/* -------------------------- GL_ARB_debug_output -------------------------- */ + +#ifndef GL_ARB_debug_output +#define GL_ARB_debug_output 1 + +#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 +#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_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 +#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 +#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 +#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 +#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 +#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 + +typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar* message, GLvoid* userParam); + +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, void* userParam); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint* ids, GLboolean enabled); +typedef void (GLAPIENTRY * PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const char* buf); +typedef GLuint (GLAPIENTRY * PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum* sources, GLenum* types, GLuint* ids, GLenum* severities, GLsizei* lengths, char* messageLog); + +#define glDebugMessageCallbackARB GLEW_GET_FUN(__glewDebugMessageCallbackARB) +#define glDebugMessageControlARB GLEW_GET_FUN(__glewDebugMessageControlARB) +#define glDebugMessageInsertARB GLEW_GET_FUN(__glewDebugMessageInsertARB) +#define glGetDebugMessageLogARB GLEW_GET_FUN(__glewGetDebugMessageLogARB) + +#define GLEW_ARB_debug_output GLEW_GET_VAR(__GLEW_ARB_debug_output) + +#endif /* GL_ARB_debug_output */ + +/* ----------------------- GL_ARB_depth_buffer_float ----------------------- */ + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 + +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD + +#define GLEW_ARB_depth_buffer_float GLEW_GET_VAR(__GLEW_ARB_depth_buffer_float) + +#endif /* GL_ARB_depth_buffer_float */ + +/* --------------------------- GL_ARB_depth_clamp -------------------------- */ + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 + +#define GL_DEPTH_CLAMP 0x864F + +#define GLEW_ARB_depth_clamp GLEW_GET_VAR(__GLEW_ARB_depth_clamp) + +#endif /* GL_ARB_depth_clamp */ + /* -------------------------- GL_ARB_depth_texture ------------------------- */ #ifndef GL_ARB_depth_texture @@ -2261,6 +3230,89 @@ typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bu #endif /* GL_ARB_draw_buffers */ +/* ----------------------- GL_ARB_draw_buffers_blend ----------------------- */ + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 + +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +typedef void (GLAPIENTRY * PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); + +#define glBlendEquationSeparateiARB GLEW_GET_FUN(__glewBlendEquationSeparateiARB) +#define glBlendEquationiARB GLEW_GET_FUN(__glewBlendEquationiARB) +#define glBlendFuncSeparateiARB GLEW_GET_FUN(__glewBlendFuncSeparateiARB) +#define glBlendFunciARB GLEW_GET_FUN(__glewBlendFunciARB) + +#define GLEW_ARB_draw_buffers_blend GLEW_GET_VAR(__GLEW_ARB_draw_buffers_blend) + +#endif /* GL_ARB_draw_buffers_blend */ + +/* -------------------- GL_ARB_draw_elements_base_vertex ------------------- */ + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 + +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, void* indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, void* indices, GLint basevertex); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei* count, GLenum type, GLvoid**indices, GLsizei primcount, GLint *basevertex); + +#define glDrawElementsBaseVertex GLEW_GET_FUN(__glewDrawElementsBaseVertex) +#define glDrawElementsInstancedBaseVertex GLEW_GET_FUN(__glewDrawElementsInstancedBaseVertex) +#define glDrawRangeElementsBaseVertex GLEW_GET_FUN(__glewDrawRangeElementsBaseVertex) +#define glMultiDrawElementsBaseVertex GLEW_GET_FUN(__glewMultiDrawElementsBaseVertex) + +#define GLEW_ARB_draw_elements_base_vertex GLEW_GET_VAR(__GLEW_ARB_draw_elements_base_vertex) + +#endif /* GL_ARB_draw_elements_base_vertex */ + +/* -------------------------- GL_ARB_draw_indirect ------------------------- */ + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 + +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const void* indirect); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const void* indirect); + +#define glDrawArraysIndirect GLEW_GET_FUN(__glewDrawArraysIndirect) +#define glDrawElementsIndirect GLEW_GET_FUN(__glewDrawElementsIndirect) + +#define GLEW_ARB_draw_indirect GLEW_GET_VAR(__GLEW_ARB_draw_indirect) + +#endif /* GL_ARB_draw_indirect */ + +/* ------------------------- GL_ARB_draw_instanced ------------------------- */ + +#ifndef GL_ARB_draw_instanced +#define GL_ARB_draw_instanced 1 + +#define GLEW_ARB_draw_instanced GLEW_GET_VAR(__GLEW_ARB_draw_instanced) + +#endif /* GL_ARB_draw_instanced */ + +/* -------------------- GL_ARB_explicit_attrib_location -------------------- */ + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 + +#define GLEW_ARB_explicit_attrib_location GLEW_GET_VAR(__GLEW_ARB_explicit_attrib_location) + +#endif /* GL_ARB_explicit_attrib_location */ + +/* ------------------- GL_ARB_fragment_coord_conventions ------------------- */ + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 + +#define GLEW_ARB_fragment_coord_conventions GLEW_GET_VAR(__GLEW_ARB_fragment_coord_conventions) + +#endif /* GL_ARB_fragment_coord_conventions */ + /* ------------------------ GL_ARB_fragment_program ------------------------ */ #ifndef GL_ARB_fragment_program @@ -2308,6 +3360,314 @@ typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bu #endif /* GL_ARB_fragment_shader */ +/* ----------------------- GL_ARB_framebuffer_object ----------------------- */ + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 + +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#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_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_INDEX 0x8222 +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_SRGB 0x8C40 +#define GL_DRAW_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#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_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_MAX_COLOR_ATTACHMENTS 0x8CDF +#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_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#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_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 + +typedef void (GLAPIENTRY * PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (GLAPIENTRY * PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef GLenum (GLAPIENTRY * PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target,GLenum attachment, GLuint texture,GLint level,GLint layer); +typedef void (GLAPIENTRY * PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint* framebuffers); +typedef void (GLAPIENTRY * PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint* renderbuffers); +typedef void (GLAPIENTRY * PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef GLboolean (GLAPIENTRY * PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + +#define glBindFramebuffer GLEW_GET_FUN(__glewBindFramebuffer) +#define glBindRenderbuffer GLEW_GET_FUN(__glewBindRenderbuffer) +#define glBlitFramebuffer GLEW_GET_FUN(__glewBlitFramebuffer) +#define glCheckFramebufferStatus GLEW_GET_FUN(__glewCheckFramebufferStatus) +#define glDeleteFramebuffers GLEW_GET_FUN(__glewDeleteFramebuffers) +#define glDeleteRenderbuffers GLEW_GET_FUN(__glewDeleteRenderbuffers) +#define glFramebufferRenderbuffer GLEW_GET_FUN(__glewFramebufferRenderbuffer) +#define glFramebufferTexture1D GLEW_GET_FUN(__glewFramebufferTexture1D) +#define glFramebufferTexture2D GLEW_GET_FUN(__glewFramebufferTexture2D) +#define glFramebufferTexture3D GLEW_GET_FUN(__glewFramebufferTexture3D) +#define glFramebufferTextureLayer GLEW_GET_FUN(__glewFramebufferTextureLayer) +#define glGenFramebuffers GLEW_GET_FUN(__glewGenFramebuffers) +#define glGenRenderbuffers GLEW_GET_FUN(__glewGenRenderbuffers) +#define glGenerateMipmap GLEW_GET_FUN(__glewGenerateMipmap) +#define glGetFramebufferAttachmentParameteriv GLEW_GET_FUN(__glewGetFramebufferAttachmentParameteriv) +#define glGetRenderbufferParameteriv GLEW_GET_FUN(__glewGetRenderbufferParameteriv) +#define glIsFramebuffer GLEW_GET_FUN(__glewIsFramebuffer) +#define glIsRenderbuffer GLEW_GET_FUN(__glewIsRenderbuffer) +#define glRenderbufferStorage GLEW_GET_FUN(__glewRenderbufferStorage) +#define glRenderbufferStorageMultisample GLEW_GET_FUN(__glewRenderbufferStorageMultisample) + +#define GLEW_ARB_framebuffer_object GLEW_GET_VAR(__GLEW_ARB_framebuffer_object) + +#endif /* GL_ARB_framebuffer_object */ + +/* ------------------------ GL_ARB_framebuffer_sRGB ------------------------ */ + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 + +#define GL_FRAMEBUFFER_SRGB 0x8DB9 + +#define GLEW_ARB_framebuffer_sRGB GLEW_GET_VAR(__GLEW_ARB_framebuffer_sRGB) + +#endif /* GL_ARB_framebuffer_sRGB */ + +/* ------------------------ GL_ARB_geometry_shader4 ------------------------ */ + +#ifndef GL_ARB_geometry_shader4 +#define GL_ARB_geometry_shader4 1 + +#define GL_LINES_ADJACENCY_ARB 0xA +#define GL_LINE_STRIP_ADJACENCY_ARB 0xB +#define GL_TRIANGLES_ADJACENCY_ARB 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0xD +#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 +#define GL_GEOMETRY_SHADER_ARB 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 + +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); + +#define glFramebufferTextureARB GLEW_GET_FUN(__glewFramebufferTextureARB) +#define glFramebufferTextureFaceARB GLEW_GET_FUN(__glewFramebufferTextureFaceARB) +#define glFramebufferTextureLayerARB GLEW_GET_FUN(__glewFramebufferTextureLayerARB) +#define glProgramParameteriARB GLEW_GET_FUN(__glewProgramParameteriARB) + +#define GLEW_ARB_geometry_shader4 GLEW_GET_VAR(__GLEW_ARB_geometry_shader4) + +#endif /* GL_ARB_geometry_shader4 */ + +/* ----------------------- GL_ARB_get_program_binary ----------------------- */ + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 + +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF + +typedef void (GLAPIENTRY * PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, GLvoid*binary); +typedef void (GLAPIENTRY * PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void* binary, GLsizei length); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); + +#define glGetProgramBinary GLEW_GET_FUN(__glewGetProgramBinary) +#define glProgramBinary GLEW_GET_FUN(__glewProgramBinary) +#define glProgramParameteri GLEW_GET_FUN(__glewProgramParameteri) + +#define GLEW_ARB_get_program_binary GLEW_GET_VAR(__GLEW_ARB_get_program_binary) + +#endif /* GL_ARB_get_program_binary */ + +/* --------------------------- GL_ARB_gpu_shader5 -------------------------- */ + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 + +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +#define GL_MAX_VERTEX_STREAMS 0x8E71 + +#define GLEW_ARB_gpu_shader5 GLEW_GET_VAR(__GLEW_ARB_gpu_shader5) + +#endif /* GL_ARB_gpu_shader5 */ + +/* ------------------------- GL_ARB_gpu_shader_fp64 ------------------------ */ + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 + +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE + +typedef void (GLAPIENTRY * PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); + +#define glGetUniformdv GLEW_GET_FUN(__glewGetUniformdv) +#define glProgramUniform1dEXT GLEW_GET_FUN(__glewProgramUniform1dEXT) +#define glProgramUniform1dvEXT GLEW_GET_FUN(__glewProgramUniform1dvEXT) +#define glProgramUniform2dEXT GLEW_GET_FUN(__glewProgramUniform2dEXT) +#define glProgramUniform2dvEXT GLEW_GET_FUN(__glewProgramUniform2dvEXT) +#define glProgramUniform3dEXT GLEW_GET_FUN(__glewProgramUniform3dEXT) +#define glProgramUniform3dvEXT GLEW_GET_FUN(__glewProgramUniform3dvEXT) +#define glProgramUniform4dEXT GLEW_GET_FUN(__glewProgramUniform4dEXT) +#define glProgramUniform4dvEXT GLEW_GET_FUN(__glewProgramUniform4dvEXT) +#define glProgramUniformMatrix2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2dvEXT) +#define glProgramUniformMatrix2x3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3dvEXT) +#define glProgramUniformMatrix2x4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4dvEXT) +#define glProgramUniformMatrix3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3dvEXT) +#define glProgramUniformMatrix3x2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2dvEXT) +#define glProgramUniformMatrix3x4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4dvEXT) +#define glProgramUniformMatrix4dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4dvEXT) +#define glProgramUniformMatrix4x2dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2dvEXT) +#define glProgramUniformMatrix4x3dvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3dvEXT) +#define glUniform1d GLEW_GET_FUN(__glewUniform1d) +#define glUniform1dv GLEW_GET_FUN(__glewUniform1dv) +#define glUniform2d GLEW_GET_FUN(__glewUniform2d) +#define glUniform2dv GLEW_GET_FUN(__glewUniform2dv) +#define glUniform3d GLEW_GET_FUN(__glewUniform3d) +#define glUniform3dv GLEW_GET_FUN(__glewUniform3dv) +#define glUniform4d GLEW_GET_FUN(__glewUniform4d) +#define glUniform4dv GLEW_GET_FUN(__glewUniform4dv) +#define glUniformMatrix2dv GLEW_GET_FUN(__glewUniformMatrix2dv) +#define glUniformMatrix2x3dv GLEW_GET_FUN(__glewUniformMatrix2x3dv) +#define glUniformMatrix2x4dv GLEW_GET_FUN(__glewUniformMatrix2x4dv) +#define glUniformMatrix3dv GLEW_GET_FUN(__glewUniformMatrix3dv) +#define glUniformMatrix3x2dv GLEW_GET_FUN(__glewUniformMatrix3x2dv) +#define glUniformMatrix3x4dv GLEW_GET_FUN(__glewUniformMatrix3x4dv) +#define glUniformMatrix4dv GLEW_GET_FUN(__glewUniformMatrix4dv) +#define glUniformMatrix4x2dv GLEW_GET_FUN(__glewUniformMatrix4x2dv) +#define glUniformMatrix4x3dv GLEW_GET_FUN(__glewUniformMatrix4x3dv) + +#define GLEW_ARB_gpu_shader_fp64 GLEW_GET_VAR(__GLEW_ARB_gpu_shader_fp64) + +#endif /* GL_ARB_gpu_shader_fp64 */ + /* ------------------------ GL_ARB_half_float_pixel ------------------------ */ #ifndef GL_ARB_half_float_pixel @@ -2319,6 +3679,17 @@ typedef void (GLAPIENTRY * PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum* bu #endif /* GL_ARB_half_float_pixel */ +/* ------------------------ GL_ARB_half_float_vertex ----------------------- */ + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 + +#define GL_HALF_FLOAT 0x140B + +#define GLEW_ARB_half_float_vertex GLEW_GET_VAR(__GLEW_ARB_half_float_vertex) + +#endif /* GL_ARB_half_float_vertex */ + /* ----------------------------- GL_ARB_imaging ---------------------------- */ #ifndef GL_ARB_imaging @@ -2472,6 +3843,47 @@ typedef void (GLAPIENTRY * PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum in #endif /* GL_ARB_imaging */ +/* ------------------------ GL_ARB_instanced_arrays ------------------------ */ + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 + +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE + +typedef void (GLAPIENTRY * PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const void* indices, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); + +#define glDrawArraysInstancedARB GLEW_GET_FUN(__glewDrawArraysInstancedARB) +#define glDrawElementsInstancedARB GLEW_GET_FUN(__glewDrawElementsInstancedARB) +#define glVertexAttribDivisorARB GLEW_GET_FUN(__glewVertexAttribDivisorARB) + +#define GLEW_ARB_instanced_arrays GLEW_GET_VAR(__GLEW_ARB_instanced_arrays) + +#endif /* GL_ARB_instanced_arrays */ + +/* ------------------------ GL_ARB_map_buffer_range ------------------------ */ + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 + +#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 + +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +typedef GLvoid * (GLAPIENTRY * PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); + +#define glFlushMappedBufferRange GLEW_GET_FUN(__glewFlushMappedBufferRange) +#define glMapBufferRange GLEW_GET_FUN(__glewMapBufferRange) + +#define GLEW_ARB_map_buffer_range GLEW_GET_VAR(__GLEW_ARB_map_buffer_range) + +#endif /* GL_ARB_map_buffer_range */ + /* ------------------------- GL_ARB_matrix_palette ------------------------- */ #ifndef GL_ARB_matrix_palette @@ -2675,6 +4087,17 @@ typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id); #endif /* GL_ARB_occlusion_query */ +/* ------------------------ GL_ARB_occlusion_query2 ------------------------ */ + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 + +#define GL_ANY_SAMPLES_PASSED 0x8C2F + +#define GLEW_ARB_occlusion_query2 GLEW_GET_VAR(__GLEW_ARB_occlusion_query2) + +#endif /* GL_ARB_occlusion_query2 */ + /* ----------------------- GL_ARB_pixel_buffer_object ---------------------- */ #ifndef GL_ARB_pixel_buffer_object @@ -2700,7 +4123,7 @@ typedef GLboolean (GLAPIENTRY * PFNGLISQUERYARBPROC) (GLuint id); #define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat* params); #define glPointParameterfARB GLEW_GET_FUN(__glewPointParameterfARB) #define glPointParameterfvARB GLEW_GET_FUN(__glewPointParameterfvARB) @@ -2721,6 +4144,299 @@ typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, GLfloat* #endif /* GL_ARB_point_sprite */ +/* ------------------------ GL_ARB_provoking_vertex ------------------------ */ + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 + +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F + +typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXPROC) (GLenum mode); + +#define glProvokingVertex GLEW_GET_FUN(__glewProvokingVertex) + +#define GLEW_ARB_provoking_vertex GLEW_GET_VAR(__GLEW_ARB_provoking_vertex) + +#endif /* GL_ARB_provoking_vertex */ + +/* --------------------------- GL_ARB_robustness --------------------------- */ + +#ifndef GL_ARB_robustness +#define GL_ARB_robustness 1 + +#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 +#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 +#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 +#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 + +typedef void (GLAPIENTRY * PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* table); +typedef void (GLAPIENTRY * PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, void* img); +typedef void (GLAPIENTRY * PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, void* image); +typedef void (GLAPIENTRY * PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); +typedef void (GLAPIENTRY * PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble* v); +typedef void (GLAPIENTRY * PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat* v); +typedef void (GLAPIENTRY * PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint* v); +typedef void (GLAPIENTRY * PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint* values); +typedef void (GLAPIENTRY * PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort* values); +typedef void (GLAPIENTRY * PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte* pattern); +typedef void (GLAPIENTRY * PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void* row, GLsizei columnBufSize, GLvoid*column, GLvoid*span); +typedef void (GLAPIENTRY * PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void* img); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint* params); +typedef void (GLAPIENTRY * PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void* data); + +#define glGetnColorTableARB GLEW_GET_FUN(__glewGetnColorTableARB) +#define glGetnCompressedTexImageARB GLEW_GET_FUN(__glewGetnCompressedTexImageARB) +#define glGetnConvolutionFilterARB GLEW_GET_FUN(__glewGetnConvolutionFilterARB) +#define glGetnHistogramARB GLEW_GET_FUN(__glewGetnHistogramARB) +#define glGetnMapdvARB GLEW_GET_FUN(__glewGetnMapdvARB) +#define glGetnMapfvARB GLEW_GET_FUN(__glewGetnMapfvARB) +#define glGetnMapivARB GLEW_GET_FUN(__glewGetnMapivARB) +#define glGetnMinmaxARB GLEW_GET_FUN(__glewGetnMinmaxARB) +#define glGetnPixelMapfvARB GLEW_GET_FUN(__glewGetnPixelMapfvARB) +#define glGetnPixelMapuivARB GLEW_GET_FUN(__glewGetnPixelMapuivARB) +#define glGetnPixelMapusvARB GLEW_GET_FUN(__glewGetnPixelMapusvARB) +#define glGetnPolygonStippleARB GLEW_GET_FUN(__glewGetnPolygonStippleARB) +#define glGetnSeparableFilterARB GLEW_GET_FUN(__glewGetnSeparableFilterARB) +#define glGetnTexImageARB GLEW_GET_FUN(__glewGetnTexImageARB) +#define glGetnUniformdvARB GLEW_GET_FUN(__glewGetnUniformdvARB) +#define glGetnUniformfvARB GLEW_GET_FUN(__glewGetnUniformfvARB) +#define glGetnUniformivARB GLEW_GET_FUN(__glewGetnUniformivARB) +#define glGetnUniformuivARB GLEW_GET_FUN(__glewGetnUniformuivARB) +#define glReadnPixelsARB GLEW_GET_FUN(__glewReadnPixelsARB) + +#define GLEW_ARB_robustness GLEW_GET_VAR(__GLEW_ARB_robustness) + +#endif /* GL_ARB_robustness */ + +/* ------------------------- GL_ARB_sample_shading ------------------------- */ + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 + +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 + +typedef void (GLAPIENTRY * PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); + +#define glMinSampleShadingARB GLEW_GET_FUN(__glewMinSampleShadingARB) + +#define GLEW_ARB_sample_shading GLEW_GET_VAR(__GLEW_ARB_sample_shading) + +#endif /* GL_ARB_sample_shading */ + +/* ------------------------- GL_ARB_sampler_objects ------------------------ */ + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 + +#define GL_SAMPLER_BINDING 0x8919 + +typedef void (GLAPIENTRY * PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); +typedef void (GLAPIENTRY * PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers); +typedef void (GLAPIENTRY * PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISSAMPLERPROC) (GLuint sampler); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint* params); + +#define glBindSampler GLEW_GET_FUN(__glewBindSampler) +#define glDeleteSamplers GLEW_GET_FUN(__glewDeleteSamplers) +#define glGenSamplers GLEW_GET_FUN(__glewGenSamplers) +#define glGetSamplerParameterIiv GLEW_GET_FUN(__glewGetSamplerParameterIiv) +#define glGetSamplerParameterIuiv GLEW_GET_FUN(__glewGetSamplerParameterIuiv) +#define glGetSamplerParameterfv GLEW_GET_FUN(__glewGetSamplerParameterfv) +#define glGetSamplerParameteriv GLEW_GET_FUN(__glewGetSamplerParameteriv) +#define glIsSampler GLEW_GET_FUN(__glewIsSampler) +#define glSamplerParameterIiv GLEW_GET_FUN(__glewSamplerParameterIiv) +#define glSamplerParameterIuiv GLEW_GET_FUN(__glewSamplerParameterIuiv) +#define glSamplerParameterf GLEW_GET_FUN(__glewSamplerParameterf) +#define glSamplerParameterfv GLEW_GET_FUN(__glewSamplerParameterfv) +#define glSamplerParameteri GLEW_GET_FUN(__glewSamplerParameteri) +#define glSamplerParameteriv GLEW_GET_FUN(__glewSamplerParameteriv) + +#define GLEW_ARB_sampler_objects GLEW_GET_VAR(__GLEW_ARB_sampler_objects) + +#endif /* GL_ARB_sampler_objects */ + +/* ------------------------ GL_ARB_seamless_cube_map ----------------------- */ + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 + +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F + +#define GLEW_ARB_seamless_cube_map GLEW_GET_VAR(__GLEW_ARB_seamless_cube_map) + +#endif /* GL_ARB_seamless_cube_map */ + +/* --------------------- GL_ARB_separate_shader_objects -------------------- */ + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 + +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#define GL_ALL_SHADER_BITS 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); +typedef void (GLAPIENTRY * PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const char ** strings); +typedef void (GLAPIENTRY * PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint* pipelines); +typedef void (GLAPIENTRY * PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint* pipelines); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei* length, char *infoLog); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint* params); +typedef GLboolean (GLAPIENTRY * PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint x, GLint y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint x, GLuint y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); + +#define glActiveShaderProgram GLEW_GET_FUN(__glewActiveShaderProgram) +#define glBindProgramPipeline GLEW_GET_FUN(__glewBindProgramPipeline) +#define glCreateShaderProgramv GLEW_GET_FUN(__glewCreateShaderProgramv) +#define glDeleteProgramPipelines GLEW_GET_FUN(__glewDeleteProgramPipelines) +#define glGenProgramPipelines GLEW_GET_FUN(__glewGenProgramPipelines) +#define glGetProgramPipelineInfoLog GLEW_GET_FUN(__glewGetProgramPipelineInfoLog) +#define glGetProgramPipelineiv GLEW_GET_FUN(__glewGetProgramPipelineiv) +#define glIsProgramPipeline GLEW_GET_FUN(__glewIsProgramPipeline) +#define glProgramUniform1d GLEW_GET_FUN(__glewProgramUniform1d) +#define glProgramUniform1dv GLEW_GET_FUN(__glewProgramUniform1dv) +#define glProgramUniform1f GLEW_GET_FUN(__glewProgramUniform1f) +#define glProgramUniform1fv GLEW_GET_FUN(__glewProgramUniform1fv) +#define glProgramUniform1i GLEW_GET_FUN(__glewProgramUniform1i) +#define glProgramUniform1iv GLEW_GET_FUN(__glewProgramUniform1iv) +#define glProgramUniform1ui GLEW_GET_FUN(__glewProgramUniform1ui) +#define glProgramUniform1uiv GLEW_GET_FUN(__glewProgramUniform1uiv) +#define glProgramUniform2d GLEW_GET_FUN(__glewProgramUniform2d) +#define glProgramUniform2dv GLEW_GET_FUN(__glewProgramUniform2dv) +#define glProgramUniform2f GLEW_GET_FUN(__glewProgramUniform2f) +#define glProgramUniform2fv GLEW_GET_FUN(__glewProgramUniform2fv) +#define glProgramUniform2i GLEW_GET_FUN(__glewProgramUniform2i) +#define glProgramUniform2iv GLEW_GET_FUN(__glewProgramUniform2iv) +#define glProgramUniform2ui GLEW_GET_FUN(__glewProgramUniform2ui) +#define glProgramUniform2uiv GLEW_GET_FUN(__glewProgramUniform2uiv) +#define glProgramUniform3d GLEW_GET_FUN(__glewProgramUniform3d) +#define glProgramUniform3dv GLEW_GET_FUN(__glewProgramUniform3dv) +#define glProgramUniform3f GLEW_GET_FUN(__glewProgramUniform3f) +#define glProgramUniform3fv GLEW_GET_FUN(__glewProgramUniform3fv) +#define glProgramUniform3i GLEW_GET_FUN(__glewProgramUniform3i) +#define glProgramUniform3iv GLEW_GET_FUN(__glewProgramUniform3iv) +#define glProgramUniform3ui GLEW_GET_FUN(__glewProgramUniform3ui) +#define glProgramUniform3uiv GLEW_GET_FUN(__glewProgramUniform3uiv) +#define glProgramUniform4d GLEW_GET_FUN(__glewProgramUniform4d) +#define glProgramUniform4dv GLEW_GET_FUN(__glewProgramUniform4dv) +#define glProgramUniform4f GLEW_GET_FUN(__glewProgramUniform4f) +#define glProgramUniform4fv GLEW_GET_FUN(__glewProgramUniform4fv) +#define glProgramUniform4i GLEW_GET_FUN(__glewProgramUniform4i) +#define glProgramUniform4iv GLEW_GET_FUN(__glewProgramUniform4iv) +#define glProgramUniform4ui GLEW_GET_FUN(__glewProgramUniform4ui) +#define glProgramUniform4uiv GLEW_GET_FUN(__glewProgramUniform4uiv) +#define glProgramUniformMatrix2dv GLEW_GET_FUN(__glewProgramUniformMatrix2dv) +#define glProgramUniformMatrix2fv GLEW_GET_FUN(__glewProgramUniformMatrix2fv) +#define glProgramUniformMatrix2x3dv GLEW_GET_FUN(__glewProgramUniformMatrix2x3dv) +#define glProgramUniformMatrix2x3fv GLEW_GET_FUN(__glewProgramUniformMatrix2x3fv) +#define glProgramUniformMatrix2x4dv GLEW_GET_FUN(__glewProgramUniformMatrix2x4dv) +#define glProgramUniformMatrix2x4fv GLEW_GET_FUN(__glewProgramUniformMatrix2x4fv) +#define glProgramUniformMatrix3dv GLEW_GET_FUN(__glewProgramUniformMatrix3dv) +#define glProgramUniformMatrix3fv GLEW_GET_FUN(__glewProgramUniformMatrix3fv) +#define glProgramUniformMatrix3x2dv GLEW_GET_FUN(__glewProgramUniformMatrix3x2dv) +#define glProgramUniformMatrix3x2fv GLEW_GET_FUN(__glewProgramUniformMatrix3x2fv) +#define glProgramUniformMatrix3x4dv GLEW_GET_FUN(__glewProgramUniformMatrix3x4dv) +#define glProgramUniformMatrix3x4fv GLEW_GET_FUN(__glewProgramUniformMatrix3x4fv) +#define glProgramUniformMatrix4dv GLEW_GET_FUN(__glewProgramUniformMatrix4dv) +#define glProgramUniformMatrix4fv GLEW_GET_FUN(__glewProgramUniformMatrix4fv) +#define glProgramUniformMatrix4x2dv GLEW_GET_FUN(__glewProgramUniformMatrix4x2dv) +#define glProgramUniformMatrix4x2fv GLEW_GET_FUN(__glewProgramUniformMatrix4x2fv) +#define glProgramUniformMatrix4x3dv GLEW_GET_FUN(__glewProgramUniformMatrix4x3dv) +#define glProgramUniformMatrix4x3fv GLEW_GET_FUN(__glewProgramUniformMatrix4x3fv) +#define glUseProgramStages GLEW_GET_FUN(__glewUseProgramStages) +#define glValidateProgramPipeline GLEW_GET_FUN(__glewValidateProgramPipeline) + +#define GLEW_ARB_separate_shader_objects GLEW_GET_VAR(__GLEW_ARB_separate_shader_objects) + +#endif /* GL_ARB_separate_shader_objects */ + +/* ----------------------- GL_ARB_shader_bit_encoding ---------------------- */ + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 + +#define GLEW_ARB_shader_bit_encoding GLEW_GET_VAR(__GLEW_ARB_shader_bit_encoding) + +#endif /* GL_ARB_shader_bit_encoding */ + /* ------------------------- GL_ARB_shader_objects ------------------------- */ #ifndef GL_ARB_shader_objects @@ -2848,6 +4564,70 @@ typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj) #endif /* GL_ARB_shader_objects */ +/* ------------------------ GL_ARB_shader_precision ------------------------ */ + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 + +#define GLEW_ARB_shader_precision GLEW_GET_VAR(__GLEW_ARB_shader_precision) + +#endif /* GL_ARB_shader_precision */ + +/* ---------------------- GL_ARB_shader_stencil_export --------------------- */ + +#ifndef GL_ARB_shader_stencil_export +#define GL_ARB_shader_stencil_export 1 + +#define GLEW_ARB_shader_stencil_export GLEW_GET_VAR(__GLEW_ARB_shader_stencil_export) + +#endif /* GL_ARB_shader_stencil_export */ + +/* ------------------------ GL_ARB_shader_subroutine ----------------------- */ + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 + +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B + +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei* length, char *name); +typedef void (GLAPIENTRY * PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint* values); +typedef void (GLAPIENTRY * PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint* values); +typedef GLuint (GLAPIENTRY * PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const char* name); +typedef GLint (GLAPIENTRY * PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const char* name); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint* params); +typedef void (GLAPIENTRY * PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint* indices); + +#define glGetActiveSubroutineName GLEW_GET_FUN(__glewGetActiveSubroutineName) +#define glGetActiveSubroutineUniformName GLEW_GET_FUN(__glewGetActiveSubroutineUniformName) +#define glGetActiveSubroutineUniformiv GLEW_GET_FUN(__glewGetActiveSubroutineUniformiv) +#define glGetProgramStageiv GLEW_GET_FUN(__glewGetProgramStageiv) +#define glGetSubroutineIndex GLEW_GET_FUN(__glewGetSubroutineIndex) +#define glGetSubroutineUniformLocation GLEW_GET_FUN(__glewGetSubroutineUniformLocation) +#define glGetUniformSubroutineuiv GLEW_GET_FUN(__glewGetUniformSubroutineuiv) +#define glUniformSubroutinesuiv GLEW_GET_FUN(__glewUniformSubroutinesuiv) + +#define GLEW_ARB_shader_subroutine GLEW_GET_VAR(__GLEW_ARB_shader_subroutine) + +#endif /* GL_ARB_shader_subroutine */ + +/* ----------------------- GL_ARB_shader_texture_lod ----------------------- */ + +#ifndef GL_ARB_shader_texture_lod +#define GL_ARB_shader_texture_lod 1 + +#define GLEW_ARB_shader_texture_lod GLEW_GET_VAR(__GLEW_ARB_shader_texture_lod) + +#endif /* GL_ARB_shader_texture_lod */ + /* ---------------------- GL_ARB_shading_language_100 ---------------------- */ #ifndef GL_ARB_shading_language_100 @@ -2859,6 +4639,33 @@ typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj) #endif /* GL_ARB_shading_language_100 */ +/* -------------------- GL_ARB_shading_language_include -------------------- */ + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 + +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA + +typedef void (GLAPIENTRY * PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const char ** path, const GLint *length); +typedef void (GLAPIENTRY * PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const char* name); +typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const char* name, GLsizei bufSize, GLint *stringlen, char *string); +typedef void (GLAPIENTRY * PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const char* name, GLenum pname, GLint *params); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const char* name); +typedef void (GLAPIENTRY * PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const char* name, GLint stringlen, const char *string); + +#define glCompileShaderIncludeARB GLEW_GET_FUN(__glewCompileShaderIncludeARB) +#define glDeleteNamedStringARB GLEW_GET_FUN(__glewDeleteNamedStringARB) +#define glGetNamedStringARB GLEW_GET_FUN(__glewGetNamedStringARB) +#define glGetNamedStringivARB GLEW_GET_FUN(__glewGetNamedStringivARB) +#define glIsNamedStringARB GLEW_GET_FUN(__glewIsNamedStringARB) +#define glNamedStringARB GLEW_GET_FUN(__glewNamedStringARB) + +#define GLEW_ARB_shading_language_include GLEW_GET_VAR(__GLEW_ARB_shading_language_include) + +#endif /* GL_ARB_shading_language_include */ + /* ----------------------------- GL_ARB_shadow ----------------------------- */ #ifndef GL_ARB_shadow @@ -2883,6 +4690,95 @@ typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj) #endif /* GL_ARB_shadow_ambient */ +/* ------------------------------ GL_ARB_sync ------------------------------ */ + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 + +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#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_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFF + +typedef GLenum (GLAPIENTRY * PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); +typedef void (GLAPIENTRY * PFNGLDELETESYNCPROC) (GLsync GLsync); +typedef GLsync (GLAPIENTRY * PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags); +typedef void (GLAPIENTRY * PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETSYNCIVPROC) (GLsync GLsync,GLenum pname,GLsizei bufSize,GLsizei* length, GLint *values); +typedef GLboolean (GLAPIENTRY * PFNGLISSYNCPROC) (GLsync GLsync); +typedef void (GLAPIENTRY * PFNGLWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout); + +#define glClientWaitSync GLEW_GET_FUN(__glewClientWaitSync) +#define glDeleteSync GLEW_GET_FUN(__glewDeleteSync) +#define glFenceSync GLEW_GET_FUN(__glewFenceSync) +#define glGetInteger64v GLEW_GET_FUN(__glewGetInteger64v) +#define glGetSynciv GLEW_GET_FUN(__glewGetSynciv) +#define glIsSync GLEW_GET_FUN(__glewIsSync) +#define glWaitSync GLEW_GET_FUN(__glewWaitSync) + +#define GLEW_ARB_sync GLEW_GET_VAR(__GLEW_ARB_sync) + +#endif /* GL_ARB_sync */ + +/* ----------------------- GL_ARB_tessellation_shader ---------------------- */ + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 + +#define GL_PATCHES 0xE +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +#define GL_ISOLINES 0x8E7A +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A + +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat* values); +typedef void (GLAPIENTRY * PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); + +#define glPatchParameterfv GLEW_GET_FUN(__glewPatchParameterfv) +#define glPatchParameteri GLEW_GET_FUN(__glewPatchParameteri) + +#define GLEW_ARB_tessellation_shader GLEW_GET_VAR(__GLEW_ARB_tessellation_shader) + +#endif /* GL_ARB_tessellation_shader */ + /* ---------------------- GL_ARB_texture_border_clamp ---------------------- */ #ifndef GL_ARB_texture_border_clamp @@ -2894,6 +4790,34 @@ typedef void (GLAPIENTRY * PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj) #endif /* GL_ARB_texture_border_clamp */ +/* ---------------------- GL_ARB_texture_buffer_object --------------------- */ + +#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 void (GLAPIENTRY * PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); + +#define glTexBufferARB GLEW_GET_FUN(__glewTexBufferARB) + +#define GLEW_ARB_texture_buffer_object GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object) + +#endif /* GL_ARB_texture_buffer_object */ + +/* ------------------- GL_ARB_texture_buffer_object_rgb32 ------------------ */ + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 + +#define GLEW_ARB_texture_buffer_object_rgb32 GLEW_GET_VAR(__GLEW_ARB_texture_buffer_object_rgb32) + +#endif /* GL_ARB_texture_buffer_object_rgb32 */ + /* ----------------------- GL_ARB_texture_compression ---------------------- */ #ifndef GL_ARB_texture_compression @@ -2931,6 +4855,34 @@ typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GL #endif /* GL_ARB_texture_compression */ +/* -------------------- GL_ARB_texture_compression_bptc -------------------- */ + +#ifndef GL_ARB_texture_compression_bptc +#define GL_ARB_texture_compression_bptc 1 + +#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C +#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D +#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E +#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F + +#define GLEW_ARB_texture_compression_bptc GLEW_GET_VAR(__GLEW_ARB_texture_compression_bptc) + +#endif /* GL_ARB_texture_compression_bptc */ + +/* -------------------- GL_ARB_texture_compression_rgtc -------------------- */ + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 + +#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 + +#define GLEW_ARB_texture_compression_rgtc GLEW_GET_VAR(__GLEW_ARB_texture_compression_rgtc) + +#endif /* GL_ARB_texture_compression_rgtc */ + /* ------------------------ GL_ARB_texture_cube_map ------------------------ */ #ifndef GL_ARB_texture_cube_map @@ -2953,6 +4905,23 @@ typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GL #endif /* GL_ARB_texture_cube_map */ +/* --------------------- GL_ARB_texture_cube_map_array --------------------- */ + +#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 + +#define GLEW_ARB_texture_cube_map_array GLEW_GET_VAR(__GLEW_ARB_texture_cube_map_array) + +#endif /* GL_ARB_texture_cube_map_array */ + /* ------------------------- GL_ARB_texture_env_add ------------------------ */ #ifndef GL_ARB_texture_env_add @@ -3045,6 +5014,19 @@ typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GL #endif /* GL_ARB_texture_float */ +/* ------------------------- GL_ARB_texture_gather ------------------------- */ + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 + +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F + +#define GLEW_ARB_texture_gather GLEW_GET_VAR(__GLEW_ARB_texture_gather) + +#endif /* GL_ARB_texture_gather */ + /* --------------------- GL_ARB_texture_mirrored_repeat -------------------- */ #ifndef GL_ARB_texture_mirrored_repeat @@ -3056,6 +5038,47 @@ typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GL #endif /* GL_ARB_texture_mirrored_repeat */ +/* ----------------------- GL_ARB_texture_multisample ---------------------- */ + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 + +#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_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 +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 + +typedef void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat* val); +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + +#define glGetMultisamplefv GLEW_GET_FUN(__glewGetMultisamplefv) +#define glSampleMaski GLEW_GET_FUN(__glewSampleMaski) +#define glTexImage2DMultisample GLEW_GET_FUN(__glewTexImage2DMultisample) +#define glTexImage3DMultisample GLEW_GET_FUN(__glewTexImage3DMultisample) + +#define GLEW_ARB_texture_multisample GLEW_GET_VAR(__GLEW_ARB_texture_multisample) + +#endif /* GL_ARB_texture_multisample */ + /* -------------------- GL_ARB_texture_non_power_of_two -------------------- */ #ifndef GL_ARB_texture_non_power_of_two @@ -3065,6 +5088,15 @@ typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GL #endif /* GL_ARB_texture_non_power_of_two */ +/* ------------------------ GL_ARB_texture_query_lod ----------------------- */ + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 + +#define GLEW_ARB_texture_query_lod GLEW_GET_VAR(__GLEW_ARB_texture_query_lod) + +#endif /* GL_ARB_texture_query_lod */ + /* ------------------------ GL_ARB_texture_rectangle ----------------------- */ #ifndef GL_ARB_texture_rectangle @@ -3081,6 +5113,139 @@ typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GL #endif /* GL_ARB_texture_rectangle */ +/* --------------------------- GL_ARB_texture_rg --------------------------- */ + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 + +#define GL_RED 0x1903 +#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 + +#define GLEW_ARB_texture_rg GLEW_GET_VAR(__GLEW_ARB_texture_rg) + +#endif /* GL_ARB_texture_rg */ + +/* ----------------------- GL_ARB_texture_rgb10_a2ui ----------------------- */ + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 + +#define GL_RGB10_A2UI 0x906F + +#define GLEW_ARB_texture_rgb10_a2ui GLEW_GET_VAR(__GLEW_ARB_texture_rgb10_a2ui) + +#endif /* GL_ARB_texture_rgb10_a2ui */ + +/* ------------------------- GL_ARB_texture_swizzle ------------------------ */ + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 + +#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 + +#define GLEW_ARB_texture_swizzle GLEW_GET_VAR(__GLEW_ARB_texture_swizzle) + +#endif /* GL_ARB_texture_swizzle */ + +/* --------------------------- GL_ARB_timer_query -------------------------- */ + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 + +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 + +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64* params); +typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64* params); +typedef void (GLAPIENTRY * PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); + +#define glGetQueryObjecti64v GLEW_GET_FUN(__glewGetQueryObjecti64v) +#define glGetQueryObjectui64v GLEW_GET_FUN(__glewGetQueryObjectui64v) +#define glQueryCounter GLEW_GET_FUN(__glewQueryCounter) + +#define GLEW_ARB_timer_query GLEW_GET_VAR(__GLEW_ARB_timer_query) + +#endif /* GL_ARB_timer_query */ + +/* ----------------------- GL_ARB_transform_feedback2 ---------------------- */ + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 + +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 + +typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint* ids); +typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); +typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); + +#define glBindTransformFeedback GLEW_GET_FUN(__glewBindTransformFeedback) +#define glDeleteTransformFeedbacks GLEW_GET_FUN(__glewDeleteTransformFeedbacks) +#define glDrawTransformFeedback GLEW_GET_FUN(__glewDrawTransformFeedback) +#define glGenTransformFeedbacks GLEW_GET_FUN(__glewGenTransformFeedbacks) +#define glIsTransformFeedback GLEW_GET_FUN(__glewIsTransformFeedback) +#define glPauseTransformFeedback GLEW_GET_FUN(__glewPauseTransformFeedback) +#define glResumeTransformFeedback GLEW_GET_FUN(__glewResumeTransformFeedback) + +#define GLEW_ARB_transform_feedback2 GLEW_GET_VAR(__GLEW_ARB_transform_feedback2) + +#endif /* GL_ARB_transform_feedback2 */ + +/* ----------------------- GL_ARB_transform_feedback3 ---------------------- */ + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 + +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_MAX_VERTEX_STREAMS 0x8E71 + +typedef void (GLAPIENTRY * PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); +typedef void (GLAPIENTRY * PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); +typedef void (GLAPIENTRY * PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint* params); + +#define glBeginQueryIndexed GLEW_GET_FUN(__glewBeginQueryIndexed) +#define glDrawTransformFeedbackStream GLEW_GET_FUN(__glewDrawTransformFeedbackStream) +#define glEndQueryIndexed GLEW_GET_FUN(__glewEndQueryIndexed) +#define glGetQueryIndexediv GLEW_GET_FUN(__glewGetQueryIndexediv) + +#define GLEW_ARB_transform_feedback3 GLEW_GET_VAR(__GLEW_ARB_transform_feedback3) + +#endif /* GL_ARB_transform_feedback3 */ + /* ------------------------ GL_ARB_transpose_matrix ------------------------ */ #ifndef GL_ARB_transpose_matrix @@ -3105,6 +5270,141 @@ typedef void (GLAPIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) (GLfloat m[16]); #endif /* GL_ARB_transpose_matrix */ +/* ---------------------- GL_ARB_uniform_buffer_object --------------------- */ + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 + +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, char* uniformBlockName); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, char* uniformName); +typedef void (GLAPIENTRY * PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint* data); +typedef GLuint (GLAPIENTRY * PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const char* uniformBlockName); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const char** uniformNames, GLuint* uniformIndices); +typedef void (GLAPIENTRY * PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + +#define glBindBufferBase GLEW_GET_FUN(__glewBindBufferBase) +#define glBindBufferRange GLEW_GET_FUN(__glewBindBufferRange) +#define glGetActiveUniformBlockName GLEW_GET_FUN(__glewGetActiveUniformBlockName) +#define glGetActiveUniformBlockiv GLEW_GET_FUN(__glewGetActiveUniformBlockiv) +#define glGetActiveUniformName GLEW_GET_FUN(__glewGetActiveUniformName) +#define glGetActiveUniformsiv GLEW_GET_FUN(__glewGetActiveUniformsiv) +#define glGetIntegeri_v GLEW_GET_FUN(__glewGetIntegeri_v) +#define glGetUniformBlockIndex GLEW_GET_FUN(__glewGetUniformBlockIndex) +#define glGetUniformIndices GLEW_GET_FUN(__glewGetUniformIndices) +#define glUniformBlockBinding GLEW_GET_FUN(__glewUniformBlockBinding) + +#define GLEW_ARB_uniform_buffer_object GLEW_GET_VAR(__GLEW_ARB_uniform_buffer_object) + +#endif /* GL_ARB_uniform_buffer_object */ + +/* ------------------------ GL_ARB_vertex_array_bgra ----------------------- */ + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 + +#define GL_BGRA 0x80E1 + +#define GLEW_ARB_vertex_array_bgra GLEW_GET_VAR(__GLEW_ARB_vertex_array_bgra) + +#endif /* GL_ARB_vertex_array_bgra */ + +/* ----------------------- GL_ARB_vertex_array_object ---------------------- */ + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 + +#define GL_VERTEX_ARRAY_BINDING 0x85B5 + +typedef void (GLAPIENTRY * PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (GLAPIENTRY * PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays); +typedef void (GLAPIENTRY * PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays); +typedef GLboolean (GLAPIENTRY * PFNGLISVERTEXARRAYPROC) (GLuint array); + +#define glBindVertexArray GLEW_GET_FUN(__glewBindVertexArray) +#define glDeleteVertexArrays GLEW_GET_FUN(__glewDeleteVertexArrays) +#define glGenVertexArrays GLEW_GET_FUN(__glewGenVertexArrays) +#define glIsVertexArray GLEW_GET_FUN(__glewIsVertexArray) + +#define GLEW_ARB_vertex_array_object GLEW_GET_VAR(__GLEW_ARB_vertex_array_object) + +#endif /* GL_ARB_vertex_array_object */ + +/* ----------------------- GL_ARB_vertex_attrib_64bit ---------------------- */ + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 + +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); + +#define glGetVertexAttribLdv GLEW_GET_FUN(__glewGetVertexAttribLdv) +#define glVertexAttribL1d GLEW_GET_FUN(__glewVertexAttribL1d) +#define glVertexAttribL1dv GLEW_GET_FUN(__glewVertexAttribL1dv) +#define glVertexAttribL2d GLEW_GET_FUN(__glewVertexAttribL2d) +#define glVertexAttribL2dv GLEW_GET_FUN(__glewVertexAttribL2dv) +#define glVertexAttribL3d GLEW_GET_FUN(__glewVertexAttribL3d) +#define glVertexAttribL3dv GLEW_GET_FUN(__glewVertexAttribL3dv) +#define glVertexAttribL4d GLEW_GET_FUN(__glewVertexAttribL4d) +#define glVertexAttribL4dv GLEW_GET_FUN(__glewVertexAttribL4dv) +#define glVertexAttribLPointer GLEW_GET_FUN(__glewVertexAttribLPointer) + +#define GLEW_ARB_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_ARB_vertex_attrib_64bit) + +#endif /* GL_ARB_vertex_attrib_64bit */ + /* -------------------------- GL_ARB_vertex_blend -------------------------- */ #ifndef GL_ARB_vertex_blend @@ -3216,8 +5516,8 @@ typedef void (GLAPIENTRY * PFNGLWEIGHTUSVARBPROC) (GLint size, GLushort *weights #define GL_DYNAMIC_READ_ARB 0x88E9 #define GL_DYNAMIC_COPY_ARB 0x88EA -typedef ptrdiff_t GLsizeiptrARB; typedef ptrdiff_t GLintptrARB; +typedef ptrdiff_t GLsizeiptrARB; typedef void (GLAPIENTRY * PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); typedef void (GLAPIENTRY * PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid* data, GLenum usage); @@ -3487,6 +5787,141 @@ typedef GLint (GLAPIENTRY * PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programO #endif /* GL_ARB_vertex_shader */ +/* ------------------- GL_ARB_vertex_type_2_10_10_10_rev ------------------- */ + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 + +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_INT_2_10_10_10_REV 0x8D9F + +typedef void (GLAPIENTRY * PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint* color); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); +typedef void (GLAPIENTRY * PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint* coords); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); +typedef void (GLAPIENTRY * PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint* value); + +#define glColorP3ui GLEW_GET_FUN(__glewColorP3ui) +#define glColorP3uiv GLEW_GET_FUN(__glewColorP3uiv) +#define glColorP4ui GLEW_GET_FUN(__glewColorP4ui) +#define glColorP4uiv GLEW_GET_FUN(__glewColorP4uiv) +#define glMultiTexCoordP1ui GLEW_GET_FUN(__glewMultiTexCoordP1ui) +#define glMultiTexCoordP1uiv GLEW_GET_FUN(__glewMultiTexCoordP1uiv) +#define glMultiTexCoordP2ui GLEW_GET_FUN(__glewMultiTexCoordP2ui) +#define glMultiTexCoordP2uiv GLEW_GET_FUN(__glewMultiTexCoordP2uiv) +#define glMultiTexCoordP3ui GLEW_GET_FUN(__glewMultiTexCoordP3ui) +#define glMultiTexCoordP3uiv GLEW_GET_FUN(__glewMultiTexCoordP3uiv) +#define glMultiTexCoordP4ui GLEW_GET_FUN(__glewMultiTexCoordP4ui) +#define glMultiTexCoordP4uiv GLEW_GET_FUN(__glewMultiTexCoordP4uiv) +#define glNormalP3ui GLEW_GET_FUN(__glewNormalP3ui) +#define glNormalP3uiv GLEW_GET_FUN(__glewNormalP3uiv) +#define glSecondaryColorP3ui GLEW_GET_FUN(__glewSecondaryColorP3ui) +#define glSecondaryColorP3uiv GLEW_GET_FUN(__glewSecondaryColorP3uiv) +#define glTexCoordP1ui GLEW_GET_FUN(__glewTexCoordP1ui) +#define glTexCoordP1uiv GLEW_GET_FUN(__glewTexCoordP1uiv) +#define glTexCoordP2ui GLEW_GET_FUN(__glewTexCoordP2ui) +#define glTexCoordP2uiv GLEW_GET_FUN(__glewTexCoordP2uiv) +#define glTexCoordP3ui GLEW_GET_FUN(__glewTexCoordP3ui) +#define glTexCoordP3uiv GLEW_GET_FUN(__glewTexCoordP3uiv) +#define glTexCoordP4ui GLEW_GET_FUN(__glewTexCoordP4ui) +#define glTexCoordP4uiv GLEW_GET_FUN(__glewTexCoordP4uiv) +#define glVertexAttribP1ui GLEW_GET_FUN(__glewVertexAttribP1ui) +#define glVertexAttribP1uiv GLEW_GET_FUN(__glewVertexAttribP1uiv) +#define glVertexAttribP2ui GLEW_GET_FUN(__glewVertexAttribP2ui) +#define glVertexAttribP2uiv GLEW_GET_FUN(__glewVertexAttribP2uiv) +#define glVertexAttribP3ui GLEW_GET_FUN(__glewVertexAttribP3ui) +#define glVertexAttribP3uiv GLEW_GET_FUN(__glewVertexAttribP3uiv) +#define glVertexAttribP4ui GLEW_GET_FUN(__glewVertexAttribP4ui) +#define glVertexAttribP4uiv GLEW_GET_FUN(__glewVertexAttribP4uiv) +#define glVertexP2ui GLEW_GET_FUN(__glewVertexP2ui) +#define glVertexP2uiv GLEW_GET_FUN(__glewVertexP2uiv) +#define glVertexP3ui GLEW_GET_FUN(__glewVertexP3ui) +#define glVertexP3uiv GLEW_GET_FUN(__glewVertexP3uiv) +#define glVertexP4ui GLEW_GET_FUN(__glewVertexP4ui) +#define glVertexP4uiv GLEW_GET_FUN(__glewVertexP4uiv) + +#define GLEW_ARB_vertex_type_2_10_10_10_rev GLEW_GET_VAR(__GLEW_ARB_vertex_type_2_10_10_10_rev) + +#endif /* GL_ARB_vertex_type_2_10_10_10_rev */ + +/* ------------------------- GL_ARB_viewport_array ------------------------- */ + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 + +#define GL_DEPTH_RANGE 0x0B70 +#define GL_VIEWPORT 0x0BA2 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F + +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd * v); +typedef void (GLAPIENTRY * PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble* data); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat* data); +typedef void (GLAPIENTRY * PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint * v); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat * v); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (GLAPIENTRY * PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat * v); + +#define glDepthRangeArrayv GLEW_GET_FUN(__glewDepthRangeArrayv) +#define glDepthRangeIndexed GLEW_GET_FUN(__glewDepthRangeIndexed) +#define glGetDoublei_v GLEW_GET_FUN(__glewGetDoublei_v) +#define glGetFloati_v GLEW_GET_FUN(__glewGetFloati_v) +#define glScissorArrayv GLEW_GET_FUN(__glewScissorArrayv) +#define glScissorIndexed GLEW_GET_FUN(__glewScissorIndexed) +#define glScissorIndexedv GLEW_GET_FUN(__glewScissorIndexedv) +#define glViewportArrayv GLEW_GET_FUN(__glewViewportArrayv) +#define glViewportIndexedf GLEW_GET_FUN(__glewViewportIndexedf) +#define glViewportIndexedfv GLEW_GET_FUN(__glewViewportIndexedfv) + +#define GLEW_ARB_viewport_array GLEW_GET_VAR(__GLEW_ARB_viewport_array) + +#endif /* GL_ARB_viewport_array */ + /* --------------------------- GL_ARB_window_pos --------------------------- */ #ifndef GL_ARB_window_pos @@ -3535,6 +5970,13 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS3SVARBPROC) (const GLshort* p); #ifndef GL_ATIX_point_sprites #define GL_ATIX_point_sprites 1 +#define GL_TEXTURE_POINT_MODE_ATIX 0x60B0 +#define GL_TEXTURE_POINT_ONE_COORD_ATIX 0x60B1 +#define GL_TEXTURE_POINT_SPRITE_ATIX 0x60B2 +#define GL_POINT_SPRITE_CULL_MODE_ATIX 0x60B3 +#define GL_POINT_SPRITE_CULL_CENTER_ATIX 0x60B4 +#define GL_POINT_SPRITE_CULL_CLIP_ATIX 0x60B5 + #define GLEW_ATIX_point_sprites GLEW_GET_VAR(__GLEW_ATIX_point_sprites) #endif /* GL_ATIX_point_sprites */ @@ -3765,6 +6207,19 @@ typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); #endif /* GL_ATI_map_object_buffer */ +/* ----------------------------- GL_ATI_meminfo ---------------------------- */ + +#ifndef GL_ATI_meminfo +#define GL_ATI_meminfo 1 + +#define GL_VBO_FREE_MEMORY_ATI 0x87FB +#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC +#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD + +#define GLEW_ATI_meminfo GLEW_GET_VAR(__GLEW_ATI_meminfo) + +#endif /* GL_ATI_meminfo */ + /* -------------------------- GL_ATI_pn_triangles -------------------------- */ #ifndef GL_ATI_pn_triangles @@ -3783,8 +6238,8 @@ typedef void (GLAPIENTRY * PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); typedef void (GLAPIENTRY * PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); typedef void (GLAPIENTRY * PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); -#define glPNTrianglesfATI GLEW_GET_FUN(__glPNTrianglewesfATI) -#define glPNTrianglesiATI GLEW_GET_FUN(__glPNTrianglewesiATI) +#define glPNTrianglesfATI GLEW_GET_FUN(__glewPNTrianglesfATI) +#define glPNTrianglesiATI GLEW_GET_FUN(__glewPNTrianglesiATI) #define GLEW_ATI_pn_triangles GLEW_GET_VAR(__GLEW_ATI_pn_triangles) @@ -3810,6 +6265,15 @@ typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum s #endif /* GL_ATI_separate_stencil */ +/* ----------------------- GL_ATI_shader_texture_lod ----------------------- */ + +#ifndef GL_ATI_shader_texture_lod +#define GL_ATI_shader_texture_lod 1 + +#define GLEW_ATI_shader_texture_lod GLEW_GET_VAR(__GLEW_ATI_shader_texture_lod) + +#endif /* GL_ATI_shader_texture_lod */ + /* ---------------------- GL_ATI_text_fragment_shader ---------------------- */ #ifndef GL_ATI_text_fragment_shader @@ -3826,7 +6290,7 @@ typedef void (GLAPIENTRY * PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum s #ifndef GL_ATI_texture_compression_3dc #define GL_ATI_texture_compression_3dc 1 -#define GL_COMPRESSED_RGB_3DC_ATI 0x8837 +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 #define GLEW_ATI_texture_compression_3dc GLEW_GET_VAR(__GLEW_ATI_texture_compression_3dc) @@ -4246,6 +6710,9 @@ typedef void (GLAPIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsize #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 void (GLAPIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); typedef void (GLAPIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void); @@ -4370,6 +6837,10 @@ typedef void (GLAPIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint #ifndef GL_EXT_cull_vertex #define GL_EXT_cull_vertex 1 +#define GL_CULL_VERTEX_EXT 0x81AA +#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB +#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC + typedef void (GLAPIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params); typedef void (GLAPIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); @@ -4396,16 +6867,457 @@ typedef void (GLAPIENTRY * PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zma #endif /* GL_EXT_depth_bounds_test */ +/* ----------------------- GL_EXT_direct_state_access ---------------------- */ + +#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 + +typedef void (GLAPIENTRY * PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); +typedef GLenum (GLAPIENTRY * PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); +typedef void (GLAPIENTRY * PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void* data); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (GLAPIENTRY * PFNGLDISABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLECLIENTSTATEIEXTPROC) (GLenum array, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYATTRIBEXTPROC) (GLuint vaobj, GLuint index); +typedef void (GLAPIENTRY * PFNGLENABLEVERTEXARRAYEXTPROC) (GLuint vaobj, GLenum array); +typedef void (GLAPIENTRY * PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum* bufs); +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); +typedef void (GLAPIENTRY * PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); +typedef void (GLAPIENTRY * PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, void* img); +typedef void (GLAPIENTRY * PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, void* img); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETDOUBLEI_VEXTPROC) (GLenum pname, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFLOATI_VEXTPROC) (GLenum pname, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, void** params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, void* data); +typedef void (GLAPIENTRY * PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, void* string); +typedef void (GLAPIENTRY * PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid** params); +typedef void (GLAPIENTRY * PFNGLGETPOINTERI_VEXTPROC) (GLenum pname, GLuint index, GLvoid** params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void* pixels); +typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYINTEGERVEXTPROC) (GLuint vaobj, GLenum pname, GLint* param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC) (GLuint vaobj, GLuint index, GLenum pname, GLvoid** param); +typedef void (GLAPIENTRY * PFNGLGETVERTEXARRAYPOINTERVEXTPROC) (GLuint vaobj, GLenum pname, GLvoid** param); +typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); +typedef GLvoid * (GLAPIENTRY * PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (GLAPIENTRY * PFNGLMATRIXFRUSTUMEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXLOADFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTDEXTPROC) (GLenum matrixMode, const GLdouble* m); +typedef void (GLAPIENTRY * PFNGLMATRIXMULTFEXTPROC) (GLenum matrixMode, const GLfloat* m); +typedef void (GLAPIENTRY * PFNGLMATRIXORTHOEXTPROC) (GLenum matrixMode, GLdouble l, GLdouble r, GLdouble b, GLdouble t, GLdouble n, GLdouble f); +typedef void (GLAPIENTRY * PFNGLMATRIXPOPEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXPUSHEXTPROC) (GLenum matrixMode); +typedef void (GLAPIENTRY * PFNGLMATRIXROTATEDEXTPROC) (GLenum matrixMode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXROTATEFEXTPROC) (GLenum matrixMode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMATRIXSCALEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXSCALEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum matrixMode, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum matrixMode, GLfloat x, GLfloat y, GLfloat z); +typedef void (GLAPIENTRY * PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const void* pointer); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat* param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint* param); +typedef void (GLAPIENTRY * PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const void* data, GLenum usage); +typedef void (GLAPIENTRY * PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const void* data); +typedef void (GLAPIENTRY * PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); +typedef void (GLAPIENTRY * PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const void* string); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +typedef void (GLAPIENTRY * PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* params); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint* params); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat* param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); +typedef void (GLAPIENTRY * PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint* param); +typedef void (GLAPIENTRY * PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void* pixels); +typedef void (GLAPIENTRY * PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void* pixels); +typedef GLboolean (GLAPIENTRY * PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYINDEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYNORMALOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset); + +#define glBindMultiTextureEXT GLEW_GET_FUN(__glewBindMultiTextureEXT) +#define glCheckNamedFramebufferStatusEXT GLEW_GET_FUN(__glewCheckNamedFramebufferStatusEXT) +#define glClientAttribDefaultEXT GLEW_GET_FUN(__glewClientAttribDefaultEXT) +#define glCompressedMultiTexImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage1DEXT) +#define glCompressedMultiTexImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage2DEXT) +#define glCompressedMultiTexImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexImage3DEXT) +#define glCompressedMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage1DEXT) +#define glCompressedMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage2DEXT) +#define glCompressedMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCompressedMultiTexSubImage3DEXT) +#define glCompressedTextureImage1DEXT GLEW_GET_FUN(__glewCompressedTextureImage1DEXT) +#define glCompressedTextureImage2DEXT GLEW_GET_FUN(__glewCompressedTextureImage2DEXT) +#define glCompressedTextureImage3DEXT GLEW_GET_FUN(__glewCompressedTextureImage3DEXT) +#define glCompressedTextureSubImage1DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage1DEXT) +#define glCompressedTextureSubImage2DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage2DEXT) +#define glCompressedTextureSubImage3DEXT GLEW_GET_FUN(__glewCompressedTextureSubImage3DEXT) +#define glCopyMultiTexImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexImage1DEXT) +#define glCopyMultiTexImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexImage2DEXT) +#define glCopyMultiTexSubImage1DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage1DEXT) +#define glCopyMultiTexSubImage2DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage2DEXT) +#define glCopyMultiTexSubImage3DEXT GLEW_GET_FUN(__glewCopyMultiTexSubImage3DEXT) +#define glCopyTextureImage1DEXT GLEW_GET_FUN(__glewCopyTextureImage1DEXT) +#define glCopyTextureImage2DEXT GLEW_GET_FUN(__glewCopyTextureImage2DEXT) +#define glCopyTextureSubImage1DEXT GLEW_GET_FUN(__glewCopyTextureSubImage1DEXT) +#define glCopyTextureSubImage2DEXT GLEW_GET_FUN(__glewCopyTextureSubImage2DEXT) +#define glCopyTextureSubImage3DEXT GLEW_GET_FUN(__glewCopyTextureSubImage3DEXT) +#define glDisableClientStateIndexedEXT GLEW_GET_FUN(__glewDisableClientStateIndexedEXT) +#define glDisableClientStateiEXT GLEW_GET_FUN(__glewDisableClientStateiEXT) +#define glDisableVertexArrayAttribEXT GLEW_GET_FUN(__glewDisableVertexArrayAttribEXT) +#define glDisableVertexArrayEXT GLEW_GET_FUN(__glewDisableVertexArrayEXT) +#define glEnableClientStateIndexedEXT GLEW_GET_FUN(__glewEnableClientStateIndexedEXT) +#define glEnableClientStateiEXT GLEW_GET_FUN(__glewEnableClientStateiEXT) +#define glEnableVertexArrayAttribEXT GLEW_GET_FUN(__glewEnableVertexArrayAttribEXT) +#define glEnableVertexArrayEXT GLEW_GET_FUN(__glewEnableVertexArrayEXT) +#define glFlushMappedNamedBufferRangeEXT GLEW_GET_FUN(__glewFlushMappedNamedBufferRangeEXT) +#define glFramebufferDrawBufferEXT GLEW_GET_FUN(__glewFramebufferDrawBufferEXT) +#define glFramebufferDrawBuffersEXT GLEW_GET_FUN(__glewFramebufferDrawBuffersEXT) +#define glFramebufferReadBufferEXT GLEW_GET_FUN(__glewFramebufferReadBufferEXT) +#define glGenerateMultiTexMipmapEXT GLEW_GET_FUN(__glewGenerateMultiTexMipmapEXT) +#define glGenerateTextureMipmapEXT GLEW_GET_FUN(__glewGenerateTextureMipmapEXT) +#define glGetCompressedMultiTexImageEXT GLEW_GET_FUN(__glewGetCompressedMultiTexImageEXT) +#define glGetCompressedTextureImageEXT GLEW_GET_FUN(__glewGetCompressedTextureImageEXT) +#define glGetDoubleIndexedvEXT GLEW_GET_FUN(__glewGetDoubleIndexedvEXT) +#define glGetDoublei_vEXT GLEW_GET_FUN(__glewGetDoublei_vEXT) +#define glGetFloatIndexedvEXT GLEW_GET_FUN(__glewGetFloatIndexedvEXT) +#define glGetFloati_vEXT GLEW_GET_FUN(__glewGetFloati_vEXT) +#define glGetFramebufferParameterivEXT GLEW_GET_FUN(__glewGetFramebufferParameterivEXT) +#define glGetMultiTexEnvfvEXT GLEW_GET_FUN(__glewGetMultiTexEnvfvEXT) +#define glGetMultiTexEnvivEXT GLEW_GET_FUN(__glewGetMultiTexEnvivEXT) +#define glGetMultiTexGendvEXT GLEW_GET_FUN(__glewGetMultiTexGendvEXT) +#define glGetMultiTexGenfvEXT GLEW_GET_FUN(__glewGetMultiTexGenfvEXT) +#define glGetMultiTexGenivEXT GLEW_GET_FUN(__glewGetMultiTexGenivEXT) +#define glGetMultiTexImageEXT GLEW_GET_FUN(__glewGetMultiTexImageEXT) +#define glGetMultiTexLevelParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterfvEXT) +#define glGetMultiTexLevelParameterivEXT GLEW_GET_FUN(__glewGetMultiTexLevelParameterivEXT) +#define glGetMultiTexParameterIivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIivEXT) +#define glGetMultiTexParameterIuivEXT GLEW_GET_FUN(__glewGetMultiTexParameterIuivEXT) +#define glGetMultiTexParameterfvEXT GLEW_GET_FUN(__glewGetMultiTexParameterfvEXT) +#define glGetMultiTexParameterivEXT GLEW_GET_FUN(__glewGetMultiTexParameterivEXT) +#define glGetNamedBufferParameterivEXT GLEW_GET_FUN(__glewGetNamedBufferParameterivEXT) +#define glGetNamedBufferPointervEXT GLEW_GET_FUN(__glewGetNamedBufferPointervEXT) +#define glGetNamedBufferSubDataEXT GLEW_GET_FUN(__glewGetNamedBufferSubDataEXT) +#define glGetNamedFramebufferAttachmentParameterivEXT GLEW_GET_FUN(__glewGetNamedFramebufferAttachmentParameterivEXT) +#define glGetNamedProgramLocalParameterIivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIivEXT) +#define glGetNamedProgramLocalParameterIuivEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterIuivEXT) +#define glGetNamedProgramLocalParameterdvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterdvEXT) +#define glGetNamedProgramLocalParameterfvEXT GLEW_GET_FUN(__glewGetNamedProgramLocalParameterfvEXT) +#define glGetNamedProgramStringEXT GLEW_GET_FUN(__glewGetNamedProgramStringEXT) +#define glGetNamedProgramivEXT GLEW_GET_FUN(__glewGetNamedProgramivEXT) +#define glGetNamedRenderbufferParameterivEXT GLEW_GET_FUN(__glewGetNamedRenderbufferParameterivEXT) +#define glGetPointerIndexedvEXT GLEW_GET_FUN(__glewGetPointerIndexedvEXT) +#define glGetPointeri_vEXT GLEW_GET_FUN(__glewGetPointeri_vEXT) +#define glGetTextureImageEXT GLEW_GET_FUN(__glewGetTextureImageEXT) +#define glGetTextureLevelParameterfvEXT GLEW_GET_FUN(__glewGetTextureLevelParameterfvEXT) +#define glGetTextureLevelParameterivEXT GLEW_GET_FUN(__glewGetTextureLevelParameterivEXT) +#define glGetTextureParameterIivEXT GLEW_GET_FUN(__glewGetTextureParameterIivEXT) +#define glGetTextureParameterIuivEXT GLEW_GET_FUN(__glewGetTextureParameterIuivEXT) +#define glGetTextureParameterfvEXT GLEW_GET_FUN(__glewGetTextureParameterfvEXT) +#define glGetTextureParameterivEXT GLEW_GET_FUN(__glewGetTextureParameterivEXT) +#define glGetVertexArrayIntegeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayIntegeri_vEXT) +#define glGetVertexArrayIntegervEXT GLEW_GET_FUN(__glewGetVertexArrayIntegervEXT) +#define glGetVertexArrayPointeri_vEXT GLEW_GET_FUN(__glewGetVertexArrayPointeri_vEXT) +#define glGetVertexArrayPointervEXT GLEW_GET_FUN(__glewGetVertexArrayPointervEXT) +#define glMapNamedBufferEXT GLEW_GET_FUN(__glewMapNamedBufferEXT) +#define glMapNamedBufferRangeEXT GLEW_GET_FUN(__glewMapNamedBufferRangeEXT) +#define glMatrixFrustumEXT GLEW_GET_FUN(__glewMatrixFrustumEXT) +#define glMatrixLoadIdentityEXT GLEW_GET_FUN(__glewMatrixLoadIdentityEXT) +#define glMatrixLoadTransposedEXT GLEW_GET_FUN(__glewMatrixLoadTransposedEXT) +#define glMatrixLoadTransposefEXT GLEW_GET_FUN(__glewMatrixLoadTransposefEXT) +#define glMatrixLoaddEXT GLEW_GET_FUN(__glewMatrixLoaddEXT) +#define glMatrixLoadfEXT GLEW_GET_FUN(__glewMatrixLoadfEXT) +#define glMatrixMultTransposedEXT GLEW_GET_FUN(__glewMatrixMultTransposedEXT) +#define glMatrixMultTransposefEXT GLEW_GET_FUN(__glewMatrixMultTransposefEXT) +#define glMatrixMultdEXT GLEW_GET_FUN(__glewMatrixMultdEXT) +#define glMatrixMultfEXT GLEW_GET_FUN(__glewMatrixMultfEXT) +#define glMatrixOrthoEXT GLEW_GET_FUN(__glewMatrixOrthoEXT) +#define glMatrixPopEXT GLEW_GET_FUN(__glewMatrixPopEXT) +#define glMatrixPushEXT GLEW_GET_FUN(__glewMatrixPushEXT) +#define glMatrixRotatedEXT GLEW_GET_FUN(__glewMatrixRotatedEXT) +#define glMatrixRotatefEXT GLEW_GET_FUN(__glewMatrixRotatefEXT) +#define glMatrixScaledEXT GLEW_GET_FUN(__glewMatrixScaledEXT) +#define glMatrixScalefEXT GLEW_GET_FUN(__glewMatrixScalefEXT) +#define glMatrixTranslatedEXT GLEW_GET_FUN(__glewMatrixTranslatedEXT) +#define glMatrixTranslatefEXT GLEW_GET_FUN(__glewMatrixTranslatefEXT) +#define glMultiTexBufferEXT GLEW_GET_FUN(__glewMultiTexBufferEXT) +#define glMultiTexCoordPointerEXT GLEW_GET_FUN(__glewMultiTexCoordPointerEXT) +#define glMultiTexEnvfEXT GLEW_GET_FUN(__glewMultiTexEnvfEXT) +#define glMultiTexEnvfvEXT GLEW_GET_FUN(__glewMultiTexEnvfvEXT) +#define glMultiTexEnviEXT GLEW_GET_FUN(__glewMultiTexEnviEXT) +#define glMultiTexEnvivEXT GLEW_GET_FUN(__glewMultiTexEnvivEXT) +#define glMultiTexGendEXT GLEW_GET_FUN(__glewMultiTexGendEXT) +#define glMultiTexGendvEXT GLEW_GET_FUN(__glewMultiTexGendvEXT) +#define glMultiTexGenfEXT GLEW_GET_FUN(__glewMultiTexGenfEXT) +#define glMultiTexGenfvEXT GLEW_GET_FUN(__glewMultiTexGenfvEXT) +#define glMultiTexGeniEXT GLEW_GET_FUN(__glewMultiTexGeniEXT) +#define glMultiTexGenivEXT GLEW_GET_FUN(__glewMultiTexGenivEXT) +#define glMultiTexImage1DEXT GLEW_GET_FUN(__glewMultiTexImage1DEXT) +#define glMultiTexImage2DEXT GLEW_GET_FUN(__glewMultiTexImage2DEXT) +#define glMultiTexImage3DEXT GLEW_GET_FUN(__glewMultiTexImage3DEXT) +#define glMultiTexParameterIivEXT GLEW_GET_FUN(__glewMultiTexParameterIivEXT) +#define glMultiTexParameterIuivEXT GLEW_GET_FUN(__glewMultiTexParameterIuivEXT) +#define glMultiTexParameterfEXT GLEW_GET_FUN(__glewMultiTexParameterfEXT) +#define glMultiTexParameterfvEXT GLEW_GET_FUN(__glewMultiTexParameterfvEXT) +#define glMultiTexParameteriEXT GLEW_GET_FUN(__glewMultiTexParameteriEXT) +#define glMultiTexParameterivEXT GLEW_GET_FUN(__glewMultiTexParameterivEXT) +#define glMultiTexRenderbufferEXT GLEW_GET_FUN(__glewMultiTexRenderbufferEXT) +#define glMultiTexSubImage1DEXT GLEW_GET_FUN(__glewMultiTexSubImage1DEXT) +#define glMultiTexSubImage2DEXT GLEW_GET_FUN(__glewMultiTexSubImage2DEXT) +#define glMultiTexSubImage3DEXT GLEW_GET_FUN(__glewMultiTexSubImage3DEXT) +#define glNamedBufferDataEXT GLEW_GET_FUN(__glewNamedBufferDataEXT) +#define glNamedBufferSubDataEXT GLEW_GET_FUN(__glewNamedBufferSubDataEXT) +#define glNamedCopyBufferSubDataEXT GLEW_GET_FUN(__glewNamedCopyBufferSubDataEXT) +#define glNamedFramebufferRenderbufferEXT GLEW_GET_FUN(__glewNamedFramebufferRenderbufferEXT) +#define glNamedFramebufferTexture1DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture1DEXT) +#define glNamedFramebufferTexture2DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture2DEXT) +#define glNamedFramebufferTexture3DEXT GLEW_GET_FUN(__glewNamedFramebufferTexture3DEXT) +#define glNamedFramebufferTextureEXT GLEW_GET_FUN(__glewNamedFramebufferTextureEXT) +#define glNamedFramebufferTextureFaceEXT GLEW_GET_FUN(__glewNamedFramebufferTextureFaceEXT) +#define glNamedFramebufferTextureLayerEXT GLEW_GET_FUN(__glewNamedFramebufferTextureLayerEXT) +#define glNamedProgramLocalParameter4dEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dEXT) +#define glNamedProgramLocalParameter4dvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4dvEXT) +#define glNamedProgramLocalParameter4fEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fEXT) +#define glNamedProgramLocalParameter4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameter4fvEXT) +#define glNamedProgramLocalParameterI4iEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4iEXT) +#define glNamedProgramLocalParameterI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4ivEXT) +#define glNamedProgramLocalParameterI4uiEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uiEXT) +#define glNamedProgramLocalParameterI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParameterI4uivEXT) +#define glNamedProgramLocalParameters4fvEXT GLEW_GET_FUN(__glewNamedProgramLocalParameters4fvEXT) +#define glNamedProgramLocalParametersI4ivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4ivEXT) +#define glNamedProgramLocalParametersI4uivEXT GLEW_GET_FUN(__glewNamedProgramLocalParametersI4uivEXT) +#define glNamedProgramStringEXT GLEW_GET_FUN(__glewNamedProgramStringEXT) +#define glNamedRenderbufferStorageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageEXT) +#define glNamedRenderbufferStorageMultisampleCoverageEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleCoverageEXT) +#define glNamedRenderbufferStorageMultisampleEXT GLEW_GET_FUN(__glewNamedRenderbufferStorageMultisampleEXT) +#define glProgramUniform1fEXT GLEW_GET_FUN(__glewProgramUniform1fEXT) +#define glProgramUniform1fvEXT GLEW_GET_FUN(__glewProgramUniform1fvEXT) +#define glProgramUniform1iEXT GLEW_GET_FUN(__glewProgramUniform1iEXT) +#define glProgramUniform1ivEXT GLEW_GET_FUN(__glewProgramUniform1ivEXT) +#define glProgramUniform1uiEXT GLEW_GET_FUN(__glewProgramUniform1uiEXT) +#define glProgramUniform1uivEXT GLEW_GET_FUN(__glewProgramUniform1uivEXT) +#define glProgramUniform2fEXT GLEW_GET_FUN(__glewProgramUniform2fEXT) +#define glProgramUniform2fvEXT GLEW_GET_FUN(__glewProgramUniform2fvEXT) +#define glProgramUniform2iEXT GLEW_GET_FUN(__glewProgramUniform2iEXT) +#define glProgramUniform2ivEXT GLEW_GET_FUN(__glewProgramUniform2ivEXT) +#define glProgramUniform2uiEXT GLEW_GET_FUN(__glewProgramUniform2uiEXT) +#define glProgramUniform2uivEXT GLEW_GET_FUN(__glewProgramUniform2uivEXT) +#define glProgramUniform3fEXT GLEW_GET_FUN(__glewProgramUniform3fEXT) +#define glProgramUniform3fvEXT GLEW_GET_FUN(__glewProgramUniform3fvEXT) +#define glProgramUniform3iEXT GLEW_GET_FUN(__glewProgramUniform3iEXT) +#define glProgramUniform3ivEXT GLEW_GET_FUN(__glewProgramUniform3ivEXT) +#define glProgramUniform3uiEXT GLEW_GET_FUN(__glewProgramUniform3uiEXT) +#define glProgramUniform3uivEXT GLEW_GET_FUN(__glewProgramUniform3uivEXT) +#define glProgramUniform4fEXT GLEW_GET_FUN(__glewProgramUniform4fEXT) +#define glProgramUniform4fvEXT GLEW_GET_FUN(__glewProgramUniform4fvEXT) +#define glProgramUniform4iEXT GLEW_GET_FUN(__glewProgramUniform4iEXT) +#define glProgramUniform4ivEXT GLEW_GET_FUN(__glewProgramUniform4ivEXT) +#define glProgramUniform4uiEXT GLEW_GET_FUN(__glewProgramUniform4uiEXT) +#define glProgramUniform4uivEXT GLEW_GET_FUN(__glewProgramUniform4uivEXT) +#define glProgramUniformMatrix2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2fvEXT) +#define glProgramUniformMatrix2x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x3fvEXT) +#define glProgramUniformMatrix2x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix2x4fvEXT) +#define glProgramUniformMatrix3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3fvEXT) +#define glProgramUniformMatrix3x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x2fvEXT) +#define glProgramUniformMatrix3x4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix3x4fvEXT) +#define glProgramUniformMatrix4fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4fvEXT) +#define glProgramUniformMatrix4x2fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x2fvEXT) +#define glProgramUniformMatrix4x3fvEXT GLEW_GET_FUN(__glewProgramUniformMatrix4x3fvEXT) +#define glPushClientAttribDefaultEXT GLEW_GET_FUN(__glewPushClientAttribDefaultEXT) +#define glTextureBufferEXT GLEW_GET_FUN(__glewTextureBufferEXT) +#define glTextureImage1DEXT GLEW_GET_FUN(__glewTextureImage1DEXT) +#define glTextureImage2DEXT GLEW_GET_FUN(__glewTextureImage2DEXT) +#define glTextureImage3DEXT GLEW_GET_FUN(__glewTextureImage3DEXT) +#define glTextureParameterIivEXT GLEW_GET_FUN(__glewTextureParameterIivEXT) +#define glTextureParameterIuivEXT GLEW_GET_FUN(__glewTextureParameterIuivEXT) +#define glTextureParameterfEXT GLEW_GET_FUN(__glewTextureParameterfEXT) +#define glTextureParameterfvEXT GLEW_GET_FUN(__glewTextureParameterfvEXT) +#define glTextureParameteriEXT GLEW_GET_FUN(__glewTextureParameteriEXT) +#define glTextureParameterivEXT GLEW_GET_FUN(__glewTextureParameterivEXT) +#define glTextureRenderbufferEXT GLEW_GET_FUN(__glewTextureRenderbufferEXT) +#define glTextureSubImage1DEXT GLEW_GET_FUN(__glewTextureSubImage1DEXT) +#define glTextureSubImage2DEXT GLEW_GET_FUN(__glewTextureSubImage2DEXT) +#define glTextureSubImage3DEXT GLEW_GET_FUN(__glewTextureSubImage3DEXT) +#define glUnmapNamedBufferEXT GLEW_GET_FUN(__glewUnmapNamedBufferEXT) +#define glVertexArrayColorOffsetEXT GLEW_GET_FUN(__glewVertexArrayColorOffsetEXT) +#define glVertexArrayEdgeFlagOffsetEXT GLEW_GET_FUN(__glewVertexArrayEdgeFlagOffsetEXT) +#define glVertexArrayFogCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayFogCoordOffsetEXT) +#define glVertexArrayIndexOffsetEXT GLEW_GET_FUN(__glewVertexArrayIndexOffsetEXT) +#define glVertexArrayMultiTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayMultiTexCoordOffsetEXT) +#define glVertexArrayNormalOffsetEXT GLEW_GET_FUN(__glewVertexArrayNormalOffsetEXT) +#define glVertexArraySecondaryColorOffsetEXT GLEW_GET_FUN(__glewVertexArraySecondaryColorOffsetEXT) +#define glVertexArrayTexCoordOffsetEXT GLEW_GET_FUN(__glewVertexArrayTexCoordOffsetEXT) +#define glVertexArrayVertexAttribIOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribIOffsetEXT) +#define glVertexArrayVertexAttribOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribOffsetEXT) +#define glVertexArrayVertexOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexOffsetEXT) + +#define GLEW_EXT_direct_state_access GLEW_GET_VAR(__GLEW_EXT_direct_state_access) + +#endif /* GL_EXT_direct_state_access */ + /* -------------------------- GL_EXT_draw_buffers2 ------------------------- */ #ifndef GL_EXT_draw_buffers2 #define GL_EXT_draw_buffers2 1 -typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (GLAPIENTRY * PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a); typedef void (GLAPIENTRY * PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); typedef void (GLAPIENTRY * PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); +typedef void (GLAPIENTRY * PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum value, GLuint index, GLboolean* data); +typedef void (GLAPIENTRY * PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum value, GLuint index, GLint* data); typedef GLboolean (GLAPIENTRY * PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); #define glColorMaskIndexedEXT GLEW_GET_FUN(__glewColorMaskIndexedEXT) @@ -4439,8 +7351,8 @@ typedef void (GLAPIENTRY * PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsi #ifndef GL_EXT_draw_range_elements #define GL_EXT_draw_range_elements 1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 typedef void (GLAPIENTRY * PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); @@ -4714,12 +7626,10 @@ typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLen typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); #define glFramebufferTextureEXT GLEW_GET_FUN(__glewFramebufferTextureEXT) #define glFramebufferTextureFaceEXT GLEW_GET_FUN(__glewFramebufferTextureFaceEXT) -#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) #define glProgramParameteriEXT GLEW_GET_FUN(__glewProgramParameteriEXT) #define GLEW_EXT_geometry_shader4 GLEW_GET_VAR(__GLEW_EXT_geometry_shader4) @@ -4978,7 +7888,7 @@ typedef void (GLAPIENTRY * PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mod #ifndef GL_EXT_multi_draw_arrays #define GL_EXT_multi_draw_arrays 1 -typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, GLint* first, GLsizei *count, GLsizei primcount); +typedef void (GLAPIENTRY * PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint* first, const GLsizei *count, GLsizei primcount); typedef void (GLAPIENTRY * PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, GLsizei* count, GLenum type, const GLvoid **indices, GLsizei primcount); #define glMultiDrawArraysEXT GLEW_GET_FUN(__glewMultiDrawArraysEXT) @@ -5173,7 +8083,7 @@ typedef void (GLAPIENTRY * PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target #define GL_DISTANCE_ATTENUATION_EXT 0x8129 typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat* params); #define glPointParameterfEXT GLEW_GET_FUN(__glewPointParameterfEXT) #define glPointParameterfvEXT GLEW_GET_FUN(__glewPointParameterfvEXT) @@ -5199,11 +8109,31 @@ typedef void (GLAPIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat b #endif /* GL_EXT_polygon_offset */ +/* ------------------------ GL_EXT_provoking_vertex ------------------------ */ + +#ifndef GL_EXT_provoking_vertex +#define GL_EXT_provoking_vertex 1 + +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F + +typedef void (GLAPIENTRY * PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); + +#define glProvokingVertexEXT GLEW_GET_FUN(__glewProvokingVertexEXT) + +#define GLEW_EXT_provoking_vertex GLEW_GET_VAR(__GLEW_EXT_provoking_vertex) + +#endif /* GL_EXT_provoking_vertex */ + /* ------------------------- GL_EXT_rescale_normal ------------------------- */ #ifndef GL_EXT_rescale_normal #define GL_EXT_rescale_normal 1 +#define GL_RESCALE_NORMAL_EXT 0x803A + #define GLEW_EXT_rescale_normal GLEW_GET_VAR(__GLEW_EXT_rescale_normal) #endif /* GL_EXT_rescale_normal */ @@ -5252,7 +8182,7 @@ typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint gr typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); typedef void (GLAPIENTRY * PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLvoid *pointer); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); #define glSecondaryColor3bEXT GLEW_GET_FUN(__glewSecondaryColor3bEXT) #define glSecondaryColor3bvEXT GLEW_GET_FUN(__glewSecondaryColor3bvEXT) @@ -5276,6 +8206,25 @@ typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenu #endif /* GL_EXT_secondary_color */ +/* --------------------- GL_EXT_separate_shader_objects -------------------- */ + +#ifndef GL_EXT_separate_shader_objects +#define GL_EXT_separate_shader_objects 1 + +#define GL_ACTIVE_PROGRAM_EXT 0x8B8D + +typedef void (GLAPIENTRY * PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); +typedef GLuint (GLAPIENTRY * PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const char* string); +typedef void (GLAPIENTRY * PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); + +#define glActiveProgramEXT GLEW_GET_FUN(__glewActiveProgramEXT) +#define glCreateShaderProgramEXT GLEW_GET_FUN(__glewCreateShaderProgramEXT) +#define glUseShaderProgramEXT GLEW_GET_FUN(__glewUseShaderProgramEXT) + +#define GLEW_EXT_separate_shader_objects GLEW_GET_VAR(__GLEW_EXT_separate_shader_objects) + +#endif /* GL_EXT_separate_shader_objects */ + /* --------------------- GL_EXT_separate_specular_color -------------------- */ #ifndef GL_EXT_separate_specular_color @@ -5289,6 +8238,77 @@ typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenu #endif /* GL_EXT_separate_specular_color */ +/* --------------------- GL_EXT_shader_image_load_store -------------------- */ + +#ifndef GL_EXT_shader_image_load_store +#define GL_EXT_shader_image_load_store 1 + +#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 +#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 +#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 +#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 +#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 +#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 +#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 +#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 +#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 +#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 +#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 +#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 +#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 +#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 +#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A +#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B +#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C +#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D +#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E +#define GL_IMAGE_1D_EXT 0x904C +#define GL_IMAGE_2D_EXT 0x904D +#define GL_IMAGE_3D_EXT 0x904E +#define GL_IMAGE_2D_RECT_EXT 0x904F +#define GL_IMAGE_CUBE_EXT 0x9050 +#define GL_IMAGE_BUFFER_EXT 0x9051 +#define GL_IMAGE_1D_ARRAY_EXT 0x9052 +#define GL_IMAGE_2D_ARRAY_EXT 0x9053 +#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 +#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 +#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 +#define GL_INT_IMAGE_1D_EXT 0x9057 +#define GL_INT_IMAGE_2D_EXT 0x9058 +#define GL_INT_IMAGE_3D_EXT 0x9059 +#define GL_INT_IMAGE_2D_RECT_EXT 0x905A +#define GL_INT_IMAGE_CUBE_EXT 0x905B +#define GL_INT_IMAGE_BUFFER_EXT 0x905C +#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D +#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E +#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F +#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 +#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 +#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 +#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 +#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 +#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 +#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 +#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 +#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 +#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 +#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B +#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C +#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D +#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E +#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF + +typedef void (GLAPIENTRY * PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); +typedef void (GLAPIENTRY * PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); + +#define glBindImageTextureEXT GLEW_GET_FUN(__glewBindImageTextureEXT) +#define glMemoryBarrierEXT GLEW_GET_FUN(__glewMemoryBarrierEXT) + +#define GLEW_EXT_shader_image_load_store GLEW_GET_VAR(__GLEW_EXT_shader_image_load_store) + +#endif /* GL_EXT_shader_image_load_store */ + /* -------------------------- GL_EXT_shadow_funcs -------------------------- */ #ifndef GL_EXT_shadow_funcs @@ -5455,6 +8475,10 @@ typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, #define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C #define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +typedef void (GLAPIENTRY * PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); + +#define glFramebufferTextureLayerEXT GLEW_GET_FUN(__glewFramebufferTextureLayerEXT) + #define GLEW_EXT_texture_array GLEW_GET_VAR(__GLEW_EXT_texture_array) #endif /* GL_EXT_texture_array */ @@ -5832,6 +8856,19 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_sRGB */ +/* ----------------------- GL_EXT_texture_sRGB_decode ---------------------- */ + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 + +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A + +#define GLEW_EXT_texture_sRGB_decode GLEW_GET_VAR(__GLEW_EXT_texture_sRGB_decode) + +#endif /* GL_EXT_texture_sRGB_decode */ + /* --------------------- GL_EXT_texture_shared_exponent -------------------- */ #ifndef GL_EXT_texture_shared_exponent @@ -5845,6 +8882,56 @@ typedef void (GLAPIENTRY * PFNGLTEXTURENORMALEXTPROC) (GLenum mode); #endif /* GL_EXT_texture_shared_exponent */ +/* -------------------------- GL_EXT_texture_snorm ------------------------- */ + +#ifndef GL_EXT_texture_snorm +#define GL_EXT_texture_snorm 1 + +#define GL_RED_SNORM 0x8F90 +#define GL_RG_SNORM 0x8F91 +#define GL_RGB_SNORM 0x8F92 +#define GL_RGBA_SNORM 0x8F93 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#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 +#define GL_ALPHA_SNORM 0x9010 +#define GL_LUMINANCE_SNORM 0x9011 +#define GL_LUMINANCE_ALPHA_SNORM 0x9012 +#define GL_INTENSITY_SNORM 0x9013 +#define GL_ALPHA8_SNORM 0x9014 +#define GL_LUMINANCE8_SNORM 0x9015 +#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 +#define GL_INTENSITY8_SNORM 0x9017 +#define GL_ALPHA16_SNORM 0x9018 +#define GL_LUMINANCE16_SNORM 0x9019 +#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A +#define GL_INTENSITY16_SNORM 0x901B + +#define GLEW_EXT_texture_snorm GLEW_GET_VAR(__GLEW_EXT_texture_snorm) + +#endif /* GL_EXT_texture_snorm */ + +/* ------------------------- GL_EXT_texture_swizzle ------------------------ */ + +#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 + +#define GLEW_EXT_texture_swizzle GLEW_GET_VAR(__GLEW_EXT_texture_swizzle) + +#endif /* GL_EXT_texture_swizzle */ + /* --------------------------- GL_EXT_timer_query -------------------------- */ #ifndef GL_EXT_timer_query @@ -5862,6 +8949,47 @@ typedef void (GLAPIENTRY * PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum p #endif /* GL_EXT_timer_query */ +/* ----------------------- GL_EXT_transform_feedback ----------------------- */ + +#ifndef GL_EXT_transform_feedback +#define GL_EXT_transform_feedback 1 + +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F + +typedef void (GLAPIENTRY * PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (GLAPIENTRY * PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (GLAPIENTRY * PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); +typedef void (GLAPIENTRY * PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei *size, GLenum *type, char *name); +typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const char ** varyings, GLenum bufferMode); + +#define glBeginTransformFeedbackEXT GLEW_GET_FUN(__glewBeginTransformFeedbackEXT) +#define glBindBufferBaseEXT GLEW_GET_FUN(__glewBindBufferBaseEXT) +#define glBindBufferOffsetEXT GLEW_GET_FUN(__glewBindBufferOffsetEXT) +#define glBindBufferRangeEXT GLEW_GET_FUN(__glewBindBufferRangeEXT) +#define glEndTransformFeedbackEXT GLEW_GET_FUN(__glewEndTransformFeedbackEXT) +#define glGetTransformFeedbackVaryingEXT GLEW_GET_FUN(__glewGetTransformFeedbackVaryingEXT) +#define glTransformFeedbackVaryingsEXT GLEW_GET_FUN(__glewTransformFeedbackVaryingsEXT) + +#define GLEW_EXT_transform_feedback GLEW_GET_VAR(__GLEW_EXT_transform_feedback) + +#endif /* GL_EXT_transform_feedback */ + /* -------------------------- GL_EXT_vertex_array -------------------------- */ #ifndef GL_EXT_vertex_array @@ -5905,7 +9033,6 @@ typedef void (GLAPIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i); typedef void (GLAPIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); typedef void (GLAPIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); typedef void (GLAPIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean* pointer); -typedef void (GLAPIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, void** params); typedef void (GLAPIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); typedef void (GLAPIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const void* pointer); typedef void (GLAPIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const void* pointer); @@ -5915,7 +9042,6 @@ typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, #define glColorPointerEXT GLEW_GET_FUN(__glewColorPointerEXT) #define glDrawArraysEXT GLEW_GET_FUN(__glewDrawArraysEXT) #define glEdgeFlagPointerEXT GLEW_GET_FUN(__glewEdgeFlagPointerEXT) -#define glGetPointervEXT GLEW_GET_FUN(__glewGetPointervEXT) #define glIndexPointerEXT GLEW_GET_FUN(__glewIndexPointerEXT) #define glNormalPointerEXT GLEW_GET_FUN(__glewNormalPointerEXT) #define glTexCoordPointerEXT GLEW_GET_FUN(__glewTexCoordPointerEXT) @@ -5925,6 +9051,63 @@ typedef void (GLAPIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, #endif /* GL_EXT_vertex_array */ +/* ------------------------ GL_EXT_vertex_array_bgra ----------------------- */ + +#ifndef GL_EXT_vertex_array_bgra +#define GL_EXT_vertex_array_bgra 1 + +#define GL_BGRA 0x80E1 + +#define GLEW_EXT_vertex_array_bgra GLEW_GET_VAR(__GLEW_EXT_vertex_array_bgra) + +#endif /* GL_EXT_vertex_array_bgra */ + +/* ----------------------- GL_EXT_vertex_attrib_64bit ---------------------- */ + +#ifndef GL_EXT_vertex_attrib_64bit +#define GL_EXT_vertex_attrib_64bit 1 + +#define GL_DOUBLE_MAT2_EXT 0x8F46 +#define GL_DOUBLE_MAT3_EXT 0x8F47 +#define GL_DOUBLE_MAT4_EXT 0x8F48 +#define GL_DOUBLE_MAT2x3_EXT 0x8F49 +#define GL_DOUBLE_MAT2x4_EXT 0x8F4A +#define GL_DOUBLE_MAT3x2_EXT 0x8F4B +#define GL_DOUBLE_MAT3x4_EXT 0x8F4C +#define GL_DOUBLE_MAT4x2_EXT 0x8F4D +#define GL_DOUBLE_MAT4x3_EXT 0x8F4E +#define GL_DOUBLE_VEC2_EXT 0x8FFC +#define GL_DOUBLE_VEC3_EXT 0x8FFD +#define GL_DOUBLE_VEC4_EXT 0x8FFE + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const void* pointer); + +#define glGetVertexAttribLdvEXT GLEW_GET_FUN(__glewGetVertexAttribLdvEXT) +#define glVertexArrayVertexAttribLOffsetEXT GLEW_GET_FUN(__glewVertexArrayVertexAttribLOffsetEXT) +#define glVertexAttribL1dEXT GLEW_GET_FUN(__glewVertexAttribL1dEXT) +#define glVertexAttribL1dvEXT GLEW_GET_FUN(__glewVertexAttribL1dvEXT) +#define glVertexAttribL2dEXT GLEW_GET_FUN(__glewVertexAttribL2dEXT) +#define glVertexAttribL2dvEXT GLEW_GET_FUN(__glewVertexAttribL2dvEXT) +#define glVertexAttribL3dEXT GLEW_GET_FUN(__glewVertexAttribL3dEXT) +#define glVertexAttribL3dvEXT GLEW_GET_FUN(__glewVertexAttribL3dvEXT) +#define glVertexAttribL4dEXT GLEW_GET_FUN(__glewVertexAttribL4dEXT) +#define glVertexAttribL4dvEXT GLEW_GET_FUN(__glewVertexAttribL4dvEXT) +#define glVertexAttribLPointerEXT GLEW_GET_FUN(__glewVertexAttribLPointerEXT) + +#define GLEW_EXT_vertex_attrib_64bit GLEW_GET_VAR(__GLEW_EXT_vertex_attrib_64bit) + +#endif /* GL_EXT_vertex_attrib_64bit */ + /* -------------------------- GL_EXT_vertex_shader ------------------------- */ #ifndef GL_EXT_vertex_shader @@ -6162,6 +9345,34 @@ typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (GLfloat* weight); #endif /* GL_EXT_vertex_weighting */ +/* ------------------------- GL_EXT_x11_sync_object ------------------------ */ + +#ifndef GL_EXT_x11_sync_object +#define GL_EXT_x11_sync_object 1 + +#define GL_SYNC_X11_FENCE_EXT 0x90E1 + +typedef GLsync (GLAPIENTRY * PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); + +#define glImportSyncEXT GLEW_GET_FUN(__glewImportSyncEXT) + +#define GLEW_EXT_x11_sync_object GLEW_GET_VAR(__GLEW_EXT_x11_sync_object) + +#endif /* GL_EXT_x11_sync_object */ + +/* ---------------------- GL_GREMEDY_frame_terminator ---------------------- */ + +#ifndef GL_GREMEDY_frame_terminator +#define GL_GREMEDY_frame_terminator 1 + +typedef void (GLAPIENTRY * PFNGLFRAMETERMINATORGREMEDYPROC) (void); + +#define glFrameTerminatorGREMEDY GLEW_GET_FUN(__glewFrameTerminatorGREMEDY) + +#define GLEW_GREMEDY_frame_terminator GLEW_GET_VAR(__GLEW_GREMEDY_frame_terminator) + +#endif /* GL_GREMEDY_frame_terminator */ + /* ------------------------ GL_GREMEDY_string_marker ----------------------- */ #ifndef GL_GREMEDY_string_marker @@ -6539,6 +9750,21 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); #endif /* GL_MESA_ycbcr_texture */ +/* ------------------------- GL_NVX_gpu_memory_info ------------------------ */ + +#ifndef GL_NVX_gpu_memory_info +#define GL_NVX_gpu_memory_info 1 + +#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX 0x9047 +#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX 0x9048 +#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049 +#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX 0x904A +#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX 0x904B + +#define GLEW_NVX_gpu_memory_info GLEW_GET_VAR(__GLEW_NVX_gpu_memory_info) + +#endif /* GL_NVX_gpu_memory_info */ + /* --------------------------- GL_NV_blend_square -------------------------- */ #ifndef GL_NV_blend_square @@ -6548,6 +9774,26 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); #endif /* GL_NV_blend_square */ +/* ------------------------ GL_NV_conditional_render ----------------------- */ + +#ifndef GL_NV_conditional_render +#define GL_NV_conditional_render 1 + +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 + +typedef void (GLAPIENTRY * PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); +typedef void (GLAPIENTRY * PFNGLENDCONDITIONALRENDERNVPROC) (void); + +#define glBeginConditionalRenderNV GLEW_GET_FUN(__glewBeginConditionalRenderNV) +#define glEndConditionalRenderNV GLEW_GET_FUN(__glewEndConditionalRenderNV) + +#define GLEW_NV_conditional_render GLEW_GET_VAR(__GLEW_NV_conditional_render) + +#endif /* GL_NV_conditional_render */ + /* ----------------------- GL_NV_copy_depth_to_color ----------------------- */ #ifndef GL_NV_copy_depth_to_color @@ -6560,6 +9806,19 @@ typedef void (GLAPIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort* p); #endif /* GL_NV_copy_depth_to_color */ +/* ---------------------------- GL_NV_copy_image --------------------------- */ + +#ifndef GL_NV_copy_image +#define GL_NV_copy_image 1 + +typedef void (GLAPIENTRY * PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define glCopyImageSubDataNV GLEW_GET_FUN(__glewCopyImageSubDataNV) + +#define GLEW_NV_copy_image GLEW_GET_VAR(__GLEW_NV_copy_image) + +#endif /* GL_NV_copy_image */ + /* ------------------------ GL_NV_depth_buffer_float ----------------------- */ #ifndef GL_NV_depth_buffer_float @@ -6598,11 +9857,11 @@ typedef void (GLAPIENTRY * PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFa #ifndef GL_NV_depth_range_unclamped #define GL_NV_depth_range_unclamped 1 -#define GL_SAMPLE_COUNT_BITS_ARB 0x8864 -#define GL_CURRENT_SAMPLE_COUNT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLE_COUNT_ARB 0x8914 +#define GL_SAMPLE_COUNT_BITS_NV 0x8864 +#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865 +#define GL_QUERY_RESULT_NV 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_NV 0x8867 +#define GL_SAMPLE_COUNT_NV 0x8914 #define GLEW_NV_depth_range_unclamped GLEW_GET_VAR(__GLEW_NV_depth_range_unclamped) @@ -6662,6 +9921,34 @@ typedef void (GLAPIENTRY * PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pna #endif /* GL_NV_evaluators */ +/* ----------------------- GL_NV_explicit_multisample ---------------------- */ + +#ifndef GL_NV_explicit_multisample +#define GL_NV_explicit_multisample 1 + +#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 void (GLAPIENTRY * PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat* val); +typedef void (GLAPIENTRY * PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); +typedef void (GLAPIENTRY * PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); + +#define glGetMultisamplefvNV GLEW_GET_FUN(__glewGetMultisamplefvNV) +#define glSampleMaskIndexedNV GLEW_GET_FUN(__glewSampleMaskIndexedNV) +#define glTexRenderbufferNV GLEW_GET_FUN(__glewTexRenderbufferNV) + +#define GLEW_NV_explicit_multisample GLEW_GET_VAR(__GLEW_NV_explicit_multisample) + +#endif /* GL_NV_explicit_multisample */ + /* ------------------------------ GL_NV_fence ------------------------------ */ #ifndef GL_NV_fence @@ -6819,6 +10106,10 @@ typedef void (GLAPIENTRY * PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (G #define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 #define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 +typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); + +#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) + #define GLEW_NV_geometry_program4 GLEW_GET_VAR(__GLEW_NV_geometry_program4) #endif /* GL_NV_geometry_program4 */ @@ -6858,7 +10149,6 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); typedef void (GLAPIENTRY * PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); #define glProgramEnvParameterI4iNV GLEW_GET_FUN(__glewProgramEnvParameterI4iNV) #define glProgramEnvParameterI4ivNV GLEW_GET_FUN(__glewProgramEnvParameterI4ivNV) @@ -6872,12 +10162,144 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint #define glProgramLocalParameterI4uivNV GLEW_GET_FUN(__glewProgramLocalParameterI4uivNV) #define glProgramLocalParametersI4ivNV GLEW_GET_FUN(__glewProgramLocalParametersI4ivNV) #define glProgramLocalParametersI4uivNV GLEW_GET_FUN(__glewProgramLocalParametersI4uivNV) -#define glProgramVertexLimitNV GLEW_GET_FUN(__glewProgramVertexLimitNV) #define GLEW_NV_gpu_program4 GLEW_GET_VAR(__GLEW_NV_gpu_program4) #endif /* GL_NV_gpu_program4 */ +/* --------------------------- GL_NV_gpu_program5 -------------------------- */ + +#ifndef GL_NV_gpu_program5 +#define GL_NV_gpu_program5 1 + +#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C +#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F + +#define GLEW_NV_gpu_program5 GLEW_GET_VAR(__GLEW_NV_gpu_program5) + +#endif /* GL_NV_gpu_program5 */ + +/* ------------------------- GL_NV_gpu_program_fp64 ------------------------ */ + +#ifndef GL_NV_gpu_program_fp64 +#define GL_NV_gpu_program_fp64 1 + +#define GLEW_NV_gpu_program_fp64 GLEW_GET_VAR(__GLEW_NV_gpu_program_fp64) + +#endif /* GL_NV_gpu_program_fp64 */ + +/* --------------------------- GL_NV_gpu_shader5 --------------------------- */ + +#ifndef GL_NV_gpu_shader5 +#define GL_NV_gpu_shader5 1 + +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F +#define GL_INT8_NV 0x8FE0 +#define GL_INT8_VEC2_NV 0x8FE1 +#define GL_INT8_VEC3_NV 0x8FE2 +#define GL_INT8_VEC4_NV 0x8FE3 +#define GL_INT16_NV 0x8FE4 +#define GL_INT16_VEC2_NV 0x8FE5 +#define GL_INT16_VEC3_NV 0x8FE6 +#define GL_INT16_VEC4_NV 0x8FE7 +#define GL_INT64_VEC2_NV 0x8FE9 +#define GL_INT64_VEC3_NV 0x8FEA +#define GL_INT64_VEC4_NV 0x8FEB +#define GL_UNSIGNED_INT8_NV 0x8FEC +#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED +#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE +#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF +#define GL_UNSIGNED_INT16_NV 0x8FF0 +#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 +#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 +#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 +#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 +#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 +#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 +#define GL_FLOAT16_NV 0x8FF8 +#define GL_FLOAT16_VEC2_NV 0x8FF9 +#define GL_FLOAT16_VEC3_NV 0x8FFA +#define GL_FLOAT16_VEC4_NV 0x8FFB + +typedef void (GLAPIENTRY * PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); + +#define glGetUniformi64vNV GLEW_GET_FUN(__glewGetUniformi64vNV) +#define glGetUniformui64vNV GLEW_GET_FUN(__glewGetUniformui64vNV) +#define glProgramUniform1i64NV GLEW_GET_FUN(__glewProgramUniform1i64NV) +#define glProgramUniform1i64vNV GLEW_GET_FUN(__glewProgramUniform1i64vNV) +#define glProgramUniform1ui64NV GLEW_GET_FUN(__glewProgramUniform1ui64NV) +#define glProgramUniform1ui64vNV GLEW_GET_FUN(__glewProgramUniform1ui64vNV) +#define glProgramUniform2i64NV GLEW_GET_FUN(__glewProgramUniform2i64NV) +#define glProgramUniform2i64vNV GLEW_GET_FUN(__glewProgramUniform2i64vNV) +#define glProgramUniform2ui64NV GLEW_GET_FUN(__glewProgramUniform2ui64NV) +#define glProgramUniform2ui64vNV GLEW_GET_FUN(__glewProgramUniform2ui64vNV) +#define glProgramUniform3i64NV GLEW_GET_FUN(__glewProgramUniform3i64NV) +#define glProgramUniform3i64vNV GLEW_GET_FUN(__glewProgramUniform3i64vNV) +#define glProgramUniform3ui64NV GLEW_GET_FUN(__glewProgramUniform3ui64NV) +#define glProgramUniform3ui64vNV GLEW_GET_FUN(__glewProgramUniform3ui64vNV) +#define glProgramUniform4i64NV GLEW_GET_FUN(__glewProgramUniform4i64NV) +#define glProgramUniform4i64vNV GLEW_GET_FUN(__glewProgramUniform4i64vNV) +#define glProgramUniform4ui64NV GLEW_GET_FUN(__glewProgramUniform4ui64NV) +#define glProgramUniform4ui64vNV GLEW_GET_FUN(__glewProgramUniform4ui64vNV) +#define glUniform1i64NV GLEW_GET_FUN(__glewUniform1i64NV) +#define glUniform1i64vNV GLEW_GET_FUN(__glewUniform1i64vNV) +#define glUniform1ui64NV GLEW_GET_FUN(__glewUniform1ui64NV) +#define glUniform1ui64vNV GLEW_GET_FUN(__glewUniform1ui64vNV) +#define glUniform2i64NV GLEW_GET_FUN(__glewUniform2i64NV) +#define glUniform2i64vNV GLEW_GET_FUN(__glewUniform2i64vNV) +#define glUniform2ui64NV GLEW_GET_FUN(__glewUniform2ui64NV) +#define glUniform2ui64vNV GLEW_GET_FUN(__glewUniform2ui64vNV) +#define glUniform3i64NV GLEW_GET_FUN(__glewUniform3i64NV) +#define glUniform3i64vNV GLEW_GET_FUN(__glewUniform3i64vNV) +#define glUniform3ui64NV GLEW_GET_FUN(__glewUniform3ui64NV) +#define glUniform3ui64vNV GLEW_GET_FUN(__glewUniform3ui64vNV) +#define glUniform4i64NV GLEW_GET_FUN(__glewUniform4i64NV) +#define glUniform4i64vNV GLEW_GET_FUN(__glewUniform4i64vNV) +#define glUniform4ui64NV GLEW_GET_FUN(__glewUniform4ui64NV) +#define glUniform4ui64vNV GLEW_GET_FUN(__glewUniform4ui64vNV) + +#define GLEW_NV_gpu_shader5 GLEW_GET_VAR(__GLEW_NV_gpu_shader5) + +#endif /* GL_NV_gpu_shader5 */ + /* ---------------------------- GL_NV_half_float --------------------------- */ #ifndef GL_NV_half_float @@ -6997,6 +10419,18 @@ typedef void (GLAPIENTRY * PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalf* weight); #endif /* GL_NV_light_max_exponent */ +/* ----------------------- GL_NV_multisample_coverage ---------------------- */ + +#ifndef GL_NV_multisample_coverage +#define GL_NV_multisample_coverage 1 + +#define GL_COVERAGE_SAMPLES_NV 0x80A9 +#define GL_COLOR_SAMPLES_NV 0x8E20 + +#define GLEW_NV_multisample_coverage GLEW_GET_VAR(__GLEW_NV_multisample_coverage) + +#endif /* GL_NV_multisample_coverage */ + /* --------------------- GL_NV_multisample_filter_hint --------------------- */ #ifndef GL_NV_multisample_filter_hint @@ -7073,6 +10507,15 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, #endif /* GL_NV_parameter_buffer_object */ +/* --------------------- GL_NV_parameter_buffer_object2 -------------------- */ + +#ifndef GL_NV_parameter_buffer_object2 +#define GL_NV_parameter_buffer_object2 1 + +#define GLEW_NV_parameter_buffer_object2 GLEW_GET_VAR(__GLEW_NV_parameter_buffer_object2) + +#endif /* GL_NV_parameter_buffer_object2 */ + /* ------------------------- GL_NV_pixel_data_range ------------------------ */ #ifndef GL_NV_pixel_data_range @@ -7114,6 +10557,36 @@ typedef void (GLAPIENTRY * PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLi #endif /* GL_NV_point_sprite */ +/* -------------------------- GL_NV_present_video -------------------------- */ + +#ifndef GL_NV_present_video +#define GL_NV_present_video 1 + +#define GL_FRAME_NV 0x8E26 +#define GL_FIELDS_NV 0x8E27 +#define GL_CURRENT_TIME_NV 0x8E28 +#define GL_NUM_FILL_STREAMS_NV 0x8E29 +#define GL_PRESENT_TIME_NV 0x8E2A +#define GL_PRESENT_DURATION_NV 0x8E2B + +typedef void (GLAPIENTRY * PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint* params); +typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); +typedef void (GLAPIENTRY * PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); + +#define glGetVideoi64vNV GLEW_GET_FUN(__glewGetVideoi64vNV) +#define glGetVideoivNV GLEW_GET_FUN(__glewGetVideoivNV) +#define glGetVideoui64vNV GLEW_GET_FUN(__glewGetVideoui64vNV) +#define glGetVideouivNV GLEW_GET_FUN(__glewGetVideouivNV) +#define glPresentFrameDualFillNV GLEW_GET_FUN(__glewPresentFrameDualFillNV) +#define glPresentFrameKeyedNV GLEW_GET_FUN(__glewPresentFrameKeyedNV) + +#define GLEW_NV_present_video GLEW_GET_VAR(__GLEW_NV_present_video) + +#endif /* GL_NV_present_video */ + /* ------------------------ GL_NV_primitive_restart ------------------------ */ #ifndef GL_NV_primitive_restart @@ -7238,6 +10711,62 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage #endif /* GL_NV_register_combiners2 */ +/* ------------------------ GL_NV_shader_buffer_load ----------------------- */ + +#ifndef GL_NV_shader_buffer_load +#define GL_NV_shader_buffer_load 1 + +#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D +#define GL_GPU_ADDRESS_NV 0x8F34 +#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 + +typedef void (GLAPIENTRY * PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT* result); +typedef void (GLAPIENTRY * PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT* params); +typedef GLboolean (GLAPIENTRY * PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); +typedef GLboolean (GLAPIENTRY * PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); +typedef void (GLAPIENTRY * PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); +typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); +typedef void (GLAPIENTRY * PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); +typedef void (GLAPIENTRY * PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT* value); +typedef void (GLAPIENTRY * PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); +typedef void (GLAPIENTRY * PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT* value); + +#define glGetBufferParameterui64vNV GLEW_GET_FUN(__glewGetBufferParameterui64vNV) +#define glGetIntegerui64vNV GLEW_GET_FUN(__glewGetIntegerui64vNV) +#define glGetNamedBufferParameterui64vNV GLEW_GET_FUN(__glewGetNamedBufferParameterui64vNV) +#define glIsBufferResidentNV GLEW_GET_FUN(__glewIsBufferResidentNV) +#define glIsNamedBufferResidentNV GLEW_GET_FUN(__glewIsNamedBufferResidentNV) +#define glMakeBufferNonResidentNV GLEW_GET_FUN(__glewMakeBufferNonResidentNV) +#define glMakeBufferResidentNV GLEW_GET_FUN(__glewMakeBufferResidentNV) +#define glMakeNamedBufferNonResidentNV GLEW_GET_FUN(__glewMakeNamedBufferNonResidentNV) +#define glMakeNamedBufferResidentNV GLEW_GET_FUN(__glewMakeNamedBufferResidentNV) +#define glProgramUniformui64NV GLEW_GET_FUN(__glewProgramUniformui64NV) +#define glProgramUniformui64vNV GLEW_GET_FUN(__glewProgramUniformui64vNV) +#define glUniformui64NV GLEW_GET_FUN(__glewUniformui64NV) +#define glUniformui64vNV GLEW_GET_FUN(__glewUniformui64vNV) + +#define GLEW_NV_shader_buffer_load GLEW_GET_VAR(__GLEW_NV_shader_buffer_load) + +#endif /* GL_NV_shader_buffer_load */ + +/* ---------------------- GL_NV_tessellation_program5 ---------------------- */ + +#ifndef GL_NV_tessellation_program5 +#define GL_NV_tessellation_program5 1 + +#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 +#define GL_TESS_CONTROL_PROGRAM_NV 0x891E +#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F +#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 +#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 + +#define GLEW_NV_tessellation_program5 GLEW_GET_VAR(__GLEW_NV_tessellation_program5) + +#endif /* GL_NV_tessellation_program5 */ + /* -------------------------- GL_NV_texgen_emboss -------------------------- */ #ifndef GL_NV_texgen_emboss @@ -7263,6 +10792,19 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage #endif /* GL_NV_texgen_reflection */ +/* ------------------------- GL_NV_texture_barrier ------------------------- */ + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 + +typedef void (GLAPIENTRY * PFNGLTEXTUREBARRIERNVPROC) (void); + +#define glTextureBarrierNV GLEW_GET_FUN(__glewTextureBarrierNV) + +#define GLEW_NV_texture_barrier GLEW_GET_VAR(__GLEW_NV_texture_barrier) + +#endif /* GL_NV_texture_barrier */ + /* --------------------- GL_NV_texture_compression_vtc --------------------- */ #ifndef GL_NV_texture_compression_vtc @@ -7298,6 +10840,32 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage #endif /* GL_NV_texture_expand_normal */ +/* ----------------------- GL_NV_texture_multisample ----------------------- */ + +#ifndef GL_NV_texture_multisample +#define GL_NV_texture_multisample 1 + +#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 +#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 + +typedef void (GLAPIENTRY * PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); +typedef void (GLAPIENTRY * PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); + +#define glTexImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage2DMultisampleCoverageNV) +#define glTexImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTexImage3DMultisampleCoverageNV) +#define glTextureImage2DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage2DMultisampleCoverageNV) +#define glTextureImage2DMultisampleNV GLEW_GET_FUN(__glewTextureImage2DMultisampleNV) +#define glTextureImage3DMultisampleCoverageNV GLEW_GET_FUN(__glewTextureImage3DMultisampleCoverageNV) +#define glTextureImage3DMultisampleNV GLEW_GET_FUN(__glewTextureImage3DMultisampleNV) + +#define GLEW_NV_texture_multisample GLEW_GET_VAR(__GLEW_NV_texture_multisample) + +#endif /* GL_NV_texture_multisample */ + /* ------------------------ GL_NV_texture_rectangle ------------------------ */ #ifndef GL_NV_texture_rectangle @@ -7328,9 +10896,12 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage #define GL_TEXTURE_SHADER_NV 0x86DE #define GL_SHADER_OPERATION_NV 0x86DF #define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV 0x86E1 #define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_2D_SCALE_NV 0x86E2 #define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 #define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_BIAS_NV 0x86E3 #define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 #define GL_CONST_EYE_NV 0x86E5 #define GL_PASS_THROUGH_NV 0x86E6 @@ -7481,7 +11052,7 @@ typedef void (GLAPIENTRY * PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage #define GL_PRIMITIVES_GENERATED_NV 0x8C87 #define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 #define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8C8A #define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B #define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C #define GL_SEPARATE_ATTRIBS_NV 0x8C8D @@ -7516,6 +11087,74 @@ typedef void (GLAPIENTRY * PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program #endif /* GL_NV_transform_feedback */ +/* ----------------------- GL_NV_transform_feedback2 ----------------------- */ + +#ifndef GL_NV_transform_feedback2 +#define GL_NV_transform_feedback2 1 + +#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 + +typedef void (GLAPIENTRY * PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); +typedef void (GLAPIENTRY * PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint* ids); +typedef void (GLAPIENTRY * PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); +typedef void (GLAPIENTRY * PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint* ids); +typedef GLboolean (GLAPIENTRY * PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); +typedef void (GLAPIENTRY * PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); +typedef void (GLAPIENTRY * PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); + +#define glBindTransformFeedbackNV GLEW_GET_FUN(__glewBindTransformFeedbackNV) +#define glDeleteTransformFeedbacksNV GLEW_GET_FUN(__glewDeleteTransformFeedbacksNV) +#define glDrawTransformFeedbackNV GLEW_GET_FUN(__glewDrawTransformFeedbackNV) +#define glGenTransformFeedbacksNV GLEW_GET_FUN(__glewGenTransformFeedbacksNV) +#define glIsTransformFeedbackNV GLEW_GET_FUN(__glewIsTransformFeedbackNV) +#define glPauseTransformFeedbackNV GLEW_GET_FUN(__glewPauseTransformFeedbackNV) +#define glResumeTransformFeedbackNV GLEW_GET_FUN(__glewResumeTransformFeedbackNV) + +#define GLEW_NV_transform_feedback2 GLEW_GET_VAR(__GLEW_NV_transform_feedback2) + +#endif /* GL_NV_transform_feedback2 */ + +/* -------------------------- GL_NV_vdpau_interop -------------------------- */ + +#ifndef GL_NV_vdpau_interop +#define GL_NV_vdpau_interop 1 + +#define GL_SURFACE_STATE_NV 0x86EB +#define GL_SURFACE_REGISTERED_NV 0x86FD +#define GL_SURFACE_MAPPED_NV 0x8700 +#define GL_WRITE_DISCARD_NV 0x88BE + +typedef GLintptr GLvdpauSurfaceNV; + +typedef void (GLAPIENTRY * PFNGLVDPAUFININVPROC) (void); +typedef void (GLAPIENTRY * PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei* length, GLint *values); +typedef void (GLAPIENTRY * PFNGLVDPAUINITNVPROC) (const void* vdpDevice, const GLvoid*getProcAddress); +typedef void (GLAPIENTRY * PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); +typedef void (GLAPIENTRY * PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV* surfaces); +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef GLvdpauSurfaceNV (GLAPIENTRY * PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (const void* vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); +typedef void (GLAPIENTRY * PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); +typedef void (GLAPIENTRY * PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV* surfaces); +typedef void (GLAPIENTRY * PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); + +#define glVDPAUFiniNV GLEW_GET_FUN(__glewVDPAUFiniNV) +#define glVDPAUGetSurfaceivNV GLEW_GET_FUN(__glewVDPAUGetSurfaceivNV) +#define glVDPAUInitNV GLEW_GET_FUN(__glewVDPAUInitNV) +#define glVDPAUIsSurfaceNV GLEW_GET_FUN(__glewVDPAUIsSurfaceNV) +#define glVDPAUMapSurfacesNV GLEW_GET_FUN(__glewVDPAUMapSurfacesNV) +#define glVDPAURegisterOutputSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterOutputSurfaceNV) +#define glVDPAURegisterVideoSurfaceNV GLEW_GET_FUN(__glewVDPAURegisterVideoSurfaceNV) +#define glVDPAUSurfaceAccessNV GLEW_GET_FUN(__glewVDPAUSurfaceAccessNV) +#define glVDPAUUnmapSurfacesNV GLEW_GET_FUN(__glewVDPAUUnmapSurfacesNV) +#define glVDPAUUnregisterSurfaceNV GLEW_GET_FUN(__glewVDPAUUnregisterSurfaceNV) + +#define GLEW_NV_vdpau_interop GLEW_GET_VAR(__GLEW_NV_vdpau_interop) + +#endif /* GL_NV_vdpau_interop */ + /* ------------------------ GL_NV_vertex_array_range ----------------------- */ #ifndef GL_NV_vertex_array_range @@ -7548,6 +11187,119 @@ typedef void (GLAPIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, void* p #endif /* GL_NV_vertex_array_range2 */ +/* ------------------- GL_NV_vertex_attrib_integer_64bit ------------------- */ + +#ifndef GL_NV_vertex_attrib_integer_64bit +#define GL_NV_vertex_attrib_integer_64bit 1 + +#define GL_INT64_NV 0x140E +#define GL_UNSIGNED_INT64_NV 0x140F + +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT* params); +typedef void (GLAPIENTRY * PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT* params); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT* v); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); + +#define glGetVertexAttribLi64vNV GLEW_GET_FUN(__glewGetVertexAttribLi64vNV) +#define glGetVertexAttribLui64vNV GLEW_GET_FUN(__glewGetVertexAttribLui64vNV) +#define glVertexAttribL1i64NV GLEW_GET_FUN(__glewVertexAttribL1i64NV) +#define glVertexAttribL1i64vNV GLEW_GET_FUN(__glewVertexAttribL1i64vNV) +#define glVertexAttribL1ui64NV GLEW_GET_FUN(__glewVertexAttribL1ui64NV) +#define glVertexAttribL1ui64vNV GLEW_GET_FUN(__glewVertexAttribL1ui64vNV) +#define glVertexAttribL2i64NV GLEW_GET_FUN(__glewVertexAttribL2i64NV) +#define glVertexAttribL2i64vNV GLEW_GET_FUN(__glewVertexAttribL2i64vNV) +#define glVertexAttribL2ui64NV GLEW_GET_FUN(__glewVertexAttribL2ui64NV) +#define glVertexAttribL2ui64vNV GLEW_GET_FUN(__glewVertexAttribL2ui64vNV) +#define glVertexAttribL3i64NV GLEW_GET_FUN(__glewVertexAttribL3i64NV) +#define glVertexAttribL3i64vNV GLEW_GET_FUN(__glewVertexAttribL3i64vNV) +#define glVertexAttribL3ui64NV GLEW_GET_FUN(__glewVertexAttribL3ui64NV) +#define glVertexAttribL3ui64vNV GLEW_GET_FUN(__glewVertexAttribL3ui64vNV) +#define glVertexAttribL4i64NV GLEW_GET_FUN(__glewVertexAttribL4i64NV) +#define glVertexAttribL4i64vNV GLEW_GET_FUN(__glewVertexAttribL4i64vNV) +#define glVertexAttribL4ui64NV GLEW_GET_FUN(__glewVertexAttribL4ui64NV) +#define glVertexAttribL4ui64vNV GLEW_GET_FUN(__glewVertexAttribL4ui64vNV) +#define glVertexAttribLFormatNV GLEW_GET_FUN(__glewVertexAttribLFormatNV) + +#define GLEW_NV_vertex_attrib_integer_64bit GLEW_GET_VAR(__GLEW_NV_vertex_attrib_integer_64bit) + +#endif /* GL_NV_vertex_attrib_integer_64bit */ + +/* ------------------- GL_NV_vertex_buffer_unified_memory ------------------ */ + +#ifndef GL_NV_vertex_buffer_unified_memory +#define GL_NV_vertex_buffer_unified_memory 1 + +#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E +#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F +#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 +#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 +#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 +#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 +#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 +#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 +#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 +#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 +#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 +#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 +#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A +#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B +#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C +#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D +#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E +#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F +#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 +#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 +#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 +#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 +#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 +#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 +#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 + +typedef void (GLAPIENTRY * PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); +typedef void (GLAPIENTRY * PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); +typedef void (GLAPIENTRY * PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT result[]); +typedef void (GLAPIENTRY * PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); +typedef void (GLAPIENTRY * PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); + +#define glBufferAddressRangeNV GLEW_GET_FUN(__glewBufferAddressRangeNV) +#define glColorFormatNV GLEW_GET_FUN(__glewColorFormatNV) +#define glEdgeFlagFormatNV GLEW_GET_FUN(__glewEdgeFlagFormatNV) +#define glFogCoordFormatNV GLEW_GET_FUN(__glewFogCoordFormatNV) +#define glGetIntegerui64i_vNV GLEW_GET_FUN(__glewGetIntegerui64i_vNV) +#define glIndexFormatNV GLEW_GET_FUN(__glewIndexFormatNV) +#define glNormalFormatNV GLEW_GET_FUN(__glewNormalFormatNV) +#define glSecondaryColorFormatNV GLEW_GET_FUN(__glewSecondaryColorFormatNV) +#define glTexCoordFormatNV GLEW_GET_FUN(__glewTexCoordFormatNV) +#define glVertexAttribFormatNV GLEW_GET_FUN(__glewVertexAttribFormatNV) +#define glVertexAttribIFormatNV GLEW_GET_FUN(__glewVertexAttribIFormatNV) +#define glVertexFormatNV GLEW_GET_FUN(__glewVertexFormatNV) + +#define GLEW_NV_vertex_buffer_unified_memory GLEW_GET_VAR(__GLEW_NV_vertex_buffer_unified_memory) + +#endif /* GL_NV_vertex_buffer_unified_memory */ + /* -------------------------- GL_NV_vertex_program ------------------------- */ #ifndef GL_NV_vertex_program @@ -7657,8 +11409,8 @@ typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble* params); typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLuint num, const GLdouble* params); -typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLuint num, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei num, const GLfloat* params); typedef void (GLAPIENTRY * PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, GLuint* ids); typedef void (GLAPIENTRY * PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); typedef void (GLAPIENTRY * PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); @@ -7817,10 +11569,77 @@ typedef void (GLAPIENTRY * PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei #ifndef GL_NV_vertex_program4 #define GL_NV_vertex_program4 1 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD + #define GLEW_NV_vertex_program4 GLEW_GET_VAR(__GLEW_NV_vertex_program4) #endif /* GL_NV_vertex_program4 */ +/* -------------------------- GL_NV_video_capture -------------------------- */ + +#ifndef GL_NV_video_capture +#define GL_NV_video_capture 1 + +#define GL_VIDEO_BUFFER_NV 0x9020 +#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 +#define GL_FIELD_UPPER_NV 0x9022 +#define GL_FIELD_LOWER_NV 0x9023 +#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 +#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 +#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 +#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 +#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 +#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 +#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A +#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B +#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C +#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D +#define GL_PARTIAL_SUCCESS_NV 0x902E +#define GL_SUCCESS_NV 0x902F +#define GL_FAILURE_NV 0x9030 +#define GL_YCBYCR8_422_NV 0x9031 +#define GL_YCBAYCR8A_4224_NV 0x9032 +#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 +#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 +#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 +#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 +#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 +#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 +#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 +#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A +#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B +#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C + +typedef void (GLAPIENTRY * PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); +typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); +typedef void (GLAPIENTRY * PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); +typedef void (GLAPIENTRY * PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); +typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint* params); +typedef void (GLAPIENTRY * PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint* params); +typedef GLenum (GLAPIENTRY * PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint* sequence_num, GLuint64EXT *capture_time); +typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble* params); +typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat* params); +typedef void (GLAPIENTRY * PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint* params); + +#define glBeginVideoCaptureNV GLEW_GET_FUN(__glewBeginVideoCaptureNV) +#define glBindVideoCaptureStreamBufferNV GLEW_GET_FUN(__glewBindVideoCaptureStreamBufferNV) +#define glBindVideoCaptureStreamTextureNV GLEW_GET_FUN(__glewBindVideoCaptureStreamTextureNV) +#define glEndVideoCaptureNV GLEW_GET_FUN(__glewEndVideoCaptureNV) +#define glGetVideoCaptureStreamdvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamdvNV) +#define glGetVideoCaptureStreamfvNV GLEW_GET_FUN(__glewGetVideoCaptureStreamfvNV) +#define glGetVideoCaptureStreamivNV GLEW_GET_FUN(__glewGetVideoCaptureStreamivNV) +#define glGetVideoCaptureivNV GLEW_GET_FUN(__glewGetVideoCaptureivNV) +#define glVideoCaptureNV GLEW_GET_FUN(__glewVideoCaptureNV) +#define glVideoCaptureStreamParameterdvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterdvNV) +#define glVideoCaptureStreamParameterfvNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterfvNV) +#define glVideoCaptureStreamParameterivNV GLEW_GET_FUN(__glewVideoCaptureStreamParameterivNV) + +#define GLEW_NV_video_capture GLEW_GET_VAR(__GLEW_NV_video_capture) + +#endif /* GL_NV_video_capture */ + /* ------------------------ GL_OES_byte_coordinates ------------------------ */ #ifndef GL_OES_byte_coordinates @@ -8120,6 +11939,24 @@ typedef void (GLAPIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); #endif /* GL_SGIS_pixel_texture */ +/* ----------------------- GL_SGIS_point_line_texgen ----------------------- */ + +#ifndef GL_SGIS_point_line_texgen +#define GL_SGIS_point_line_texgen 1 + +#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 +#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 +#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 +#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 +#define GL_EYE_POINT_SGIS 0x81F4 +#define GL_OBJECT_POINT_SGIS 0x81F5 +#define GL_EYE_LINE_SGIS 0x81F6 +#define GL_OBJECT_LINE_SGIS 0x81F7 + +#define GLEW_SGIS_point_line_texgen GLEW_GET_VAR(__GLEW_SGIS_point_line_texgen) + +#endif /* GL_SGIS_point_line_texgen */ + /* ------------------------ GL_SGIS_sharpen_texture ------------------------ */ #ifndef GL_SGIS_sharpen_texture @@ -8284,6 +12121,17 @@ typedef GLint (GLAPIENTRY * PFNGLPOLLASYNCSGIXPROC) (GLuint* markerp); #endif /* GL_SGIX_clipmap */ +/* ---------------------- GL_SGIX_convolution_accuracy --------------------- */ + +#ifndef GL_SGIX_convolution_accuracy +#define GL_SGIX_convolution_accuracy 1 + +#define GL_CONVOLUTION_HINT_SGIX 0x8316 + +#define GLEW_SGIX_convolution_accuracy GLEW_GET_VAR(__GLEW_SGIX_convolution_accuracy) + +#endif /* GL_SGIX_convolution_accuracy */ + /* ------------------------- GL_SGIX_depth_texture ------------------------- */ #ifndef GL_SGIX_depth_texture @@ -9081,6 +12929,8 @@ GLEW_FUN_EXPORT PFNGLMULTIDRAWARRAYSPROC __glewMultiDrawArrays; GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSPROC __glewMultiDrawElements; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFPROC __glewPointParameterf; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVPROC __glewPointParameterfv; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIPROC __glewPointParameteri; +GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVPROC __glewPointParameteriv; GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BPROC __glewSecondaryColor3b; GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3BVPROC __glewSecondaryColor3bv; GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3DPROC __glewSecondaryColor3d; @@ -9236,8 +13086,112 @@ GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4FVPROC __glewUniformMatrix3x4fv; GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2FVPROC __glewUniformMatrix4x2fv; GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3FVPROC __glewUniformMatrix4x3fv; +GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERPROC __glewBeginConditionalRender; +GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKPROC __glewBeginTransformFeedback; +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONPROC __glewBindFragDataLocation; +GLEW_FUN_EXPORT PFNGLCLAMPCOLORPROC __glewClampColor; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERFIPROC __glewClearBufferfi; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERFVPROC __glewClearBufferfv; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERIVPROC __glewClearBufferiv; +GLEW_FUN_EXPORT PFNGLCLEARBUFFERUIVPROC __glewClearBufferuiv; +GLEW_FUN_EXPORT PFNGLCOLORMASKIPROC __glewColorMaski; +GLEW_FUN_EXPORT PFNGLDISABLEIPROC __glewDisablei; +GLEW_FUN_EXPORT PFNGLENABLEIPROC __glewEnablei; +GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERPROC __glewEndConditionalRender; +GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKPROC __glewEndTransformFeedback; +GLEW_FUN_EXPORT PFNGLGETBOOLEANI_VPROC __glewGetBooleani_v; +GLEW_FUN_EXPORT PFNGLGETFRAGDATALOCATIONPROC __glewGetFragDataLocation; +GLEW_FUN_EXPORT PFNGLGETSTRINGIPROC __glewGetStringi; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIIVPROC __glewGetTexParameterIiv; +GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERIUIVPROC __glewGetTexParameterIuiv; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGPROC __glewGetTransformFeedbackVarying; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUIVPROC __glewGetUniformuiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIIVPROC __glewGetVertexAttribIiv; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBIUIVPROC __glewGetVertexAttribIuiv; +GLEW_FUN_EXPORT PFNGLISENABLEDIPROC __glewIsEnabledi; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIIVPROC __glewTexParameterIiv; +GLEW_FUN_EXPORT PFNGLTEXPARAMETERIUIVPROC __glewTexParameterIuiv; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSPROC __glewTransformFeedbackVaryings; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIPROC __glewUniform1ui; +GLEW_FUN_EXPORT PFNGLUNIFORM1UIVPROC __glewUniform1uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIPROC __glewUniform2ui; +GLEW_FUN_EXPORT PFNGLUNIFORM2UIVPROC __glewUniform2uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIPROC __glewUniform3ui; +GLEW_FUN_EXPORT PFNGLUNIFORM3UIVPROC __glewUniform3uiv; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIPROC __glewUniform4ui; +GLEW_FUN_EXPORT PFNGLUNIFORM4UIVPROC __glewUniform4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IPROC __glewVertexAttribI1i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1IVPROC __glewVertexAttribI1iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIPROC __glewVertexAttribI1ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI1UIVPROC __glewVertexAttribI1uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IPROC __glewVertexAttribI2i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2IVPROC __glewVertexAttribI2iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIPROC __glewVertexAttribI2ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI2UIVPROC __glewVertexAttribI2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IPROC __glewVertexAttribI3i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3IVPROC __glewVertexAttribI3iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIPROC __glewVertexAttribI3ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI3UIVPROC __glewVertexAttribI3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4BVPROC __glewVertexAttribI4bv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IPROC __glewVertexAttribI4i; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4IVPROC __glewVertexAttribI4iv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4SVPROC __glewVertexAttribI4sv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UBVPROC __glewVertexAttribI4ubv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIPROC __glewVertexAttribI4ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4UIVPROC __glewVertexAttribI4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBI4USVPROC __glewVertexAttribI4usv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIPOINTERPROC __glewVertexAttribIPointer; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDPROC __glewDrawArraysInstanced; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDPROC __glewDrawElementsInstanced; +GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXPROC __glewPrimitiveRestartIndex; +GLEW_FUN_EXPORT PFNGLTEXBUFFERPROC __glewTexBuffer; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREPROC __glewFramebufferTexture; +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERI64VPROC __glewGetBufferParameteri64v; +GLEW_FUN_EXPORT PFNGLGETINTEGER64I_VPROC __glewGetInteger64i_v; + +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORPROC __glewVertexAttribDivisor; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIPROC __glewBlendEquationSeparatei; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIPROC __glewBlendEquationi; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIPROC __glewBlendFuncSeparatei; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIPROC __glewBlendFunci; +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGPROC __glewMinSampleShading; + GLEW_FUN_EXPORT PFNGLTBUFFERMASK3DFXPROC __glewTbufferMask3DFX; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKAMDPROC __glewDebugMessageCallbackAMD; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEENABLEAMDPROC __glewDebugMessageEnableAMD; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTAMDPROC __glewDebugMessageInsertAMD; +GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGAMDPROC __glewGetDebugMessageLogAMD; + +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONINDEXEDAMDPROC __glewBlendEquationIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC __glewBlendEquationSeparateIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDFUNCINDEXEDAMDPROC __glewBlendFuncIndexedAMD; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC __glewBlendFuncSeparateIndexedAMD; + +GLEW_FUN_EXPORT PFNGLDELETENAMESAMDPROC __glewDeleteNamesAMD; +GLEW_FUN_EXPORT PFNGLGENNAMESAMDPROC __glewGenNamesAMD; +GLEW_FUN_EXPORT PFNGLISNAMEAMDPROC __glewIsNameAMD; + +GLEW_FUN_EXPORT PFNGLBEGINPERFMONITORAMDPROC __glewBeginPerfMonitorAMD; +GLEW_FUN_EXPORT PFNGLDELETEPERFMONITORSAMDPROC __glewDeletePerfMonitorsAMD; +GLEW_FUN_EXPORT PFNGLENDPERFMONITORAMDPROC __glewEndPerfMonitorAMD; +GLEW_FUN_EXPORT PFNGLGENPERFMONITORSAMDPROC __glewGenPerfMonitorsAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERDATAAMDPROC __glewGetPerfMonitorCounterDataAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERINFOAMDPROC __glewGetPerfMonitorCounterInfoAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC __glewGetPerfMonitorCounterStringAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORCOUNTERSAMDPROC __glewGetPerfMonitorCountersAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSTRINGAMDPROC __glewGetPerfMonitorGroupStringAMD; +GLEW_FUN_EXPORT PFNGLGETPERFMONITORGROUPSAMDPROC __glewGetPerfMonitorGroupsAMD; +GLEW_FUN_EXPORT PFNGLSELECTPERFMONITORCOUNTERSAMDPROC __glewSelectPerfMonitorCountersAMD; + +GLEW_FUN_EXPORT PFNGLSETMULTISAMPLEFVAMDPROC __glewSetMultisamplefvAMD; + +GLEW_FUN_EXPORT PFNGLTESSELLATIONFACTORAMDPROC __glewTessellationFactorAMD; +GLEW_FUN_EXPORT PFNGLTESSELLATIONMODEAMDPROC __glewTessellationModeAMD; + GLEW_FUN_EXPORT PFNGLDRAWELEMENTARRAYAPPLEPROC __glewDrawElementArrayAPPLE; GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC __glewDrawRangeElementArrayAPPLE; GLEW_FUN_EXPORT PFNGLELEMENTPOINTERAPPLEPROC __glewElementPointerAPPLE; @@ -9253,6 +13207,13 @@ GLEW_FUN_EXPORT PFNGLSETFENCEAPPLEPROC __glewSetFenceAPPLE; GLEW_FUN_EXPORT PFNGLTESTFENCEAPPLEPROC __glewTestFenceAPPLE; GLEW_FUN_EXPORT PFNGLTESTOBJECTAPPLEPROC __glewTestObjectAPPLE; +GLEW_FUN_EXPORT PFNGLBUFFERPARAMETERIAPPLEPROC __glewBufferParameteriAPPLE; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC __glewFlushMappedBufferRangeAPPLE; + +GLEW_FUN_EXPORT PFNGLGETOBJECTPARAMETERIVAPPLEPROC __glewGetObjectParameterivAPPLE; +GLEW_FUN_EXPORT PFNGLOBJECTPURGEABLEAPPLEPROC __glewObjectPurgeableAPPLE; +GLEW_FUN_EXPORT PFNGLOBJECTUNPURGEABLEAPPLEPROC __glewObjectUnpurgeableAPPLE; + GLEW_FUN_EXPORT PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC __glewGetTexParameterPointervAPPLE; GLEW_FUN_EXPORT PFNGLTEXTURERANGEAPPLEPROC __glewTextureRangeAPPLE; @@ -9265,10 +13226,115 @@ GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC __glewFlushVertexArrayRangeA GLEW_FUN_EXPORT PFNGLVERTEXARRAYPARAMETERIAPPLEPROC __glewVertexArrayParameteriAPPLE; GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGEAPPLEPROC __glewVertexArrayRangeAPPLE; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXATTRIBAPPLEPROC __glewDisableVertexAttribAPPLE; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXATTRIBAPPLEPROC __glewEnableVertexAttribAPPLE; +GLEW_FUN_EXPORT PFNGLISVERTEXATTRIBENABLEDAPPLEPROC __glewIsVertexAttribEnabledAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1DAPPLEPROC __glewMapVertexAttrib1dAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB1FAPPLEPROC __glewMapVertexAttrib1fAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2DAPPLEPROC __glewMapVertexAttrib2dAPPLE; +GLEW_FUN_EXPORT PFNGLMAPVERTEXATTRIB2FAPPLEPROC __glewMapVertexAttrib2fAPPLE; + +GLEW_FUN_EXPORT PFNGLCLEARDEPTHFPROC __glewClearDepthf; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEFPROC __glewDepthRangef; +GLEW_FUN_EXPORT PFNGLGETSHADERPRECISIONFORMATPROC __glewGetShaderPrecisionFormat; +GLEW_FUN_EXPORT PFNGLRELEASESHADERCOMPILERPROC __glewReleaseShaderCompiler; +GLEW_FUN_EXPORT PFNGLSHADERBINARYPROC __glewShaderBinary; + +GLEW_FUN_EXPORT PFNGLBINDFRAGDATALOCATIONINDEXEDPROC __glewBindFragDataLocationIndexed; +GLEW_FUN_EXPORT PFNGLGETFRAGDATAINDEXPROC __glewGetFragDataIndex; + +GLEW_FUN_EXPORT PFNGLCREATESYNCFROMCLEVENTARBPROC __glewCreateSyncFromCLeventARB; + GLEW_FUN_EXPORT PFNGLCLAMPCOLORARBPROC __glewClampColorARB; +GLEW_FUN_EXPORT PFNGLCOPYBUFFERSUBDATAPROC __glewCopyBufferSubData; + +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECALLBACKARBPROC __glewDebugMessageCallbackARB; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGECONTROLARBPROC __glewDebugMessageControlARB; +GLEW_FUN_EXPORT PFNGLDEBUGMESSAGEINSERTARBPROC __glewDebugMessageInsertARB; +GLEW_FUN_EXPORT PFNGLGETDEBUGMESSAGELOGARBPROC __glewGetDebugMessageLogARB; + GLEW_FUN_EXPORT PFNGLDRAWBUFFERSARBPROC __glewDrawBuffersARB; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONSEPARATEIARBPROC __glewBlendEquationSeparateiARB; +GLEW_FUN_EXPORT PFNGLBLENDEQUATIONIARBPROC __glewBlendEquationiARB; +GLEW_FUN_EXPORT PFNGLBLENDFUNCSEPARATEIARBPROC __glewBlendFuncSeparateiARB; +GLEW_FUN_EXPORT PFNGLBLENDFUNCIARBPROC __glewBlendFunciARB; + +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSBASEVERTEXPROC __glewDrawElementsBaseVertex; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC __glewDrawElementsInstancedBaseVertex; +GLEW_FUN_EXPORT PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC __glewDrawRangeElementsBaseVertex; +GLEW_FUN_EXPORT PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC __glewMultiDrawElementsBaseVertex; + +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINDIRECTPROC __glewDrawArraysIndirect; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINDIRECTPROC __glewDrawElementsIndirect; + +GLEW_FUN_EXPORT PFNGLBINDFRAMEBUFFERPROC __glewBindFramebuffer; +GLEW_FUN_EXPORT PFNGLBINDRENDERBUFFERPROC __glewBindRenderbuffer; +GLEW_FUN_EXPORT PFNGLBLITFRAMEBUFFERPROC __glewBlitFramebuffer; +GLEW_FUN_EXPORT PFNGLCHECKFRAMEBUFFERSTATUSPROC __glewCheckFramebufferStatus; +GLEW_FUN_EXPORT PFNGLDELETEFRAMEBUFFERSPROC __glewDeleteFramebuffers; +GLEW_FUN_EXPORT PFNGLDELETERENDERBUFFERSPROC __glewDeleteRenderbuffers; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERRENDERBUFFERPROC __glewFramebufferRenderbuffer; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE1DPROC __glewFramebufferTexture1D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE2DPROC __glewFramebufferTexture2D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURE3DPROC __glewFramebufferTexture3D; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERPROC __glewFramebufferTextureLayer; +GLEW_FUN_EXPORT PFNGLGENFRAMEBUFFERSPROC __glewGenFramebuffers; +GLEW_FUN_EXPORT PFNGLGENRENDERBUFFERSPROC __glewGenRenderbuffers; +GLEW_FUN_EXPORT PFNGLGENERATEMIPMAPPROC __glewGenerateMipmap; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC __glewGetFramebufferAttachmentParameteriv; +GLEW_FUN_EXPORT PFNGLGETRENDERBUFFERPARAMETERIVPROC __glewGetRenderbufferParameteriv; +GLEW_FUN_EXPORT PFNGLISFRAMEBUFFERPROC __glewIsFramebuffer; +GLEW_FUN_EXPORT PFNGLISRENDERBUFFERPROC __glewIsRenderbuffer; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEPROC __glewRenderbufferStorage; +GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC __glewRenderbufferStorageMultisample; + +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREARBPROC __glewFramebufferTextureARB; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEARBPROC __glewFramebufferTextureFaceARB; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYERARBPROC __glewFramebufferTextureLayerARB; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIARBPROC __glewProgramParameteriARB; + +GLEW_FUN_EXPORT PFNGLGETPROGRAMBINARYPROC __glewGetProgramBinary; +GLEW_FUN_EXPORT PFNGLPROGRAMBINARYPROC __glewProgramBinary; +GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIPROC __glewProgramParameteri; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMDVPROC __glewGetUniformdv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DEXTPROC __glewProgramUniform1dEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVEXTPROC __glewProgramUniform1dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DEXTPROC __glewProgramUniform2dEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVEXTPROC __glewProgramUniform2dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DEXTPROC __glewProgramUniform3dEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVEXTPROC __glewProgramUniform3dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DEXTPROC __glewProgramUniform4dEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVEXTPROC __glewProgramUniform4dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC __glewProgramUniformMatrix2dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC __glewProgramUniformMatrix2x3dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC __glewProgramUniformMatrix2x4dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC __glewProgramUniformMatrix3dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC __glewProgramUniformMatrix3x2dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC __glewProgramUniformMatrix3x4dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC __glewProgramUniformMatrix4dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC __glewProgramUniformMatrix4x2dvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC __glewProgramUniformMatrix4x3dvEXT; +GLEW_FUN_EXPORT PFNGLUNIFORM1DPROC __glewUniform1d; +GLEW_FUN_EXPORT PFNGLUNIFORM1DVPROC __glewUniform1dv; +GLEW_FUN_EXPORT PFNGLUNIFORM2DPROC __glewUniform2d; +GLEW_FUN_EXPORT PFNGLUNIFORM2DVPROC __glewUniform2dv; +GLEW_FUN_EXPORT PFNGLUNIFORM3DPROC __glewUniform3d; +GLEW_FUN_EXPORT PFNGLUNIFORM3DVPROC __glewUniform3dv; +GLEW_FUN_EXPORT PFNGLUNIFORM4DPROC __glewUniform4d; +GLEW_FUN_EXPORT PFNGLUNIFORM4DVPROC __glewUniform4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2DVPROC __glewUniformMatrix2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X3DVPROC __glewUniformMatrix2x3dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX2X4DVPROC __glewUniformMatrix2x4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3DVPROC __glewUniformMatrix3dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X2DVPROC __glewUniformMatrix3x2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX3X4DVPROC __glewUniformMatrix3x4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4DVPROC __glewUniformMatrix4dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X2DVPROC __glewUniformMatrix4x2dv; +GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4X3DVPROC __glewUniformMatrix4x3dv; + GLEW_FUN_EXPORT PFNGLCOLORSUBTABLEPROC __glewColorSubTable; GLEW_FUN_EXPORT PFNGLCOLORTABLEPROC __glewColorTable; GLEW_FUN_EXPORT PFNGLCOLORTABLEPARAMETERFVPROC __glewColorTableParameterfv; @@ -9302,6 +13368,13 @@ GLEW_FUN_EXPORT PFNGLRESETHISTOGRAMPROC __glewResetHistogram; GLEW_FUN_EXPORT PFNGLRESETMINMAXPROC __glewResetMinmax; GLEW_FUN_EXPORT PFNGLSEPARABLEFILTER2DPROC __glewSeparableFilter2D; +GLEW_FUN_EXPORT PFNGLDRAWARRAYSINSTANCEDARBPROC __glewDrawArraysInstancedARB; +GLEW_FUN_EXPORT PFNGLDRAWELEMENTSINSTANCEDARBPROC __glewDrawElementsInstancedARB; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBDIVISORARBPROC __glewVertexAttribDivisorARB; + +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDBUFFERRANGEPROC __glewFlushMappedBufferRange; +GLEW_FUN_EXPORT PFNGLMAPBUFFERRANGEPROC __glewMapBufferRange; + GLEW_FUN_EXPORT PFNGLCURRENTPALETTEMATRIXARBPROC __glewCurrentPaletteMatrixARB; GLEW_FUN_EXPORT PFNGLMATRIXINDEXPOINTERARBPROC __glewMatrixIndexPointerARB; GLEW_FUN_EXPORT PFNGLMATRIXINDEXUBVARBPROC __glewMatrixIndexubvARB; @@ -9357,6 +13430,106 @@ GLEW_FUN_EXPORT PFNGLISQUERYARBPROC __glewIsQueryARB; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFARBPROC __glewPointParameterfARB; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVARBPROC __glewPointParameterfvARB; +GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXPROC __glewProvokingVertex; + +GLEW_FUN_EXPORT PFNGLGETNCOLORTABLEARBPROC __glewGetnColorTableARB; +GLEW_FUN_EXPORT PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC __glewGetnCompressedTexImageARB; +GLEW_FUN_EXPORT PFNGLGETNCONVOLUTIONFILTERARBPROC __glewGetnConvolutionFilterARB; +GLEW_FUN_EXPORT PFNGLGETNHISTOGRAMARBPROC __glewGetnHistogramARB; +GLEW_FUN_EXPORT PFNGLGETNMAPDVARBPROC __glewGetnMapdvARB; +GLEW_FUN_EXPORT PFNGLGETNMAPFVARBPROC __glewGetnMapfvARB; +GLEW_FUN_EXPORT PFNGLGETNMAPIVARBPROC __glewGetnMapivARB; +GLEW_FUN_EXPORT PFNGLGETNMINMAXARBPROC __glewGetnMinmaxARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPFVARBPROC __glewGetnPixelMapfvARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUIVARBPROC __glewGetnPixelMapuivARB; +GLEW_FUN_EXPORT PFNGLGETNPIXELMAPUSVARBPROC __glewGetnPixelMapusvARB; +GLEW_FUN_EXPORT PFNGLGETNPOLYGONSTIPPLEARBPROC __glewGetnPolygonStippleARB; +GLEW_FUN_EXPORT PFNGLGETNSEPARABLEFILTERARBPROC __glewGetnSeparableFilterARB; +GLEW_FUN_EXPORT PFNGLGETNTEXIMAGEARBPROC __glewGetnTexImageARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMDVARBPROC __glewGetnUniformdvARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMFVARBPROC __glewGetnUniformfvARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMIVARBPROC __glewGetnUniformivARB; +GLEW_FUN_EXPORT PFNGLGETNUNIFORMUIVARBPROC __glewGetnUniformuivARB; +GLEW_FUN_EXPORT PFNGLREADNPIXELSARBPROC __glewReadnPixelsARB; + +GLEW_FUN_EXPORT PFNGLMINSAMPLESHADINGARBPROC __glewMinSampleShadingARB; + +GLEW_FUN_EXPORT PFNGLBINDSAMPLERPROC __glewBindSampler; +GLEW_FUN_EXPORT PFNGLDELETESAMPLERSPROC __glewDeleteSamplers; +GLEW_FUN_EXPORT PFNGLGENSAMPLERSPROC __glewGenSamplers; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIIVPROC __glewGetSamplerParameterIiv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIUIVPROC __glewGetSamplerParameterIuiv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERFVPROC __glewGetSamplerParameterfv; +GLEW_FUN_EXPORT PFNGLGETSAMPLERPARAMETERIVPROC __glewGetSamplerParameteriv; +GLEW_FUN_EXPORT PFNGLISSAMPLERPROC __glewIsSampler; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIIVPROC __glewSamplerParameterIiv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIUIVPROC __glewSamplerParameterIuiv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFPROC __glewSamplerParameterf; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERFVPROC __glewSamplerParameterfv; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIPROC __glewSamplerParameteri; +GLEW_FUN_EXPORT PFNGLSAMPLERPARAMETERIVPROC __glewSamplerParameteriv; + +GLEW_FUN_EXPORT PFNGLACTIVESHADERPROGRAMPROC __glewActiveShaderProgram; +GLEW_FUN_EXPORT PFNGLBINDPROGRAMPIPELINEPROC __glewBindProgramPipeline; +GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMVPROC __glewCreateShaderProgramv; +GLEW_FUN_EXPORT PFNGLDELETEPROGRAMPIPELINESPROC __glewDeleteProgramPipelines; +GLEW_FUN_EXPORT PFNGLGENPROGRAMPIPELINESPROC __glewGenProgramPipelines; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEINFOLOGPROC __glewGetProgramPipelineInfoLog; +GLEW_FUN_EXPORT PFNGLGETPROGRAMPIPELINEIVPROC __glewGetProgramPipelineiv; +GLEW_FUN_EXPORT PFNGLISPROGRAMPIPELINEPROC __glewIsProgramPipeline; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DPROC __glewProgramUniform1d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1DVPROC __glewProgramUniform1dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FPROC __glewProgramUniform1f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVPROC __glewProgramUniform1fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IPROC __glewProgramUniform1i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVPROC __glewProgramUniform1iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIPROC __glewProgramUniform1ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVPROC __glewProgramUniform1uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DPROC __glewProgramUniform2d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2DVPROC __glewProgramUniform2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FPROC __glewProgramUniform2f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVPROC __glewProgramUniform2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IPROC __glewProgramUniform2i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVPROC __glewProgramUniform2iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIPROC __glewProgramUniform2ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVPROC __glewProgramUniform2uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DPROC __glewProgramUniform3d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3DVPROC __glewProgramUniform3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FPROC __glewProgramUniform3f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVPROC __glewProgramUniform3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IPROC __glewProgramUniform3i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVPROC __glewProgramUniform3iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIPROC __glewProgramUniform3ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVPROC __glewProgramUniform3uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DPROC __glewProgramUniform4d; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4DVPROC __glewProgramUniform4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FPROC __glewProgramUniform4f; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVPROC __glewProgramUniform4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IPROC __glewProgramUniform4i; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVPROC __glewProgramUniform4iv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIPROC __glewProgramUniform4ui; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVPROC __glewProgramUniform4uiv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2DVPROC __glewProgramUniformMatrix2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVPROC __glewProgramUniformMatrix2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC __glewProgramUniformMatrix2x3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC __glewProgramUniformMatrix2x3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC __glewProgramUniformMatrix2x4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC __glewProgramUniformMatrix2x4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3DVPROC __glewProgramUniformMatrix3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVPROC __glewProgramUniformMatrix3fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC __glewProgramUniformMatrix3x2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC __glewProgramUniformMatrix3x2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC __glewProgramUniformMatrix3x4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC __glewProgramUniformMatrix3x4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4DVPROC __glewProgramUniformMatrix4dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVPROC __glewProgramUniformMatrix4fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC __glewProgramUniformMatrix4x2dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC __glewProgramUniformMatrix4x2fv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC __glewProgramUniformMatrix4x3dv; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC __glewProgramUniformMatrix4x3fv; +GLEW_FUN_EXPORT PFNGLUSEPROGRAMSTAGESPROC __glewUseProgramStages; +GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMPIPELINEPROC __glewValidateProgramPipeline; + GLEW_FUN_EXPORT PFNGLATTACHOBJECTARBPROC __glewAttachObjectARB; GLEW_FUN_EXPORT PFNGLCOMPILESHADERARBPROC __glewCompileShaderARB; GLEW_FUN_EXPORT PFNGLCREATEPROGRAMOBJECTARBPROC __glewCreateProgramObjectARB; @@ -9397,6 +13570,35 @@ GLEW_FUN_EXPORT PFNGLUNIFORMMATRIX4FVARBPROC __glewUniformMatrix4fvARB; GLEW_FUN_EXPORT PFNGLUSEPROGRAMOBJECTARBPROC __glewUseProgramObjectARB; GLEW_FUN_EXPORT PFNGLVALIDATEPROGRAMARBPROC __glewValidateProgramARB; +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINENAMEPROC __glewGetActiveSubroutineName; +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC __glewGetActiveSubroutineUniformName; +GLEW_FUN_EXPORT PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC __glewGetActiveSubroutineUniformiv; +GLEW_FUN_EXPORT PFNGLGETPROGRAMSTAGEIVPROC __glewGetProgramStageiv; +GLEW_FUN_EXPORT PFNGLGETSUBROUTINEINDEXPROC __glewGetSubroutineIndex; +GLEW_FUN_EXPORT PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC __glewGetSubroutineUniformLocation; +GLEW_FUN_EXPORT PFNGLGETUNIFORMSUBROUTINEUIVPROC __glewGetUniformSubroutineuiv; +GLEW_FUN_EXPORT PFNGLUNIFORMSUBROUTINESUIVPROC __glewUniformSubroutinesuiv; + +GLEW_FUN_EXPORT PFNGLCOMPILESHADERINCLUDEARBPROC __glewCompileShaderIncludeARB; +GLEW_FUN_EXPORT PFNGLDELETENAMEDSTRINGARBPROC __glewDeleteNamedStringARB; +GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGARBPROC __glewGetNamedStringARB; +GLEW_FUN_EXPORT PFNGLGETNAMEDSTRINGIVARBPROC __glewGetNamedStringivARB; +GLEW_FUN_EXPORT PFNGLISNAMEDSTRINGARBPROC __glewIsNamedStringARB; +GLEW_FUN_EXPORT PFNGLNAMEDSTRINGARBPROC __glewNamedStringARB; + +GLEW_FUN_EXPORT PFNGLCLIENTWAITSYNCPROC __glewClientWaitSync; +GLEW_FUN_EXPORT PFNGLDELETESYNCPROC __glewDeleteSync; +GLEW_FUN_EXPORT PFNGLFENCESYNCPROC __glewFenceSync; +GLEW_FUN_EXPORT PFNGLGETINTEGER64VPROC __glewGetInteger64v; +GLEW_FUN_EXPORT PFNGLGETSYNCIVPROC __glewGetSynciv; +GLEW_FUN_EXPORT PFNGLISSYNCPROC __glewIsSync; +GLEW_FUN_EXPORT PFNGLWAITSYNCPROC __glewWaitSync; + +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERFVPROC __glewPatchParameterfv; +GLEW_FUN_EXPORT PFNGLPATCHPARAMETERIPROC __glewPatchParameteri; + +GLEW_FUN_EXPORT PFNGLTEXBUFFERARBPROC __glewTexBufferARB; + GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE1DARBPROC __glewCompressedTexImage1DARB; GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE2DARBPROC __glewCompressedTexImage2DARB; GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXIMAGE3DARBPROC __glewCompressedTexImage3DARB; @@ -9405,11 +13607,60 @@ GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC __glewCompressedTexSubImage2 GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC __glewCompressedTexSubImage3DARB; GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXIMAGEARBPROC __glewGetCompressedTexImageARB; +GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVPROC __glewGetMultisamplefv; +GLEW_FUN_EXPORT PFNGLSAMPLEMASKIPROC __glewSampleMaski; +GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLEPROC __glewTexImage2DMultisample; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLEPROC __glewTexImage3DMultisample; + +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VPROC __glewGetQueryObjecti64v; +GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VPROC __glewGetQueryObjectui64v; +GLEW_FUN_EXPORT PFNGLQUERYCOUNTERPROC __glewQueryCounter; + +GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKPROC __glewBindTransformFeedback; +GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSPROC __glewDeleteTransformFeedbacks; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKPROC __glewDrawTransformFeedback; +GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSPROC __glewGenTransformFeedbacks; +GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKPROC __glewIsTransformFeedback; +GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKPROC __glewPauseTransformFeedback; +GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKPROC __glewResumeTransformFeedback; + +GLEW_FUN_EXPORT PFNGLBEGINQUERYINDEXEDPROC __glewBeginQueryIndexed; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC __glewDrawTransformFeedbackStream; +GLEW_FUN_EXPORT PFNGLENDQUERYINDEXEDPROC __glewEndQueryIndexed; +GLEW_FUN_EXPORT PFNGLGETQUERYINDEXEDIVPROC __glewGetQueryIndexediv; + GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXDARBPROC __glewLoadTransposeMatrixdARB; GLEW_FUN_EXPORT PFNGLLOADTRANSPOSEMATRIXFARBPROC __glewLoadTransposeMatrixfARB; GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXDARBPROC __glewMultTransposeMatrixdARB; GLEW_FUN_EXPORT PFNGLMULTTRANSPOSEMATRIXFARBPROC __glewMultTransposeMatrixfARB; +GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEPROC __glewBindBufferBase; +GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEPROC __glewBindBufferRange; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC __glewGetActiveUniformBlockName; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMBLOCKIVPROC __glewGetActiveUniformBlockiv; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMNAMEPROC __glewGetActiveUniformName; +GLEW_FUN_EXPORT PFNGLGETACTIVEUNIFORMSIVPROC __glewGetActiveUniformsiv; +GLEW_FUN_EXPORT PFNGLGETINTEGERI_VPROC __glewGetIntegeri_v; +GLEW_FUN_EXPORT PFNGLGETUNIFORMBLOCKINDEXPROC __glewGetUniformBlockIndex; +GLEW_FUN_EXPORT PFNGLGETUNIFORMINDICESPROC __glewGetUniformIndices; +GLEW_FUN_EXPORT PFNGLUNIFORMBLOCKBINDINGPROC __glewUniformBlockBinding; + +GLEW_FUN_EXPORT PFNGLBINDVERTEXARRAYPROC __glewBindVertexArray; +GLEW_FUN_EXPORT PFNGLDELETEVERTEXARRAYSPROC __glewDeleteVertexArrays; +GLEW_FUN_EXPORT PFNGLGENVERTEXARRAYSPROC __glewGenVertexArrays; +GLEW_FUN_EXPORT PFNGLISVERTEXARRAYPROC __glewIsVertexArray; + +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVPROC __glewGetVertexAttribLdv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DPROC __glewVertexAttribL1d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVPROC __glewVertexAttribL1dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DPROC __glewVertexAttribL2d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVPROC __glewVertexAttribL2dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DPROC __glewVertexAttribL3d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVPROC __glewVertexAttribL3dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DPROC __glewVertexAttribL4d; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVPROC __glewVertexAttribL4dv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTERPROC __glewVertexAttribLPointer; + GLEW_FUN_EXPORT PFNGLVERTEXBLENDARBPROC __glewVertexBlendARB; GLEW_FUN_EXPORT PFNGLWEIGHTPOINTERARBPROC __glewWeightPointerARB; GLEW_FUN_EXPORT PFNGLWEIGHTBVARBPROC __glewWeightbvARB; @@ -9500,6 +13751,56 @@ GLEW_FUN_EXPORT PFNGLBINDATTRIBLOCATIONARBPROC __glewBindAttribLocationARB; GLEW_FUN_EXPORT PFNGLGETACTIVEATTRIBARBPROC __glewGetActiveAttribARB; GLEW_FUN_EXPORT PFNGLGETATTRIBLOCATIONARBPROC __glewGetAttribLocationARB; +GLEW_FUN_EXPORT PFNGLCOLORP3UIPROC __glewColorP3ui; +GLEW_FUN_EXPORT PFNGLCOLORP3UIVPROC __glewColorP3uiv; +GLEW_FUN_EXPORT PFNGLCOLORP4UIPROC __glewColorP4ui; +GLEW_FUN_EXPORT PFNGLCOLORP4UIVPROC __glewColorP4uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIPROC __glewMultiTexCoordP1ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP1UIVPROC __glewMultiTexCoordP1uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIPROC __glewMultiTexCoordP2ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP2UIVPROC __glewMultiTexCoordP2uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIPROC __glewMultiTexCoordP3ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP3UIVPROC __glewMultiTexCoordP3uiv; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIPROC __glewMultiTexCoordP4ui; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDP4UIVPROC __glewMultiTexCoordP4uiv; +GLEW_FUN_EXPORT PFNGLNORMALP3UIPROC __glewNormalP3ui; +GLEW_FUN_EXPORT PFNGLNORMALP3UIVPROC __glewNormalP3uiv; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIPROC __glewSecondaryColorP3ui; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORP3UIVPROC __glewSecondaryColorP3uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIPROC __glewTexCoordP1ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP1UIVPROC __glewTexCoordP1uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIPROC __glewTexCoordP2ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP2UIVPROC __glewTexCoordP2uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIPROC __glewTexCoordP3ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP3UIVPROC __glewTexCoordP3uiv; +GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIPROC __glewTexCoordP4ui; +GLEW_FUN_EXPORT PFNGLTEXCOORDP4UIVPROC __glewTexCoordP4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIPROC __glewVertexAttribP1ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP1UIVPROC __glewVertexAttribP1uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIPROC __glewVertexAttribP2ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP2UIVPROC __glewVertexAttribP2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIPROC __glewVertexAttribP3ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP3UIVPROC __glewVertexAttribP3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIPROC __glewVertexAttribP4ui; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBP4UIVPROC __glewVertexAttribP4uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP2UIPROC __glewVertexP2ui; +GLEW_FUN_EXPORT PFNGLVERTEXP2UIVPROC __glewVertexP2uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP3UIPROC __glewVertexP3ui; +GLEW_FUN_EXPORT PFNGLVERTEXP3UIVPROC __glewVertexP3uiv; +GLEW_FUN_EXPORT PFNGLVERTEXP4UIPROC __glewVertexP4ui; +GLEW_FUN_EXPORT PFNGLVERTEXP4UIVPROC __glewVertexP4uiv; + +GLEW_FUN_EXPORT PFNGLDEPTHRANGEARRAYVPROC __glewDepthRangeArrayv; +GLEW_FUN_EXPORT PFNGLDEPTHRANGEINDEXEDPROC __glewDepthRangeIndexed; +GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VPROC __glewGetDoublei_v; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VPROC __glewGetFloati_v; +GLEW_FUN_EXPORT PFNGLSCISSORARRAYVPROC __glewScissorArrayv; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDPROC __glewScissorIndexed; +GLEW_FUN_EXPORT PFNGLSCISSORINDEXEDVPROC __glewScissorIndexedv; +GLEW_FUN_EXPORT PFNGLVIEWPORTARRAYVPROC __glewViewportArrayv; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFPROC __glewViewportIndexedf; +GLEW_FUN_EXPORT PFNGLVIEWPORTINDEXEDFVPROC __glewViewportIndexedfv; + GLEW_FUN_EXPORT PFNGLWINDOWPOS2DARBPROC __glewWindowPos2dARB; GLEW_FUN_EXPORT PFNGLWINDOWPOS2DVARBPROC __glewWindowPos2dvARB; GLEW_FUN_EXPORT PFNGLWINDOWPOS2FARBPROC __glewWindowPos2fARB; @@ -9546,8 +13847,8 @@ GLEW_FUN_EXPORT PFNGLSETFRAGMENTSHADERCONSTANTATIPROC __glewSetFragmentShaderCon GLEW_FUN_EXPORT PFNGLMAPOBJECTBUFFERATIPROC __glewMapObjectBufferATI; GLEW_FUN_EXPORT PFNGLUNMAPOBJECTBUFFERATIPROC __glewUnmapObjectBufferATI; -GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glPNTrianglewesfATI; -GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glPNTrianglewesiATI; +GLEW_FUN_EXPORT PFNGLPNTRIANGLESFATIPROC __glewPNTrianglesfATI; +GLEW_FUN_EXPORT PFNGLPNTRIANGLESIATIPROC __glewPNTrianglesiATI; GLEW_FUN_EXPORT PFNGLSTENCILFUNCSEPARATEATIPROC __glewStencilFuncSeparateATI; GLEW_FUN_EXPORT PFNGLSTENCILOPSEPARATEATIPROC __glewStencilOpSeparateATI; @@ -9653,6 +13954,220 @@ GLEW_FUN_EXPORT PFNGLCULLPARAMETERFVEXTPROC __glewCullParameterfvEXT; GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSEXTPROC __glewDepthBoundsEXT; +GLEW_FUN_EXPORT PFNGLBINDMULTITEXTUREEXTPROC __glewBindMultiTextureEXT; +GLEW_FUN_EXPORT PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC __glewCheckNamedFramebufferStatusEXT; +GLEW_FUN_EXPORT PFNGLCLIENTATTRIBDEFAULTEXTPROC __glewClientAttribDefaultEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC __glewCompressedMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC __glewCompressedMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC __glewCompressedMultiTexImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC __glewCompressedMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC __glewCompressedMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC __glewCompressedMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC __glewCompressedTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC __glewCompressedTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC __glewCompressedTextureImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC __glewCompressedTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC __glewCompressedTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC __glewCompressedTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE1DEXTPROC __glewCopyMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXIMAGE2DEXTPROC __glewCopyMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC __glewCopyMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC __glewCopyMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC __glewCopyMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE1DEXTPROC __glewCopyTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTUREIMAGE2DEXTPROC __glewCopyTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC __glewCopyTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC __glewCopyTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC __glewCopyTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC __glewDisableClientStateIndexedEXT; +GLEW_FUN_EXPORT PFNGLDISABLECLIENTSTATEIEXTPROC __glewDisableClientStateiEXT; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC __glewDisableVertexArrayAttribEXT; +GLEW_FUN_EXPORT PFNGLDISABLEVERTEXARRAYEXTPROC __glewDisableVertexArrayEXT; +GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEINDEXEDEXTPROC __glewEnableClientStateIndexedEXT; +GLEW_FUN_EXPORT PFNGLENABLECLIENTSTATEIEXTPROC __glewEnableClientStateiEXT; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYATTRIBEXTPROC __glewEnableVertexArrayAttribEXT; +GLEW_FUN_EXPORT PFNGLENABLEVERTEXARRAYEXTPROC __glewEnableVertexArrayEXT; +GLEW_FUN_EXPORT PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC __glewFlushMappedNamedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC __glewFramebufferDrawBufferEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC __glewFramebufferDrawBuffersEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERREADBUFFEREXTPROC __glewFramebufferReadBufferEXT; +GLEW_FUN_EXPORT PFNGLGENERATEMULTITEXMIPMAPEXTPROC __glewGenerateMultiTexMipmapEXT; +GLEW_FUN_EXPORT PFNGLGENERATETEXTUREMIPMAPEXTPROC __glewGenerateTextureMipmapEXT; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC __glewGetCompressedMultiTexImageEXT; +GLEW_FUN_EXPORT PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC __glewGetCompressedTextureImageEXT; +GLEW_FUN_EXPORT PFNGLGETDOUBLEINDEXEDVEXTPROC __glewGetDoubleIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETDOUBLEI_VEXTPROC __glewGetDoublei_vEXT; +GLEW_FUN_EXPORT PFNGLGETFLOATINDEXEDVEXTPROC __glewGetFloatIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETFLOATI_VEXTPROC __glewGetFloati_vEXT; +GLEW_FUN_EXPORT PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC __glewGetFramebufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXENVFVEXTPROC __glewGetMultiTexEnvfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXENVIVEXTPROC __glewGetMultiTexEnvivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENDVEXTPROC __glewGetMultiTexGendvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENFVEXTPROC __glewGetMultiTexGenfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXGENIVEXTPROC __glewGetMultiTexGenivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXIMAGEEXTPROC __glewGetMultiTexImageEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC __glewGetMultiTexLevelParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC __glewGetMultiTexLevelParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIIVEXTPROC __glewGetMultiTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIUIVEXTPROC __glewGetMultiTexParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERFVEXTPROC __glewGetMultiTexParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETMULTITEXPARAMETERIVEXTPROC __glewGetMultiTexParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC __glewGetNamedBufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPOINTERVEXTPROC __glewGetNamedBufferPointervEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERSUBDATAEXTPROC __glewGetNamedBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC __glewGetNamedFramebufferAttachmentParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC __glewGetNamedProgramLocalParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC __glewGetNamedProgramLocalParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC __glewGetNamedProgramLocalParameterdvEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC __glewGetNamedProgramLocalParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMSTRINGEXTPROC __glewGetNamedProgramStringEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDPROGRAMIVEXTPROC __glewGetNamedProgramivEXT; +GLEW_FUN_EXPORT PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC __glewGetNamedRenderbufferParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETPOINTERINDEXEDVEXTPROC __glewGetPointerIndexedvEXT; +GLEW_FUN_EXPORT PFNGLGETPOINTERI_VEXTPROC __glewGetPointeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREIMAGEEXTPROC __glewGetTextureImageEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC __glewGetTextureLevelParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC __glewGetTextureLevelParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIIVEXTPROC __glewGetTextureParameterIivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIUIVEXTPROC __glewGetTextureParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERFVEXTPROC __glewGetTextureParameterfvEXT; +GLEW_FUN_EXPORT PFNGLGETTEXTUREPARAMETERIVEXTPROC __glewGetTextureParameterivEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC __glewGetVertexArrayIntegeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYINTEGERVEXTPROC __glewGetVertexArrayIntegervEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC __glewGetVertexArrayPointeri_vEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXARRAYPOINTERVEXTPROC __glewGetVertexArrayPointervEXT; +GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFEREXTPROC __glewMapNamedBufferEXT; +GLEW_FUN_EXPORT PFNGLMAPNAMEDBUFFERRANGEEXTPROC __glewMapNamedBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLMATRIXFRUSTUMEXTPROC __glewMatrixFrustumEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADIDENTITYEXTPROC __glewMatrixLoadIdentityEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEDEXTPROC __glewMatrixLoadTransposedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADTRANSPOSEFEXTPROC __glewMatrixLoadTransposefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADDEXTPROC __glewMatrixLoaddEXT; +GLEW_FUN_EXPORT PFNGLMATRIXLOADFEXTPROC __glewMatrixLoadfEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEDEXTPROC __glewMatrixMultTransposedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTTRANSPOSEFEXTPROC __glewMatrixMultTransposefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTDEXTPROC __glewMatrixMultdEXT; +GLEW_FUN_EXPORT PFNGLMATRIXMULTFEXTPROC __glewMatrixMultfEXT; +GLEW_FUN_EXPORT PFNGLMATRIXORTHOEXTPROC __glewMatrixOrthoEXT; +GLEW_FUN_EXPORT PFNGLMATRIXPOPEXTPROC __glewMatrixPopEXT; +GLEW_FUN_EXPORT PFNGLMATRIXPUSHEXTPROC __glewMatrixPushEXT; +GLEW_FUN_EXPORT PFNGLMATRIXROTATEDEXTPROC __glewMatrixRotatedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXROTATEFEXTPROC __glewMatrixRotatefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXSCALEDEXTPROC __glewMatrixScaledEXT; +GLEW_FUN_EXPORT PFNGLMATRIXSCALEFEXTPROC __glewMatrixScalefEXT; +GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEDEXTPROC __glewMatrixTranslatedEXT; +GLEW_FUN_EXPORT PFNGLMATRIXTRANSLATEFEXTPROC __glewMatrixTranslatefEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXBUFFEREXTPROC __glewMultiTexBufferEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXCOORDPOINTEREXTPROC __glewMultiTexCoordPointerEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVFEXTPROC __glewMultiTexEnvfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVFVEXTPROC __glewMultiTexEnvfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVIEXTPROC __glewMultiTexEnviEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXENVIVEXTPROC __glewMultiTexEnvivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENDEXTPROC __glewMultiTexGendEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENDVEXTPROC __glewMultiTexGendvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENFEXTPROC __glewMultiTexGenfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENFVEXTPROC __glewMultiTexGenfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENIEXTPROC __glewMultiTexGeniEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXGENIVEXTPROC __glewMultiTexGenivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE1DEXTPROC __glewMultiTexImage1DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE2DEXTPROC __glewMultiTexImage2DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXIMAGE3DEXTPROC __glewMultiTexImage3DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIIVEXTPROC __glewMultiTexParameterIivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIUIVEXTPROC __glewMultiTexParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFEXTPROC __glewMultiTexParameterfEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERFVEXTPROC __glewMultiTexParameterfvEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIEXTPROC __glewMultiTexParameteriEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXPARAMETERIVEXTPROC __glewMultiTexParameterivEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXRENDERBUFFEREXTPROC __glewMultiTexRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE1DEXTPROC __glewMultiTexSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE2DEXTPROC __glewMultiTexSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLMULTITEXSUBIMAGE3DEXTPROC __glewMultiTexSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERDATAEXTPROC __glewNamedBufferDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDBUFFERSUBDATAEXTPROC __glewNamedBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC __glewNamedCopyBufferSubDataEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC __glewNamedFramebufferRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC __glewNamedFramebufferTexture1DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC __glewNamedFramebufferTexture2DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC __glewNamedFramebufferTexture3DEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC __glewNamedFramebufferTextureEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC __glewNamedFramebufferTextureFaceEXT; +GLEW_FUN_EXPORT PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC __glewNamedFramebufferTextureLayerEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC __glewNamedProgramLocalParameter4dEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC __glewNamedProgramLocalParameter4dvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC __glewNamedProgramLocalParameter4fEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC __glewNamedProgramLocalParameter4fvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC __glewNamedProgramLocalParameterI4iEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC __glewNamedProgramLocalParameterI4ivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC __glewNamedProgramLocalParameterI4uiEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC __glewNamedProgramLocalParameterI4uivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC __glewNamedProgramLocalParameters4fvEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC __glewNamedProgramLocalParametersI4ivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC __glewNamedProgramLocalParametersI4uivEXT; +GLEW_FUN_EXPORT PFNGLNAMEDPROGRAMSTRINGEXTPROC __glewNamedProgramStringEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC __glewNamedRenderbufferStorageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC __glewNamedRenderbufferStorageMultisampleCoverageEXT; +GLEW_FUN_EXPORT PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC __glewNamedRenderbufferStorageMultisampleEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FEXTPROC __glewProgramUniform1fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1FVEXTPROC __glewProgramUniform1fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IEXTPROC __glewProgramUniform1iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1IVEXTPROC __glewProgramUniform1ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIEXTPROC __glewProgramUniform1uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UIVEXTPROC __glewProgramUniform1uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FEXTPROC __glewProgramUniform2fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2FVEXTPROC __glewProgramUniform2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IEXTPROC __glewProgramUniform2iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2IVEXTPROC __glewProgramUniform2ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIEXTPROC __glewProgramUniform2uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UIVEXTPROC __glewProgramUniform2uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FEXTPROC __glewProgramUniform3fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3FVEXTPROC __glewProgramUniform3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IEXTPROC __glewProgramUniform3iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3IVEXTPROC __glewProgramUniform3ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIEXTPROC __glewProgramUniform3uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UIVEXTPROC __glewProgramUniform3uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FEXTPROC __glewProgramUniform4fEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4FVEXTPROC __glewProgramUniform4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IEXTPROC __glewProgramUniform4iEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4IVEXTPROC __glewProgramUniform4ivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIEXTPROC __glewProgramUniform4uiEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UIVEXTPROC __glewProgramUniform4uivEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC __glewProgramUniformMatrix2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC __glewProgramUniformMatrix2x3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC __glewProgramUniformMatrix2x4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC __glewProgramUniformMatrix3fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC __glewProgramUniformMatrix3x2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC __glewProgramUniformMatrix3x4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC __glewProgramUniformMatrix4fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC __glewProgramUniformMatrix4x2fvEXT; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC __glewProgramUniformMatrix4x3fvEXT; +GLEW_FUN_EXPORT PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC __glewPushClientAttribDefaultEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREBUFFEREXTPROC __glewTextureBufferEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE1DEXTPROC __glewTextureImage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DEXTPROC __glewTextureImage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DEXTPROC __glewTextureImage3DEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIIVEXTPROC __glewTextureParameterIivEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIUIVEXTPROC __glewTextureParameterIuivEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFEXTPROC __glewTextureParameterfEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERFVEXTPROC __glewTextureParameterfvEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIEXTPROC __glewTextureParameteriEXT; +GLEW_FUN_EXPORT PFNGLTEXTUREPARAMETERIVEXTPROC __glewTextureParameterivEXT; +GLEW_FUN_EXPORT PFNGLTEXTURERENDERBUFFEREXTPROC __glewTextureRenderbufferEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE1DEXTPROC __glewTextureSubImage1DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE2DEXTPROC __glewTextureSubImage2DEXT; +GLEW_FUN_EXPORT PFNGLTEXTURESUBIMAGE3DEXTPROC __glewTextureSubImage3DEXT; +GLEW_FUN_EXPORT PFNGLUNMAPNAMEDBUFFEREXTPROC __glewUnmapNamedBufferEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYCOLOROFFSETEXTPROC __glewVertexArrayColorOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC __glewVertexArrayEdgeFlagOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC __glewVertexArrayFogCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYINDEXOFFSETEXTPROC __glewVertexArrayIndexOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC __glewVertexArrayMultiTexCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYNORMALOFFSETEXTPROC __glewVertexArrayNormalOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC __glewVertexArraySecondaryColorOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC __glewVertexArrayTexCoordOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC __glewVertexArrayVertexAttribIOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC __glewVertexArrayVertexAttribOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC __glewVertexArrayVertexOffsetEXT; + GLEW_FUN_EXPORT PFNGLCOLORMASKINDEXEDEXTPROC __glewColorMaskIndexedEXT; GLEW_FUN_EXPORT PFNGLDISABLEINDEXEDEXTPROC __glewDisableIndexedEXT; GLEW_FUN_EXPORT PFNGLENABLEINDEXEDEXTPROC __glewEnableIndexedEXT; @@ -9714,7 +14229,6 @@ GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEEXTPROC __glewRenderbufferStorageEXT; GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREEXTPROC __glewFramebufferTextureEXT; GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC __glewFramebufferTextureFaceEXT; -GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; GLEW_FUN_EXPORT PFNGLPROGRAMPARAMETERIEXTPROC __glewProgramParameteriEXT; GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERS4FVEXTPROC __glewProgramEnvParameters4fvEXT; @@ -9797,6 +14311,8 @@ GLEW_FUN_EXPORT PFNGLPOINTPARAMETERFVEXTPROC __glewPointParameterfvEXT; GLEW_FUN_EXPORT PFNGLPOLYGONOFFSETEXTPROC __glewPolygonOffsetEXT; +GLEW_FUN_EXPORT PFNGLPROVOKINGVERTEXEXTPROC __glewProvokingVertexEXT; + GLEW_FUN_EXPORT PFNGLBEGINSCENEEXTPROC __glewBeginSceneEXT; GLEW_FUN_EXPORT PFNGLENDSCENEEXTPROC __glewEndSceneEXT; @@ -9818,6 +14334,13 @@ GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USEXTPROC __glewSecondaryColor3usEXT; GLEW_FUN_EXPORT PFNGLSECONDARYCOLOR3USVEXTPROC __glewSecondaryColor3usvEXT; GLEW_FUN_EXPORT PFNGLSECONDARYCOLORPOINTEREXTPROC __glewSecondaryColorPointerEXT; +GLEW_FUN_EXPORT PFNGLACTIVEPROGRAMEXTPROC __glewActiveProgramEXT; +GLEW_FUN_EXPORT PFNGLCREATESHADERPROGRAMEXTPROC __glewCreateShaderProgramEXT; +GLEW_FUN_EXPORT PFNGLUSESHADERPROGRAMEXTPROC __glewUseShaderProgramEXT; + +GLEW_FUN_EXPORT PFNGLBINDIMAGETEXTUREEXTPROC __glewBindImageTextureEXT; +GLEW_FUN_EXPORT PFNGLMEMORYBARRIEREXTPROC __glewMemoryBarrierEXT; + GLEW_FUN_EXPORT PFNGLACTIVESTENCILFACEEXTPROC __glewActiveStencilFaceEXT; GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE1DEXTPROC __glewTexSubImage1DEXT; @@ -9826,6 +14349,8 @@ GLEW_FUN_EXPORT PFNGLTEXSUBIMAGE3DEXTPROC __glewTexSubImage3DEXT; GLEW_FUN_EXPORT PFNGLTEXIMAGE3DEXTPROC __glewTexImage3DEXT; +GLEW_FUN_EXPORT PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC __glewFramebufferTextureLayerEXT; + GLEW_FUN_EXPORT PFNGLTEXBUFFEREXTPROC __glewTexBufferEXT; GLEW_FUN_EXPORT PFNGLCLEARCOLORIIEXTPROC __glewClearColorIiEXT; @@ -9847,16 +14372,35 @@ GLEW_FUN_EXPORT PFNGLTEXTURENORMALEXTPROC __glewTextureNormalEXT; GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTI64VEXTPROC __glewGetQueryObjecti64vEXT; GLEW_FUN_EXPORT PFNGLGETQUERYOBJECTUI64VEXTPROC __glewGetQueryObjectui64vEXT; +GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKEXTPROC __glewBeginTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFERBASEEXTPROC __glewBindBufferBaseEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFEROFFSETEXTPROC __glewBindBufferOffsetEXT; +GLEW_FUN_EXPORT PFNGLBINDBUFFERRANGEEXTPROC __glewBindBufferRangeEXT; +GLEW_FUN_EXPORT PFNGLENDTRANSFORMFEEDBACKEXTPROC __glewEndTransformFeedbackEXT; +GLEW_FUN_EXPORT PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC __glewGetTransformFeedbackVaryingEXT; +GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC __glewTransformFeedbackVaryingsEXT; + GLEW_FUN_EXPORT PFNGLARRAYELEMENTEXTPROC __glewArrayElementEXT; GLEW_FUN_EXPORT PFNGLCOLORPOINTEREXTPROC __glewColorPointerEXT; GLEW_FUN_EXPORT PFNGLDRAWARRAYSEXTPROC __glewDrawArraysEXT; GLEW_FUN_EXPORT PFNGLEDGEFLAGPOINTEREXTPROC __glewEdgeFlagPointerEXT; -GLEW_FUN_EXPORT PFNGLGETPOINTERVEXTPROC __glewGetPointervEXT; GLEW_FUN_EXPORT PFNGLINDEXPOINTEREXTPROC __glewIndexPointerEXT; GLEW_FUN_EXPORT PFNGLNORMALPOINTEREXTPROC __glewNormalPointerEXT; GLEW_FUN_EXPORT PFNGLTEXCOORDPOINTEREXTPROC __glewTexCoordPointerEXT; GLEW_FUN_EXPORT PFNGLVERTEXPOINTEREXTPROC __glewVertexPointerEXT; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLDVEXTPROC __glewGetVertexAttribLdvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC __glewVertexArrayVertexAttribLOffsetEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DEXTPROC __glewVertexAttribL1dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1DVEXTPROC __glewVertexAttribL1dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DEXTPROC __glewVertexAttribL2dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2DVEXTPROC __glewVertexAttribL2dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DEXTPROC __glewVertexAttribL3dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3DVEXTPROC __glewVertexAttribL3dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DEXTPROC __glewVertexAttribL4dEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4DVEXTPROC __glewVertexAttribL4dvEXT; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLPOINTEREXTPROC __glewVertexAttribLPointerEXT; + GLEW_FUN_EXPORT PFNGLBEGINVERTEXSHADEREXTPROC __glewBeginVertexShaderEXT; GLEW_FUN_EXPORT PFNGLBINDLIGHTPARAMETEREXTPROC __glewBindLightParameterEXT; GLEW_FUN_EXPORT PFNGLBINDMATERIALPARAMETEREXTPROC __glewBindMaterialParameterEXT; @@ -9904,6 +14448,10 @@ GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTPOINTEREXTPROC __glewVertexWeightPointerEXT; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFEXTPROC __glewVertexWeightfEXT; GLEW_FUN_EXPORT PFNGLVERTEXWEIGHTFVEXTPROC __glewVertexWeightfvEXT; +GLEW_FUN_EXPORT PFNGLIMPORTSYNCEXTPROC __glewImportSyncEXT; + +GLEW_FUN_EXPORT PFNGLFRAMETERMINATORGREMEDYPROC __glewFrameTerminatorGREMEDY; + GLEW_FUN_EXPORT PFNGLSTRINGMARKERGREMEDYPROC __glewStringMarkerGREMEDY; GLEW_FUN_EXPORT PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC __glewGetImageTransformParameterfvHP; @@ -9966,6 +14514,11 @@ GLEW_FUN_EXPORT PFNGLWINDOWPOS4IVMESAPROC __glewWindowPos4ivMESA; GLEW_FUN_EXPORT PFNGLWINDOWPOS4SMESAPROC __glewWindowPos4sMESA; GLEW_FUN_EXPORT PFNGLWINDOWPOS4SVMESAPROC __glewWindowPos4svMESA; +GLEW_FUN_EXPORT PFNGLBEGINCONDITIONALRENDERNVPROC __glewBeginConditionalRenderNV; +GLEW_FUN_EXPORT PFNGLENDCONDITIONALRENDERNVPROC __glewEndConditionalRenderNV; + +GLEW_FUN_EXPORT PFNGLCOPYIMAGESUBDATANVPROC __glewCopyImageSubDataNV; + GLEW_FUN_EXPORT PFNGLCLEARDEPTHDNVPROC __glewClearDepthdNV; GLEW_FUN_EXPORT PFNGLDEPTHBOUNDSDNVPROC __glewDepthBoundsdNV; GLEW_FUN_EXPORT PFNGLDEPTHRANGEDNVPROC __glewDepthRangedNV; @@ -9980,6 +14533,10 @@ GLEW_FUN_EXPORT PFNGLMAPCONTROLPOINTSNVPROC __glewMapControlPointsNV; GLEW_FUN_EXPORT PFNGLMAPPARAMETERFVNVPROC __glewMapParameterfvNV; GLEW_FUN_EXPORT PFNGLMAPPARAMETERIVNVPROC __glewMapParameterivNV; +GLEW_FUN_EXPORT PFNGLGETMULTISAMPLEFVNVPROC __glewGetMultisamplefvNV; +GLEW_FUN_EXPORT PFNGLSAMPLEMASKINDEXEDNVPROC __glewSampleMaskIndexedNV; +GLEW_FUN_EXPORT PFNGLTEXRENDERBUFFERNVPROC __glewTexRenderbufferNV; + GLEW_FUN_EXPORT PFNGLDELETEFENCESNVPROC __glewDeleteFencesNV; GLEW_FUN_EXPORT PFNGLFINISHFENCENVPROC __glewFinishFenceNV; GLEW_FUN_EXPORT PFNGLGENFENCESNVPROC __glewGenFencesNV; @@ -9997,6 +14554,8 @@ GLEW_FUN_EXPORT PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC __glewProgramNamedParameter4 GLEW_FUN_EXPORT PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC __glewRenderbufferStorageMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; + GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4INVPROC __glewProgramEnvParameterI4iNV; GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4IVNVPROC __glewProgramEnvParameterI4ivNV; GLEW_FUN_EXPORT PFNGLPROGRAMENVPARAMETERI4UINVPROC __glewProgramEnvParameterI4uiNV; @@ -10009,7 +14568,41 @@ GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UINVPROC __glewProgramLocalParameter GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC __glewProgramLocalParameterI4uivNV; GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC __glewProgramLocalParametersI4ivNV; GLEW_FUN_EXPORT PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC __glewProgramLocalParametersI4uivNV; -GLEW_FUN_EXPORT PFNGLPROGRAMVERTEXLIMITNVPROC __glewProgramVertexLimitNV; + +GLEW_FUN_EXPORT PFNGLGETUNIFORMI64VNVPROC __glewGetUniformi64vNV; +GLEW_FUN_EXPORT PFNGLGETUNIFORMUI64VNVPROC __glewGetUniformui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64NVPROC __glewProgramUniform1i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1I64VNVPROC __glewProgramUniform1i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64NVPROC __glewProgramUniform1ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM1UI64VNVPROC __glewProgramUniform1ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64NVPROC __glewProgramUniform2i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2I64VNVPROC __glewProgramUniform2i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64NVPROC __glewProgramUniform2ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM2UI64VNVPROC __glewProgramUniform2ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64NVPROC __glewProgramUniform3i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3I64VNVPROC __glewProgramUniform3i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64NVPROC __glewProgramUniform3ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM3UI64VNVPROC __glewProgramUniform3ui64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64NVPROC __glewProgramUniform4i64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4I64VNVPROC __glewProgramUniform4i64vNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64NVPROC __glewProgramUniform4ui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORM4UI64VNVPROC __glewProgramUniform4ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM1I64NVPROC __glewUniform1i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM1I64VNVPROC __glewUniform1i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM1UI64NVPROC __glewUniform1ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM1UI64VNVPROC __glewUniform1ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM2I64NVPROC __glewUniform2i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM2I64VNVPROC __glewUniform2i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM2UI64NVPROC __glewUniform2ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM2UI64VNVPROC __glewUniform2ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM3I64NVPROC __glewUniform3i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM3I64VNVPROC __glewUniform3i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM3UI64NVPROC __glewUniform3ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM3UI64VNVPROC __glewUniform3ui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM4I64NVPROC __glewUniform4i64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM4I64VNVPROC __glewUniform4i64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORM4UI64NVPROC __glewUniform4ui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORM4UI64VNVPROC __glewUniform4ui64vNV; GLEW_FUN_EXPORT PFNGLCOLOR3HNVPROC __glewColor3hNV; GLEW_FUN_EXPORT PFNGLCOLOR3HVNVPROC __glewColor3hvNV; @@ -10076,6 +14669,13 @@ GLEW_FUN_EXPORT PFNGLPIXELDATARANGENVPROC __glewPixelDataRangeNV; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERINVPROC __glewPointParameteriNV; GLEW_FUN_EXPORT PFNGLPOINTPARAMETERIVNVPROC __glewPointParameterivNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOI64VNVPROC __glewGetVideoi64vNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOIVNVPROC __glewGetVideoivNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOUI64VNVPROC __glewGetVideoui64vNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOUIVNVPROC __glewGetVideouivNV; +GLEW_FUN_EXPORT PFNGLPRESENTFRAMEDUALFILLNVPROC __glewPresentFrameDualFillNV; +GLEW_FUN_EXPORT PFNGLPRESENTFRAMEKEYEDNVPROC __glewPresentFrameKeyedNV; + GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTINDEXNVPROC __glewPrimitiveRestartIndexNV; GLEW_FUN_EXPORT PFNGLPRIMITIVERESTARTNVPROC __glewPrimitiveRestartNV; @@ -10096,6 +14696,29 @@ GLEW_FUN_EXPORT PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC __glewGetFinalCombin GLEW_FUN_EXPORT PFNGLCOMBINERSTAGEPARAMETERFVNVPROC __glewCombinerStageParameterfvNV; GLEW_FUN_EXPORT PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC __glewGetCombinerStageParameterfvNV; +GLEW_FUN_EXPORT PFNGLGETBUFFERPARAMETERUI64VNVPROC __glewGetBufferParameterui64vNV; +GLEW_FUN_EXPORT PFNGLGETINTEGERUI64VNVPROC __glewGetIntegerui64vNV; +GLEW_FUN_EXPORT PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC __glewGetNamedBufferParameterui64vNV; +GLEW_FUN_EXPORT PFNGLISBUFFERRESIDENTNVPROC __glewIsBufferResidentNV; +GLEW_FUN_EXPORT PFNGLISNAMEDBUFFERRESIDENTNVPROC __glewIsNamedBufferResidentNV; +GLEW_FUN_EXPORT PFNGLMAKEBUFFERNONRESIDENTNVPROC __glewMakeBufferNonResidentNV; +GLEW_FUN_EXPORT PFNGLMAKEBUFFERRESIDENTNVPROC __glewMakeBufferResidentNV; +GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC __glewMakeNamedBufferNonResidentNV; +GLEW_FUN_EXPORT PFNGLMAKENAMEDBUFFERRESIDENTNVPROC __glewMakeNamedBufferResidentNV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64NVPROC __glewProgramUniformui64NV; +GLEW_FUN_EXPORT PFNGLPROGRAMUNIFORMUI64VNVPROC __glewProgramUniformui64vNV; +GLEW_FUN_EXPORT PFNGLUNIFORMUI64NVPROC __glewUniformui64NV; +GLEW_FUN_EXPORT PFNGLUNIFORMUI64VNVPROC __glewUniformui64vNV; + +GLEW_FUN_EXPORT PFNGLTEXTUREBARRIERNVPROC __glewTextureBarrierNV; + +GLEW_FUN_EXPORT PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTexImage2DMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTexImage3DMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC __glewTextureImage2DMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC __glewTextureImage2DMultisampleNV; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC __glewTextureImage3DMultisampleCoverageNV; +GLEW_FUN_EXPORT PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC __glewTextureImage3DMultisampleNV; + GLEW_FUN_EXPORT PFNGLACTIVEVARYINGNVPROC __glewActiveVaryingNV; GLEW_FUN_EXPORT PFNGLBEGINTRANSFORMFEEDBACKNVPROC __glewBeginTransformFeedbackNV; GLEW_FUN_EXPORT PFNGLBINDBUFFERBASENVPROC __glewBindBufferBaseNV; @@ -10108,9 +14731,61 @@ GLEW_FUN_EXPORT PFNGLGETVARYINGLOCATIONNVPROC __glewGetVaryingLocationNV; GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC __glewTransformFeedbackAttribsNV; GLEW_FUN_EXPORT PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC __glewTransformFeedbackVaryingsNV; +GLEW_FUN_EXPORT PFNGLBINDTRANSFORMFEEDBACKNVPROC __glewBindTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLDELETETRANSFORMFEEDBACKSNVPROC __glewDeleteTransformFeedbacksNV; +GLEW_FUN_EXPORT PFNGLDRAWTRANSFORMFEEDBACKNVPROC __glewDrawTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLGENTRANSFORMFEEDBACKSNVPROC __glewGenTransformFeedbacksNV; +GLEW_FUN_EXPORT PFNGLISTRANSFORMFEEDBACKNVPROC __glewIsTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLPAUSETRANSFORMFEEDBACKNVPROC __glewPauseTransformFeedbackNV; +GLEW_FUN_EXPORT PFNGLRESUMETRANSFORMFEEDBACKNVPROC __glewResumeTransformFeedbackNV; + +GLEW_FUN_EXPORT PFNGLVDPAUFININVPROC __glewVDPAUFiniNV; +GLEW_FUN_EXPORT PFNGLVDPAUGETSURFACEIVNVPROC __glewVDPAUGetSurfaceivNV; +GLEW_FUN_EXPORT PFNGLVDPAUINITNVPROC __glewVDPAUInitNV; +GLEW_FUN_EXPORT PFNGLVDPAUISSURFACENVPROC __glewVDPAUIsSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUMAPSURFACESNVPROC __glewVDPAUMapSurfacesNV; +GLEW_FUN_EXPORT PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC __glewVDPAURegisterOutputSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUREGISTERVIDEOSURFACENVPROC __glewVDPAURegisterVideoSurfaceNV; +GLEW_FUN_EXPORT PFNGLVDPAUSURFACEACCESSNVPROC __glewVDPAUSurfaceAccessNV; +GLEW_FUN_EXPORT PFNGLVDPAUUNMAPSURFACESNVPROC __glewVDPAUUnmapSurfacesNV; +GLEW_FUN_EXPORT PFNGLVDPAUUNREGISTERSURFACENVPROC __glewVDPAUUnregisterSurfaceNV; + GLEW_FUN_EXPORT PFNGLFLUSHVERTEXARRAYRANGENVPROC __glewFlushVertexArrayRangeNV; GLEW_FUN_EXPORT PFNGLVERTEXARRAYRANGENVPROC __glewVertexArrayRangeNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLI64VNVPROC __glewGetVertexAttribLi64vNV; +GLEW_FUN_EXPORT PFNGLGETVERTEXATTRIBLUI64VNVPROC __glewGetVertexAttribLui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64NVPROC __glewVertexAttribL1i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1I64VNVPROC __glewVertexAttribL1i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64NVPROC __glewVertexAttribL1ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL1UI64VNVPROC __glewVertexAttribL1ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64NVPROC __glewVertexAttribL2i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2I64VNVPROC __glewVertexAttribL2i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64NVPROC __glewVertexAttribL2ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL2UI64VNVPROC __glewVertexAttribL2ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64NVPROC __glewVertexAttribL3i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3I64VNVPROC __glewVertexAttribL3i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64NVPROC __glewVertexAttribL3ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL3UI64VNVPROC __glewVertexAttribL3ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64NVPROC __glewVertexAttribL4i64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4I64VNVPROC __glewVertexAttribL4i64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64NVPROC __glewVertexAttribL4ui64NV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBL4UI64VNVPROC __glewVertexAttribL4ui64vNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBLFORMATNVPROC __glewVertexAttribLFormatNV; + +GLEW_FUN_EXPORT PFNGLBUFFERADDRESSRANGENVPROC __glewBufferAddressRangeNV; +GLEW_FUN_EXPORT PFNGLCOLORFORMATNVPROC __glewColorFormatNV; +GLEW_FUN_EXPORT PFNGLEDGEFLAGFORMATNVPROC __glewEdgeFlagFormatNV; +GLEW_FUN_EXPORT PFNGLFOGCOORDFORMATNVPROC __glewFogCoordFormatNV; +GLEW_FUN_EXPORT PFNGLGETINTEGERUI64I_VNVPROC __glewGetIntegerui64i_vNV; +GLEW_FUN_EXPORT PFNGLINDEXFORMATNVPROC __glewIndexFormatNV; +GLEW_FUN_EXPORT PFNGLNORMALFORMATNVPROC __glewNormalFormatNV; +GLEW_FUN_EXPORT PFNGLSECONDARYCOLORFORMATNVPROC __glewSecondaryColorFormatNV; +GLEW_FUN_EXPORT PFNGLTEXCOORDFORMATNVPROC __glewTexCoordFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBFORMATNVPROC __glewVertexAttribFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXATTRIBIFORMATNVPROC __glewVertexAttribIFormatNV; +GLEW_FUN_EXPORT PFNGLVERTEXFORMATNVPROC __glewVertexFormatNV; + GLEW_FUN_EXPORT PFNGLAREPROGRAMSRESIDENTNVPROC __glewAreProgramsResidentNV; GLEW_FUN_EXPORT PFNGLBINDPROGRAMNVPROC __glewBindProgramNV; GLEW_FUN_EXPORT PFNGLDELETEPROGRAMSNVPROC __glewDeleteProgramsNV; @@ -10176,6 +14851,19 @@ GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4FVNVPROC __glewVertexAttribs4fvNV; GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4SVNVPROC __glewVertexAttribs4svNV; GLEW_FUN_EXPORT PFNGLVERTEXATTRIBS4UBVNVPROC __glewVertexAttribs4ubvNV; +GLEW_FUN_EXPORT PFNGLBEGINVIDEOCAPTURENVPROC __glewBeginVideoCaptureNV; +GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC __glewBindVideoCaptureStreamBufferNV; +GLEW_FUN_EXPORT PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC __glewBindVideoCaptureStreamTextureNV; +GLEW_FUN_EXPORT PFNGLENDVIDEOCAPTURENVPROC __glewEndVideoCaptureNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMDVNVPROC __glewGetVideoCaptureStreamdvNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMFVNVPROC __glewGetVideoCaptureStreamfvNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTURESTREAMIVNVPROC __glewGetVideoCaptureStreamivNV; +GLEW_FUN_EXPORT PFNGLGETVIDEOCAPTUREIVNVPROC __glewGetVideoCaptureivNV; +GLEW_FUN_EXPORT PFNGLVIDEOCAPTURENVPROC __glewVideoCaptureNV; +GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC __glewVideoCaptureStreamParameterdvNV; +GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC __glewVideoCaptureStreamParameterfvNV; +GLEW_FUN_EXPORT PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC __glewVideoCaptureStreamParameterivNV; + GLEW_FUN_EXPORT PFNGLCLEARDEPTHFOESPROC __glewClearDepthfOES; GLEW_FUN_EXPORT PFNGLCLIPPLANEFOESPROC __glewClipPlanefOES; GLEW_FUN_EXPORT PFNGLDEPTHRANGEFOESPROC __glewDepthRangefOES; @@ -10322,60 +15010,144 @@ struct GLEWContextStruct GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2_1; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_3; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_4; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_5; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_0; GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_2_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_0; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_1; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_2; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_3_3; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_0; +GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_4_1; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_tbuffer; GLEW_VAR_EXPORT GLboolean __GLEW_3DFX_texture_compression_FXT1; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_blend_minmax_factor; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_conservative_depth; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_debug_output; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_depth_clamp_separate; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_draw_buffers_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_name_gen_delete; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_performance_monitor; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_sample_positions; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_seamless_cubemap_per_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_shader_stencil_export; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_texture_texture4; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_transform_feedback3_lines_triangles; +GLEW_VAR_EXPORT GLboolean __GLEW_AMD_vertex_shader_tessellator; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_aux_depth_stencil; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_client_storage; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_element_array; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_fence; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_float_pixels; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_flush_buffer_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_object_purgeable; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_pixel_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_rgb_422; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_row_bytes; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_specular_vector; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_texture_range; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_transform_hint; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_object; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_array_range; +GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_vertex_program_evaluators; GLEW_VAR_EXPORT GLboolean __GLEW_APPLE_ycbcr_422; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_ES2_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_blend_func_extended; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_cl_event; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_color_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_compatibility; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_copy_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_debug_output; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_buffer_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_depth_texture; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_buffers_blend; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_elements_base_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_indirect; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_draw_instanced; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_explicit_attrib_location; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_coord_conventions; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_program_shadow; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_fragment_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_framebuffer_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_geometry_shader4; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_get_program_binary; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader5; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_gpu_shader_fp64; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_pixel; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_half_float_vertex; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_imaging; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_instanced_arrays; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_map_buffer_range; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_matrix_palette; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_multitexture; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_occlusion_query2; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_pixel_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_parameters; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_provoking_vertex; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_robustness; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sample_shading; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sampler_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_seamless_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_separate_shader_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_bit_encoding; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_objects; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_precision; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_stencil_export; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_subroutine; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shader_texture_lod; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_100; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shading_language_include; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_shadow_ambient; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_sync; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_tessellation_shader; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_border_clamp; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_buffer_object_rgb32; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_bptc; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_compression_rgtc; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_cube_map_array; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_add; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_combine; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_crossbar; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_env_dot3; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_float; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_gather; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_mirrored_repeat; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_non_power_of_two; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_query_lod; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rectangle; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rg; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_rgb10_a2ui; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_texture_swizzle; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback2; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transform_feedback3; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_transpose_matrix; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_uniform_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_array_object; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_attrib_64bit; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_blend; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_buffer_object; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_program; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_shader; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_vertex_type_2_10_10_10_rev; +GLEW_VAR_EXPORT GLboolean __GLEW_ARB_viewport_array; GLEW_VAR_EXPORT GLboolean __GLEW_ARB_window_pos; GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_point_sprites; GLEW_VAR_EXPORT GLboolean __GLEW_ATIX_texture_env_combine3; @@ -10386,8 +15158,10 @@ GLEW_VAR_EXPORT GLboolean __GLEW_ATI_element_array; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_envmap_bumpmap; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_fragment_shader; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_map_object_buffer; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_meminfo; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_pn_triangles; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_separate_stencil; +GLEW_VAR_EXPORT GLboolean __GLEW_ATI_shader_texture_lod; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_text_fragment_shader; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_compression_3dc; GLEW_VAR_EXPORT GLboolean __GLEW_ATI_texture_env_combine3; @@ -10416,6 +15190,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_EXT_coordinate_frame; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_copy_texture; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_cull_vertex; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_depth_bounds_test; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_direct_state_access; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_buffers2; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_instanced; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_draw_range_elements; @@ -10446,10 +15221,13 @@ GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_pixel_transform_color_table; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_point_parameters; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_polygon_offset; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_provoking_vertex; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_rescale_normal; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_scene_marker; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_secondary_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_shader_objects; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_separate_specular_color; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shader_image_load_store; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shadow_funcs; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_shared_texture_palette; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_stencil_clear_tag; @@ -10478,11 +15256,19 @@ GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_object; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_perturb_normal; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_rectangle; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_sRGB_decode; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_shared_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_snorm; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_texture_swizzle; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_timer_query; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_transform_feedback; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_array_bgra; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_attrib_64bit; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_shader; GLEW_VAR_EXPORT GLboolean __GLEW_EXT_vertex_weighting; +GLEW_VAR_EXPORT GLboolean __GLEW_EXT_x11_sync_object; +GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_frame_terminator; GLEW_VAR_EXPORT GLboolean __GLEW_GREMEDY_string_marker; GLEW_VAR_EXPORT GLboolean __GLEW_HP_convolution_border_modes; GLEW_VAR_EXPORT GLboolean __GLEW_HP_image_transform; @@ -10504,12 +15290,16 @@ GLEW_VAR_EXPORT GLboolean __GLEW_MESA_pack_invert; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_resize_buffers; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_window_pos; GLEW_VAR_EXPORT GLboolean __GLEW_MESA_ycbcr_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_NVX_gpu_memory_info; GLEW_VAR_EXPORT GLboolean __GLEW_NV_blend_square; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_conditional_render; GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_depth_to_color; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_copy_image; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_buffer_float; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_clamp; GLEW_VAR_EXPORT GLboolean __GLEW_NV_depth_range_unclamped; GLEW_VAR_EXPORT GLboolean __GLEW_NV_evaluators; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_explicit_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fence; GLEW_VAR_EXPORT GLboolean __GLEW_NV_float_buffer; GLEW_VAR_EXPORT GLboolean __GLEW_NV_fog_distance; @@ -10521,35 +15311,50 @@ GLEW_VAR_EXPORT GLboolean __GLEW_NV_framebuffer_multisample_coverage; GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_program4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_geometry_shader4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program5; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_program_fp64; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_gpu_shader5; GLEW_VAR_EXPORT GLboolean __GLEW_NV_half_float; GLEW_VAR_EXPORT GLboolean __GLEW_NV_light_max_exponent; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_coverage; GLEW_VAR_EXPORT GLboolean __GLEW_NV_multisample_filter_hint; GLEW_VAR_EXPORT GLboolean __GLEW_NV_occlusion_query; GLEW_VAR_EXPORT GLboolean __GLEW_NV_packed_depth_stencil; GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_parameter_buffer_object2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_pixel_data_range; GLEW_VAR_EXPORT GLboolean __GLEW_NV_point_sprite; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_present_video; GLEW_VAR_EXPORT GLboolean __GLEW_NV_primitive_restart; GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners; GLEW_VAR_EXPORT GLboolean __GLEW_NV_register_combiners2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_shader_buffer_load; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_tessellation_program5; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_emboss; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texgen_reflection; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_barrier; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_compression_vtc; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_env_combine4; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_expand_normal; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_rectangle; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_texture_shader3; GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_transform_feedback2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vdpau_interop; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_array_range2; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_attrib_integer_64bit; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_buffer_unified_memory; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program1_1; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program2_option; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program3; GLEW_VAR_EXPORT GLboolean __GLEW_NV_vertex_program4; +GLEW_VAR_EXPORT GLboolean __GLEW_NV_video_capture; GLEW_VAR_EXPORT GLboolean __GLEW_OES_byte_coordinates; GLEW_VAR_EXPORT GLboolean __GLEW_OES_compressed_paletted_texture; GLEW_VAR_EXPORT GLboolean __GLEW_OES_read_format; @@ -10567,6 +15372,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_fog_function; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_generate_mipmap; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_multisample; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_pixel_texture; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_point_line_texgen; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_sharpen_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture4D; GLEW_VAR_EXPORT GLboolean __GLEW_SGIS_texture_border_clamp; @@ -10579,6 +15385,7 @@ GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_histogram; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_async_pixel; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_blend_alpha_minmax; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_clipmap; +GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_convolution_accuracy; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_depth_texture; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_flush_raster; GLEW_VAR_EXPORT GLboolean __GLEW_SGIX_fog_offset; @@ -10630,28 +15437,30 @@ GLEW_VAR_EXPORT GLboolean __GLEW_WIN_swap_hint; #define GLEW_OK 0 #define GLEW_NO_ERROR 0 #define GLEW_ERROR_NO_GL_VERSION 1 /* missing GL version */ -#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* GL 1.1 and up are not supported */ -#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* GLX 1.2 and up are not supported */ +#define GLEW_ERROR_GL_VERSION_10_ONLY 2 /* Need at least OpenGL 1.1 */ +#define GLEW_ERROR_GLX_VERSION_11_ONLY 3 /* Need at least GLX 1.2 */ /* string codes */ #define GLEW_VERSION 1 +#define GLEW_VERSION_MAJOR 2 +#define GLEW_VERSION_MINOR 3 +#define GLEW_VERSION_MICRO 4 /* API */ #ifdef GLEW_MX typedef struct GLEWContextStruct GLEWContext; GLEWAPI GLenum glewContextInit (GLEWContext* ctx); -GLEWAPI GLboolean glewContextIsSupported (GLEWContext* ctx, const char* name); +GLEWAPI GLboolean glewContextIsSupported (const GLEWContext* ctx, const char* name); #define glewInit() glewContextInit(glewGetContext()) #define glewIsSupported(x) glewContextIsSupported(glewGetContext(), x) #define glewIsExtensionSupported(x) glewIsSupported(x) +#define GLEW_GET_VAR(x) (*(const GLboolean*)&(glewGetContext()->x)) #ifdef _WIN32 -# define GLEW_GET_VAR(x) glewGetContext()->x # define GLEW_GET_FUN(x) glewGetContext()->x #else -# define GLEW_GET_VAR(x) glewGetContext()->x # define GLEW_GET_FUN(x) x #endif @@ -10661,7 +15470,7 @@ GLEWAPI GLenum glewInit (); GLEWAPI GLboolean glewIsSupported (const char* name); #define glewIsExtensionSupported(x) glewIsSupported(x) -#define GLEW_GET_VAR(x) x +#define GLEW_GET_VAR(x) (*(const GLboolean*)&x) #define GLEW_GET_FUN(x) x #endif /* GLEW_MX */ @@ -10679,6 +15488,7 @@ GLEWAPI const GLubyte* glewGetString (GLenum name); #undef GLEW_APIENTRY_DEFINED #undef APIENTRY #undef GLAPIENTRY +#define GLAPIENTRY #endif #ifdef GLEW_CALLBACK_DEFINED diff --git a/Glut/GL/glxew.h b/Glut/GL/glxew.h index 6260436e1..6d249f73e 100644 --- a/Glut/GL/glxew.h +++ b/Glut/GL/glxew.h @@ -1,7 +1,7 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2006, Milan Ikits -** Copyright (C) 2002-2006, Marcelo E. Magallon +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev ** All rights reserved. ** @@ -30,22 +30,50 @@ */ /* -** The contents of this file are subject to the GLX Public License Version 1.0 -** (the "License"). You may not use this file except in compliance with the -** License. You may obtain a copy of the License at Silicon Graphics, Inc., -** attn: Legal Services, 2011 N. Shoreline Blvd., Mountain View, CA 94043 -** or at http://www.sgi.com/software/opensource/glx/license.html. -** -** Software distributed under the License is distributed on an "AS IS" -** basis. ALL WARRANTIES ARE DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY -** IMPLIED WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR -** PURPOSE OR OF NON- INFRINGEMENT. See the License for the specific -** language governing rights and limitations under the License. -** -** The Original Software is GLX version 1.2 source code, released February, -** 1999. The developer of the Original Software is Silicon Graphics, Inc. -** Those portions of the Subject Software created by Silicon Graphics, Inc. -** are Copyright (c) 1991-9 Silicon Graphics, Inc. All Rights Reserved. + * Mesa 3-D graphics library + * Version: 7.0 + * + * Copyright (C) 1999-2007 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. + */ + +/* +** 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. */ #ifndef __glxew_h__ @@ -56,8 +84,15 @@ #error glxext.h included before glxew.h #endif +#if defined(GLX_H) || defined(__GLX_glx_h__) || defined(__glx_h__) +#error glx.h included before glxew.h +#endif + #define __glxext_h_ + +#define GLX_H #define __GLX_glx_h__ +#define __glx_h__ #include #include @@ -101,11 +136,13 @@ extern "C" { typedef XID GLXDrawable; typedef XID GLXPixmap; #ifdef __sun -typedef struct __glXcontextRec *GLXContext; +typedef struct __glXContextRec *GLXContext; #else typedef struct __GLXcontextRec *GLXContext; #endif +typedef unsigned int GLXVideoDeviceNV; + extern Bool glXQueryExtension (Display *dpy, int *errorBase, int *eventBase); extern Bool glXQueryVersion (Display *dpy, int *major, int *minor); extern int glXGetConfig (Display *dpy, XVisualInfo *vis, int attrib, int *value); @@ -115,7 +152,7 @@ extern void glXDestroyGLXPixmap (Display *dpy, GLXPixmap pix); extern GLXContext glXCreateContext (Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct); extern void glXDestroyContext (Display *dpy, GLXContext ctx); extern Bool glXIsDirect (Display *dpy, GLXContext ctx); -extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLuint mask); +extern void glXCopyContext (Display *dpy, GLXContext src, GLXContext dst, GLulong mask); extern Bool glXMakeCurrent (Display *dpy, GLXDrawable drawable, GLXContext ctx); extern GLXContext glXGetCurrentContext (void); extern GLXDrawable glXGetCurrentDrawable (void); @@ -221,11 +258,27 @@ typedef Display* ( * PFNGLXGETCURRENTDISPLAYPROC) (void); #define GLX_DONT_CARE 0xFFFFFFFF typedef XID GLXFBConfigID; -typedef XID GLXWindow; typedef XID GLXPbuffer; +typedef XID GLXWindow; typedef struct __GLXFBConfigRec *GLXFBConfig; -typedef struct { int event_type; int draw_type; unsigned long serial; Bool send_event; Display *display; GLXDrawable drawable; unsigned int buffer_mask; unsigned int aux_buffer; int x, y; int width, height; int count; } GLXPbufferClobberEvent; -typedef union __GLXEvent { GLXPbufferClobberEvent glxpbufferclobber; long pad[24]; } GLXEvent; + +typedef struct { + int event_type; + int draw_type; + unsigned long serial; + Bool send_event; + Display *display; + GLXDrawable drawable; + unsigned int buffer_mask; + unsigned int aux_buffer; + int x, y; + int width, height; + int count; +} GLXPbufferClobberEvent; +typedef union __GLXEvent { + GLXPbufferClobberEvent glxpbufferclobber; + long pad[24]; +} GLXEvent; typedef GLXFBConfig* ( * PFNGLXCHOOSEFBCONFIGPROC) (Display *dpy, int screen, const int *attrib_list, int *nelements); typedef GLXContext ( * PFNGLXCREATENEWCONTEXTPROC) (Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct); @@ -293,6 +346,72 @@ extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); #endif /* GLX_3DFX_multisample */ +/* ------------------------ GLX_AMD_gpu_association ------------------------ */ + +#ifndef GLX_AMD_gpu_association +#define GLX_AMD_gpu_association 1 + +#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 + +#define GLXEW_AMD_gpu_association GLXEW_GET_VAR(__GLXEW_AMD_gpu_association) + +#endif /* GLX_AMD_gpu_association */ + +/* ------------------------- GLX_ARB_create_context ------------------------ */ + +#ifndef GLX_ARB_create_context +#define GLX_ARB_create_context 1 + +#define GLX_CONTEXT_DEBUG_BIT_ARB 0x0001 +#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#define GLX_CONTEXT_MAJOR_VERSION_ARB 0x2091 +#define GLX_CONTEXT_MINOR_VERSION_ARB 0x2092 +#define GLX_CONTEXT_FLAGS_ARB 0x2094 + +typedef GLXContext ( * PFNGLXCREATECONTEXTATTRIBSARBPROC) (Display* dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list); + +#define glXCreateContextAttribsARB GLXEW_GET_FUN(__glewXCreateContextAttribsARB) + +#define GLXEW_ARB_create_context GLXEW_GET_VAR(__GLXEW_ARB_create_context) + +#endif /* GLX_ARB_create_context */ + +/* --------------------- GLX_ARB_create_context_profile -------------------- */ + +#ifndef GLX_ARB_create_context_profile +#define GLX_ARB_create_context_profile 1 + +#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define GLX_CONTEXT_PROFILE_MASK_ARB 0x9126 + +#define GLXEW_ARB_create_context_profile GLXEW_GET_VAR(__GLXEW_ARB_create_context_profile) + +#endif /* GLX_ARB_create_context_profile */ + +/* ------------------- GLX_ARB_create_context_robustness ------------------- */ + +#ifndef GLX_ARB_create_context_robustness +#define GLX_ARB_create_context_robustness 1 + +#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define GLX_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define GLX_NO_RESET_NOTIFICATION_ARB 0x8261 + +#define GLXEW_ARB_create_context_robustness GLXEW_GET_VAR(__GLXEW_ARB_create_context_robustness) + +#endif /* GLX_ARB_create_context_robustness */ + /* ------------------------- GLX_ARB_fbconfig_float ------------------------ */ #ifndef GLX_ARB_fbconfig_float @@ -305,6 +424,17 @@ extern void ( * glXGetProcAddress (const GLubyte *procName)) (void); #endif /* GLX_ARB_fbconfig_float */ +/* ------------------------ GLX_ARB_framebuffer_sRGB ----------------------- */ + +#ifndef GLX_ARB_framebuffer_sRGB +#define GLX_ARB_framebuffer_sRGB 1 + +#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20B2 + +#define GLXEW_ARB_framebuffer_sRGB GLXEW_GET_VAR(__GLXEW_ARB_framebuffer_sRGB) + +#endif /* GLX_ARB_framebuffer_sRGB */ + /* ------------------------ GLX_ARB_get_proc_address ----------------------- */ #ifndef GLX_ARB_get_proc_address @@ -328,6 +458,17 @@ extern void ( * glXGetProcAddressARB (const GLubyte *procName)) (void); #endif /* GLX_ARB_multisample */ +/* ---------------------- GLX_ARB_vertex_buffer_object --------------------- */ + +#ifndef GLX_ARB_vertex_buffer_object +#define GLX_ARB_vertex_buffer_object 1 + +#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 + +#define GLXEW_ARB_vertex_buffer_object GLXEW_GET_VAR(__GLXEW_ARB_vertex_buffer_object) + +#endif /* GLX_ARB_vertex_buffer_object */ + /* ----------------------- GLX_ATI_pixel_format_float ---------------------- */ #ifndef GLX_ATI_pixel_format_float @@ -392,6 +533,17 @@ typedef void ( * PFNGLXRELEASETEXIMAGEATIPROC) (Display *dpy, GLXPbuffer pbuf, i #endif /* GLX_ATI_render_texture */ +/* ------------------- GLX_EXT_create_context_es2_profile ------------------ */ + +#ifndef GLX_EXT_create_context_es2_profile +#define GLX_EXT_create_context_es2_profile 1 + +#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 + +#define GLXEW_EXT_create_context_es2_profile GLXEW_GET_VAR(__GLXEW_EXT_create_context_es2_profile) + +#endif /* GLX_EXT_create_context_es2_profile */ + /* --------------------- GLX_EXT_fbconfig_packed_float --------------------- */ #ifndef GLX_EXT_fbconfig_packed_float @@ -449,6 +601,69 @@ typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context #endif /* GLX_EXT_scene_marker */ +/* -------------------------- GLX_EXT_swap_control ------------------------- */ + +#ifndef GLX_EXT_swap_control +#define GLX_EXT_swap_control 1 + +#define GLX_SWAP_INTERVAL_EXT 0x20F1 +#define GLX_MAX_SWAP_INTERVAL_EXT 0x20F2 + +typedef void ( * PFNGLXSWAPINTERVALEXTPROC) (Display* dpy, GLXDrawable drawable, int interval); + +#define glXSwapIntervalEXT GLXEW_GET_FUN(__glewXSwapIntervalEXT) + +#define GLXEW_EXT_swap_control GLXEW_GET_VAR(__GLXEW_EXT_swap_control) + +#endif /* GLX_EXT_swap_control */ + +/* ---------------------- GLX_EXT_texture_from_pixmap ---------------------- */ + +#ifndef GLX_EXT_texture_from_pixmap +#define GLX_EXT_texture_from_pixmap 1 + +#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_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 + +typedef void ( * PFNGLXBINDTEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer, const int *attrib_list); +typedef void ( * PFNGLXRELEASETEXIMAGEEXTPROC) (Display* display, GLXDrawable drawable, int buffer); + +#define glXBindTexImageEXT GLXEW_GET_FUN(__glewXBindTexImageEXT) +#define glXReleaseTexImageEXT GLXEW_GET_FUN(__glewXReleaseTexImageEXT) + +#define GLXEW_EXT_texture_from_pixmap GLXEW_GET_VAR(__GLXEW_EXT_texture_from_pixmap) + +#endif /* GLX_EXT_texture_from_pixmap */ + /* -------------------------- GLX_EXT_visual_info -------------------------- */ #ifndef GLX_EXT_visual_info @@ -488,6 +703,20 @@ typedef int ( * PFNGLXQUERYCONTEXTINFOEXTPROC) (Display* dpy, GLXContext context #endif /* GLX_EXT_visual_rating */ +/* -------------------------- GLX_INTEL_swap_event ------------------------- */ + +#ifndef GLX_INTEL_swap_event +#define GLX_INTEL_swap_event 1 + +#define GLX_EXCHANGE_COMPLETE_INTEL 0x8180 +#define GLX_COPY_COMPLETE_INTEL 0x8181 +#define GLX_FLIP_COMPLETE_INTEL 0x8182 +#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x04000000 + +#define GLXEW_INTEL_swap_event GLXEW_GET_VAR(__GLXEW_INTEL_swap_event) + +#endif /* GLX_INTEL_swap_event */ + /* -------------------------- GLX_MESA_agp_offset -------------------------- */ #ifndef GLX_MESA_agp_offset @@ -556,6 +785,34 @@ typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); #endif /* GLX_MESA_set_3dfx_mode */ +/* ------------------------- GLX_MESA_swap_control ------------------------- */ + +#ifndef GLX_MESA_swap_control +#define GLX_MESA_swap_control 1 + +typedef int ( * PFNGLXGETSWAPINTERVALMESAPROC) (void); +typedef int ( * PFNGLXSWAPINTERVALMESAPROC) (unsigned int interval); + +#define glXGetSwapIntervalMESA GLXEW_GET_FUN(__glewXGetSwapIntervalMESA) +#define glXSwapIntervalMESA GLXEW_GET_FUN(__glewXSwapIntervalMESA) + +#define GLXEW_MESA_swap_control GLXEW_GET_VAR(__GLXEW_MESA_swap_control) + +#endif /* GLX_MESA_swap_control */ + +/* --------------------------- GLX_NV_copy_image --------------------------- */ + +#ifndef GLX_NV_copy_image +#define GLX_NV_copy_image 1 + +typedef void ( * PFNGLXCOPYIMAGESUBDATANVPROC) (Display *dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define glXCopyImageSubDataNV GLXEW_GET_FUN(__glewXCopyImageSubDataNV) + +#define GLXEW_NV_copy_image GLXEW_GET_VAR(__GLXEW_NV_copy_image) + +#endif /* GLX_NV_copy_image */ + /* -------------------------- GLX_NV_float_buffer -------------------------- */ #ifndef GLX_NV_float_buffer @@ -567,6 +824,58 @@ typedef GLboolean ( * PFNGLXSET3DFXMODEMESAPROC) (GLint mode); #endif /* GLX_NV_float_buffer */ +/* ---------------------- GLX_NV_multisample_coverage ---------------------- */ + +#ifndef GLX_NV_multisample_coverage +#define GLX_NV_multisample_coverage 1 + +#define GLX_COLOR_SAMPLES_NV 0x20B3 +#define GLX_COVERAGE_SAMPLES_NV 100001 + +#define GLXEW_NV_multisample_coverage GLXEW_GET_VAR(__GLXEW_NV_multisample_coverage) + +#endif /* GLX_NV_multisample_coverage */ + +/* -------------------------- GLX_NV_present_video ------------------------- */ + +#ifndef GLX_NV_present_video +#define GLX_NV_present_video 1 + +#define GLX_NUM_VIDEO_SLOTS_NV 0x20F0 + +typedef int ( * PFNGLXBINDVIDEODEVICENVPROC) (Display* dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list); +typedef unsigned int* ( * PFNGLXENUMERATEVIDEODEVICESNVPROC) (Display *dpy, int screen, int *nelements); + +#define glXBindVideoDeviceNV GLXEW_GET_FUN(__glewXBindVideoDeviceNV) +#define glXEnumerateVideoDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoDevicesNV) + +#define GLXEW_NV_present_video GLXEW_GET_VAR(__GLXEW_NV_present_video) + +#endif /* GLX_NV_present_video */ + +/* --------------------------- GLX_NV_swap_group --------------------------- */ + +#ifndef GLX_NV_swap_group +#define GLX_NV_swap_group 1 + +typedef Bool ( * PFNGLXBINDSWAPBARRIERNVPROC) (Display* dpy, GLuint group, GLuint barrier); +typedef Bool ( * PFNGLXJOINSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint group); +typedef Bool ( * PFNGLXQUERYFRAMECOUNTNVPROC) (Display* dpy, int screen, GLuint *count); +typedef Bool ( * PFNGLXQUERYMAXSWAPGROUPSNVPROC) (Display* dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers); +typedef Bool ( * PFNGLXQUERYSWAPGROUPNVPROC) (Display* dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier); +typedef Bool ( * PFNGLXRESETFRAMECOUNTNVPROC) (Display* dpy, int screen); + +#define glXBindSwapBarrierNV GLXEW_GET_FUN(__glewXBindSwapBarrierNV) +#define glXJoinSwapGroupNV GLXEW_GET_FUN(__glewXJoinSwapGroupNV) +#define glXQueryFrameCountNV GLXEW_GET_FUN(__glewXQueryFrameCountNV) +#define glXQueryMaxSwapGroupsNV GLXEW_GET_FUN(__glewXQueryMaxSwapGroupsNV) +#define glXQuerySwapGroupNV GLXEW_GET_FUN(__glewXQuerySwapGroupNV) +#define glXResetFrameCountNV GLXEW_GET_FUN(__glewXResetFrameCountNV) + +#define GLXEW_NV_swap_group GLXEW_GET_VAR(__GLXEW_NV_swap_group) + +#endif /* GLX_NV_swap_group */ + /* ----------------------- GLX_NV_vertex_array_range ----------------------- */ #ifndef GLX_NV_vertex_array_range @@ -582,6 +891,67 @@ typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); #endif /* GLX_NV_vertex_array_range */ +/* -------------------------- GLX_NV_video_capture ------------------------- */ + +#ifndef GLX_NV_video_capture +#define GLX_NV_video_capture 1 + +#define GLX_DEVICE_ID_NV 0x20CD +#define GLX_UNIQUE_ID_NV 0x20CE +#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF + +typedef XID GLXVideoCaptureDeviceNV; + +typedef int ( * PFNGLXBINDVIDEOCAPTUREDEVICENVPROC) (Display* dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device); +typedef GLXVideoCaptureDeviceNV * ( * PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC) (Display* dpy, int screen, int *nelements); +typedef void ( * PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); +typedef int ( * PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value); +typedef void ( * PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC) (Display* dpy, GLXVideoCaptureDeviceNV device); + +#define glXBindVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXBindVideoCaptureDeviceNV) +#define glXEnumerateVideoCaptureDevicesNV GLXEW_GET_FUN(__glewXEnumerateVideoCaptureDevicesNV) +#define glXLockVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXLockVideoCaptureDeviceNV) +#define glXQueryVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXQueryVideoCaptureDeviceNV) +#define glXReleaseVideoCaptureDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoCaptureDeviceNV) + +#define GLXEW_NV_video_capture GLXEW_GET_VAR(__GLXEW_NV_video_capture) + +#endif /* GLX_NV_video_capture */ + +/* -------------------------- GLX_NV_video_output -------------------------- */ + +#ifndef GLX_NV_video_output +#define GLX_NV_video_output 1 + +#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 + +typedef int ( * PFNGLXBINDVIDEOIMAGENVPROC) (Display* dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer); +typedef int ( * PFNGLXGETVIDEODEVICENVPROC) (Display* dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice); +typedef int ( * PFNGLXGETVIDEOINFONVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +typedef int ( * PFNGLXRELEASEVIDEODEVICENVPROC) (Display* dpy, int screen, GLXVideoDeviceNV VideoDevice); +typedef int ( * PFNGLXRELEASEVIDEOIMAGENVPROC) (Display* dpy, GLXPbuffer pbuf); +typedef int ( * PFNGLXSENDPBUFFERTOVIDEONVPROC) (Display* dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock); + +#define glXBindVideoImageNV GLXEW_GET_FUN(__glewXBindVideoImageNV) +#define glXGetVideoDeviceNV GLXEW_GET_FUN(__glewXGetVideoDeviceNV) +#define glXGetVideoInfoNV GLXEW_GET_FUN(__glewXGetVideoInfoNV) +#define glXReleaseVideoDeviceNV GLXEW_GET_FUN(__glewXReleaseVideoDeviceNV) +#define glXReleaseVideoImageNV GLXEW_GET_FUN(__glewXReleaseVideoImageNV) +#define glXSendPbufferToVideoNV GLXEW_GET_FUN(__glewXSendPbufferToVideoNV) + +#define GLXEW_NV_video_output GLXEW_GET_VAR(__GLXEW_NV_video_output) + +#endif /* GLX_NV_video_output */ + /* -------------------------- GLX_OML_swap_method -------------------------- */ #ifndef GLX_OML_swap_method @@ -598,8 +968,7 @@ typedef void ( * PFNGLXFREEMEMORYNVPROC) (void *pointer); /* -------------------------- GLX_OML_sync_control ------------------------- */ -#if !defined(GLX_OML_sync_control) && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) -#include +#ifndef GLX_OML_sync_control #define GLX_OML_sync_control 1 typedef Bool ( * PFNGLXGETMSCRATEOMLPROC) (Display* dpy, GLXDrawable drawable, int32_t* numerator, int32_t* denominator); @@ -710,6 +1079,73 @@ typedef XVisualInfo* ( * PFNGLXGETVISUALFROMFBCONFIGSGIXPROC) (Display *dpy, GLX #endif /* GLX_SGIX_fbconfig */ +/* --------------------------- GLX_SGIX_hyperpipe -------------------------- */ + +#ifndef GLX_SGIX_hyperpipe +#define GLX_SGIX_hyperpipe 1 + +#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX 0x00000001 +#define GLX_PIPE_RECT_SGIX 0x00000001 +#define GLX_PIPE_RECT_LIMITS_SGIX 0x00000002 +#define GLX_HYPERPIPE_RENDER_PIPE_SGIX 0x00000002 +#define GLX_HYPERPIPE_STEREO_SGIX 0x00000003 +#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX 0x00000004 +#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 80 +#define GLX_BAD_HYPERPIPE_CONFIG_SGIX 91 +#define GLX_BAD_HYPERPIPE_SGIX 92 +#define GLX_HYPERPIPE_ID_SGIX 0x8030 + +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int networkId; +} GLXHyperpipeNetworkSGIX; +typedef struct { + char pipeName[GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX]; + int XOrigin; + int YOrigin; + int maxHeight; + int maxWidth; +} GLXPipeRectLimits; +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; + int srcYOrigin; + int srcWidth; + int srcHeight; + int destXOrigin; + int destYOrigin; + int destWidth; + int destHeight; +} GLXPipeRect; + +typedef int ( * PFNGLXBINDHYPERPIPESGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId); +typedef int ( * PFNGLXHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList); +typedef int ( * PFNGLXHYPERPIPECONFIGSGIXPROC) (Display *dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX *cfg, int *hpId); +typedef int ( * PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *returnAttribList); +typedef int ( * PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC) (Display *dpy, int timeSlice, int attrib, int size, void *attribList, void *returnAttribList); +typedef GLXHyperpipeConfigSGIX * ( * PFNGLXQUERYHYPERPIPECONFIGSGIXPROC) (Display *dpy, int hpId, int *npipes); +typedef GLXHyperpipeNetworkSGIX * ( * PFNGLXQUERYHYPERPIPENETWORKSGIXPROC) (Display *dpy, int *npipes); + +#define glXBindHyperpipeSGIX GLXEW_GET_FUN(__glewXBindHyperpipeSGIX) +#define glXDestroyHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXDestroyHyperpipeConfigSGIX) +#define glXHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXHyperpipeAttribSGIX) +#define glXHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXHyperpipeConfigSGIX) +#define glXQueryHyperpipeAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeAttribSGIX) +#define glXQueryHyperpipeBestAttribSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeBestAttribSGIX) +#define glXQueryHyperpipeConfigSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeConfigSGIX) +#define glXQueryHyperpipeNetworkSGIX GLXEW_GET_FUN(__glewXQueryHyperpipeNetworkSGIX) + +#define GLXEW_SGIX_hyperpipe GLXEW_GET_VAR(__GLXEW_SGIX_hyperpipe) + +#endif /* GLX_SGIX_hyperpipe */ + /* ---------------------------- GLX_SGIX_pbuffer --------------------------- */ #ifndef GLX_SGIX_pbuffer @@ -869,7 +1305,7 @@ typedef int ( * PFNGLXSWAPINTERVALSGIPROC) (int interval); #ifndef GLX_SGI_video_sync #define GLX_SGI_video_sync 1 -typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (uint* count); +typedef int ( * PFNGLXGETVIDEOSYNCSGIPROC) (unsigned int* count); typedef int ( * PFNGLXWAITVIDEOSYNCSGIPROC) (int divisor, int remainder, unsigned int* count); #define glXGetVideoSyncSGI GLXEW_GET_FUN(__glewXGetVideoSyncSGI) @@ -938,6 +1374,8 @@ extern PFNGLXQUERYCONTEXTPROC __glewXQueryContext; extern PFNGLXQUERYDRAWABLEPROC __glewXQueryDrawable; extern PFNGLXSELECTEVENTPROC __glewXSelectEvent; +extern PFNGLXCREATECONTEXTATTRIBSARBPROC __glewXCreateContextAttribsARB; + extern PFNGLXBINDTEXIMAGEATIPROC __glewXBindTexImageATI; extern PFNGLXDRAWABLEATTRIBATIPROC __glewXDrawableAttribATI; extern PFNGLXRELEASETEXIMAGEATIPROC __glewXReleaseTexImageATI; @@ -947,6 +1385,11 @@ extern PFNGLXGETCONTEXTIDEXTPROC __glewXGetContextIDEXT; extern PFNGLXIMPORTCONTEXTEXTPROC __glewXImportContextEXT; extern PFNGLXQUERYCONTEXTINFOEXTPROC __glewXQueryContextInfoEXT; +extern PFNGLXSWAPINTERVALEXTPROC __glewXSwapIntervalEXT; + +extern PFNGLXBINDTEXIMAGEEXTPROC __glewXBindTexImageEXT; +extern PFNGLXRELEASETEXIMAGEEXTPROC __glewXReleaseTexImageEXT; + extern PFNGLXGETAGPOFFSETMESAPROC __glewXGetAGPOffsetMESA; extern PFNGLXCOPYSUBBUFFERMESAPROC __glewXCopySubBufferMESA; @@ -957,16 +1400,42 @@ extern PFNGLXRELEASEBUFFERSMESAPROC __glewXReleaseBuffersMESA; extern PFNGLXSET3DFXMODEMESAPROC __glewXSet3DfxModeMESA; +extern PFNGLXGETSWAPINTERVALMESAPROC __glewXGetSwapIntervalMESA; +extern PFNGLXSWAPINTERVALMESAPROC __glewXSwapIntervalMESA; + +extern PFNGLXCOPYIMAGESUBDATANVPROC __glewXCopyImageSubDataNV; + +extern PFNGLXBINDVIDEODEVICENVPROC __glewXBindVideoDeviceNV; +extern PFNGLXENUMERATEVIDEODEVICESNVPROC __glewXEnumerateVideoDevicesNV; + +extern PFNGLXBINDSWAPBARRIERNVPROC __glewXBindSwapBarrierNV; +extern PFNGLXJOINSWAPGROUPNVPROC __glewXJoinSwapGroupNV; +extern PFNGLXQUERYFRAMECOUNTNVPROC __glewXQueryFrameCountNV; +extern PFNGLXQUERYMAXSWAPGROUPSNVPROC __glewXQueryMaxSwapGroupsNV; +extern PFNGLXQUERYSWAPGROUPNVPROC __glewXQuerySwapGroupNV; +extern PFNGLXRESETFRAMECOUNTNVPROC __glewXResetFrameCountNV; + extern PFNGLXALLOCATEMEMORYNVPROC __glewXAllocateMemoryNV; extern PFNGLXFREEMEMORYNVPROC __glewXFreeMemoryNV; -#ifdef GLX_OML_sync_control +extern PFNGLXBINDVIDEOCAPTUREDEVICENVPROC __glewXBindVideoCaptureDeviceNV; +extern PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC __glewXEnumerateVideoCaptureDevicesNV; +extern PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC __glewXLockVideoCaptureDeviceNV; +extern PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC __glewXQueryVideoCaptureDeviceNV; +extern PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC __glewXReleaseVideoCaptureDeviceNV; + +extern PFNGLXBINDVIDEOIMAGENVPROC __glewXBindVideoImageNV; +extern PFNGLXGETVIDEODEVICENVPROC __glewXGetVideoDeviceNV; +extern PFNGLXGETVIDEOINFONVPROC __glewXGetVideoInfoNV; +extern PFNGLXRELEASEVIDEODEVICENVPROC __glewXReleaseVideoDeviceNV; +extern PFNGLXRELEASEVIDEOIMAGENVPROC __glewXReleaseVideoImageNV; +extern PFNGLXSENDPBUFFERTOVIDEONVPROC __glewXSendPbufferToVideoNV; + extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML; extern PFNGLXGETSYNCVALUESOMLPROC __glewXGetSyncValuesOML; extern PFNGLXSWAPBUFFERSMSCOMLPROC __glewXSwapBuffersMscOML; extern PFNGLXWAITFORMSCOMLPROC __glewXWaitForMscOML; extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML; -#endif extern PFNGLXCHOOSEFBCONFIGSGIXPROC __glewXChooseFBConfigSGIX; extern PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC __glewXCreateContextWithConfigSGIX; @@ -975,6 +1444,15 @@ extern PFNGLXGETFBCONFIGATTRIBSGIXPROC __glewXGetFBConfigAttribSGIX; extern PFNGLXGETFBCONFIGFROMVISUALSGIXPROC __glewXGetFBConfigFromVisualSGIX; extern PFNGLXGETVISUALFROMFBCONFIGSGIXPROC __glewXGetVisualFromFBConfigSGIX; +extern PFNGLXBINDHYPERPIPESGIXPROC __glewXBindHyperpipeSGIX; +extern PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC __glewXDestroyHyperpipeConfigSGIX; +extern PFNGLXHYPERPIPEATTRIBSGIXPROC __glewXHyperpipeAttribSGIX; +extern PFNGLXHYPERPIPECONFIGSGIXPROC __glewXHyperpipeConfigSGIX; +extern PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC __glewXQueryHyperpipeAttribSGIX; +extern PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC __glewXQueryHyperpipeBestAttribSGIX; +extern PFNGLXQUERYHYPERPIPECONFIGSGIXPROC __glewXQueryHyperpipeConfigSGIX; +extern PFNGLXQUERYHYPERPIPENETWORKSGIXPROC __glewXQueryHyperpipeNetworkSGIX; + extern PFNGLXCREATEGLXPBUFFERSGIXPROC __glewXCreateGLXPbufferSGIX; extern PFNGLXDESTROYGLXPBUFFERSGIXPROC __glewXDestroyGLXPbufferSGIX; extern PFNGLXGETSELECTEDEVENTSGIXPROC __glewXGetSelectedEventSGIX; @@ -1018,24 +1496,41 @@ GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2; GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_3; GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_4; GLXEW_EXPORT GLboolean __GLXEW_3DFX_multisample; +GLXEW_EXPORT GLboolean __GLXEW_AMD_gpu_association; +GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context; +GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_profile; +GLXEW_EXPORT GLboolean __GLXEW_ARB_create_context_robustness; GLXEW_EXPORT GLboolean __GLXEW_ARB_fbconfig_float; +GLXEW_EXPORT GLboolean __GLXEW_ARB_framebuffer_sRGB; GLXEW_EXPORT GLboolean __GLXEW_ARB_get_proc_address; GLXEW_EXPORT GLboolean __GLXEW_ARB_multisample; +GLXEW_EXPORT GLboolean __GLXEW_ARB_vertex_buffer_object; GLXEW_EXPORT GLboolean __GLXEW_ATI_pixel_format_float; GLXEW_EXPORT GLboolean __GLXEW_ATI_render_texture; +GLXEW_EXPORT GLboolean __GLXEW_EXT_create_context_es2_profile; GLXEW_EXPORT GLboolean __GLXEW_EXT_fbconfig_packed_float; GLXEW_EXPORT GLboolean __GLXEW_EXT_framebuffer_sRGB; GLXEW_EXPORT GLboolean __GLXEW_EXT_import_context; GLXEW_EXPORT GLboolean __GLXEW_EXT_scene_marker; +GLXEW_EXPORT GLboolean __GLXEW_EXT_swap_control; +GLXEW_EXPORT GLboolean __GLXEW_EXT_texture_from_pixmap; GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_info; GLXEW_EXPORT GLboolean __GLXEW_EXT_visual_rating; +GLXEW_EXPORT GLboolean __GLXEW_INTEL_swap_event; GLXEW_EXPORT GLboolean __GLXEW_MESA_agp_offset; GLXEW_EXPORT GLboolean __GLXEW_MESA_copy_sub_buffer; GLXEW_EXPORT GLboolean __GLXEW_MESA_pixmap_colormap; GLXEW_EXPORT GLboolean __GLXEW_MESA_release_buffers; GLXEW_EXPORT GLboolean __GLXEW_MESA_set_3dfx_mode; +GLXEW_EXPORT GLboolean __GLXEW_MESA_swap_control; +GLXEW_EXPORT GLboolean __GLXEW_NV_copy_image; GLXEW_EXPORT GLboolean __GLXEW_NV_float_buffer; +GLXEW_EXPORT GLboolean __GLXEW_NV_multisample_coverage; +GLXEW_EXPORT GLboolean __GLXEW_NV_present_video; +GLXEW_EXPORT GLboolean __GLXEW_NV_swap_group; GLXEW_EXPORT GLboolean __GLXEW_NV_vertex_array_range; +GLXEW_EXPORT GLboolean __GLXEW_NV_video_capture; +GLXEW_EXPORT GLboolean __GLXEW_NV_video_output; GLXEW_EXPORT GLboolean __GLXEW_OML_swap_method; GLXEW_EXPORT GLboolean __GLXEW_OML_sync_control; GLXEW_EXPORT GLboolean __GLXEW_SGIS_blended_overlay; @@ -1043,6 +1538,7 @@ GLXEW_EXPORT GLboolean __GLXEW_SGIS_color_range; GLXEW_EXPORT GLboolean __GLXEW_SGIS_multisample; GLXEW_EXPORT GLboolean __GLXEW_SGIS_shared_multisample; GLXEW_EXPORT GLboolean __GLXEW_SGIX_fbconfig; +GLXEW_EXPORT GLboolean __GLXEW_SGIX_hyperpipe; GLXEW_EXPORT GLboolean __GLXEW_SGIX_pbuffer; GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_barrier; GLXEW_EXPORT GLboolean __GLXEW_SGIX_swap_group; @@ -1065,17 +1561,17 @@ GLXEW_EXPORT GLboolean __GLXEW_SUN_video_resize; typedef struct GLXEWContextStruct GLXEWContext; extern GLenum glxewContextInit (GLXEWContext* ctx); -extern GLboolean glxewContextIsSupported (GLXEWContext* ctx, const char* name); +extern GLboolean glxewContextIsSupported (const GLXEWContext* ctx, const char* name); #define glxewInit() glxewContextInit(glxewGetContext()) #define glxewIsSupported(x) glxewContextIsSupported(glxewGetContext(), x) -#define GLXEW_GET_VAR(x) glxewGetContext()->x +#define GLXEW_GET_VAR(x) (*(const GLboolean*)&(glxewGetContext()->x)) #define GLXEW_GET_FUN(x) x #else /* GLEW_MX */ -#define GLXEW_GET_VAR(x) x +#define GLXEW_GET_VAR(x) (*(const GLboolean*)&x) #define GLXEW_GET_FUN(x) x extern GLboolean glxewIsSupported (const char* name); diff --git a/Glut/GL/wglew.h b/Glut/GL/wglew.h index 895ab9cd1..05f054fc8 100644 --- a/Glut/GL/wglew.h +++ b/Glut/GL/wglew.h @@ -1,7 +1,7 @@ /* ** The OpenGL Extension Wrangler Library -** Copyright (C) 2002-2006, Milan Ikits -** Copyright (C) 2002-2006, Marcelo E. Magallon +** Copyright (C) 2002-2008, Milan Ikits +** Copyright (C) 2002-2008, Marcelo E. Magallon ** Copyright (C) 2002, Lev Povalahev ** All rights reserved. ** @@ -29,6 +29,29 @@ ** THE POSSIBILITY OF SUCH DAMAGE. */ +/* +** 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. +*/ + #ifndef __wglew_h__ #define __wglew_h__ #define __WGLEW_H__ @@ -39,11 +62,12 @@ #define __wglext_h_ -#if !defined(APIENTRY) && !defined(__CYGWIN__) +#if !defined(WINAPI) # ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN 1 # endif #include +# undef WIN32_LEAN_AND_MEAN #endif /* @@ -94,6 +118,46 @@ typedef BOOL (WINAPI * PFNWGLSETSTEREOEMITTERSTATE3DLPROC) (HDC hDC, UINT uState #endif /* WGL_3DL_stereo_control */ +/* ------------------------ WGL_AMD_gpu_association ------------------------ */ + +#ifndef WGL_AMD_gpu_association +#define WGL_AMD_gpu_association 1 + +#define WGL_GPU_VENDOR_AMD 0x1F00 +#define WGL_GPU_RENDERER_STRING_AMD 0x1F01 +#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1F02 +#define WGL_GPU_FASTEST_TARGET_GPUS_AMD 0x21A2 +#define WGL_GPU_RAM_AMD 0x21A3 +#define WGL_GPU_CLOCK_AMD 0x21A4 +#define WGL_GPU_NUM_PIPES_AMD 0x21A5 +#define WGL_GPU_NUM_SIMD_AMD 0x21A6 +#define WGL_GPU_NUM_RB_AMD 0x21A7 +#define WGL_GPU_NUM_SPI_AMD 0x21A8 + +typedef VOID (WINAPI * PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC) (HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC) (UINT id); +typedef HGLRC (WINAPI * PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC) (UINT id, HGLRC hShareContext, const int* attribList); +typedef BOOL (WINAPI * PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC) (HGLRC hglrc); +typedef UINT (WINAPI * PFNWGLGETCONTEXTGPUIDAMDPROC) (HGLRC hglrc); +typedef HGLRC (WINAPI * PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC) (void); +typedef UINT (WINAPI * PFNWGLGETGPUIDSAMDPROC) (UINT maxCount, UINT* ids); +typedef INT (WINAPI * PFNWGLGETGPUINFOAMDPROC) (UINT id, INT property, GLenum dataType, UINT size, void* data); +typedef BOOL (WINAPI * PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC) (HGLRC hglrc); + +#define wglBlitContextFramebufferAMD WGLEW_GET_FUN(__wglewBlitContextFramebufferAMD) +#define wglCreateAssociatedContextAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAMD) +#define wglCreateAssociatedContextAttribsAMD WGLEW_GET_FUN(__wglewCreateAssociatedContextAttribsAMD) +#define wglDeleteAssociatedContextAMD WGLEW_GET_FUN(__wglewDeleteAssociatedContextAMD) +#define wglGetContextGPUIDAMD WGLEW_GET_FUN(__wglewGetContextGPUIDAMD) +#define wglGetCurrentAssociatedContextAMD WGLEW_GET_FUN(__wglewGetCurrentAssociatedContextAMD) +#define wglGetGPUIDsAMD WGLEW_GET_FUN(__wglewGetGPUIDsAMD) +#define wglGetGPUInfoAMD WGLEW_GET_FUN(__wglewGetGPUInfoAMD) +#define wglMakeAssociatedContextCurrentAMD WGLEW_GET_FUN(__wglewMakeAssociatedContextCurrentAMD) + +#define WGLEW_AMD_gpu_association WGLEW_GET_VAR(__WGLEW_AMD_gpu_association) + +#endif /* WGL_AMD_gpu_association */ + /* ------------------------- WGL_ARB_buffer_region ------------------------- */ #ifndef WGL_ARB_buffer_region @@ -118,6 +182,55 @@ typedef BOOL (WINAPI * PFNWGLSAVEBUFFERREGIONARBPROC) (HANDLE hRegion, int x, in #endif /* WGL_ARB_buffer_region */ +/* ------------------------- WGL_ARB_create_context ------------------------ */ + +#ifndef WGL_ARB_create_context +#define WGL_ARB_create_context 1 + +#define WGL_CONTEXT_DEBUG_BIT_ARB 0x0001 +#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x0002 +#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 ERROR_INVALID_VERSION_ARB 0x2095 +#define ERROR_INVALID_PROFILE_ARB 0x2096 + +typedef HGLRC (WINAPI * PFNWGLCREATECONTEXTATTRIBSARBPROC) (HDC hDC, HGLRC hShareContext, const int* attribList); + +#define wglCreateContextAttribsARB WGLEW_GET_FUN(__wglewCreateContextAttribsARB) + +#define WGLEW_ARB_create_context WGLEW_GET_VAR(__WGLEW_ARB_create_context) + +#endif /* WGL_ARB_create_context */ + +/* --------------------- WGL_ARB_create_context_profile -------------------- */ + +#ifndef WGL_ARB_create_context_profile +#define WGL_ARB_create_context_profile 1 + +#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB 0x00000001 +#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x00000002 +#define WGL_CONTEXT_PROFILE_MASK_ARB 0x9126 + +#define WGLEW_ARB_create_context_profile WGLEW_GET_VAR(__WGLEW_ARB_create_context_profile) + +#endif /* WGL_ARB_create_context_profile */ + +/* ------------------- WGL_ARB_create_context_robustness ------------------- */ + +#ifndef WGL_ARB_create_context_robustness +#define WGL_ARB_create_context_robustness 1 + +#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB 0x00000004 +#define WGL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 +#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 +#define WGL_NO_RESET_NOTIFICATION_ARB 0x8261 + +#define WGLEW_ARB_create_context_robustness WGLEW_GET_VAR(__WGLEW_ARB_create_context_robustness) + +#endif /* WGL_ARB_create_context_robustness */ + /* ----------------------- WGL_ARB_extensions_string ----------------------- */ #ifndef WGL_ARB_extensions_string @@ -131,11 +244,25 @@ typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGARBPROC) (HDC hdc); #endif /* WGL_ARB_extensions_string */ +/* ------------------------ WGL_ARB_framebuffer_sRGB ----------------------- */ + +#ifndef WGL_ARB_framebuffer_sRGB +#define WGL_ARB_framebuffer_sRGB 1 + +#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20A9 + +#define WGLEW_ARB_framebuffer_sRGB WGLEW_GET_VAR(__WGLEW_ARB_framebuffer_sRGB) + +#endif /* WGL_ARB_framebuffer_sRGB */ + /* ----------------------- WGL_ARB_make_current_read ----------------------- */ #ifndef WGL_ARB_make_current_read #define WGL_ARB_make_current_read 1 +#define ERROR_INVALID_PIXEL_TYPE_ARB 0x2043 +#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054 + typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCARBPROC) (VOID); typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTARBPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); @@ -343,6 +470,17 @@ typedef BOOL (WINAPI * PFNWGLSETPBUFFERATTRIBARBPROC) (HPBUFFERARB hPbuffer, con #endif /* WGL_ATI_render_texture_rectangle */ +/* ------------------- WGL_EXT_create_context_es2_profile ------------------ */ + +#ifndef WGL_EXT_create_context_es2_profile +#define WGL_EXT_create_context_es2_profile 1 + +#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x00000004 + +#define WGLEW_EXT_create_context_es2_profile WGLEW_GET_VAR(__WGLEW_EXT_create_context_es2_profile) + +#endif /* WGL_EXT_create_context_es2_profile */ + /* -------------------------- WGL_EXT_depth_float -------------------------- */ #ifndef WGL_EXT_depth_float @@ -402,6 +540,8 @@ typedef const char* (WINAPI * PFNWGLGETEXTENSIONSSTRINGEXTPROC) (void); #ifndef WGL_EXT_make_current_read #define WGL_EXT_make_current_read 1 +#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 + typedef HDC (WINAPI * PFNWGLGETCURRENTREADDCEXTPROC) (VOID); typedef BOOL (WINAPI * PFNWGLMAKECONTEXTCURRENTEXTPROC) (HDC hDrawDC, HDC hReadDC, HGLRC hglrc); @@ -693,6 +833,50 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWO #endif /* WGL_I3D_swap_frame_usage */ +/* --------------------------- WGL_NV_DX_interop --------------------------- */ + +#ifndef WGL_NV_DX_interop +#define WGL_NV_DX_interop 1 + +#define WGL_ACCESS_READ_ONLY_NV 0x0000 +#define WGL_ACCESS_READ_WRITE_NV 0x0001 +#define WGL_ACCESS_WRITE_DISCARD_NV 0x0002 + +typedef BOOL (WINAPI * PFNWGLDXCLOSEDEVICENVPROC) (HANDLE hDevice); +typedef BOOL (WINAPI * PFNWGLDXLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); +typedef BOOL (WINAPI * PFNWGLDXOBJECTACCESSNVPROC) (HANDLE hObject, GLenum access); +typedef HANDLE (WINAPI * PFNWGLDXOPENDEVICENVPROC) (void* dxDevice); +typedef HANDLE (WINAPI * PFNWGLDXREGISTEROBJECTNVPROC) (HANDLE hDevice, void* dxObject, GLuint name, GLenum type, GLenum access); +typedef BOOL (WINAPI * PFNWGLDXSETRESOURCESHAREHANDLENVPROC) (void* dxObject, HANDLE shareHandle); +typedef BOOL (WINAPI * PFNWGLDXUNLOCKOBJECTSNVPROC) (HANDLE hDevice, GLint count, HANDLE* hObjects); +typedef BOOL (WINAPI * PFNWGLDXUNREGISTEROBJECTNVPROC) (HANDLE hDevice, HANDLE hObject); + +#define wglDXCloseDeviceNV WGLEW_GET_FUN(__wglewDXCloseDeviceNV) +#define wglDXLockObjectsNV WGLEW_GET_FUN(__wglewDXLockObjectsNV) +#define wglDXObjectAccessNV WGLEW_GET_FUN(__wglewDXObjectAccessNV) +#define wglDXOpenDeviceNV WGLEW_GET_FUN(__wglewDXOpenDeviceNV) +#define wglDXRegisterObjectNV WGLEW_GET_FUN(__wglewDXRegisterObjectNV) +#define wglDXSetResourceShareHandleNV WGLEW_GET_FUN(__wglewDXSetResourceShareHandleNV) +#define wglDXUnlockObjectsNV WGLEW_GET_FUN(__wglewDXUnlockObjectsNV) +#define wglDXUnregisterObjectNV WGLEW_GET_FUN(__wglewDXUnregisterObjectNV) + +#define WGLEW_NV_DX_interop WGLEW_GET_VAR(__WGLEW_NV_DX_interop) + +#endif /* WGL_NV_DX_interop */ + +/* --------------------------- WGL_NV_copy_image --------------------------- */ + +#ifndef WGL_NV_copy_image +#define WGL_NV_copy_image 1 + +typedef BOOL (WINAPI * PFNWGLCOPYIMAGESUBDATANVPROC) (HGLRC hSrcRC, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, HGLRC hDstRC, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); + +#define wglCopyImageSubDataNV WGLEW_GET_FUN(__wglewCopyImageSubDataNV) + +#define WGLEW_NV_copy_image WGLEW_GET_VAR(__WGLEW_NV_copy_image) + +#endif /* WGL_NV_copy_image */ + /* -------------------------- WGL_NV_float_buffer -------------------------- */ #ifndef WGL_NV_float_buffer @@ -712,6 +896,72 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWO #endif /* WGL_NV_float_buffer */ +/* -------------------------- WGL_NV_gpu_affinity -------------------------- */ + +#ifndef WGL_NV_gpu_affinity +#define WGL_NV_gpu_affinity 1 + +#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20D0 +#define WGL_ERROR_MISSING_AFFINITY_MASK_NV 0x20D1 + +DECLARE_HANDLE(HGPUNV); +typedef struct _GPU_DEVICE { + DWORD cb; + CHAR DeviceName[32]; + CHAR DeviceString[128]; + DWORD Flags; + RECT rcVirtualScreen; +} GPU_DEVICE, *PGPU_DEVICE; + +typedef HDC (WINAPI * PFNWGLCREATEAFFINITYDCNVPROC) (const HGPUNV *phGpuList); +typedef BOOL (WINAPI * PFNWGLDELETEDCNVPROC) (HDC hdc); +typedef BOOL (WINAPI * PFNWGLENUMGPUDEVICESNVPROC) (HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice); +typedef BOOL (WINAPI * PFNWGLENUMGPUSFROMAFFINITYDCNVPROC) (HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu); +typedef BOOL (WINAPI * PFNWGLENUMGPUSNVPROC) (UINT iGpuIndex, HGPUNV *phGpu); + +#define wglCreateAffinityDCNV WGLEW_GET_FUN(__wglewCreateAffinityDCNV) +#define wglDeleteDCNV WGLEW_GET_FUN(__wglewDeleteDCNV) +#define wglEnumGpuDevicesNV WGLEW_GET_FUN(__wglewEnumGpuDevicesNV) +#define wglEnumGpusFromAffinityDCNV WGLEW_GET_FUN(__wglewEnumGpusFromAffinityDCNV) +#define wglEnumGpusNV WGLEW_GET_FUN(__wglewEnumGpusNV) + +#define WGLEW_NV_gpu_affinity WGLEW_GET_VAR(__WGLEW_NV_gpu_affinity) + +#endif /* WGL_NV_gpu_affinity */ + +/* ---------------------- WGL_NV_multisample_coverage ---------------------- */ + +#ifndef WGL_NV_multisample_coverage +#define WGL_NV_multisample_coverage 1 + +#define WGL_COVERAGE_SAMPLES_NV 0x2042 +#define WGL_COLOR_SAMPLES_NV 0x20B9 + +#define WGLEW_NV_multisample_coverage WGLEW_GET_VAR(__WGLEW_NV_multisample_coverage) + +#endif /* WGL_NV_multisample_coverage */ + +/* -------------------------- WGL_NV_present_video ------------------------- */ + +#ifndef WGL_NV_present_video +#define WGL_NV_present_video 1 + +#define WGL_NUM_VIDEO_SLOTS_NV 0x20F0 + +DECLARE_HANDLE(HVIDEOOUTPUTDEVICENV); + +typedef BOOL (WINAPI * PFNWGLBINDVIDEODEVICENVPROC) (HDC hDc, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int* piAttribList); +typedef int (WINAPI * PFNWGLENUMERATEVIDEODEVICESNVPROC) (HDC hDc, HVIDEOOUTPUTDEVICENV* phDeviceList); +typedef BOOL (WINAPI * PFNWGLQUERYCURRENTCONTEXTNVPROC) (int iAttribute, int* piValue); + +#define wglBindVideoDeviceNV WGLEW_GET_FUN(__wglewBindVideoDeviceNV) +#define wglEnumerateVideoDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoDevicesNV) +#define wglQueryCurrentContextNV WGLEW_GET_FUN(__wglewQueryCurrentContextNV) + +#define WGLEW_NV_present_video WGLEW_GET_VAR(__WGLEW_NV_present_video) + +#endif /* WGL_NV_present_video */ + /* ---------------------- WGL_NV_render_depth_texture ---------------------- */ #ifndef WGL_NV_render_depth_texture @@ -741,6 +991,29 @@ typedef BOOL (WINAPI * PFNWGLQUERYFRAMETRACKINGI3DPROC) (DWORD* pFrameCount, DWO #endif /* WGL_NV_render_texture_rectangle */ +/* --------------------------- WGL_NV_swap_group --------------------------- */ + +#ifndef WGL_NV_swap_group +#define WGL_NV_swap_group 1 + +typedef BOOL (WINAPI * PFNWGLBINDSWAPBARRIERNVPROC) (GLuint group, GLuint barrier); +typedef BOOL (WINAPI * PFNWGLJOINSWAPGROUPNVPROC) (HDC hDC, GLuint group); +typedef BOOL (WINAPI * PFNWGLQUERYFRAMECOUNTNVPROC) (HDC hDC, GLuint* count); +typedef BOOL (WINAPI * PFNWGLQUERYMAXSWAPGROUPSNVPROC) (HDC hDC, GLuint* maxGroups, GLuint *maxBarriers); +typedef BOOL (WINAPI * PFNWGLQUERYSWAPGROUPNVPROC) (HDC hDC, GLuint* group, GLuint *barrier); +typedef BOOL (WINAPI * PFNWGLRESETFRAMECOUNTNVPROC) (HDC hDC); + +#define wglBindSwapBarrierNV WGLEW_GET_FUN(__wglewBindSwapBarrierNV) +#define wglJoinSwapGroupNV WGLEW_GET_FUN(__wglewJoinSwapGroupNV) +#define wglQueryFrameCountNV WGLEW_GET_FUN(__wglewQueryFrameCountNV) +#define wglQueryMaxSwapGroupsNV WGLEW_GET_FUN(__wglewQueryMaxSwapGroupsNV) +#define wglQuerySwapGroupNV WGLEW_GET_FUN(__wglewQuerySwapGroupNV) +#define wglResetFrameCountNV WGLEW_GET_FUN(__wglewResetFrameCountNV) + +#define WGLEW_NV_swap_group WGLEW_GET_VAR(__WGLEW_NV_swap_group) + +#endif /* WGL_NV_swap_group */ + /* ----------------------- WGL_NV_vertex_array_range ----------------------- */ #ifndef WGL_NV_vertex_array_range @@ -756,6 +1029,71 @@ typedef void (WINAPI * PFNWGLFREEMEMORYNVPROC) (void *pointer); #endif /* WGL_NV_vertex_array_range */ +/* -------------------------- WGL_NV_video_capture ------------------------- */ + +#ifndef WGL_NV_video_capture +#define WGL_NV_video_capture 1 + +#define WGL_UNIQUE_ID_NV 0x20CE +#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20CF + +DECLARE_HANDLE(HVIDEOINPUTDEVICENV); + +typedef BOOL (WINAPI * PFNWGLBINDVIDEOCAPTUREDEVICENVPROC) (UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice); +typedef UINT (WINAPI * PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC) (HDC hDc, HVIDEOINPUTDEVICENV* phDeviceList); +typedef BOOL (WINAPI * PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); +typedef BOOL (WINAPI * PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int* piValue); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC) (HDC hDc, HVIDEOINPUTDEVICENV hDevice); + +#define wglBindVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewBindVideoCaptureDeviceNV) +#define wglEnumerateVideoCaptureDevicesNV WGLEW_GET_FUN(__wglewEnumerateVideoCaptureDevicesNV) +#define wglLockVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewLockVideoCaptureDeviceNV) +#define wglQueryVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewQueryVideoCaptureDeviceNV) +#define wglReleaseVideoCaptureDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoCaptureDeviceNV) + +#define WGLEW_NV_video_capture WGLEW_GET_VAR(__WGLEW_NV_video_capture) + +#endif /* WGL_NV_video_capture */ + +/* -------------------------- WGL_NV_video_output -------------------------- */ + +#ifndef WGL_NV_video_output +#define WGL_NV_video_output 1 + +#define WGL_BIND_TO_VIDEO_RGB_NV 0x20C0 +#define WGL_BIND_TO_VIDEO_RGBA_NV 0x20C1 +#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20C2 +#define WGL_VIDEO_OUT_COLOR_NV 0x20C3 +#define WGL_VIDEO_OUT_ALPHA_NV 0x20C4 +#define WGL_VIDEO_OUT_DEPTH_NV 0x20C5 +#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV 0x20C6 +#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV 0x20C7 +#define WGL_VIDEO_OUT_FRAME 0x20C8 +#define WGL_VIDEO_OUT_FIELD_1 0x20C9 +#define WGL_VIDEO_OUT_FIELD_2 0x20CA +#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2 0x20CB +#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1 0x20CC + +DECLARE_HANDLE(HPVIDEODEV); + +typedef BOOL (WINAPI * PFNWGLBINDVIDEOIMAGENVPROC) (HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL (WINAPI * PFNWGLGETVIDEODEVICENVPROC) (HDC hDC, int numDevices, HPVIDEODEV* hVideoDevice); +typedef BOOL (WINAPI * PFNWGLGETVIDEOINFONVPROC) (HPVIDEODEV hpVideoDevice, unsigned long* pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEODEVICENVPROC) (HPVIDEODEV hVideoDevice); +typedef BOOL (WINAPI * PFNWGLRELEASEVIDEOIMAGENVPROC) (HPBUFFERARB hPbuffer, int iVideoBuffer); +typedef BOOL (WINAPI * PFNWGLSENDPBUFFERTOVIDEONVPROC) (HPBUFFERARB hPbuffer, int iBufferType, unsigned long* pulCounterPbuffer, BOOL bBlock); + +#define wglBindVideoImageNV WGLEW_GET_FUN(__wglewBindVideoImageNV) +#define wglGetVideoDeviceNV WGLEW_GET_FUN(__wglewGetVideoDeviceNV) +#define wglGetVideoInfoNV WGLEW_GET_FUN(__wglewGetVideoInfoNV) +#define wglReleaseVideoDeviceNV WGLEW_GET_FUN(__wglewReleaseVideoDeviceNV) +#define wglReleaseVideoImageNV WGLEW_GET_FUN(__wglewReleaseVideoImageNV) +#define wglSendPbufferToVideoNV WGLEW_GET_FUN(__wglewSendPbufferToVideoNV) + +#define WGLEW_NV_video_output WGLEW_GET_VAR(__WGLEW_NV_video_output) + +#endif /* WGL_NV_video_output */ + /* -------------------------- WGL_OML_sync_control ------------------------- */ #ifndef WGL_OML_sync_control @@ -794,11 +1132,23 @@ struct WGLEWContextStruct WGLEW_EXPORT PFNWGLSETSTEREOEMITTERSTATE3DLPROC __wglewSetStereoEmitterState3DL; +WGLEW_EXPORT PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC __wglewBlitContextFramebufferAMD; +WGLEW_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC __wglewCreateAssociatedContextAMD; +WGLEW_EXPORT PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC __wglewCreateAssociatedContextAttribsAMD; +WGLEW_EXPORT PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC __wglewDeleteAssociatedContextAMD; +WGLEW_EXPORT PFNWGLGETCONTEXTGPUIDAMDPROC __wglewGetContextGPUIDAMD; +WGLEW_EXPORT PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC __wglewGetCurrentAssociatedContextAMD; +WGLEW_EXPORT PFNWGLGETGPUIDSAMDPROC __wglewGetGPUIDsAMD; +WGLEW_EXPORT PFNWGLGETGPUINFOAMDPROC __wglewGetGPUInfoAMD; +WGLEW_EXPORT PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC __wglewMakeAssociatedContextCurrentAMD; + WGLEW_EXPORT PFNWGLCREATEBUFFERREGIONARBPROC __wglewCreateBufferRegionARB; WGLEW_EXPORT PFNWGLDELETEBUFFERREGIONARBPROC __wglewDeleteBufferRegionARB; WGLEW_EXPORT PFNWGLRESTOREBUFFERREGIONARBPROC __wglewRestoreBufferRegionARB; WGLEW_EXPORT PFNWGLSAVEBUFFERREGIONARBPROC __wglewSaveBufferRegionARB; +WGLEW_EXPORT PFNWGLCREATECONTEXTATTRIBSARBPROC __wglewCreateContextAttribsARB; + WGLEW_EXPORT PFNWGLGETEXTENSIONSSTRINGARBPROC __wglewGetExtensionsStringARB; WGLEW_EXPORT PFNWGLGETCURRENTREADDCARBPROC __wglewGetCurrentReadDCARB; @@ -877,9 +1227,50 @@ WGLEW_EXPORT PFNWGLENDFRAMETRACKINGI3DPROC __wglewEndFrameTrackingI3D; WGLEW_EXPORT PFNWGLGETFRAMEUSAGEI3DPROC __wglewGetFrameUsageI3D; WGLEW_EXPORT PFNWGLQUERYFRAMETRACKINGI3DPROC __wglewQueryFrameTrackingI3D; +WGLEW_EXPORT PFNWGLDXCLOSEDEVICENVPROC __wglewDXCloseDeviceNV; +WGLEW_EXPORT PFNWGLDXLOCKOBJECTSNVPROC __wglewDXLockObjectsNV; +WGLEW_EXPORT PFNWGLDXOBJECTACCESSNVPROC __wglewDXObjectAccessNV; +WGLEW_EXPORT PFNWGLDXOPENDEVICENVPROC __wglewDXOpenDeviceNV; +WGLEW_EXPORT PFNWGLDXREGISTEROBJECTNVPROC __wglewDXRegisterObjectNV; +WGLEW_EXPORT PFNWGLDXSETRESOURCESHAREHANDLENVPROC __wglewDXSetResourceShareHandleNV; +WGLEW_EXPORT PFNWGLDXUNLOCKOBJECTSNVPROC __wglewDXUnlockObjectsNV; +WGLEW_EXPORT PFNWGLDXUNREGISTEROBJECTNVPROC __wglewDXUnregisterObjectNV; + +WGLEW_EXPORT PFNWGLCOPYIMAGESUBDATANVPROC __wglewCopyImageSubDataNV; + +WGLEW_EXPORT PFNWGLCREATEAFFINITYDCNVPROC __wglewCreateAffinityDCNV; +WGLEW_EXPORT PFNWGLDELETEDCNVPROC __wglewDeleteDCNV; +WGLEW_EXPORT PFNWGLENUMGPUDEVICESNVPROC __wglewEnumGpuDevicesNV; +WGLEW_EXPORT PFNWGLENUMGPUSFROMAFFINITYDCNVPROC __wglewEnumGpusFromAffinityDCNV; +WGLEW_EXPORT PFNWGLENUMGPUSNVPROC __wglewEnumGpusNV; + +WGLEW_EXPORT PFNWGLBINDVIDEODEVICENVPROC __wglewBindVideoDeviceNV; +WGLEW_EXPORT PFNWGLENUMERATEVIDEODEVICESNVPROC __wglewEnumerateVideoDevicesNV; +WGLEW_EXPORT PFNWGLQUERYCURRENTCONTEXTNVPROC __wglewQueryCurrentContextNV; + +WGLEW_EXPORT PFNWGLBINDSWAPBARRIERNVPROC __wglewBindSwapBarrierNV; +WGLEW_EXPORT PFNWGLJOINSWAPGROUPNVPROC __wglewJoinSwapGroupNV; +WGLEW_EXPORT PFNWGLQUERYFRAMECOUNTNVPROC __wglewQueryFrameCountNV; +WGLEW_EXPORT PFNWGLQUERYMAXSWAPGROUPSNVPROC __wglewQueryMaxSwapGroupsNV; +WGLEW_EXPORT PFNWGLQUERYSWAPGROUPNVPROC __wglewQuerySwapGroupNV; +WGLEW_EXPORT PFNWGLRESETFRAMECOUNTNVPROC __wglewResetFrameCountNV; + WGLEW_EXPORT PFNWGLALLOCATEMEMORYNVPROC __wglewAllocateMemoryNV; WGLEW_EXPORT PFNWGLFREEMEMORYNVPROC __wglewFreeMemoryNV; +WGLEW_EXPORT PFNWGLBINDVIDEOCAPTUREDEVICENVPROC __wglewBindVideoCaptureDeviceNV; +WGLEW_EXPORT PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC __wglewEnumerateVideoCaptureDevicesNV; +WGLEW_EXPORT PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC __wglewLockVideoCaptureDeviceNV; +WGLEW_EXPORT PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC __wglewQueryVideoCaptureDeviceNV; +WGLEW_EXPORT PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC __wglewReleaseVideoCaptureDeviceNV; + +WGLEW_EXPORT PFNWGLBINDVIDEOIMAGENVPROC __wglewBindVideoImageNV; +WGLEW_EXPORT PFNWGLGETVIDEODEVICENVPROC __wglewGetVideoDeviceNV; +WGLEW_EXPORT PFNWGLGETVIDEOINFONVPROC __wglewGetVideoInfoNV; +WGLEW_EXPORT PFNWGLRELEASEVIDEODEVICENVPROC __wglewReleaseVideoDeviceNV; +WGLEW_EXPORT PFNWGLRELEASEVIDEOIMAGENVPROC __wglewReleaseVideoImageNV; +WGLEW_EXPORT PFNWGLSENDPBUFFERTOVIDEONVPROC __wglewSendPbufferToVideoNV; + WGLEW_EXPORT PFNWGLGETMSCRATEOMLPROC __wglewGetMscRateOML; WGLEW_EXPORT PFNWGLGETSYNCVALUESOMLPROC __wglewGetSyncValuesOML; WGLEW_EXPORT PFNWGLSWAPBUFFERSMSCOMLPROC __wglewSwapBuffersMscOML; @@ -888,8 +1279,13 @@ WGLEW_EXPORT PFNWGLWAITFORMSCOMLPROC __wglewWaitForMscOML; WGLEW_EXPORT PFNWGLWAITFORSBCOMLPROC __wglewWaitForSbcOML; WGLEW_EXPORT GLboolean __WGLEW_3DFX_multisample; WGLEW_EXPORT GLboolean __WGLEW_3DL_stereo_control; +WGLEW_EXPORT GLboolean __WGLEW_AMD_gpu_association; WGLEW_EXPORT GLboolean __WGLEW_ARB_buffer_region; +WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context; +WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context_profile; +WGLEW_EXPORT GLboolean __WGLEW_ARB_create_context_robustness; WGLEW_EXPORT GLboolean __WGLEW_ARB_extensions_string; +WGLEW_EXPORT GLboolean __WGLEW_ARB_framebuffer_sRGB; WGLEW_EXPORT GLboolean __WGLEW_ARB_make_current_read; WGLEW_EXPORT GLboolean __WGLEW_ARB_multisample; WGLEW_EXPORT GLboolean __WGLEW_ARB_pbuffer; @@ -898,6 +1294,7 @@ WGLEW_EXPORT GLboolean __WGLEW_ARB_pixel_format_float; WGLEW_EXPORT GLboolean __WGLEW_ARB_render_texture; WGLEW_EXPORT GLboolean __WGLEW_ATI_pixel_format_float; WGLEW_EXPORT GLboolean __WGLEW_ATI_render_texture_rectangle; +WGLEW_EXPORT GLboolean __WGLEW_EXT_create_context_es2_profile; WGLEW_EXPORT GLboolean __WGLEW_EXT_depth_float; WGLEW_EXPORT GLboolean __WGLEW_EXT_display_color_table; WGLEW_EXPORT GLboolean __WGLEW_EXT_extensions_string; @@ -914,10 +1311,18 @@ WGLEW_EXPORT GLboolean __WGLEW_I3D_genlock; WGLEW_EXPORT GLboolean __WGLEW_I3D_image_buffer; WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_lock; WGLEW_EXPORT GLboolean __WGLEW_I3D_swap_frame_usage; +WGLEW_EXPORT GLboolean __WGLEW_NV_DX_interop; +WGLEW_EXPORT GLboolean __WGLEW_NV_copy_image; WGLEW_EXPORT GLboolean __WGLEW_NV_float_buffer; +WGLEW_EXPORT GLboolean __WGLEW_NV_gpu_affinity; +WGLEW_EXPORT GLboolean __WGLEW_NV_multisample_coverage; +WGLEW_EXPORT GLboolean __WGLEW_NV_present_video; WGLEW_EXPORT GLboolean __WGLEW_NV_render_depth_texture; WGLEW_EXPORT GLboolean __WGLEW_NV_render_texture_rectangle; +WGLEW_EXPORT GLboolean __WGLEW_NV_swap_group; WGLEW_EXPORT GLboolean __WGLEW_NV_vertex_array_range; +WGLEW_EXPORT GLboolean __WGLEW_NV_video_capture; +WGLEW_EXPORT GLboolean __WGLEW_NV_video_output; WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control; #ifdef GLEW_MX @@ -930,17 +1335,17 @@ WGLEW_EXPORT GLboolean __WGLEW_OML_sync_control; typedef struct WGLEWContextStruct WGLEWContext; GLEWAPI GLenum wglewContextInit (WGLEWContext* ctx); -GLEWAPI GLboolean wglewContextIsSupported (WGLEWContext* ctx, const char* name); +GLEWAPI GLboolean wglewContextIsSupported (const WGLEWContext* ctx, const char* name); #define wglewInit() wglewContextInit(wglewGetContext()) #define wglewIsSupported(x) wglewContextIsSupported(wglewGetContext(), x) -#define WGLEW_GET_VAR(x) wglewGetContext()->x +#define WGLEW_GET_VAR(x) (*(const GLboolean*)&(wglewGetContext()->x)) #define WGLEW_GET_FUN(x) wglewGetContext()->x #else /* GLEW_MX */ -#define WGLEW_GET_VAR(x) x +#define WGLEW_GET_VAR(x) (*(const GLboolean*)&x) #define WGLEW_GET_FUN(x) x GLEWAPI GLboolean wglewIsSupported (const char* name); diff --git a/Glut/btGlutInclude.h b/Glut/btGlutInclude.h new file mode 100644 index 000000000..d79cb5656 --- /dev/null +++ b/Glut/btGlutInclude.h @@ -0,0 +1,43 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2011 Advanced Micro Devices, Inc. http://bulletphysics.org + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + +#ifndef BT_GLUT_INCLUDE_H +#define BT_GLUT_INCLUDE_H + + +#ifdef _WIN32//for glut.h +#include +#endif + +//think different +#if defined(__APPLE__) && !defined (VMDMESA) +#include +#include +#include +#include +#else + + +#ifdef _WINDOWS +#include +#include +#include +#else +#include +#include +#endif //_WINDOWS +#endif //APPLE + +#endif //BT_GLUT_INCLUDE_H diff --git a/Glut/glew32.lib b/Glut/glew32.lib deleted file mode 100644 index db063cd246c44da9929169d66f922c9a0cae0f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 308030 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Πv`4=zk*HM%N(N|(! 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 Nxap8KON(~W{{sQ;0RsR4 diff --git a/Glut/glew32s.lib b/Glut/glew32s.lib new file mode 100644 index 0000000000000000000000000000000000000000..eb2d718e0f45203b49244f4df3f446334cf0f89c GIT binary patch literal 1288450 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 !?fvm4KiCjbNnN(`zHX;ES##71Y~~GnA){ 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 literal 0 HcmV?d00001 diff --git a/Glut/glew64.lib b/Glut/glew64.lib deleted file mode 100644 index bef37c624ce5049965bad4b8febefc9143985501..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 304614 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