/* NOTE: Do not edit this file, it is generated by a script:
   Export.py --api gl 4.2 --api wgl 4.0 --api glx 4.0 --api cgl 1.4 --api egl 1.0 --outdir .
*/

/*
  Copyright (c) 2011-2013 NVIDIA Corporation
  Copyright (c) 2011-2013 Cass Everitt
  Copyright (c) 2012-2013 Scott Nations
  Copyright (c) 2012 Mathias Schott
  Copyright (c) 2012-2013 Nigel Stewart
  Copyright (c) 2012-2013 Google Inc.
  All rights reserved.

  Redistribution and use in source and binary forms, with or without modification,
  are permitted provided that the following conditions are met:

    Redistributions of source code must retain the above copyright notice, this
    list of conditions and the following disclaimer.

    Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
  OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
  OF THE POSSIBILITY OF SUCH DAMAGE.
*/

/*
  Intended formatting conventions:
  $ astyle --style=allman --indent=spaces=2 --indent-switches
*/

#ifndef __REGAL_DECLARATIONS_H
#define __REGAL_DECLARATIONS_H

#if defined(_WIN32)
# if defined(PPAPI)
#  ifndef REGAL_SYS_PPAPI
#   define REGAL_SYS_PPAPI 1
#  endif
# else
#  ifndef REGAL_SYS_WGL
#   define REGAL_SYS_WGL 1
#  endif
# endif
# ifndef REGAL_SYS_WIN32
#  define REGAL_SYS_WIN32 1
# endif
#elif defined(__APPLE__)
# include <TargetConditionals.h>
# if defined(TARGET_OS_IPHONE) && TARGET_OS_IPHONE
#  ifndef REGAL_SYS_IOS
#   define REGAL_SYS_IOS 1
#  endif
# else
#  ifndef REGAL_SYS_OSX
#   define REGAL_SYS_OSX 1
#  endif
# endif
#elif defined(__native_client__)
# ifndef REGAL_SYS_PPAPI
#  define REGAL_SYS_PPAPI 1
# endif
#elif defined(__ANDROID__)
# ifndef REGAL_SYS_ANDROID
#  define REGAL_SYS_ANDROID 1
# endif
# ifndef REGAL_SYS_EGL
#  define REGAL_SYS_EGL 1
# endif
#elif defined(EMSCRIPTEN)
# ifndef REGAL_SYS_EMSCRIPTEN
#  define REGAL_SYS_EMSCRIPTEN 1
# endif
# ifndef REGAL_SYS_EGL
#  define REGAL_SYS_EGL 1
# endif
# ifndef REGAL_SYS_ES2
#  define REGAL_SYS_ES2 1
# endif
# ifndef REGAL_SYS_EMSCRIPTEN_STATIC
#  define REGAL_SYS_EMSCRIPTEN_STATIC 0
# endif
# if REGAL_SYS_EMSCRIPTEN_STATIC
#  define REGAL_DRIVER 1
#  define REGAL_NAMESPACE 1
#  define REGAL_STATIC_ES2 1
#  define REGAL_STATIC_EGL 1
# endif
#elif !defined(REGAL_SYS_PPAPI) || !REGAL_SYS_PPAPI
# ifndef REGAL_SYS_X11
#  define REGAL_SYS_X11 1
# endif
# ifndef REGAL_SYS_GLX
#  define REGAL_SYS_GLX REGAL_SYS_X11
# endif
#endif

#ifndef REGAL_SYS_WGL
# define REGAL_SYS_WGL 0
#endif

#ifndef REGAL_SYS_IOS
# define REGAL_SYS_IOS 0
#endif

#ifndef REGAL_SYS_OSX
# define REGAL_SYS_OSX 0
#endif

#ifndef REGAL_SYS_PPAPI
# define REGAL_SYS_PPAPI 0
#endif

#ifndef REGAL_SYS_ANDROID
# define REGAL_SYS_ANDROID 0
#endif

#ifndef REGAL_SYS_EGL
# define REGAL_SYS_EGL 0
#endif

#ifndef REGAL_SYS_GLX
# define REGAL_SYS_GLX 0
#endif

#ifndef REGAL_SYS_X11
# define REGAL_SYS_X11 0
#endif

#ifndef REGAL_SYS_WIN32
# define REGAL_SYS_WIN32 0
#endif

#ifndef REGAL_SYS_EMSCRIPTEN
#define REGAL_SYS_EMSCRIPTEN 0
#endif

#ifndef REGAL_SYS_ES1
#define REGAL_SYS_ES1 0
#endif

#ifndef REGAL_SYS_ES2
#define REGAL_SYS_ES2 (REGAL_SYS_PPAPI || REGAL_SYS_IOS || REGAL_SYS_ANDROID || REGAL_SYS_EMSCRIPTEN || REGAL_SYS_EGL)
#endif

#ifndef REGAL_SYS_GL
#define REGAL_SYS_GL (REGAL_SYS_WGL || (!REGAL_SYS_PPAPI && !REGAL_SYS_IOS && !REGAL_SYS_ANDROID && !REGAL_SYS_EMSCRIPTEN))
#endif

#if REGAL_SYS_WGL
# define REGAL_CALL __stdcall
#else
# define REGAL_CALL
#endif

#ifndef GLAPIENTRY
#define GLAPIENTRY REGAL_CALL
#endif

#ifdef _WIN32
#  if REGAL_DECL_EXPORT
#    define REGAL_DECL
#  else
#    define REGAL_DECL __declspec(dllimport)
#  endif
#elif defined(__GNUC__) && __GNUC__>=4
#  if REGAL_DECL_EXPORT
#    define REGAL_DECL __attribute__ ((visibility("default")))
#  else
#    define REGAL_DECL
#  endif
#elif defined(__SUNPRO_C) || defined(__SUNPRO_CC)
#  if REGAL_DECL_EXPORT
#    define REGAL_DECL __global
#  else
#    define REGAL_DECL
#  endif
#else
#  define REGAL_DECL
#endif

/* Plugins need the GL API as externs with plugin_ prefix */

#ifdef REGAL_PLUGIN_MODE
#undef  REGAL_DECL
#define REGAL_DECL extern
#endif

#endif /* __REGAL_DECLARATIONS_H */

#ifndef __REGAL_H__
#define __REGAL_H__

/* Skip OpenGL API if another header was included first. */

#if !defined(__gl_h_) && !defined(__GL_H__) && !defined(__X_GL_H) && !defined(__gl2_h_) && !defined(__glext_h_) && !defined(__GLEXT_H_) && !defined(__gl_ATI_h_) && !defined(_OPENGL_H)

#define __gl_h_
#define __gl2_h_
#define __GL_H__
#define __X_GL_H
#define __glext_h_
#define __GLEXT_H_
#define __gl_ATI_h_
#define _OPENGL_H

#if REGAL_SYS_GLX
#include <X11/Xdefs.h>
#include <X11/Xutil.h>
typedef XID GLXDrawable;
#endif

#if REGAL_SYS_EGL && REGAL_SYS_X11
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#endif

#ifdef __cplusplus
extern "C" {
#endif

#include <stddef.h>
#if defined(_WIN32)
  typedef __int64 int64_t;
  typedef unsigned __int64 uint64_t;
  #if defined(REGAL_SYS_WGL_DECLARE_WGL) && !defined(_WINDEF_)
    struct HDC__ {int unused;};
    typedef struct HDC__* HDC;
    struct HGLRC__ {int unused;};
    typedef struct HGLRC__* HGLRC;
  #endif
#else
  #include <inttypes.h>
#endif

typedef unsigned int GLenum;
typedef unsigned char GLboolean;
typedef unsigned int GLbitfield;
typedef signed char GLbyte;
typedef short GLshort;
typedef int GLint;
typedef int GLsizei;
typedef unsigned char GLubyte;
typedef unsigned short GLushort;
typedef unsigned int GLuint;
typedef float GLfloat;
typedef float GLclampf;
typedef double GLdouble;
typedef double GLclampd;
typedef void GLvoid;
typedef ptrdiff_t GLintptr;
typedef ptrdiff_t GLsizeiptr;
typedef char GLchar;
typedef int64_t GLint64;
typedef uint64_t GLuint64;
typedef struct __GLsync * GLsync;
typedef struct _cl_context * cl_context;
typedef struct _cl_event * cl_event;
typedef ptrdiff_t GLintptrARB;
typedef ptrdiff_t GLsizeiptrARB;
typedef char GLcharARB;
#if REGAL_SYS_IOS
typedef unsigned long GLhandleARB;
#elif REGAL_SYS_OSX
typedef unsigned long GLhandleARB;
#else
typedef unsigned int GLhandleARB;
#endif
typedef unsigned short GLhalfARB;
typedef unsigned short GLhalfNV;
typedef int64_t GLint64EXT;
typedef uint64_t GLuint64EXT;
typedef GLintptr GLvdpauSurfaceNV;
typedef int GLfixed;
typedef int GLclampx;

#if REGAL_SYS_WGL
#ifdef  REGAL_SYS_WGL_DECLARE_WGL
#ifndef _WINDEF_
typedef void VOID;
typedef void * PVOID;
typedef PVOID HANDLE;
typedef const char * LPCSTR;
typedef signed int INT32;
typedef signed __int64 INT64;
typedef void * LPVOID;
typedef int BOOL;
typedef unsigned long DWORD;
typedef float FLOAT;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned short USHORT;
typedef void * PROC;
typedef DWORD COLORREF;
typedef long LONG;
typedef unsigned long * ULONG_PTR;
#endif
#ifndef _WINGDI_
typedef struct _GLYPHMETRICSFLOAT GLYPHMETRICSFLOAT;
typedef GLYPHMETRICSFLOAT * LPGLYPHMETRICSFLOAT;
typedef struct tagLAYERPLANEDESCRIPTOR LAYERPLANEDESCRIPTOR;
typedef LAYERPLANEDESCRIPTOR * LPLAYERPLANEDESCRIPTOR;
typedef struct tagPIXELFORMATDESCRIPTOR PIXELFORMATDESCRIPTOR;
typedef PIXELFORMATDESCRIPTOR * LPPIXELFORMATDESCRIPTOR;
typedef struct _POINTFLOAT POINTFLOAT;
typedef struct _WGLSWAP WGLSWAP;
#endif
#endif // REGAL_SYS_WGL_DECLARE_WGL
typedef struct HPBUFFERARB__ * HPBUFFERARB;
typedef struct HPBUFFEREXT__ * HPBUFFEREXT;
typedef struct HGPUNV__ * HGPUNV;
typedef struct HPVIDEODEV__ * HPVIDEODEV;
typedef struct HVIDEOINPUTDEVICENV__ * HVIDEOINPUTDEVICENV;
typedef struct HVIDEOOUTPUTDEVICENV__ * HVIDEOOUTPUTDEVICENV;
typedef struct GPU_DEVICE * PGPU_DEVICE;
#endif // REGAL_SYS_WGL

#if REGAL_SYS_GLX
typedef XID GLXVideoCaptureDeviceNV;
typedef unsigned long XID;
typedef XID Pixmap;
typedef XID Font;
typedef struct _XDisplay Display;
typedef XID GLXDrawble;
typedef XID GLXPixmap;
typedef struct __GLXcontextRec * GLXContext;
typedef unsigned int GLXVideoDeviceNV;
typedef XID GLXWindow;
typedef XID GLXPbuffer;
typedef XID GLXFBConfigID;
typedef struct __GLXFBConfigRec * GLXFBConfig;
typedef XID GLXContextID;
typedef XID GLXFBConfigIDSGIX;
typedef struct __GLXFBConfigRec * GLXFBConfigSGIX;
typedef XID GLXPbufferSGIX;
#endif // REGAL_SYS_GLX

#if REGAL_SYS_OSX
typedef struct _CGLContextObject * CGLContextObj;
typedef struct _CGLPixelFormatObject * CGLPixelFormatObj;
typedef struct _CGLRendererInfoObject * CGLRendererInfoObj;
typedef struct _CGLPBufferObject * CGLPBufferObj;
typedef void * CGLShareGroupObj;
typedef struct __IOSurface * IOSurfaceRef;
typedef void * CGSConnectionID;
typedef int CGSWindowID;
typedef int CGSSurfaceID;
#endif // REGAL_SYS_OSX

#if REGAL_SYS_EGL
#if REGAL_SYS_ANDROID
typedef struct ANativeWindow * EGLNativeWindowType;
#elif REGAL_SYS_WIN32
typedef HWND EGLNativeWindowType;
#elif REGAL_SYS_X11
typedef Window EGLNativeWindowType;
#else
typedef void * EGLNativeWindowType;
#endif
#if REGAL_SYS_ANDROID
typedef struct egl_native_pixmap_t * EGLNativePixmapType;
#elif REGAL_SYS_WIN32
typedef HBITMAP EGLNativePixmapType;
#elif REGAL_SYS_X11
typedef Pixmap EGLNativePixmapType;
#else
typedef void * EGLNativePixmapType;
#endif
#if REGAL_SYS_ANDROID
typedef void * EGLNativeDisplayType;
#elif REGAL_SYS_WIN32
typedef HDC EGLNativeDisplayType;
#elif REGAL_SYS_X11
typedef Display * EGLNativeDisplayType;
#else
typedef int EGLNativeDisplayType;
#endif
typedef EGLNativeDisplayType NativeDisplayType;
typedef EGLNativePixmapType  NativePixmapType;
typedef EGLNativeWindowType  NativeWindowType;
typedef int EGLint;
typedef unsigned int EGLBoolean;
typedef unsigned int EGLenum;
typedef void * EGLConfig;
typedef void * EGLContext;
typedef void * EGLDisplay;
typedef void * EGLSurface;
typedef void * EGLClientBuffer;
typedef void  (*__eglMustCastToProperFunctionPointerType)(void);
typedef void * EGLSyncKHR;
typedef uint64_t EGLTimeKHR;
typedef void * EGLImageKHR;
typedef void * EGLStreamKHR;
typedef uint64_t EGLuint64KHR;
typedef int EGLNativeFileDescriptorKHR;
typedef void * EGLSyncNV;
typedef uint64_t EGLTimeNV;
typedef uint64_t EGLuint64NV;
#endif // REGAL_SYS_EGL

/* TODO: make this automatic? */

typedef void (REGAL_CALL *GLDEBUGPROCAMD)(GLuint id, GLenum category, GLenum severity, GLsizei length, const GLchar *message, GLvoid *userParam);
typedef void (REGAL_CALL *GLDEBUGPROCARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, GLvoid *userParam);
typedef void (REGAL_CALL *GLDEBUGPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *message, GLvoid *userParam);

typedef void (*GLLOGPROCREGAL)(GLenum stream, GLsizei length, const GLchar *message, GLvoid *context);

#if REGAL_SYS_GLX
typedef void (*__GLXextFuncPtr)(void);
#endif

#if REGAL_SYS_OSX

typedef enum _CGLPixelFormatAttribute {
  kCGLPFAAllRenderers = 1,
  kCGLPFATripleBuffer = 3,
  kCGLPFADoubleBuffer = 5,
  kCGLPFAStereo = 6,
  kCGLPFAAuxBuffers = 7,
  kCGLPFAColorSize = 8,
  kCGLPFAAlphaSize = 11,
  kCGLPFADepthSize = 12,
  kCGLPFAStencilSize = 13,
  kCGLPFAAccumSize = 14,
  kCGLPFAMinimumPolicy = 51,
  kCGLPFAMaximumPolicy = 52,
  kCGLPFAOffScreen = 53,
  kCGLPFAFullScreen = 54,
  kCGLPFASampleBuffers = 55,
  kCGLPFASamples = 56,
  kCGLPFAAuxDepthStencil = 57,
  kCGLPFAColorFloat = 58,
  kCGLPFAMultisample = 59,
  kCGLPFASupersample = 60,
  kCGLPFASampleAlpha = 61,
  kCGLPFARendererID = 70,
  kCGLPFASingleRenderer = 71,
  kCGLPFANoRecovery = 72,
  kCGLPFAAccelerated = 73,
  kCGLPFAClosestPolicy = 74,
  kCGLPFARobust = 75,
  kCGLPFABackingStore = 76,
  kCGLPFAMPSafe = 78,
  kCGLPFAWindow = 80,
  kCGLPFAMultiScreen = 81,
  kCGLPFACompliant = 83,
  kCGLPFADisplayMask = 84,
  kCGLPFAPBuffer = 90,
  kCGLPFARemotePBuffer = 91,
  kCGLPFAAllowOfflineRenderers = 96,
  kCGLPFAAcceleratedCompute = 97,
  kCGLPFAOpenGLProfile = 99,
  kCGLPFAVirtualScreenCount = 128,
} CGLPixelFormatAttribute;

typedef enum _CGLRendererProperty {
  kCGLRPOffScreen = 53,
  kCGLRPFullScreen = 54,
  kCGLRPRendererID = 70,
  kCGLRPAccelerated = 73,
  kCGLRPRobust = 75,
  kCGLRPBackingStore = 76,
  kCGLRPMPSafe = 78,
  kCGLRPWindow = 80,
  kCGLRPMultiScreen = 81,
  kCGLRPCompliant = 83,
  kCGLRPDisplayMask = 84,
  kCGLRPBufferModes = 100,
  kCGLRPColorModes = 103,
  kCGLRPAccumModes = 104,
  kCGLRPDepthModes = 105,
  kCGLRPStencilModes = 106,
  kCGLRPMaxAuxBuffers = 107,
  kCGLRPMaxSampleBuffers = 108,
  kCGLRPMaxSamples = 109,
  kCGLRPSampleModes = 110,
  kCGLRPSampleAlpha = 111,
  kCGLRPVideoMemory = 120,
  kCGLRPTextureMemory = 121,
  kCGLRPGPUVertProcCapable = 122,
  kCGLRPGPUFragProcCapable = 123,
  kCGLRPRendererCount = 128,
  kCGLRPOnline = 129,
  kCGLRPAcceleratedCompute = 130,
  kCGLRPVideoMemoryMegabytes = 131,
  kCGLRPTextureMemoryMegabytes = 132,
} CGLRendererProperty;

typedef enum _CGLContextEnable {
  kCGLCESwapRectangle = 201,
  kCGLCESwapLimit = 203,
  kCGLCERasterization = 221,
  kCGLCEStateValidation = 301,
  kCGLCESurfaceBackingSize = 305,
  kCGLCEDisplayListOptimization = 307,
  kCGLCEMPEngine = 313,
  kCGLCECrashOnRemovedFunctions = 316,
} CGLContextEnable;

typedef enum _CGLContextParameter {
  kCGLCPSwapRectangle = 200,
  kCGLCPSwapInterval = 222,
  kCGLCPDispatchTableSize = 224,
  kCGLCPClientStorage = 226,
  kCGLCPSurfaceTexture = 228,
  kCGLCPSurfaceOrder = 235,
  kCGLCPSurfaceOpacity = 236,
  kCGLCPSurfaceBackingSize = 304,
  kCGLCPSurfaceSurfaceVolatile = 306,
  kCGLCPReclaimResources = 308,
  kCGLCPCurrentRendererID = 309,
  kCGLCPGPUVertexProcessing = 310,
  kCGLCPGPUFragmentProcessing = 311,
  kCGLCPHasDrawable = 314,
  kCGLCPMPSwapsInFlight = 315,
} CGLContextParameter;

typedef enum _CGLGlobalOption {
  kCGLGOFormatCacheSize = 501,
  kCGLGOClearFormatCache = 502,
  kCGLGORetainRenderers = 503,
  kCGLGOResetLibrary = 504,
  kCGLGOUseErrorHandler = 505,
  kCGLGOUseBuildCache = 506,
} CGLGlobalOption;

typedef enum _CGLOpenGLProfile {
  kCGLOGLPVersion_Legacy = 4096,
  kCGLOGLPVersion_3_2_Core = 12800,
} CGLOpenGLProfile;

typedef enum _CGLError {
  kCGLNoError = 0,
  kCGLBadAttribute = 10000,
  kCGLBadProperty = 10001,
  kCGLBadPixelFormat = 10002,
  kCGLBadRendererInfo = 10003,
  kCGLBadContext = 10004,
  kCGLBadDrawable = 10005,
  kCGLBadDisplay  = 10006,
  kCGLBadState = 10007,
  kCGLBadValue = 10008,
  kCGLBadMatch = 10009,
  kCGLBadEnumeration = 10010,
  kCGLBadOffScreen = 10011,
  kCGLBadFullScreen = 10012,
  kCGLBadWindow = 10013,
  kCGLBadAddress = 10014,
  kCGLBadCodeModule = 10015,
  kCGLBadAlloc = 10016,
  kCGLBadConnection = 10017,
} CGLError;

#endif // REGAL_SYS_OSX

/**
 ** GL_3DFX_multisample
 **/

#if (defined(GL_3DFX_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_3DFX_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_3DFX_MULTISAMPLE
#endif

#if (defined(GL_3DFX_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_3DFX_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_3DFX_MULTISAMPLE
#endif

#if (defined(GL_3DFX_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_3DFX_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_3DFX_MULTISAMPLE
#endif

#if (defined(GL_3DFX_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_3DFX_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_3DFX_MULTISAMPLE
#endif

#if (defined(GL_3DFX_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_3DFX_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_3DFX_MULTISAMPLE
#endif

#ifndef GL_3DFX_multisample
#define GL_3DFX_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_3DFX_MULTISAMPLE
#define GL_MULTISAMPLE_BIT_3DFX 0x20000000     /* 536870912 */
#define GL_MULTISAMPLE_3DFX     0x86b2         /* 34482 */
#define GL_SAMPLE_BUFFERS_3DFX  0x86b3         /* 34483 */
#define GL_SAMPLES_3DFX         0x86b4         /* 34484 */
#endif

/**
 ** GL_3DFX_tbuffer
 **/

#if (defined(GL_3DFX_TBUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_3DFX_TBUFFER)) && !defined(REGAL_NO_ENUM_GL_3DFX_TBUFFER)
#define REGAL_NO_ENUM_GL_3DFX_TBUFFER
#endif

#if (defined(GL_3DFX_TBUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_3DFX_TBUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_3DFX_TBUFFER)
#define REGAL_NO_TYPEDEF_GL_3DFX_TBUFFER
#endif

#if (defined(GL_3DFX_TBUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_3DFX_TBUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_3DFX_TBUFFER)
#define REGAL_NO_NAMESPACE_GL_3DFX_TBUFFER
#endif

#if (defined(GL_3DFX_TBUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_3DFX_TBUFFER)) && !defined(REGAL_NO_PLUGIN_GL_3DFX_TBUFFER)
#define REGAL_NO_PLUGIN_GL_3DFX_TBUFFER
#endif

#if (defined(GL_3DFX_TBUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_3DFX_TBUFFER)) && !defined(REGAL_NO_DECLARATION_GL_3DFX_TBUFFER)
#define REGAL_NO_DECLARATION_GL_3DFX_TBUFFER
#endif

#ifndef GL_3DFX_tbuffer
#define GL_3DFX_tbuffer 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_3DFX_TBUFFER
typedef void (REGAL_CALL *PFNGLTBUFFERMASK3DFXPROC)(GLuint mask);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_3DFX_TBUFFER
#define glTbufferMask3DFX                   rglTbufferMask3DFX
#endif

#ifndef REGAL_NO_DECLARATION_GL_3DFX_TBUFFER
REGAL_DECL void REGAL_CALL glTbufferMask3DFX(GLuint mask);
#endif

#ifndef REGAL_NO_PLUGIN_GL_3DFX_TBUFFER
REGAL_DECL void REGAL_CALL plugin_glTbufferMask3DFX(GLuint mask);
#endif

/**
 ** GL_3DFX_texture_compression_FXT1
 **/

#if (defined(GL_3DFX_TEXTURE_COMPRESSION_FXT1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_3DFX_TEXTURE_COMPRESSION_FXT1)) && !defined(REGAL_NO_ENUM_GL_3DFX_TEXTURE_COMPRESSION_FXT1)
#define REGAL_NO_ENUM_GL_3DFX_TEXTURE_COMPRESSION_FXT1
#endif

#if (defined(GL_3DFX_TEXTURE_COMPRESSION_FXT1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_3DFX_TEXTURE_COMPRESSION_FXT1)) && !defined(REGAL_NO_TYPEDEF_GL_3DFX_TEXTURE_COMPRESSION_FXT1)
#define REGAL_NO_TYPEDEF_GL_3DFX_TEXTURE_COMPRESSION_FXT1
#endif

#if (defined(GL_3DFX_TEXTURE_COMPRESSION_FXT1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_3DFX_TEXTURE_COMPRESSION_FXT1)) && !defined(REGAL_NO_NAMESPACE_GL_3DFX_TEXTURE_COMPRESSION_FXT1)
#define REGAL_NO_NAMESPACE_GL_3DFX_TEXTURE_COMPRESSION_FXT1
#endif

#if (defined(GL_3DFX_TEXTURE_COMPRESSION_FXT1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_3DFX_TEXTURE_COMPRESSION_FXT1)) && !defined(REGAL_NO_PLUGIN_GL_3DFX_TEXTURE_COMPRESSION_FXT1)
#define REGAL_NO_PLUGIN_GL_3DFX_TEXTURE_COMPRESSION_FXT1
#endif

#if (defined(GL_3DFX_TEXTURE_COMPRESSION_FXT1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_3DFX_TEXTURE_COMPRESSION_FXT1)) && !defined(REGAL_NO_DECLARATION_GL_3DFX_TEXTURE_COMPRESSION_FXT1)
#define REGAL_NO_DECLARATION_GL_3DFX_TEXTURE_COMPRESSION_FXT1
#endif

#ifndef GL_3DFX_texture_compression_FXT1
#define GL_3DFX_texture_compression_FXT1 1
#endif

#ifndef REGAL_NO_ENUM_GL_3DFX_TEXTURE_COMPRESSION_FXT1
#define GL_COMPRESSED_RGB_FXT1_3DFX  0x86b0     /* 34480 */
#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86b1     /* 34481 */
#endif

/**
 ** GL_AMD_blend_minmax_factor
 **/

#if (defined(GL_AMD_BLEND_MINMAX_FACTOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_BLEND_MINMAX_FACTOR)) && !defined(REGAL_NO_ENUM_GL_AMD_BLEND_MINMAX_FACTOR)
#define REGAL_NO_ENUM_GL_AMD_BLEND_MINMAX_FACTOR
#endif

#if (defined(GL_AMD_BLEND_MINMAX_FACTOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_BLEND_MINMAX_FACTOR)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_BLEND_MINMAX_FACTOR)
#define REGAL_NO_TYPEDEF_GL_AMD_BLEND_MINMAX_FACTOR
#endif

#if (defined(GL_AMD_BLEND_MINMAX_FACTOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_BLEND_MINMAX_FACTOR)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_BLEND_MINMAX_FACTOR)
#define REGAL_NO_NAMESPACE_GL_AMD_BLEND_MINMAX_FACTOR
#endif

#if (defined(GL_AMD_BLEND_MINMAX_FACTOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_BLEND_MINMAX_FACTOR)) && !defined(REGAL_NO_PLUGIN_GL_AMD_BLEND_MINMAX_FACTOR)
#define REGAL_NO_PLUGIN_GL_AMD_BLEND_MINMAX_FACTOR
#endif

#if (defined(GL_AMD_BLEND_MINMAX_FACTOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_BLEND_MINMAX_FACTOR)) && !defined(REGAL_NO_DECLARATION_GL_AMD_BLEND_MINMAX_FACTOR)
#define REGAL_NO_DECLARATION_GL_AMD_BLEND_MINMAX_FACTOR
#endif

#ifndef GL_AMD_blend_minmax_factor
#define GL_AMD_blend_minmax_factor 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_BLEND_MINMAX_FACTOR
#define GL_FACTOR_MIN_AMD 0x901c     /* 36892 */
#define GL_FACTOR_MAX_AMD 0x901d     /* 36893 */
#endif

/**
 ** GL_AMD_compressed_3DC_texture
 **/

#if (defined(GL_AMD_COMPRESSED_3DC_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_COMPRESSED_3DC_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_AMD_COMPRESSED_3DC_TEXTURE)
#define REGAL_NO_ENUM_GL_AMD_COMPRESSED_3DC_TEXTURE
#endif

#if (defined(GL_AMD_COMPRESSED_3DC_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_COMPRESSED_3DC_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_COMPRESSED_3DC_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_AMD_COMPRESSED_3DC_TEXTURE
#endif

#if (defined(GL_AMD_COMPRESSED_3DC_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_COMPRESSED_3DC_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_COMPRESSED_3DC_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_AMD_COMPRESSED_3DC_TEXTURE
#endif

#if (defined(GL_AMD_COMPRESSED_3DC_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_COMPRESSED_3DC_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_AMD_COMPRESSED_3DC_TEXTURE)
#define REGAL_NO_PLUGIN_GL_AMD_COMPRESSED_3DC_TEXTURE
#endif

#if (defined(GL_AMD_COMPRESSED_3DC_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_COMPRESSED_3DC_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_AMD_COMPRESSED_3DC_TEXTURE)
#define REGAL_NO_DECLARATION_GL_AMD_COMPRESSED_3DC_TEXTURE
#endif

#ifndef GL_AMD_compressed_3DC_texture
#define GL_AMD_compressed_3DC_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_COMPRESSED_3DC_TEXTURE
#define GL_3DC_X_AMD  0x87f9     /* 34809 */
#define GL_3DC_XY_AMD 0x87fa     /* 34810 */
#endif

/**
 ** GL_AMD_compressed_ATC_texture
 **/

#if (defined(GL_AMD_COMPRESSED_ATC_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_COMPRESSED_ATC_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_AMD_COMPRESSED_ATC_TEXTURE)
#define REGAL_NO_ENUM_GL_AMD_COMPRESSED_ATC_TEXTURE
#endif

#if (defined(GL_AMD_COMPRESSED_ATC_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_COMPRESSED_ATC_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_COMPRESSED_ATC_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_AMD_COMPRESSED_ATC_TEXTURE
#endif

#if (defined(GL_AMD_COMPRESSED_ATC_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_COMPRESSED_ATC_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_COMPRESSED_ATC_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_AMD_COMPRESSED_ATC_TEXTURE
#endif

#if (defined(GL_AMD_COMPRESSED_ATC_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_COMPRESSED_ATC_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_AMD_COMPRESSED_ATC_TEXTURE)
#define REGAL_NO_PLUGIN_GL_AMD_COMPRESSED_ATC_TEXTURE
#endif

#if (defined(GL_AMD_COMPRESSED_ATC_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_COMPRESSED_ATC_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_AMD_COMPRESSED_ATC_TEXTURE)
#define REGAL_NO_DECLARATION_GL_AMD_COMPRESSED_ATC_TEXTURE
#endif

#ifndef GL_AMD_compressed_ATC_texture
#define GL_AMD_compressed_ATC_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_COMPRESSED_ATC_TEXTURE
#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD 0x87ee     /* 34798 */
#define GL_ATC_RGB_AMD                     0x8c92     /* 35986 */
#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD     0x8c93     /* 35987 */
#endif

/**
 ** GL_AMD_debug_output
 **/

#if (defined(GL_AMD_DEBUG_OUTPUT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_DEBUG_OUTPUT)) && !defined(REGAL_NO_ENUM_GL_AMD_DEBUG_OUTPUT)
#define REGAL_NO_ENUM_GL_AMD_DEBUG_OUTPUT
#endif

#if (defined(GL_AMD_DEBUG_OUTPUT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_DEBUG_OUTPUT)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_DEBUG_OUTPUT)
#define REGAL_NO_TYPEDEF_GL_AMD_DEBUG_OUTPUT
#endif

#if (defined(GL_AMD_DEBUG_OUTPUT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_DEBUG_OUTPUT)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_DEBUG_OUTPUT)
#define REGAL_NO_NAMESPACE_GL_AMD_DEBUG_OUTPUT
#endif

#if (defined(GL_AMD_DEBUG_OUTPUT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_DEBUG_OUTPUT)) && !defined(REGAL_NO_PLUGIN_GL_AMD_DEBUG_OUTPUT)
#define REGAL_NO_PLUGIN_GL_AMD_DEBUG_OUTPUT
#endif

#if (defined(GL_AMD_DEBUG_OUTPUT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_DEBUG_OUTPUT)) && !defined(REGAL_NO_DECLARATION_GL_AMD_DEBUG_OUTPUT)
#define REGAL_NO_DECLARATION_GL_AMD_DEBUG_OUTPUT
#endif

#ifndef GL_AMD_debug_output
#define GL_AMD_debug_output 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_DEBUG_OUTPUT
#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD          0x9143     /* 37187 */
#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD         0x9144     /* 37188 */
#define GL_DEBUG_LOGGED_MESSAGES_AMD             0x9145     /* 37189 */
#define GL_DEBUG_SEVERITY_HIGH_AMD               0x9146     /* 37190 */
#define GL_DEBUG_SEVERITY_MEDIUM_AMD             0x9147     /* 37191 */
#define GL_DEBUG_SEVERITY_LOW_AMD                0x9148     /* 37192 */
#define GL_DEBUG_CATEGORY_API_ERROR_AMD          0x9149     /* 37193 */
#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD      0x914a     /* 37194 */
#define GL_DEBUG_CATEGORY_DEPRECATION_AMD        0x914b     /* 37195 */
#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914c     /* 37196 */
#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD        0x914d     /* 37197 */
#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD    0x914e     /* 37198 */
#define GL_DEBUG_CATEGORY_APPLICATION_AMD        0x914f     /* 37199 */
#define GL_DEBUG_CATEGORY_OTHER_AMD              0x9150     /* 37200 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_DEBUG_OUTPUT
typedef GLuint (REGAL_CALL *PFNGLGETDEBUGMESSAGELOGAMDPROC)(GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLDEBUGPROCAMD callback, GLvoid *userParam);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_DEBUG_OUTPUT
#define glDebugMessageCallbackAMD           rglDebugMessageCallbackAMD
#define glDebugMessageEnableAMD             rglDebugMessageEnableAMD
#define glDebugMessageInsertAMD             rglDebugMessageInsertAMD
#define glGetDebugMessageLogAMD             rglGetDebugMessageLogAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_DEBUG_OUTPUT
REGAL_DECL GLuint REGAL_CALL glGetDebugMessageLogAMD(GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
REGAL_DECL void REGAL_CALL glDebugMessageCallbackAMD(GLDEBUGPROCAMD callback, GLvoid *userParam);
REGAL_DECL void REGAL_CALL glDebugMessageEnableAMD(GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
REGAL_DECL void REGAL_CALL glDebugMessageInsertAMD(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_DEBUG_OUTPUT
REGAL_DECL GLuint REGAL_CALL plugin_glGetDebugMessageLogAMD(GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageCallbackAMD(GLDEBUGPROCAMD callback, GLvoid *userParam);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageEnableAMD(GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageInsertAMD(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf);
#endif

/**
 ** GL_AMD_depth_clamp_separate
 **/

#if (defined(GL_AMD_DEPTH_CLAMP_SEPARATE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_DEPTH_CLAMP_SEPARATE)) && !defined(REGAL_NO_ENUM_GL_AMD_DEPTH_CLAMP_SEPARATE)
#define REGAL_NO_ENUM_GL_AMD_DEPTH_CLAMP_SEPARATE
#endif

#if (defined(GL_AMD_DEPTH_CLAMP_SEPARATE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_DEPTH_CLAMP_SEPARATE)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_DEPTH_CLAMP_SEPARATE)
#define REGAL_NO_TYPEDEF_GL_AMD_DEPTH_CLAMP_SEPARATE
#endif

#if (defined(GL_AMD_DEPTH_CLAMP_SEPARATE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_DEPTH_CLAMP_SEPARATE)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_DEPTH_CLAMP_SEPARATE)
#define REGAL_NO_NAMESPACE_GL_AMD_DEPTH_CLAMP_SEPARATE
#endif

#if (defined(GL_AMD_DEPTH_CLAMP_SEPARATE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_DEPTH_CLAMP_SEPARATE)) && !defined(REGAL_NO_PLUGIN_GL_AMD_DEPTH_CLAMP_SEPARATE)
#define REGAL_NO_PLUGIN_GL_AMD_DEPTH_CLAMP_SEPARATE
#endif

#if (defined(GL_AMD_DEPTH_CLAMP_SEPARATE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_DEPTH_CLAMP_SEPARATE)) && !defined(REGAL_NO_DECLARATION_GL_AMD_DEPTH_CLAMP_SEPARATE)
#define REGAL_NO_DECLARATION_GL_AMD_DEPTH_CLAMP_SEPARATE
#endif

#ifndef GL_AMD_depth_clamp_separate
#define GL_AMD_depth_clamp_separate 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_DEPTH_CLAMP_SEPARATE
#define GL_DEPTH_CLAMP_NEAR_AMD 0x901e     /* 36894 */
#define GL_DEPTH_CLAMP_FAR_AMD  0x901f     /* 36895 */
#endif

/**
 ** GL_AMD_draw_buffers_blend
 **/

#if (defined(GL_AMD_DRAW_BUFFERS_BLEND) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_ENUM_GL_AMD_DRAW_BUFFERS_BLEND)
#define REGAL_NO_ENUM_GL_AMD_DRAW_BUFFERS_BLEND
#endif

#if (defined(GL_AMD_DRAW_BUFFERS_BLEND) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_DRAW_BUFFERS_BLEND)
#define REGAL_NO_TYPEDEF_GL_AMD_DRAW_BUFFERS_BLEND
#endif

#if (defined(GL_AMD_DRAW_BUFFERS_BLEND) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_DRAW_BUFFERS_BLEND)
#define REGAL_NO_NAMESPACE_GL_AMD_DRAW_BUFFERS_BLEND
#endif

#if (defined(GL_AMD_DRAW_BUFFERS_BLEND) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_PLUGIN_GL_AMD_DRAW_BUFFERS_BLEND)
#define REGAL_NO_PLUGIN_GL_AMD_DRAW_BUFFERS_BLEND
#endif

#if (defined(GL_AMD_DRAW_BUFFERS_BLEND) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_DECLARATION_GL_AMD_DRAW_BUFFERS_BLEND)
#define REGAL_NO_DECLARATION_GL_AMD_DRAW_BUFFERS_BLEND
#endif

#ifndef GL_AMD_draw_buffers_blend
#define GL_AMD_draw_buffers_blend 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_DRAW_BUFFERS_BLEND
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONINDEXEDAMDPROC)(GLuint buf, GLenum mode);
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
typedef void (REGAL_CALL *PFNGLBLENDFUNCINDEXEDAMDPROC)(GLuint buf, GLenum src, GLenum dst);
typedef void (REGAL_CALL *PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_DRAW_BUFFERS_BLEND
#define glBlendEquationIndexedAMD           rglBlendEquationIndexedAMD
#define glBlendEquationSeparateIndexedAMD   rglBlendEquationSeparateIndexedAMD
#define glBlendFuncIndexedAMD               rglBlendFuncIndexedAMD
#define glBlendFuncSeparateIndexedAMD       rglBlendFuncSeparateIndexedAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_DRAW_BUFFERS_BLEND
REGAL_DECL void REGAL_CALL glBlendEquationIndexedAMD(GLuint buf, GLenum mode);
REGAL_DECL void REGAL_CALL glBlendEquationSeparateIndexedAMD(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
REGAL_DECL void REGAL_CALL glBlendFuncIndexedAMD(GLuint buf, GLenum src, GLenum dst);
REGAL_DECL void REGAL_CALL glBlendFuncSeparateIndexedAMD(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_DRAW_BUFFERS_BLEND
REGAL_DECL void REGAL_CALL plugin_glBlendEquationIndexedAMD(GLuint buf, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glBlendEquationSeparateIndexedAMD(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
REGAL_DECL void REGAL_CALL plugin_glBlendFuncIndexedAMD(GLuint buf, GLenum src, GLenum dst);
REGAL_DECL void REGAL_CALL plugin_glBlendFuncSeparateIndexedAMD(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
#endif

/**
 ** GL_AMD_interleaved_elements
 **/

#if (defined(GL_AMD_INTERLEAVED_ELEMENTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_INTERLEAVED_ELEMENTS)) && !defined(REGAL_NO_ENUM_GL_AMD_INTERLEAVED_ELEMENTS)
#define REGAL_NO_ENUM_GL_AMD_INTERLEAVED_ELEMENTS
#endif

#if (defined(GL_AMD_INTERLEAVED_ELEMENTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_INTERLEAVED_ELEMENTS)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_INTERLEAVED_ELEMENTS)
#define REGAL_NO_TYPEDEF_GL_AMD_INTERLEAVED_ELEMENTS
#endif

#if (defined(GL_AMD_INTERLEAVED_ELEMENTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_INTERLEAVED_ELEMENTS)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_INTERLEAVED_ELEMENTS)
#define REGAL_NO_NAMESPACE_GL_AMD_INTERLEAVED_ELEMENTS
#endif

#if (defined(GL_AMD_INTERLEAVED_ELEMENTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_INTERLEAVED_ELEMENTS)) && !defined(REGAL_NO_PLUGIN_GL_AMD_INTERLEAVED_ELEMENTS)
#define REGAL_NO_PLUGIN_GL_AMD_INTERLEAVED_ELEMENTS
#endif

#if (defined(GL_AMD_INTERLEAVED_ELEMENTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_INTERLEAVED_ELEMENTS)) && !defined(REGAL_NO_DECLARATION_GL_AMD_INTERLEAVED_ELEMENTS)
#define REGAL_NO_DECLARATION_GL_AMD_INTERLEAVED_ELEMENTS
#endif

#ifndef GL_AMD_interleaved_elements
#define GL_AMD_interleaved_elements 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_INTERLEAVED_ELEMENTS
#define GL_VERTEX_ELEMENT_SWIZZLE_AMD 0x91a4     /* 37284 */
#define GL_VERTEX_ID_SWIZZLE_AMD      0x91a5     /* 37285 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_INTERLEAVED_ELEMENTS
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBPARAMETERIAMDPROC)(GLuint index, GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_INTERLEAVED_ELEMENTS
#define glVertexAttribParameteriAMD         rglVertexAttribParameteriAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_INTERLEAVED_ELEMENTS
REGAL_DECL void REGAL_CALL glVertexAttribParameteriAMD(GLuint index, GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_INTERLEAVED_ELEMENTS
REGAL_DECL void REGAL_CALL plugin_glVertexAttribParameteriAMD(GLuint index, GLenum pname, GLint param);
#endif

/**
 ** GL_AMD_multi_draw_indirect
 **/

#if (defined(GL_AMD_MULTI_DRAW_INDIRECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_ENUM_GL_AMD_MULTI_DRAW_INDIRECT)
#define REGAL_NO_ENUM_GL_AMD_MULTI_DRAW_INDIRECT
#endif

#if (defined(GL_AMD_MULTI_DRAW_INDIRECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_MULTI_DRAW_INDIRECT)
#define REGAL_NO_TYPEDEF_GL_AMD_MULTI_DRAW_INDIRECT
#endif

#if (defined(GL_AMD_MULTI_DRAW_INDIRECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_MULTI_DRAW_INDIRECT)
#define REGAL_NO_NAMESPACE_GL_AMD_MULTI_DRAW_INDIRECT
#endif

#if (defined(GL_AMD_MULTI_DRAW_INDIRECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_PLUGIN_GL_AMD_MULTI_DRAW_INDIRECT)
#define REGAL_NO_PLUGIN_GL_AMD_MULTI_DRAW_INDIRECT
#endif

#if (defined(GL_AMD_MULTI_DRAW_INDIRECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_DECLARATION_GL_AMD_MULTI_DRAW_INDIRECT)
#define REGAL_NO_DECLARATION_GL_AMD_MULTI_DRAW_INDIRECT
#endif

#ifndef GL_AMD_multi_draw_indirect
#define GL_AMD_multi_draw_indirect 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_MULTI_DRAW_INDIRECT
typedef void (REGAL_CALL *PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
typedef void (REGAL_CALL *PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_MULTI_DRAW_INDIRECT
#define glMultiDrawArraysIndirectAMD        rglMultiDrawArraysIndirectAMD
#define glMultiDrawElementsIndirectAMD      rglMultiDrawElementsIndirectAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_MULTI_DRAW_INDIRECT
REGAL_DECL void REGAL_CALL glMultiDrawArraysIndirectAMD(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
REGAL_DECL void REGAL_CALL glMultiDrawElementsIndirectAMD(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_MULTI_DRAW_INDIRECT
REGAL_DECL void REGAL_CALL plugin_glMultiDrawArraysIndirectAMD(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawElementsIndirectAMD(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
#endif

/**
 ** GL_AMD_name_gen_delete
 **/

#if (defined(GL_AMD_NAME_GEN_DELETE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_NAME_GEN_DELETE)) && !defined(REGAL_NO_ENUM_GL_AMD_NAME_GEN_DELETE)
#define REGAL_NO_ENUM_GL_AMD_NAME_GEN_DELETE
#endif

#if (defined(GL_AMD_NAME_GEN_DELETE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_NAME_GEN_DELETE)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_NAME_GEN_DELETE)
#define REGAL_NO_TYPEDEF_GL_AMD_NAME_GEN_DELETE
#endif

#if (defined(GL_AMD_NAME_GEN_DELETE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_NAME_GEN_DELETE)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_NAME_GEN_DELETE)
#define REGAL_NO_NAMESPACE_GL_AMD_NAME_GEN_DELETE
#endif

#if (defined(GL_AMD_NAME_GEN_DELETE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_NAME_GEN_DELETE)) && !defined(REGAL_NO_PLUGIN_GL_AMD_NAME_GEN_DELETE)
#define REGAL_NO_PLUGIN_GL_AMD_NAME_GEN_DELETE
#endif

#if (defined(GL_AMD_NAME_GEN_DELETE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_NAME_GEN_DELETE)) && !defined(REGAL_NO_DECLARATION_GL_AMD_NAME_GEN_DELETE)
#define REGAL_NO_DECLARATION_GL_AMD_NAME_GEN_DELETE
#endif

#ifndef GL_AMD_name_gen_delete
#define GL_AMD_name_gen_delete 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_NAME_GEN_DELETE
#define GL_DATA_BUFFER_AMD         0x9151     /* 37201 */
#define GL_PERFORMANCE_MONITOR_AMD 0x9152     /* 37202 */
#define GL_QUERY_OBJECT_AMD        0x9153     /* 37203 */
#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154     /* 37204 */
#define GL_SAMPLER_OBJECT_AMD      0x9155     /* 37205 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_NAME_GEN_DELETE
typedef GLboolean (REGAL_CALL *PFNGLISNAMEAMDPROC)(GLenum identifier, GLuint name);
typedef void (REGAL_CALL *PFNGLDELETENAMESAMDPROC)(GLenum identifier, GLuint num, const GLuint *names);
typedef void (REGAL_CALL *PFNGLGENNAMESAMDPROC)(GLenum identifier, GLuint num, GLuint *names);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_NAME_GEN_DELETE
#define glDeleteNamesAMD                    rglDeleteNamesAMD
#define glGenNamesAMD                       rglGenNamesAMD
#define glIsNameAMD                         rglIsNameAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_NAME_GEN_DELETE
REGAL_DECL GLboolean REGAL_CALL glIsNameAMD(GLenum identifier, GLuint name);
REGAL_DECL void REGAL_CALL glDeleteNamesAMD(GLenum identifier, GLuint num, const GLuint *names);
REGAL_DECL void REGAL_CALL glGenNamesAMD(GLenum identifier, GLuint num, GLuint *names);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_NAME_GEN_DELETE
REGAL_DECL GLboolean REGAL_CALL plugin_glIsNameAMD(GLenum identifier, GLuint name);
REGAL_DECL void REGAL_CALL plugin_glDeleteNamesAMD(GLenum identifier, GLuint num, const GLuint *names);
REGAL_DECL void REGAL_CALL plugin_glGenNamesAMD(GLenum identifier, GLuint num, GLuint *names);
#endif

/**
 ** GL_AMD_performance_monitor
 **/

#if (defined(GL_AMD_PERFORMANCE_MONITOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_PERFORMANCE_MONITOR)) && !defined(REGAL_NO_ENUM_GL_AMD_PERFORMANCE_MONITOR)
#define REGAL_NO_ENUM_GL_AMD_PERFORMANCE_MONITOR
#endif

#if (defined(GL_AMD_PERFORMANCE_MONITOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_PERFORMANCE_MONITOR)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_PERFORMANCE_MONITOR)
#define REGAL_NO_TYPEDEF_GL_AMD_PERFORMANCE_MONITOR
#endif

#if (defined(GL_AMD_PERFORMANCE_MONITOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_PERFORMANCE_MONITOR)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_PERFORMANCE_MONITOR)
#define REGAL_NO_NAMESPACE_GL_AMD_PERFORMANCE_MONITOR
#endif

#if (defined(GL_AMD_PERFORMANCE_MONITOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_PERFORMANCE_MONITOR)) && !defined(REGAL_NO_PLUGIN_GL_AMD_PERFORMANCE_MONITOR)
#define REGAL_NO_PLUGIN_GL_AMD_PERFORMANCE_MONITOR
#endif

#if (defined(GL_AMD_PERFORMANCE_MONITOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_PERFORMANCE_MONITOR)) && !defined(REGAL_NO_DECLARATION_GL_AMD_PERFORMANCE_MONITOR)
#define REGAL_NO_DECLARATION_GL_AMD_PERFORMANCE_MONITOR
#endif

#ifndef GL_AMD_performance_monitor
#define GL_AMD_performance_monitor 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_PERFORMANCE_MONITOR
#define GL_COUNTER_TYPE_AMD             0x8bc0     /* 35776 */
#define GL_COUNTER_RANGE_AMD            0x8bc1     /* 35777 */
#define GL_UNSIGNED_INT64_AMD           0x8bc2     /* 35778 */
#define GL_PERCENTAGE_AMD               0x8bc3     /* 35779 */
#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8bc4     /* 35780 */
#define GL_PERFMON_RESULT_SIZE_AMD      0x8bc5     /* 35781 */
#define GL_PERFMON_RESULT_AMD           0x8bc6     /* 35782 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_PERFORMANCE_MONITOR
typedef void (REGAL_CALL *PFNGLBEGINPERFMONITORAMDPROC)(GLuint monitor);
typedef void (REGAL_CALL *PFNGLDELETEPERFMONITORSAMDPROC)(GLsizei n, GLuint *monitors);
typedef void (REGAL_CALL *PFNGLENDPERFMONITORAMDPROC)(GLuint monitor);
typedef void (REGAL_CALL *PFNGLGENPERFMONITORSAMDPROC)(GLsizei n, GLuint *monitors);
typedef void (REGAL_CALL *PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
typedef void (REGAL_CALL *PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)(GLuint group, GLuint counter, GLenum pname, GLvoid *data);
typedef void (REGAL_CALL *PFNGLGETPERFMONITORCOUNTERSAMDPROC)(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters);
typedef void (REGAL_CALL *PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
typedef void (REGAL_CALL *PFNGLGETPERFMONITORGROUPSAMDPROC)(GLint *numGroups, GLsizei groupsSize, GLuint *groups);
typedef void (REGAL_CALL *PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
typedef void (REGAL_CALL *PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_PERFORMANCE_MONITOR
#define glBeginPerfMonitorAMD               rglBeginPerfMonitorAMD
#define glDeletePerfMonitorsAMD             rglDeletePerfMonitorsAMD
#define glEndPerfMonitorAMD                 rglEndPerfMonitorAMD
#define glGenPerfMonitorsAMD                rglGenPerfMonitorsAMD
#define glGetPerfMonitorCounterDataAMD      rglGetPerfMonitorCounterDataAMD
#define glGetPerfMonitorCounterInfoAMD      rglGetPerfMonitorCounterInfoAMD
#define glGetPerfMonitorCounterStringAMD    rglGetPerfMonitorCounterStringAMD
#define glGetPerfMonitorCountersAMD         rglGetPerfMonitorCountersAMD
#define glGetPerfMonitorGroupStringAMD      rglGetPerfMonitorGroupStringAMD
#define glGetPerfMonitorGroupsAMD           rglGetPerfMonitorGroupsAMD
#define glSelectPerfMonitorCountersAMD      rglSelectPerfMonitorCountersAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_PERFORMANCE_MONITOR
REGAL_DECL void REGAL_CALL glBeginPerfMonitorAMD(GLuint monitor);
REGAL_DECL void REGAL_CALL glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors);
REGAL_DECL void REGAL_CALL glEndPerfMonitorAMD(GLuint monitor);
REGAL_DECL void REGAL_CALL glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors);
REGAL_DECL void REGAL_CALL glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
REGAL_DECL void REGAL_CALL glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data);
REGAL_DECL void REGAL_CALL glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
REGAL_DECL void REGAL_CALL glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters);
REGAL_DECL void REGAL_CALL glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
REGAL_DECL void REGAL_CALL glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups);
REGAL_DECL void REGAL_CALL glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_PERFORMANCE_MONITOR
REGAL_DECL void REGAL_CALL plugin_glBeginPerfMonitorAMD(GLuint monitor);
REGAL_DECL void REGAL_CALL plugin_glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors);
REGAL_DECL void REGAL_CALL plugin_glEndPerfMonitorAMD(GLuint monitor);
REGAL_DECL void REGAL_CALL plugin_glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors);
REGAL_DECL void REGAL_CALL plugin_glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten);
REGAL_DECL void REGAL_CALL plugin_glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString);
REGAL_DECL void REGAL_CALL plugin_glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei countersSize, GLuint *counters);
REGAL_DECL void REGAL_CALL plugin_glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString);
REGAL_DECL void REGAL_CALL plugin_glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups);
REGAL_DECL void REGAL_CALL plugin_glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList);
#endif

/**
 ** GL_AMD_pinned_memory
 **/

#if (defined(GL_AMD_PINNED_MEMORY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_PINNED_MEMORY)) && !defined(REGAL_NO_ENUM_GL_AMD_PINNED_MEMORY)
#define REGAL_NO_ENUM_GL_AMD_PINNED_MEMORY
#endif

#if (defined(GL_AMD_PINNED_MEMORY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_PINNED_MEMORY)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_PINNED_MEMORY)
#define REGAL_NO_TYPEDEF_GL_AMD_PINNED_MEMORY
#endif

#if (defined(GL_AMD_PINNED_MEMORY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_PINNED_MEMORY)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_PINNED_MEMORY)
#define REGAL_NO_NAMESPACE_GL_AMD_PINNED_MEMORY
#endif

#if (defined(GL_AMD_PINNED_MEMORY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_PINNED_MEMORY)) && !defined(REGAL_NO_PLUGIN_GL_AMD_PINNED_MEMORY)
#define REGAL_NO_PLUGIN_GL_AMD_PINNED_MEMORY
#endif

#if (defined(GL_AMD_PINNED_MEMORY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_PINNED_MEMORY)) && !defined(REGAL_NO_DECLARATION_GL_AMD_PINNED_MEMORY)
#define REGAL_NO_DECLARATION_GL_AMD_PINNED_MEMORY
#endif

#ifndef GL_AMD_pinned_memory
#define GL_AMD_pinned_memory 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_PINNED_MEMORY
#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 /* 37216 */
#endif

/**
 ** GL_AMD_program_binary_Z400
 **/

#if (defined(GL_AMD_PROGRAM_BINARY_Z400) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_PROGRAM_BINARY_Z400)) && !defined(REGAL_NO_ENUM_GL_AMD_PROGRAM_BINARY_Z400)
#define REGAL_NO_ENUM_GL_AMD_PROGRAM_BINARY_Z400
#endif

#if (defined(GL_AMD_PROGRAM_BINARY_Z400) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_PROGRAM_BINARY_Z400)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_PROGRAM_BINARY_Z400)
#define REGAL_NO_TYPEDEF_GL_AMD_PROGRAM_BINARY_Z400
#endif

#if (defined(GL_AMD_PROGRAM_BINARY_Z400) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_PROGRAM_BINARY_Z400)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_PROGRAM_BINARY_Z400)
#define REGAL_NO_NAMESPACE_GL_AMD_PROGRAM_BINARY_Z400
#endif

#if (defined(GL_AMD_PROGRAM_BINARY_Z400) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_PROGRAM_BINARY_Z400)) && !defined(REGAL_NO_PLUGIN_GL_AMD_PROGRAM_BINARY_Z400)
#define REGAL_NO_PLUGIN_GL_AMD_PROGRAM_BINARY_Z400
#endif

#if (defined(GL_AMD_PROGRAM_BINARY_Z400) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_PROGRAM_BINARY_Z400)) && !defined(REGAL_NO_DECLARATION_GL_AMD_PROGRAM_BINARY_Z400)
#define REGAL_NO_DECLARATION_GL_AMD_PROGRAM_BINARY_Z400
#endif

#ifndef GL_AMD_program_binary_Z400
#define GL_AMD_program_binary_Z400 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_PROGRAM_BINARY_Z400
#define GL_Z400_BINARY_AMD 0x8740 /* 34624 */
#endif

/**
 ** GL_AMD_query_buffer_object
 **/

#if (defined(GL_AMD_QUERY_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_AMD_QUERY_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_AMD_QUERY_BUFFER_OBJECT
#endif

#if (defined(GL_AMD_QUERY_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_QUERY_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_AMD_QUERY_BUFFER_OBJECT
#endif

#if (defined(GL_AMD_QUERY_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_QUERY_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_AMD_QUERY_BUFFER_OBJECT
#endif

#if (defined(GL_AMD_QUERY_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_AMD_QUERY_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_AMD_QUERY_BUFFER_OBJECT
#endif

#if (defined(GL_AMD_QUERY_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_AMD_QUERY_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_AMD_QUERY_BUFFER_OBJECT
#endif

#ifndef GL_AMD_query_buffer_object
#define GL_AMD_query_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_QUERY_BUFFER_OBJECT
#define GL_QUERY_BUFFER_AMD         0x9192     /* 37266 */
#define GL_QUERY_BUFFER_BINDING_AMD 0x9193     /* 37267 */
#define GL_QUERY_RESULT_NO_WAIT_AMD 0x9194     /* 37268 */
#endif

/**
 ** GL_AMD_sample_positions
 **/

#if (defined(GL_AMD_SAMPLE_POSITIONS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_SAMPLE_POSITIONS)) && !defined(REGAL_NO_ENUM_GL_AMD_SAMPLE_POSITIONS)
#define REGAL_NO_ENUM_GL_AMD_SAMPLE_POSITIONS
#endif

#if (defined(GL_AMD_SAMPLE_POSITIONS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_SAMPLE_POSITIONS)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_SAMPLE_POSITIONS)
#define REGAL_NO_TYPEDEF_GL_AMD_SAMPLE_POSITIONS
#endif

#if (defined(GL_AMD_SAMPLE_POSITIONS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_SAMPLE_POSITIONS)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_SAMPLE_POSITIONS)
#define REGAL_NO_NAMESPACE_GL_AMD_SAMPLE_POSITIONS
#endif

#if (defined(GL_AMD_SAMPLE_POSITIONS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_SAMPLE_POSITIONS)) && !defined(REGAL_NO_PLUGIN_GL_AMD_SAMPLE_POSITIONS)
#define REGAL_NO_PLUGIN_GL_AMD_SAMPLE_POSITIONS
#endif

#if (defined(GL_AMD_SAMPLE_POSITIONS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_SAMPLE_POSITIONS)) && !defined(REGAL_NO_DECLARATION_GL_AMD_SAMPLE_POSITIONS)
#define REGAL_NO_DECLARATION_GL_AMD_SAMPLE_POSITIONS
#endif

#ifndef GL_AMD_sample_positions
#define GL_AMD_sample_positions 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_SAMPLE_POSITIONS
#define GL_SUBSAMPLE_DISTANCE_AMD 0x883f /* 34879 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_SAMPLE_POSITIONS
typedef void (REGAL_CALL *PFNGLSETMULTISAMPLEFVAMDPROC)(GLenum pname, GLuint index, const GLfloat *val);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_SAMPLE_POSITIONS
#define glSetMultisamplefvAMD               rglSetMultisamplefvAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_SAMPLE_POSITIONS
REGAL_DECL void REGAL_CALL glSetMultisamplefvAMD(GLenum pname, GLuint index, const GLfloat *val);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_SAMPLE_POSITIONS
REGAL_DECL void REGAL_CALL plugin_glSetMultisamplefvAMD(GLenum pname, GLuint index, const GLfloat *val);
#endif

/**
 ** GL_AMD_seamless_cubemap_per_texture
 **/

#if (defined(GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)
#define REGAL_NO_ENUM_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE
#endif

#if (defined(GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE
#endif

#if (defined(GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE
#endif

#if (defined(GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)
#define REGAL_NO_PLUGIN_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE
#endif

#if (defined(GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE)
#define REGAL_NO_DECLARATION_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE
#endif

#ifndef GL_AMD_seamless_cubemap_per_texture
#define GL_AMD_seamless_cubemap_per_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_SEAMLESS_CUBEMAP_PER_TEXTURE
#define GL_TEXTURE_CUBE_MAP_SEAMLESS_ARB 0x884f /* 34895 */
#endif

/**
 ** GL_AMD_sparse_texture
 **/

#if (defined(GL_AMD_SPARSE_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_SPARSE_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_AMD_SPARSE_TEXTURE)
#define REGAL_NO_ENUM_GL_AMD_SPARSE_TEXTURE
#endif

#if (defined(GL_AMD_SPARSE_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_SPARSE_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_SPARSE_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_AMD_SPARSE_TEXTURE
#endif

#if (defined(GL_AMD_SPARSE_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_SPARSE_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_SPARSE_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_AMD_SPARSE_TEXTURE
#endif

#if (defined(GL_AMD_SPARSE_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_SPARSE_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_AMD_SPARSE_TEXTURE)
#define REGAL_NO_PLUGIN_GL_AMD_SPARSE_TEXTURE
#endif

#if (defined(GL_AMD_SPARSE_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_SPARSE_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_AMD_SPARSE_TEXTURE)
#define REGAL_NO_DECLARATION_GL_AMD_SPARSE_TEXTURE
#endif

#ifndef GL_AMD_sparse_texture
#define GL_AMD_sparse_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_SPARSE_TEXTURE
#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD  0x1
#define GL_VIRTUAL_PAGE_SIZE_X_AMD         0x9195     /* 37269 */
#define GL_VIRTUAL_PAGE_SIZE_Y_AMD         0x9196     /* 37270 */
#define GL_VIRTUAL_PAGE_SIZE_Z_AMD         0x9197     /* 37271 */
#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD     0x9198     /* 37272 */
#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD  0x9199     /* 37273 */
#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS 0x919a     /* 37274 */
#define GL_MIN_SPARSE_LEVEL_AMD            0x919b     /* 37275 */
#define GL_MIN_LOD_WARNING_AMD             0x919c     /* 37276 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_SPARSE_TEXTURE
typedef void (REGAL_CALL *PFNGLTEXSTORAGESPARSEAMDPROC)(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
typedef void (REGAL_CALL *PFNGLTEXTURESTORAGESPARSEAMDPROC)(GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_SPARSE_TEXTURE
#define glTexStorageSparseAMD               rglTexStorageSparseAMD
#define glTextureStorageSparseAMD           rglTextureStorageSparseAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_SPARSE_TEXTURE
REGAL_DECL void REGAL_CALL glTexStorageSparseAMD(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
REGAL_DECL void REGAL_CALL glTextureStorageSparseAMD(GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_SPARSE_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glTexStorageSparseAMD(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
REGAL_DECL void REGAL_CALL plugin_glTextureStorageSparseAMD(GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
#endif

/**
 ** GL_AMD_stencil_operation_extended
 **/

#if (defined(GL_AMD_STENCIL_OPERATION_EXTENDED) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_STENCIL_OPERATION_EXTENDED)) && !defined(REGAL_NO_ENUM_GL_AMD_STENCIL_OPERATION_EXTENDED)
#define REGAL_NO_ENUM_GL_AMD_STENCIL_OPERATION_EXTENDED
#endif

#if (defined(GL_AMD_STENCIL_OPERATION_EXTENDED) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_STENCIL_OPERATION_EXTENDED)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_STENCIL_OPERATION_EXTENDED)
#define REGAL_NO_TYPEDEF_GL_AMD_STENCIL_OPERATION_EXTENDED
#endif

#if (defined(GL_AMD_STENCIL_OPERATION_EXTENDED) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_STENCIL_OPERATION_EXTENDED)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_STENCIL_OPERATION_EXTENDED)
#define REGAL_NO_NAMESPACE_GL_AMD_STENCIL_OPERATION_EXTENDED
#endif

#if (defined(GL_AMD_STENCIL_OPERATION_EXTENDED) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_STENCIL_OPERATION_EXTENDED)) && !defined(REGAL_NO_PLUGIN_GL_AMD_STENCIL_OPERATION_EXTENDED)
#define REGAL_NO_PLUGIN_GL_AMD_STENCIL_OPERATION_EXTENDED
#endif

#if (defined(GL_AMD_STENCIL_OPERATION_EXTENDED) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_STENCIL_OPERATION_EXTENDED)) && !defined(REGAL_NO_DECLARATION_GL_AMD_STENCIL_OPERATION_EXTENDED)
#define REGAL_NO_DECLARATION_GL_AMD_STENCIL_OPERATION_EXTENDED
#endif

#ifndef GL_AMD_stencil_operation_extended
#define GL_AMD_stencil_operation_extended 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_STENCIL_OPERATION_EXTENDED
#define GL_SET_AMD                   0x874a     /* 34634 */
#define GL_REPLACE_VALUE_AMD         0x874b     /* 34635 */
#define GL_STENCIL_OP_VALUE_AMD      0x874c     /* 34636 */
#define GL_STENCIL_BACK_OP_VALUE_AMD 0x874d     /* 34637 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_STENCIL_OPERATION_EXTENDED
typedef void (REGAL_CALL *PFNGLSTENCILOPVALUEAMDPROC)(GLenum face, GLuint value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_STENCIL_OPERATION_EXTENDED
#define glStencilOpValueAMD                 rglStencilOpValueAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_STENCIL_OPERATION_EXTENDED
REGAL_DECL void REGAL_CALL glStencilOpValueAMD(GLenum face, GLuint value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_STENCIL_OPERATION_EXTENDED
REGAL_DECL void REGAL_CALL plugin_glStencilOpValueAMD(GLenum face, GLuint value);
#endif

/**
 ** GL_AMD_vertex_shader_tessellator
 **/

#if (defined(GL_AMD_VERTEX_SHADER_TESSELLATOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_AMD_VERTEX_SHADER_TESSELLATOR)) && !defined(REGAL_NO_ENUM_GL_AMD_VERTEX_SHADER_TESSELLATOR)
#define REGAL_NO_ENUM_GL_AMD_VERTEX_SHADER_TESSELLATOR
#endif

#if (defined(GL_AMD_VERTEX_SHADER_TESSELLATOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_AMD_VERTEX_SHADER_TESSELLATOR)) && !defined(REGAL_NO_TYPEDEF_GL_AMD_VERTEX_SHADER_TESSELLATOR)
#define REGAL_NO_TYPEDEF_GL_AMD_VERTEX_SHADER_TESSELLATOR
#endif

#if (defined(GL_AMD_VERTEX_SHADER_TESSELLATOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_AMD_VERTEX_SHADER_TESSELLATOR)) && !defined(REGAL_NO_NAMESPACE_GL_AMD_VERTEX_SHADER_TESSELLATOR)
#define REGAL_NO_NAMESPACE_GL_AMD_VERTEX_SHADER_TESSELLATOR
#endif

#if (defined(GL_AMD_VERTEX_SHADER_TESSELLATOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_AMD_VERTEX_SHADER_TESSELLATOR)) && !defined(REGAL_NO_PLUGIN_GL_AMD_VERTEX_SHADER_TESSELLATOR)
#define REGAL_NO_PLUGIN_GL_AMD_VERTEX_SHADER_TESSELLATOR
#endif

#if (defined(GL_AMD_VERTEX_SHADER_TESSELLATOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_AMD_VERTEX_SHADER_TESSELLATOR)) && !defined(REGAL_NO_DECLARATION_GL_AMD_VERTEX_SHADER_TESSELLATOR)
#define REGAL_NO_DECLARATION_GL_AMD_VERTEX_SHADER_TESSELLATOR
#endif

#ifndef GL_AMD_vertex_shader_tessellator
#define GL_AMD_vertex_shader_tessellator 1
#endif

#ifndef REGAL_NO_ENUM_GL_AMD_VERTEX_SHADER_TESSELLATOR
#define GL_SAMPLER_BUFFER_AMD              0x9001     /* 36865 */
#define GL_INT_SAMPLER_BUFFER_AMD          0x9002     /* 36866 */
#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003     /* 36867 */
#define GL_TESSELLATION_MODE_AMD           0x9004     /* 36868 */
#define GL_TESSELLATION_FACTOR_AMD         0x9005     /* 36869 */
#define GL_DISCRETE_AMD                    0x9006     /* 36870 */
#define GL_CONTINUOUS_AMD                  0x9007     /* 36871 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_AMD_VERTEX_SHADER_TESSELLATOR
typedef void (REGAL_CALL *PFNGLTESSELLATIONFACTORAMDPROC)(GLfloat factor);
typedef void (REGAL_CALL *PFNGLTESSELLATIONMODEAMDPROC)(GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_AMD_VERTEX_SHADER_TESSELLATOR
#define glTessellationFactorAMD             rglTessellationFactorAMD
#define glTessellationModeAMD               rglTessellationModeAMD
#endif

#ifndef REGAL_NO_DECLARATION_GL_AMD_VERTEX_SHADER_TESSELLATOR
REGAL_DECL void REGAL_CALL glTessellationFactorAMD(GLfloat factor);
REGAL_DECL void REGAL_CALL glTessellationModeAMD(GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_AMD_VERTEX_SHADER_TESSELLATOR
REGAL_DECL void REGAL_CALL plugin_glTessellationFactorAMD(GLfloat factor);
REGAL_DECL void REGAL_CALL plugin_glTessellationModeAMD(GLenum mode);
#endif

/**
 ** GL_ANGLE_framebuffer_blit
 **/

#if (defined(GL_ANGLE_FRAMEBUFFER_BLIT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_ENUM_GL_ANGLE_FRAMEBUFFER_BLIT)
#define REGAL_NO_ENUM_GL_ANGLE_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_ANGLE_FRAMEBUFFER_BLIT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_FRAMEBUFFER_BLIT)
#define REGAL_NO_TYPEDEF_GL_ANGLE_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_ANGLE_FRAMEBUFFER_BLIT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_FRAMEBUFFER_BLIT)
#define REGAL_NO_NAMESPACE_GL_ANGLE_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_ANGLE_FRAMEBUFFER_BLIT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_FRAMEBUFFER_BLIT)
#define REGAL_NO_PLUGIN_GL_ANGLE_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_ANGLE_FRAMEBUFFER_BLIT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_FRAMEBUFFER_BLIT)
#define REGAL_NO_DECLARATION_GL_ANGLE_FRAMEBUFFER_BLIT
#endif

#ifndef GL_ANGLE_framebuffer_blit
#define GL_ANGLE_framebuffer_blit 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_FRAMEBUFFER_BLIT
#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE 0x8ca6     /* 36006 */
#define GL_READ_FRAMEBUFFER_ANGLE         0x8ca8     /* 36008 */
#define GL_DRAW_FRAMEBUFFER_ANGLE         0x8ca9     /* 36009 */
#define GL_READ_FRAMEBUFFER_BINDING_ANGLE 0x8caa     /* 36010 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ANGLE_FRAMEBUFFER_BLIT
typedef void (REGAL_CALL *PFNGLBLITFRAMEBUFFERANGLEPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ANGLE_FRAMEBUFFER_BLIT
#define glBlitFramebufferANGLE              rglBlitFramebufferANGLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_ANGLE_FRAMEBUFFER_BLIT
REGAL_DECL void REGAL_CALL glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ANGLE_FRAMEBUFFER_BLIT
REGAL_DECL void REGAL_CALL plugin_glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

/**
 ** GL_ANGLE_framebuffer_multisample
 **/

#if (defined(GL_ANGLE_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_ANGLE_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_ANGLE_FRAMEBUFFER_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_ANGLE_FRAMEBUFFER_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_ANGLE_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
#endif

#ifndef GL_ANGLE_framebuffer_multisample
#define GL_ANGLE_framebuffer_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
#define GL_RENDERBUFFER_SAMPLES_ANGLE               0x8cab     /* 36011 */
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE 0x8d56     /* 36182 */
#define GL_MAX_SAMPLES_ANGLE                        0x8d57     /* 36183 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
#define glRenderbufferStorageMultisampleANGLE rglRenderbufferStorageMultisampleANGLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
REGAL_DECL void REGAL_CALL glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ANGLE_FRAMEBUFFER_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

/**
 ** GL_ANGLE_instanced_arrays
 **/

#if (defined(GL_ANGLE_INSTANCED_ARRAYS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_INSTANCED_ARRAYS)) && !defined(REGAL_NO_ENUM_GL_ANGLE_INSTANCED_ARRAYS)
#define REGAL_NO_ENUM_GL_ANGLE_INSTANCED_ARRAYS
#endif

#if (defined(GL_ANGLE_INSTANCED_ARRAYS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_INSTANCED_ARRAYS)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_INSTANCED_ARRAYS)
#define REGAL_NO_TYPEDEF_GL_ANGLE_INSTANCED_ARRAYS
#endif

#if (defined(GL_ANGLE_INSTANCED_ARRAYS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_INSTANCED_ARRAYS)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_INSTANCED_ARRAYS)
#define REGAL_NO_NAMESPACE_GL_ANGLE_INSTANCED_ARRAYS
#endif

#if (defined(GL_ANGLE_INSTANCED_ARRAYS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_INSTANCED_ARRAYS)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_INSTANCED_ARRAYS)
#define REGAL_NO_PLUGIN_GL_ANGLE_INSTANCED_ARRAYS
#endif

#if (defined(GL_ANGLE_INSTANCED_ARRAYS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_INSTANCED_ARRAYS)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_INSTANCED_ARRAYS)
#define REGAL_NO_DECLARATION_GL_ANGLE_INSTANCED_ARRAYS
#endif

#ifndef GL_ANGLE_instanced_arrays
#define GL_ANGLE_instanced_arrays 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_INSTANCED_ARRAYS
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE 0x88fe /* 35070 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ANGLE_INSTANCED_ARRAYS
typedef void (REGAL_CALL *PFNGLDRAWARRAYSINSTANCEDANGLEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSINSTANCEDANGLEPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBDIVISORANGLEPROC)(GLuint index, GLuint divisor);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ANGLE_INSTANCED_ARRAYS
#define glDrawArraysInstancedANGLE          rglDrawArraysInstancedANGLE
#define glDrawElementsInstancedANGLE        rglDrawElementsInstancedANGLE
#define glVertexAttribDivisorANGLE          rglVertexAttribDivisorANGLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_ANGLE_INSTANCED_ARRAYS
REGAL_DECL void REGAL_CALL glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
REGAL_DECL void REGAL_CALL glDrawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
REGAL_DECL void REGAL_CALL glVertexAttribDivisorANGLE(GLuint index, GLuint divisor);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ANGLE_INSTANCED_ARRAYS
REGAL_DECL void REGAL_CALL plugin_glDrawArraysInstancedANGLE(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glDrawElementsInstancedANGLE(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribDivisorANGLE(GLuint index, GLuint divisor);
#endif

/**
 ** GL_ANGLE_pack_reverse_row_order
 **/

#if (defined(GL_ANGLE_PACK_REVERSE_ROW_ORDER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_PACK_REVERSE_ROW_ORDER)) && !defined(REGAL_NO_ENUM_GL_ANGLE_PACK_REVERSE_ROW_ORDER)
#define REGAL_NO_ENUM_GL_ANGLE_PACK_REVERSE_ROW_ORDER
#endif

#if (defined(GL_ANGLE_PACK_REVERSE_ROW_ORDER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_PACK_REVERSE_ROW_ORDER)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_PACK_REVERSE_ROW_ORDER)
#define REGAL_NO_TYPEDEF_GL_ANGLE_PACK_REVERSE_ROW_ORDER
#endif

#if (defined(GL_ANGLE_PACK_REVERSE_ROW_ORDER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_PACK_REVERSE_ROW_ORDER)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_PACK_REVERSE_ROW_ORDER)
#define REGAL_NO_NAMESPACE_GL_ANGLE_PACK_REVERSE_ROW_ORDER
#endif

#if (defined(GL_ANGLE_PACK_REVERSE_ROW_ORDER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_PACK_REVERSE_ROW_ORDER)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_PACK_REVERSE_ROW_ORDER)
#define REGAL_NO_PLUGIN_GL_ANGLE_PACK_REVERSE_ROW_ORDER
#endif

#if (defined(GL_ANGLE_PACK_REVERSE_ROW_ORDER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_PACK_REVERSE_ROW_ORDER)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_PACK_REVERSE_ROW_ORDER)
#define REGAL_NO_DECLARATION_GL_ANGLE_PACK_REVERSE_ROW_ORDER
#endif

#ifndef GL_ANGLE_pack_reverse_row_order
#define GL_ANGLE_pack_reverse_row_order 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_PACK_REVERSE_ROW_ORDER
#define GL_PACK_REVERSE_ROW_ORDER_ANGLE 0x93a4 /* 37796 */
#endif

/**
 ** GL_ANGLE_program_binary
 **/

#if (defined(GL_ANGLE_PROGRAM_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_PROGRAM_BINARY)) && !defined(REGAL_NO_ENUM_GL_ANGLE_PROGRAM_BINARY)
#define REGAL_NO_ENUM_GL_ANGLE_PROGRAM_BINARY
#endif

#if (defined(GL_ANGLE_PROGRAM_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_PROGRAM_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_PROGRAM_BINARY)
#define REGAL_NO_TYPEDEF_GL_ANGLE_PROGRAM_BINARY
#endif

#if (defined(GL_ANGLE_PROGRAM_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_PROGRAM_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_PROGRAM_BINARY)
#define REGAL_NO_NAMESPACE_GL_ANGLE_PROGRAM_BINARY
#endif

#if (defined(GL_ANGLE_PROGRAM_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_PROGRAM_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_PROGRAM_BINARY)
#define REGAL_NO_PLUGIN_GL_ANGLE_PROGRAM_BINARY
#endif

#if (defined(GL_ANGLE_PROGRAM_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_PROGRAM_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_PROGRAM_BINARY)
#define REGAL_NO_DECLARATION_GL_ANGLE_PROGRAM_BINARY
#endif

#ifndef GL_ANGLE_program_binary
#define GL_ANGLE_program_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_PROGRAM_BINARY
#define GL_PROGRAM_BINARY_ANGLE 0x93a6 /* 37798 */
#endif

/**
 ** GL_ANGLE_texture_compression_dxt1
 **/

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)) && !defined(REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)
#define REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT1
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)
#define REGAL_NO_TYPEDEF_GL_ANGLE_TEXTURE_COMPRESSION_DXT1
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)
#define REGAL_NO_NAMESPACE_GL_ANGLE_TEXTURE_COMPRESSION_DXT1
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)
#define REGAL_NO_PLUGIN_GL_ANGLE_TEXTURE_COMPRESSION_DXT1
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_TEXTURE_COMPRESSION_DXT1)
#define REGAL_NO_DECLARATION_GL_ANGLE_TEXTURE_COMPRESSION_DXT1
#endif

#ifndef GL_ANGLE_texture_compression_dxt1
#define GL_ANGLE_texture_compression_dxt1 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT1
#define GL_COMPRESSED_RGB_S3TC_DXT1_ANGLE  0x83f0     /* 33776 */
#define GL_COMPRESSED_RGBA_S3TC_DXT1_ANGLE 0x83f1     /* 33777 */
#endif

/**
 ** GL_ANGLE_texture_compression_dxt3
 **/

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)) && !defined(REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)
#define REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT3
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)
#define REGAL_NO_TYPEDEF_GL_ANGLE_TEXTURE_COMPRESSION_DXT3
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)
#define REGAL_NO_NAMESPACE_GL_ANGLE_TEXTURE_COMPRESSION_DXT3
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)
#define REGAL_NO_PLUGIN_GL_ANGLE_TEXTURE_COMPRESSION_DXT3
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_TEXTURE_COMPRESSION_DXT3)
#define REGAL_NO_DECLARATION_GL_ANGLE_TEXTURE_COMPRESSION_DXT3
#endif

#ifndef GL_ANGLE_texture_compression_dxt3
#define GL_ANGLE_texture_compression_dxt3 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT3
#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE 0x83f2 /* 33778 */
#endif

/**
 ** GL_ANGLE_texture_compression_dxt5
 **/

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT5) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)) && !defined(REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)
#define REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT5
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT5) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)
#define REGAL_NO_TYPEDEF_GL_ANGLE_TEXTURE_COMPRESSION_DXT5
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT5) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)
#define REGAL_NO_NAMESPACE_GL_ANGLE_TEXTURE_COMPRESSION_DXT5
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT5) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)
#define REGAL_NO_PLUGIN_GL_ANGLE_TEXTURE_COMPRESSION_DXT5
#endif

#if (defined(GL_ANGLE_TEXTURE_COMPRESSION_DXT5) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_TEXTURE_COMPRESSION_DXT5)
#define REGAL_NO_DECLARATION_GL_ANGLE_TEXTURE_COMPRESSION_DXT5
#endif

#ifndef GL_ANGLE_texture_compression_dxt5
#define GL_ANGLE_texture_compression_dxt5 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_TEXTURE_COMPRESSION_DXT5
#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE 0x83f3 /* 33779 */
#endif

/**
 ** GL_ANGLE_texture_usage
 **/

#if (defined(GL_ANGLE_TEXTURE_USAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_TEXTURE_USAGE)) && !defined(REGAL_NO_ENUM_GL_ANGLE_TEXTURE_USAGE)
#define REGAL_NO_ENUM_GL_ANGLE_TEXTURE_USAGE
#endif

#if (defined(GL_ANGLE_TEXTURE_USAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_TEXTURE_USAGE)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_TEXTURE_USAGE)
#define REGAL_NO_TYPEDEF_GL_ANGLE_TEXTURE_USAGE
#endif

#if (defined(GL_ANGLE_TEXTURE_USAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_TEXTURE_USAGE)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_TEXTURE_USAGE)
#define REGAL_NO_NAMESPACE_GL_ANGLE_TEXTURE_USAGE
#endif

#if (defined(GL_ANGLE_TEXTURE_USAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_TEXTURE_USAGE)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_TEXTURE_USAGE)
#define REGAL_NO_PLUGIN_GL_ANGLE_TEXTURE_USAGE
#endif

#if (defined(GL_ANGLE_TEXTURE_USAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_TEXTURE_USAGE)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_TEXTURE_USAGE)
#define REGAL_NO_DECLARATION_GL_ANGLE_TEXTURE_USAGE
#endif

#ifndef GL_ANGLE_texture_usage
#define GL_ANGLE_texture_usage 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_TEXTURE_USAGE
#define GL_TEXTURE_USAGE_ANGLE          0x93a2     /* 37794 */
#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE 0x93a3     /* 37795 */
#endif

/**
 ** GL_ANGLE_timer_query
 **/

#if (defined(GL_ANGLE_TIMER_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_TIMER_QUERY)) && !defined(REGAL_NO_ENUM_GL_ANGLE_TIMER_QUERY)
#define REGAL_NO_ENUM_GL_ANGLE_TIMER_QUERY
#endif

#if (defined(GL_ANGLE_TIMER_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_TIMER_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_TIMER_QUERY)
#define REGAL_NO_TYPEDEF_GL_ANGLE_TIMER_QUERY
#endif

#if (defined(GL_ANGLE_TIMER_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_TIMER_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_TIMER_QUERY)
#define REGAL_NO_NAMESPACE_GL_ANGLE_TIMER_QUERY
#endif

#if (defined(GL_ANGLE_TIMER_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_TIMER_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_TIMER_QUERY)
#define REGAL_NO_PLUGIN_GL_ANGLE_TIMER_QUERY
#endif

#if (defined(GL_ANGLE_TIMER_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_TIMER_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_TIMER_QUERY)
#define REGAL_NO_DECLARATION_GL_ANGLE_TIMER_QUERY
#endif

#ifndef GL_ANGLE_timer_query
#define GL_ANGLE_timer_query 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_TIMER_QUERY
#define GL_QUERY_COUNTER_BITS_ANGLE     0x8864     /* 34916 */
#define GL_CURRENT_QUERY_ANGLE          0x8865     /* 34917 */
#define GL_QUERY_RESULT_ANGLE           0x8866     /* 34918 */
#define GL_QUERY_RESULT_AVAILABLE_ANGLE 0x8867     /* 34919 */
#define GL_TIME_ELAPSED_ANGLE           0x88bf     /* 35007 */
#define GL_TIMESTAMP_ANGLE              0x8e28     /* 36392 */
#endif

/**
 ** GL_ANGLE_translated_shader_source
 **/

#if (defined(GL_ANGLE_TRANSLATED_SHADER_SOURCE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ANGLE_TRANSLATED_SHADER_SOURCE)) && !defined(REGAL_NO_ENUM_GL_ANGLE_TRANSLATED_SHADER_SOURCE)
#define REGAL_NO_ENUM_GL_ANGLE_TRANSLATED_SHADER_SOURCE
#endif

#if (defined(GL_ANGLE_TRANSLATED_SHADER_SOURCE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ANGLE_TRANSLATED_SHADER_SOURCE)) && !defined(REGAL_NO_TYPEDEF_GL_ANGLE_TRANSLATED_SHADER_SOURCE)
#define REGAL_NO_TYPEDEF_GL_ANGLE_TRANSLATED_SHADER_SOURCE
#endif

#if (defined(GL_ANGLE_TRANSLATED_SHADER_SOURCE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ANGLE_TRANSLATED_SHADER_SOURCE)) && !defined(REGAL_NO_NAMESPACE_GL_ANGLE_TRANSLATED_SHADER_SOURCE)
#define REGAL_NO_NAMESPACE_GL_ANGLE_TRANSLATED_SHADER_SOURCE
#endif

#if (defined(GL_ANGLE_TRANSLATED_SHADER_SOURCE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ANGLE_TRANSLATED_SHADER_SOURCE)) && !defined(REGAL_NO_PLUGIN_GL_ANGLE_TRANSLATED_SHADER_SOURCE)
#define REGAL_NO_PLUGIN_GL_ANGLE_TRANSLATED_SHADER_SOURCE
#endif

#if (defined(GL_ANGLE_TRANSLATED_SHADER_SOURCE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ANGLE_TRANSLATED_SHADER_SOURCE)) && !defined(REGAL_NO_DECLARATION_GL_ANGLE_TRANSLATED_SHADER_SOURCE)
#define REGAL_NO_DECLARATION_GL_ANGLE_TRANSLATED_SHADER_SOURCE
#endif

#ifndef GL_ANGLE_translated_shader_source
#define GL_ANGLE_translated_shader_source 1
#endif

#ifndef REGAL_NO_ENUM_GL_ANGLE_TRANSLATED_SHADER_SOURCE
#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE 0x93a0 /* 37792 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ANGLE_TRANSLATED_SHADER_SOURCE
typedef void (REGAL_CALL *PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC)(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ANGLE_TRANSLATED_SHADER_SOURCE
#define glGetTranslatedShaderSourceANGLE    rglGetTranslatedShaderSourceANGLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_ANGLE_TRANSLATED_SHADER_SOURCE
REGAL_DECL void REGAL_CALL glGetTranslatedShaderSourceANGLE(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ANGLE_TRANSLATED_SHADER_SOURCE
REGAL_DECL void REGAL_CALL plugin_glGetTranslatedShaderSourceANGLE(GLuint shader, GLsizei bufsize, GLsizei *length, GLchar *source);
#endif

/**
 ** GL_APPLE_aux_depth_stencil
 **/

#if (defined(GL_APPLE_AUX_DEPTH_STENCIL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_AUX_DEPTH_STENCIL)) && !defined(REGAL_NO_ENUM_GL_APPLE_AUX_DEPTH_STENCIL)
#define REGAL_NO_ENUM_GL_APPLE_AUX_DEPTH_STENCIL
#endif

#if (defined(GL_APPLE_AUX_DEPTH_STENCIL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_AUX_DEPTH_STENCIL)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_AUX_DEPTH_STENCIL)
#define REGAL_NO_TYPEDEF_GL_APPLE_AUX_DEPTH_STENCIL
#endif

#if (defined(GL_APPLE_AUX_DEPTH_STENCIL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_AUX_DEPTH_STENCIL)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_AUX_DEPTH_STENCIL)
#define REGAL_NO_NAMESPACE_GL_APPLE_AUX_DEPTH_STENCIL
#endif

#if (defined(GL_APPLE_AUX_DEPTH_STENCIL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_AUX_DEPTH_STENCIL)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_AUX_DEPTH_STENCIL)
#define REGAL_NO_PLUGIN_GL_APPLE_AUX_DEPTH_STENCIL
#endif

#if (defined(GL_APPLE_AUX_DEPTH_STENCIL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_AUX_DEPTH_STENCIL)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_AUX_DEPTH_STENCIL)
#define REGAL_NO_DECLARATION_GL_APPLE_AUX_DEPTH_STENCIL
#endif

#ifndef GL_APPLE_aux_depth_stencil
#define GL_APPLE_aux_depth_stencil 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_AUX_DEPTH_STENCIL
#define GL_AUX_DEPTH_STENCIL_APPLE 0x8a14 /* 35348 */
#endif

/**
 ** GL_APPLE_client_storage
 **/

#if (defined(GL_APPLE_CLIENT_STORAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_CLIENT_STORAGE)) && !defined(REGAL_NO_ENUM_GL_APPLE_CLIENT_STORAGE)
#define REGAL_NO_ENUM_GL_APPLE_CLIENT_STORAGE
#endif

#if (defined(GL_APPLE_CLIENT_STORAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_CLIENT_STORAGE)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_CLIENT_STORAGE)
#define REGAL_NO_TYPEDEF_GL_APPLE_CLIENT_STORAGE
#endif

#if (defined(GL_APPLE_CLIENT_STORAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_CLIENT_STORAGE)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_CLIENT_STORAGE)
#define REGAL_NO_NAMESPACE_GL_APPLE_CLIENT_STORAGE
#endif

#if (defined(GL_APPLE_CLIENT_STORAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_CLIENT_STORAGE)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_CLIENT_STORAGE)
#define REGAL_NO_PLUGIN_GL_APPLE_CLIENT_STORAGE
#endif

#if (defined(GL_APPLE_CLIENT_STORAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_CLIENT_STORAGE)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_CLIENT_STORAGE)
#define REGAL_NO_DECLARATION_GL_APPLE_CLIENT_STORAGE
#endif

#ifndef GL_APPLE_client_storage
#define GL_APPLE_client_storage 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_CLIENT_STORAGE
#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85b2 /* 34226 */
#endif

/**
 ** GL_APPLE_copy_texture_levels
 **/

#if (defined(GL_APPLE_COPY_TEXTURE_LEVELS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_COPY_TEXTURE_LEVELS)) && !defined(REGAL_NO_ENUM_GL_APPLE_COPY_TEXTURE_LEVELS)
#define REGAL_NO_ENUM_GL_APPLE_COPY_TEXTURE_LEVELS
#endif

#if (defined(GL_APPLE_COPY_TEXTURE_LEVELS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_COPY_TEXTURE_LEVELS)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_COPY_TEXTURE_LEVELS)
#define REGAL_NO_TYPEDEF_GL_APPLE_COPY_TEXTURE_LEVELS
#endif

#if (defined(GL_APPLE_COPY_TEXTURE_LEVELS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_COPY_TEXTURE_LEVELS)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_COPY_TEXTURE_LEVELS)
#define REGAL_NO_NAMESPACE_GL_APPLE_COPY_TEXTURE_LEVELS
#endif

#if (defined(GL_APPLE_COPY_TEXTURE_LEVELS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_COPY_TEXTURE_LEVELS)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_COPY_TEXTURE_LEVELS)
#define REGAL_NO_PLUGIN_GL_APPLE_COPY_TEXTURE_LEVELS
#endif

#if (defined(GL_APPLE_COPY_TEXTURE_LEVELS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_COPY_TEXTURE_LEVELS)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_COPY_TEXTURE_LEVELS)
#define REGAL_NO_DECLARATION_GL_APPLE_COPY_TEXTURE_LEVELS
#endif

#ifndef GL_APPLE_copy_texture_levels
#define GL_APPLE_copy_texture_levels 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_COPY_TEXTURE_LEVELS
typedef void (REGAL_CALL *PFNGLCOPYTEXTURELEVELSAPPLEPROC)(GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_COPY_TEXTURE_LEVELS
#define glCopyTextureLevelsAPPLE            rglCopyTextureLevelsAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_COPY_TEXTURE_LEVELS
REGAL_DECL void REGAL_CALL glCopyTextureLevelsAPPLE(GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_COPY_TEXTURE_LEVELS
REGAL_DECL void REGAL_CALL plugin_glCopyTextureLevelsAPPLE(GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
#endif

/**
 ** GL_APPLE_element_array
 **/

#if (defined(GL_APPLE_ELEMENT_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_ELEMENT_ARRAY)) && !defined(REGAL_NO_ENUM_GL_APPLE_ELEMENT_ARRAY)
#define REGAL_NO_ENUM_GL_APPLE_ELEMENT_ARRAY
#endif

#if (defined(GL_APPLE_ELEMENT_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_ELEMENT_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_ELEMENT_ARRAY)
#define REGAL_NO_TYPEDEF_GL_APPLE_ELEMENT_ARRAY
#endif

#if (defined(GL_APPLE_ELEMENT_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_ELEMENT_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_ELEMENT_ARRAY)
#define REGAL_NO_NAMESPACE_GL_APPLE_ELEMENT_ARRAY
#endif

#if (defined(GL_APPLE_ELEMENT_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_ELEMENT_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_ELEMENT_ARRAY)
#define REGAL_NO_PLUGIN_GL_APPLE_ELEMENT_ARRAY
#endif

#if (defined(GL_APPLE_ELEMENT_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_ELEMENT_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_ELEMENT_ARRAY)
#define REGAL_NO_DECLARATION_GL_APPLE_ELEMENT_ARRAY
#endif

#ifndef GL_APPLE_element_array
#define GL_APPLE_element_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_ELEMENT_ARRAY
#define GL_ELEMENT_ARRAY_APPLE         0x8a0c     /* 35340 */
#define GL_ELEMENT_ARRAY_TYPE_APPLE    0x8a0d     /* 35341 */
#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8a0e     /* 35342 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_ELEMENT_ARRAY
typedef void (REGAL_CALL *PFNGLDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, GLint first, GLsizei count);
typedef void (REGAL_CALL *PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
typedef void (REGAL_CALL *PFNGLELEMENTPOINTERAPPLEPROC)(GLenum type, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_ELEMENT_ARRAY
#define glDrawElementArrayAPPLE             rglDrawElementArrayAPPLE
#define glDrawRangeElementArrayAPPLE        rglDrawRangeElementArrayAPPLE
#define glElementPointerAPPLE               rglElementPointerAPPLE
#define glMultiDrawElementArrayAPPLE        rglMultiDrawElementArrayAPPLE
#define glMultiDrawRangeElementArrayAPPLE   rglMultiDrawRangeElementArrayAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_ELEMENT_ARRAY
REGAL_DECL void REGAL_CALL glDrawElementArrayAPPLE(GLenum mode, GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL glDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL glElementPointerAPPLE(GLenum type, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glMultiDrawElementArrayAPPLE(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
REGAL_DECL void REGAL_CALL glMultiDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_ELEMENT_ARRAY
REGAL_DECL void REGAL_CALL plugin_glDrawElementArrayAPPLE(GLenum mode, GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL plugin_glDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL plugin_glElementPointerAPPLE(GLenum type, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawElementArrayAPPLE(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount);
#endif

/**
 ** GL_APPLE_fence
 **/

#if (defined(GL_APPLE_FENCE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_FENCE)) && !defined(REGAL_NO_ENUM_GL_APPLE_FENCE)
#define REGAL_NO_ENUM_GL_APPLE_FENCE
#endif

#if (defined(GL_APPLE_FENCE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_FENCE)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_FENCE)
#define REGAL_NO_TYPEDEF_GL_APPLE_FENCE
#endif

#if (defined(GL_APPLE_FENCE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_FENCE)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_FENCE)
#define REGAL_NO_NAMESPACE_GL_APPLE_FENCE
#endif

#if (defined(GL_APPLE_FENCE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_FENCE)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_FENCE)
#define REGAL_NO_PLUGIN_GL_APPLE_FENCE
#endif

#if (defined(GL_APPLE_FENCE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_FENCE)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_FENCE)
#define REGAL_NO_DECLARATION_GL_APPLE_FENCE
#endif

#ifndef GL_APPLE_fence
#define GL_APPLE_fence 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_FENCE
#define GL_DRAW_PIXELS_APPLE 0x8a0a     /* 35338 */
#define GL_FENCE_APPLE       0x8a0b     /* 35339 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_FENCE
typedef GLboolean (REGAL_CALL *PFNGLISFENCEAPPLEPROC)(GLuint fence);
typedef GLboolean (REGAL_CALL *PFNGLTESTFENCEAPPLEPROC)(GLuint fence);
typedef GLboolean (REGAL_CALL *PFNGLTESTOBJECTAPPLEPROC)(GLenum object, GLuint name);
typedef void (REGAL_CALL *PFNGLDELETEFENCESAPPLEPROC)(GLsizei n, const GLuint *fences);
typedef void (REGAL_CALL *PFNGLFINISHFENCEAPPLEPROC)(GLuint fence);
typedef void (REGAL_CALL *PFNGLFINISHOBJECTAPPLEPROC)(GLenum object, GLint name);
typedef void (REGAL_CALL *PFNGLGENFENCESAPPLEPROC)(GLsizei n, GLuint *fences);
typedef void (REGAL_CALL *PFNGLSETFENCEAPPLEPROC)(GLuint fence);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_FENCE
#define glDeleteFencesAPPLE                 rglDeleteFencesAPPLE
#define glFinishFenceAPPLE                  rglFinishFenceAPPLE
#define glFinishObjectAPPLE                 rglFinishObjectAPPLE
#define glGenFencesAPPLE                    rglGenFencesAPPLE
#define glIsFenceAPPLE                      rglIsFenceAPPLE
#define glSetFenceAPPLE                     rglSetFenceAPPLE
#define glTestFenceAPPLE                    rglTestFenceAPPLE
#define glTestObjectAPPLE                   rglTestObjectAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_FENCE
REGAL_DECL GLboolean REGAL_CALL glIsFenceAPPLE(GLuint fence);
REGAL_DECL GLboolean REGAL_CALL glTestFenceAPPLE(GLuint fence);
REGAL_DECL GLboolean REGAL_CALL glTestObjectAPPLE(GLenum object, GLuint name);
REGAL_DECL void REGAL_CALL glDeleteFencesAPPLE(GLsizei n, const GLuint *fences);
REGAL_DECL void REGAL_CALL glFinishFenceAPPLE(GLuint fence);
REGAL_DECL void REGAL_CALL glFinishObjectAPPLE(GLenum object, GLint name);
REGAL_DECL void REGAL_CALL glGenFencesAPPLE(GLsizei n, GLuint *fences);
REGAL_DECL void REGAL_CALL glSetFenceAPPLE(GLuint fence);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_FENCE
REGAL_DECL GLboolean REGAL_CALL plugin_glIsFenceAPPLE(GLuint fence);
REGAL_DECL GLboolean REGAL_CALL plugin_glTestFenceAPPLE(GLuint fence);
REGAL_DECL GLboolean REGAL_CALL plugin_glTestObjectAPPLE(GLenum object, GLuint name);
REGAL_DECL void REGAL_CALL plugin_glDeleteFencesAPPLE(GLsizei n, const GLuint *fences);
REGAL_DECL void REGAL_CALL plugin_glFinishFenceAPPLE(GLuint fence);
REGAL_DECL void REGAL_CALL plugin_glFinishObjectAPPLE(GLenum object, GLint name);
REGAL_DECL void REGAL_CALL plugin_glGenFencesAPPLE(GLsizei n, GLuint *fences);
REGAL_DECL void REGAL_CALL plugin_glSetFenceAPPLE(GLuint fence);
#endif

/**
 ** GL_APPLE_float_pixels
 **/

#if (defined(GL_APPLE_FLOAT_PIXELS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_FLOAT_PIXELS)) && !defined(REGAL_NO_ENUM_GL_APPLE_FLOAT_PIXELS)
#define REGAL_NO_ENUM_GL_APPLE_FLOAT_PIXELS
#endif

#if (defined(GL_APPLE_FLOAT_PIXELS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_FLOAT_PIXELS)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_FLOAT_PIXELS)
#define REGAL_NO_TYPEDEF_GL_APPLE_FLOAT_PIXELS
#endif

#if (defined(GL_APPLE_FLOAT_PIXELS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_FLOAT_PIXELS)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_FLOAT_PIXELS)
#define REGAL_NO_NAMESPACE_GL_APPLE_FLOAT_PIXELS
#endif

#if (defined(GL_APPLE_FLOAT_PIXELS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_FLOAT_PIXELS)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_FLOAT_PIXELS)
#define REGAL_NO_PLUGIN_GL_APPLE_FLOAT_PIXELS
#endif

#if (defined(GL_APPLE_FLOAT_PIXELS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_FLOAT_PIXELS)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_FLOAT_PIXELS)
#define REGAL_NO_DECLARATION_GL_APPLE_FLOAT_PIXELS
#endif

#ifndef GL_APPLE_float_pixels
#define GL_APPLE_float_pixels 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_FLOAT_PIXELS
#define GL_HALF_APPLE                    0x140b     /* 5131 */
#define GL_RGBA_FLOAT32_APPLE            0x8814     /* 34836 */
#define GL_RGB_FLOAT32_APPLE             0x8815     /* 34837 */
#define GL_ALPHA_FLOAT32_APPLE           0x8816     /* 34838 */
#define GL_INTENSITY_FLOAT32_APPLE       0x8817     /* 34839 */
#define GL_LUMINANCE_FLOAT32_APPLE       0x8818     /* 34840 */
#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819     /* 34841 */
#define GL_RGBA_FLOAT16_APPLE            0x881a     /* 34842 */
#define GL_RGB_FLOAT16_APPLE             0x881b     /* 34843 */
#define GL_ALPHA_FLOAT16_APPLE           0x881c     /* 34844 */
#define GL_INTENSITY_FLOAT16_APPLE       0x881d     /* 34845 */
#define GL_LUMINANCE_FLOAT16_APPLE       0x881e     /* 34846 */
#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881f     /* 34847 */
#define GL_COLOR_FLOAT_APPLE             0x8a0f     /* 35343 */
#endif

/**
 ** GL_APPLE_flush_buffer_range
 **/

#if (defined(GL_APPLE_FLUSH_BUFFER_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_FLUSH_BUFFER_RANGE)) && !defined(REGAL_NO_ENUM_GL_APPLE_FLUSH_BUFFER_RANGE)
#define REGAL_NO_ENUM_GL_APPLE_FLUSH_BUFFER_RANGE
#endif

#if (defined(GL_APPLE_FLUSH_BUFFER_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_FLUSH_BUFFER_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_FLUSH_BUFFER_RANGE)
#define REGAL_NO_TYPEDEF_GL_APPLE_FLUSH_BUFFER_RANGE
#endif

#if (defined(GL_APPLE_FLUSH_BUFFER_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_FLUSH_BUFFER_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_FLUSH_BUFFER_RANGE)
#define REGAL_NO_NAMESPACE_GL_APPLE_FLUSH_BUFFER_RANGE
#endif

#if (defined(GL_APPLE_FLUSH_BUFFER_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_FLUSH_BUFFER_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_FLUSH_BUFFER_RANGE)
#define REGAL_NO_PLUGIN_GL_APPLE_FLUSH_BUFFER_RANGE
#endif

#if (defined(GL_APPLE_FLUSH_BUFFER_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_FLUSH_BUFFER_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_FLUSH_BUFFER_RANGE)
#define REGAL_NO_DECLARATION_GL_APPLE_FLUSH_BUFFER_RANGE
#endif

#ifndef GL_APPLE_flush_buffer_range
#define GL_APPLE_flush_buffer_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_FLUSH_BUFFER_RANGE
#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8a12     /* 35346 */
#define GL_BUFFER_FLUSHING_UNMAP_APPLE    0x8a13     /* 35347 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_FLUSH_BUFFER_RANGE
typedef void (REGAL_CALL *PFNGLBUFFERPARAMETERIAPPLEPROC)(GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)(GLenum target, GLintptr offset, GLsizeiptr size);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_FLUSH_BUFFER_RANGE
#define glBufferParameteriAPPLE             rglBufferParameteriAPPLE
#define glFlushMappedBufferRangeAPPLE       rglFlushMappedBufferRangeAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_FLUSH_BUFFER_RANGE
REGAL_DECL void REGAL_CALL glBufferParameteriAPPLE(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glFlushMappedBufferRangeAPPLE(GLenum target, GLintptr offset, GLsizeiptr size);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_FLUSH_BUFFER_RANGE
REGAL_DECL void REGAL_CALL plugin_glBufferParameteriAPPLE(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glFlushMappedBufferRangeAPPLE(GLenum target, GLintptr offset, GLsizeiptr size);
#endif

/**
 ** GL_APPLE_flush_render
 **/

#if (defined(GL_APPLE_FLUSH_RENDER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_FLUSH_RENDER)) && !defined(REGAL_NO_ENUM_GL_APPLE_FLUSH_RENDER)
#define REGAL_NO_ENUM_GL_APPLE_FLUSH_RENDER
#endif

#if (defined(GL_APPLE_FLUSH_RENDER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_FLUSH_RENDER)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_FLUSH_RENDER)
#define REGAL_NO_TYPEDEF_GL_APPLE_FLUSH_RENDER
#endif

#if (defined(GL_APPLE_FLUSH_RENDER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_FLUSH_RENDER)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_FLUSH_RENDER)
#define REGAL_NO_NAMESPACE_GL_APPLE_FLUSH_RENDER
#endif

#if (defined(GL_APPLE_FLUSH_RENDER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_FLUSH_RENDER)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_FLUSH_RENDER)
#define REGAL_NO_PLUGIN_GL_APPLE_FLUSH_RENDER
#endif

#if (defined(GL_APPLE_FLUSH_RENDER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_FLUSH_RENDER)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_FLUSH_RENDER)
#define REGAL_NO_DECLARATION_GL_APPLE_FLUSH_RENDER
#endif

#ifndef GL_APPLE_flush_render
#define GL_APPLE_flush_render 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_FLUSH_RENDER
typedef void (REGAL_CALL *PFNGLFINISHRENDERAPPLEPROC)(void);
typedef void (REGAL_CALL *PFNGLFLUSHRENDERAPPLEPROC)(void);
typedef void (REGAL_CALL *PFNGLSWAPAPPLEPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_FLUSH_RENDER
#define glFinishRenderAPPLE                 rglFinishRenderAPPLE
#define glFlushRenderAPPLE                  rglFlushRenderAPPLE
#define glSwapAPPLE                         rglSwapAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_FLUSH_RENDER
REGAL_DECL void REGAL_CALL glFinishRenderAPPLE(void);
REGAL_DECL void REGAL_CALL glFlushRenderAPPLE(void);
REGAL_DECL void REGAL_CALL glSwapAPPLE(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_FLUSH_RENDER
REGAL_DECL void REGAL_CALL plugin_glFinishRenderAPPLE(void);
REGAL_DECL void REGAL_CALL plugin_glFlushRenderAPPLE(void);
REGAL_DECL void REGAL_CALL plugin_glSwapAPPLE(void);
#endif

/**
 ** GL_APPLE_framebuffer_multisample
 **/

#if (defined(GL_APPLE_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_APPLE_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_APPLE_FRAMEBUFFER_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_APPLE_FRAMEBUFFER_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_APPLE_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
#endif

#ifndef GL_APPLE_framebuffer_multisample
#define GL_APPLE_framebuffer_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE           0x8ca6     /* 36006 */
#define GL_READ_FRAMEBUFFER_APPLE                   0x8ca8     /* 36008 */
#define GL_DRAW_FRAMEBUFFER_APPLE                   0x8ca9     /* 36009 */
#define GL_READ_FRAMEBUFFER_BINDING_APPLE           0x8caa     /* 36010 */
#define GL_RENDERBUFFER_SAMPLES_APPLE               0x8cab     /* 36011 */
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE 0x8d56     /* 36182 */
#define GL_MAX_SAMPLES_APPLE                        0x8d57     /* 36183 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
#define glRenderbufferStorageMultisampleAPPLE rglRenderbufferStorageMultisampleAPPLE
#define glResolveMultisampleFramebufferAPPLE rglResolveMultisampleFramebufferAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
REGAL_DECL void REGAL_CALL glRenderbufferStorageMultisampleAPPLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glResolveMultisampleFramebufferAPPLE(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_FRAMEBUFFER_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorageMultisampleAPPLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glResolveMultisampleFramebufferAPPLE(void);
#endif

/**
 ** GL_APPLE_object_purgeable
 **/

#if (defined(GL_APPLE_OBJECT_PURGEABLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_OBJECT_PURGEABLE)) && !defined(REGAL_NO_ENUM_GL_APPLE_OBJECT_PURGEABLE)
#define REGAL_NO_ENUM_GL_APPLE_OBJECT_PURGEABLE
#endif

#if (defined(GL_APPLE_OBJECT_PURGEABLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_OBJECT_PURGEABLE)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_OBJECT_PURGEABLE)
#define REGAL_NO_TYPEDEF_GL_APPLE_OBJECT_PURGEABLE
#endif

#if (defined(GL_APPLE_OBJECT_PURGEABLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_OBJECT_PURGEABLE)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_OBJECT_PURGEABLE)
#define REGAL_NO_NAMESPACE_GL_APPLE_OBJECT_PURGEABLE
#endif

#if (defined(GL_APPLE_OBJECT_PURGEABLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_OBJECT_PURGEABLE)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_OBJECT_PURGEABLE)
#define REGAL_NO_PLUGIN_GL_APPLE_OBJECT_PURGEABLE
#endif

#if (defined(GL_APPLE_OBJECT_PURGEABLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_OBJECT_PURGEABLE)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_OBJECT_PURGEABLE)
#define REGAL_NO_DECLARATION_GL_APPLE_OBJECT_PURGEABLE
#endif

#ifndef GL_APPLE_object_purgeable
#define GL_APPLE_object_purgeable 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_OBJECT_PURGEABLE
#define GL_BUFFER_OBJECT_APPLE 0x85b3     /* 34227 */
#define GL_RELEASED_APPLE      0x8a19     /* 35353 */
#define GL_VOLATILE_APPLE      0x8a1a     /* 35354 */
#define GL_RETAINED_APPLE      0x8a1b     /* 35355 */
#define GL_UNDEFINED_APPLE     0x8a1c     /* 35356 */
#define GL_PURGEABLE_APPLE     0x8a1d     /* 35357 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_OBJECT_PURGEABLE
typedef GLenum (REGAL_CALL *PFNGLOBJECTPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name, GLenum option);
typedef GLenum (REGAL_CALL *PFNGLOBJECTUNPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name, GLenum option);
typedef void (REGAL_CALL *PFNGLGETOBJECTPARAMETERIVAPPLEPROC)(GLenum objectType, GLuint name, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_OBJECT_PURGEABLE
#define glGetObjectParameterivAPPLE         rglGetObjectParameterivAPPLE
#define glObjectPurgeableAPPLE              rglObjectPurgeableAPPLE
#define glObjectUnpurgeableAPPLE            rglObjectUnpurgeableAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_OBJECT_PURGEABLE
REGAL_DECL GLenum REGAL_CALL glObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option);
REGAL_DECL GLenum REGAL_CALL glObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option);
REGAL_DECL void REGAL_CALL glGetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_OBJECT_PURGEABLE
REGAL_DECL GLenum REGAL_CALL plugin_glObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option);
REGAL_DECL GLenum REGAL_CALL plugin_glObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option);
REGAL_DECL void REGAL_CALL plugin_glGetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, GLint *params);
#endif

/**
 ** GL_APPLE_pixel_buffer
 **/

#if (defined(GL_APPLE_PIXEL_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_PIXEL_BUFFER)) && !defined(REGAL_NO_ENUM_GL_APPLE_PIXEL_BUFFER)
#define REGAL_NO_ENUM_GL_APPLE_PIXEL_BUFFER
#endif

#if (defined(GL_APPLE_PIXEL_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_PIXEL_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_PIXEL_BUFFER)
#define REGAL_NO_TYPEDEF_GL_APPLE_PIXEL_BUFFER
#endif

#if (defined(GL_APPLE_PIXEL_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_PIXEL_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_PIXEL_BUFFER)
#define REGAL_NO_NAMESPACE_GL_APPLE_PIXEL_BUFFER
#endif

#if (defined(GL_APPLE_PIXEL_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_PIXEL_BUFFER)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_PIXEL_BUFFER)
#define REGAL_NO_PLUGIN_GL_APPLE_PIXEL_BUFFER
#endif

#if (defined(GL_APPLE_PIXEL_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_PIXEL_BUFFER)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_PIXEL_BUFFER)
#define REGAL_NO_DECLARATION_GL_APPLE_PIXEL_BUFFER
#endif

#ifndef GL_APPLE_pixel_buffer
#define GL_APPLE_pixel_buffer 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_PIXEL_BUFFER
#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8a10 /* 35344 */
#endif

/**
 ** GL_APPLE_rgb_422
 **/

#if (defined(GL_APPLE_RGB_422) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_RGB_422)) && !defined(REGAL_NO_ENUM_GL_APPLE_RGB_422)
#define REGAL_NO_ENUM_GL_APPLE_RGB_422
#endif

#if (defined(GL_APPLE_RGB_422) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_RGB_422)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_RGB_422)
#define REGAL_NO_TYPEDEF_GL_APPLE_RGB_422
#endif

#if (defined(GL_APPLE_RGB_422) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_RGB_422)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_RGB_422)
#define REGAL_NO_NAMESPACE_GL_APPLE_RGB_422
#endif

#if (defined(GL_APPLE_RGB_422) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_RGB_422)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_RGB_422)
#define REGAL_NO_PLUGIN_GL_APPLE_RGB_422
#endif

#if (defined(GL_APPLE_RGB_422) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_RGB_422)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_RGB_422)
#define REGAL_NO_DECLARATION_GL_APPLE_RGB_422
#endif

#ifndef GL_APPLE_rgb_422
#define GL_APPLE_rgb_422 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_RGB_422
#define GL_RGB_422_APPLE 0x8a1f /* 35359 */
#endif

/**
 ** GL_APPLE_row_bytes
 **/

#if (defined(GL_APPLE_ROW_BYTES) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_ROW_BYTES)) && !defined(REGAL_NO_ENUM_GL_APPLE_ROW_BYTES)
#define REGAL_NO_ENUM_GL_APPLE_ROW_BYTES
#endif

#if (defined(GL_APPLE_ROW_BYTES) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_ROW_BYTES)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_ROW_BYTES)
#define REGAL_NO_TYPEDEF_GL_APPLE_ROW_BYTES
#endif

#if (defined(GL_APPLE_ROW_BYTES) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_ROW_BYTES)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_ROW_BYTES)
#define REGAL_NO_NAMESPACE_GL_APPLE_ROW_BYTES
#endif

#if (defined(GL_APPLE_ROW_BYTES) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_ROW_BYTES)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_ROW_BYTES)
#define REGAL_NO_PLUGIN_GL_APPLE_ROW_BYTES
#endif

#if (defined(GL_APPLE_ROW_BYTES) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_ROW_BYTES)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_ROW_BYTES)
#define REGAL_NO_DECLARATION_GL_APPLE_ROW_BYTES
#endif

#ifndef GL_APPLE_row_bytes
#define GL_APPLE_row_bytes 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_ROW_BYTES
#define GL_PACK_ROW_BYTES_APPLE   0x8a15     /* 35349 */
#define GL_UNPACK_ROW_BYTES_APPLE 0x8a16     /* 35350 */
#endif

/**
 ** GL_APPLE_specular_vector
 **/

#if (defined(GL_APPLE_SPECULAR_VECTOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_SPECULAR_VECTOR)) && !defined(REGAL_NO_ENUM_GL_APPLE_SPECULAR_VECTOR)
#define REGAL_NO_ENUM_GL_APPLE_SPECULAR_VECTOR
#endif

#if (defined(GL_APPLE_SPECULAR_VECTOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_SPECULAR_VECTOR)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_SPECULAR_VECTOR)
#define REGAL_NO_TYPEDEF_GL_APPLE_SPECULAR_VECTOR
#endif

#if (defined(GL_APPLE_SPECULAR_VECTOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_SPECULAR_VECTOR)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_SPECULAR_VECTOR)
#define REGAL_NO_NAMESPACE_GL_APPLE_SPECULAR_VECTOR
#endif

#if (defined(GL_APPLE_SPECULAR_VECTOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_SPECULAR_VECTOR)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_SPECULAR_VECTOR)
#define REGAL_NO_PLUGIN_GL_APPLE_SPECULAR_VECTOR
#endif

#if (defined(GL_APPLE_SPECULAR_VECTOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_SPECULAR_VECTOR)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_SPECULAR_VECTOR)
#define REGAL_NO_DECLARATION_GL_APPLE_SPECULAR_VECTOR
#endif

#ifndef GL_APPLE_specular_vector
#define GL_APPLE_specular_vector 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_SPECULAR_VECTOR
#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85b0 /* 34224 */
#endif

/**
 ** GL_APPLE_sync
 **/

#if (defined(GL_APPLE_SYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_SYNC)) && !defined(REGAL_NO_ENUM_GL_APPLE_SYNC)
#define REGAL_NO_ENUM_GL_APPLE_SYNC
#endif

#if (defined(GL_APPLE_SYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_SYNC)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_SYNC)
#define REGAL_NO_TYPEDEF_GL_APPLE_SYNC
#endif

#if (defined(GL_APPLE_SYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_SYNC)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_SYNC)
#define REGAL_NO_NAMESPACE_GL_APPLE_SYNC
#endif

#if (defined(GL_APPLE_SYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_SYNC)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_SYNC)
#define REGAL_NO_PLUGIN_GL_APPLE_SYNC
#endif

#if (defined(GL_APPLE_SYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_SYNC)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_SYNC)
#define REGAL_NO_DECLARATION_GL_APPLE_SYNC
#endif

#ifndef GL_APPLE_sync
#define GL_APPLE_sync 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_SYNC
#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE    0x1
#define GL_SYNC_OBJECT_APPLE                0x8a53                 /* 35411 */
#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE    0x9111                 /* 37137 */
#define GL_OBJECT_TYPE_APPLE                0x9112                 /* 37138 */
#define GL_SYNC_CONDITION_APPLE             0x9113                 /* 37139 */
#define GL_SYNC_STATUS_APPLE                0x9114                 /* 37140 */
#define GL_SYNC_FLAGS_APPLE                 0x9115                 /* 37141 */
#define GL_SYNC_FENCE_APPLE                 0x9116                 /* 37142 */
#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE 0x9117                 /* 37143 */
#define GL_UNSIGNALED_APPLE                 0x9118                 /* 37144 */
#define GL_SIGNALED_APPLE                   0x9119                 /* 37145 */
#define GL_ALREADY_SIGNALED_APPLE           0x911a                 /* 37146 */
#define GL_TIMEOUT_EXPIRED_APPLE            0x911b                 /* 37147 */
#define GL_CONDITION_SATISFIED_APPLE        0x911c                 /* 37148 */
#define GL_WAIT_FAILED_APPLE                0x911d                 /* 37149 */
#define GL_TIMEOUT_IGNORED_APPLE            0xffffffffffffffff     /* 18446744073709551615 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_SYNC
typedef GLboolean (REGAL_CALL *PFNGLISSYNCAPPLEPROC)(GLsync sync);
typedef GLenum (REGAL_CALL *PFNGLCLIENTWAITSYNCAPPLEPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
typedef GLsync (REGAL_CALL *PFNGLFENCESYNCAPPLEPROC)(GLenum condition, GLbitfield flags);
typedef void (REGAL_CALL *PFNGLDELETESYNCAPPLEPROC)(GLsync sync);
typedef void (REGAL_CALL *PFNGLGETINTEGER64VAPPLEPROC)(GLenum pname, GLint64 *params);
typedef void (REGAL_CALL *PFNGLGETSYNCIVAPPLEPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
typedef void (REGAL_CALL *PFNGLWAITSYNCAPPLEPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_SYNC
#define glClientWaitSyncAPPLE               rglClientWaitSyncAPPLE
#define glDeleteSyncAPPLE                   rglDeleteSyncAPPLE
#define glFenceSyncAPPLE                    rglFenceSyncAPPLE
#define glGetInteger64vAPPLE                rglGetInteger64vAPPLE
#define glGetSyncivAPPLE                    rglGetSyncivAPPLE
#define glIsSyncAPPLE                       rglIsSyncAPPLE
#define glWaitSyncAPPLE                     rglWaitSyncAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_SYNC
REGAL_DECL GLboolean REGAL_CALL glIsSyncAPPLE(GLsync sync);
REGAL_DECL GLenum REGAL_CALL glClientWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout);
REGAL_DECL GLsync REGAL_CALL glFenceSyncAPPLE(GLenum condition, GLbitfield flags);
REGAL_DECL void REGAL_CALL glDeleteSyncAPPLE(GLsync sync);
REGAL_DECL void REGAL_CALL glGetInteger64vAPPLE(GLenum pname, GLint64 *params);
REGAL_DECL void REGAL_CALL glGetSyncivAPPLE(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
REGAL_DECL void REGAL_CALL glWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_SYNC
REGAL_DECL GLboolean REGAL_CALL plugin_glIsSyncAPPLE(GLsync sync);
REGAL_DECL GLenum REGAL_CALL plugin_glClientWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout);
REGAL_DECL GLsync REGAL_CALL plugin_glFenceSyncAPPLE(GLenum condition, GLbitfield flags);
REGAL_DECL void REGAL_CALL plugin_glDeleteSyncAPPLE(GLsync sync);
REGAL_DECL void REGAL_CALL plugin_glGetInteger64vAPPLE(GLenum pname, GLint64 *params);
REGAL_DECL void REGAL_CALL plugin_glGetSyncivAPPLE(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
REGAL_DECL void REGAL_CALL plugin_glWaitSyncAPPLE(GLsync sync, GLbitfield flags, GLuint64 timeout);
#endif

/**
 ** GL_APPLE_texture_max_level
 **/

#if (defined(GL_APPLE_TEXTURE_MAX_LEVEL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_TEXTURE_MAX_LEVEL)) && !defined(REGAL_NO_ENUM_GL_APPLE_TEXTURE_MAX_LEVEL)
#define REGAL_NO_ENUM_GL_APPLE_TEXTURE_MAX_LEVEL
#endif

#if (defined(GL_APPLE_TEXTURE_MAX_LEVEL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_TEXTURE_MAX_LEVEL)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_TEXTURE_MAX_LEVEL)
#define REGAL_NO_TYPEDEF_GL_APPLE_TEXTURE_MAX_LEVEL
#endif

#if (defined(GL_APPLE_TEXTURE_MAX_LEVEL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_TEXTURE_MAX_LEVEL)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_TEXTURE_MAX_LEVEL)
#define REGAL_NO_NAMESPACE_GL_APPLE_TEXTURE_MAX_LEVEL
#endif

#if (defined(GL_APPLE_TEXTURE_MAX_LEVEL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_TEXTURE_MAX_LEVEL)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_TEXTURE_MAX_LEVEL)
#define REGAL_NO_PLUGIN_GL_APPLE_TEXTURE_MAX_LEVEL
#endif

#if (defined(GL_APPLE_TEXTURE_MAX_LEVEL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_TEXTURE_MAX_LEVEL)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_TEXTURE_MAX_LEVEL)
#define REGAL_NO_DECLARATION_GL_APPLE_TEXTURE_MAX_LEVEL
#endif

#ifndef GL_APPLE_texture_max_level
#define GL_APPLE_texture_max_level 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_TEXTURE_MAX_LEVEL
#define GL_TEXTURE_MAX_LEVEL_APPLE 0x813d /* 33085 */
#endif

/**
 ** GL_APPLE_texture_range
 **/

#if (defined(GL_APPLE_TEXTURE_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_TEXTURE_RANGE)) && !defined(REGAL_NO_ENUM_GL_APPLE_TEXTURE_RANGE)
#define REGAL_NO_ENUM_GL_APPLE_TEXTURE_RANGE
#endif

#if (defined(GL_APPLE_TEXTURE_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_TEXTURE_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_TEXTURE_RANGE)
#define REGAL_NO_TYPEDEF_GL_APPLE_TEXTURE_RANGE
#endif

#if (defined(GL_APPLE_TEXTURE_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_TEXTURE_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_TEXTURE_RANGE)
#define REGAL_NO_NAMESPACE_GL_APPLE_TEXTURE_RANGE
#endif

#if (defined(GL_APPLE_TEXTURE_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_TEXTURE_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_TEXTURE_RANGE)
#define REGAL_NO_PLUGIN_GL_APPLE_TEXTURE_RANGE
#endif

#if (defined(GL_APPLE_TEXTURE_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_TEXTURE_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_TEXTURE_RANGE)
#define REGAL_NO_DECLARATION_GL_APPLE_TEXTURE_RANGE
#endif

#ifndef GL_APPLE_texture_range
#define GL_APPLE_texture_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_TEXTURE_RANGE
#define GL_TEXTURE_RANGE_LENGTH_APPLE  0x85b7     /* 34231 */
#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85b8     /* 34232 */
#define GL_TEXTURE_STORAGE_HINT_APPLE  0x85bc     /* 34236 */
#define GL_STORAGE_PRIVATE_APPLE       0x85bd     /* 34237 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_TEXTURE_RANGE
typedef void (REGAL_CALL *PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)(GLenum target, GLenum pname, GLvoid **params);
typedef void (REGAL_CALL *PFNGLTEXTURERANGEAPPLEPROC)(GLenum target, GLsizei length, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_TEXTURE_RANGE
#define glGetTexParameterPointervAPPLE      rglGetTexParameterPointervAPPLE
#define glTextureRangeAPPLE                 rglTextureRangeAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_TEXTURE_RANGE
REGAL_DECL void REGAL_CALL glGetTexParameterPointervAPPLE(GLenum target, GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL glTextureRangeAPPLE(GLenum target, GLsizei length, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_TEXTURE_RANGE
REGAL_DECL void REGAL_CALL plugin_glGetTexParameterPointervAPPLE(GLenum target, GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL plugin_glTextureRangeAPPLE(GLenum target, GLsizei length, const GLvoid *pointer);
#endif

/**
 ** GL_APPLE_transform_hint
 **/

#if (defined(GL_APPLE_TRANSFORM_HINT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_TRANSFORM_HINT)) && !defined(REGAL_NO_ENUM_GL_APPLE_TRANSFORM_HINT)
#define REGAL_NO_ENUM_GL_APPLE_TRANSFORM_HINT
#endif

#if (defined(GL_APPLE_TRANSFORM_HINT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_TRANSFORM_HINT)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_TRANSFORM_HINT)
#define REGAL_NO_TYPEDEF_GL_APPLE_TRANSFORM_HINT
#endif

#if (defined(GL_APPLE_TRANSFORM_HINT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_TRANSFORM_HINT)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_TRANSFORM_HINT)
#define REGAL_NO_NAMESPACE_GL_APPLE_TRANSFORM_HINT
#endif

#if (defined(GL_APPLE_TRANSFORM_HINT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_TRANSFORM_HINT)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_TRANSFORM_HINT)
#define REGAL_NO_PLUGIN_GL_APPLE_TRANSFORM_HINT
#endif

#if (defined(GL_APPLE_TRANSFORM_HINT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_TRANSFORM_HINT)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_TRANSFORM_HINT)
#define REGAL_NO_DECLARATION_GL_APPLE_TRANSFORM_HINT
#endif

#ifndef GL_APPLE_transform_hint
#define GL_APPLE_transform_hint 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_TRANSFORM_HINT
#define GL_TRANSFORM_HINT_APPLE 0x85b1 /* 34225 */
#endif

/**
 ** GL_APPLE_vertex_array_object
 **/

#if (defined(GL_APPLE_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_ENUM_GL_APPLE_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_ENUM_GL_APPLE_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_APPLE_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_APPLE_VERTEX_ARRAY_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_APPLE_VERTEX_ARRAY_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_PLUGIN_GL_APPLE_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_APPLE_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_DECLARATION_GL_APPLE_VERTEX_ARRAY_OBJECT
#endif

#ifndef GL_APPLE_vertex_array_object
#define GL_APPLE_vertex_array_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_VERTEX_ARRAY_OBJECT
#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85b5 /* 34229 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_ARRAY_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLISVERTEXARRAYAPPLEPROC)(GLuint array);
typedef void (REGAL_CALL *PFNGLBINDVERTEXARRAYAPPLEPROC)(GLuint array);
typedef void (REGAL_CALL *PFNGLDELETEVERTEXARRAYSAPPLEPROC)(GLsizei n, const GLuint *arrays);
typedef void (REGAL_CALL *PFNGLGENVERTEXARRAYSAPPLEPROC)(GLsizei n, GLuint *arrays);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_ARRAY_OBJECT
#define glBindVertexArrayAPPLE              rglBindVertexArrayAPPLE
#define glDeleteVertexArraysAPPLE           rglDeleteVertexArraysAPPLE
#define glGenVertexArraysAPPLE              rglGenVertexArraysAPPLE
#define glIsVertexArrayAPPLE                rglIsVertexArrayAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_VERTEX_ARRAY_OBJECT
REGAL_DECL GLboolean REGAL_CALL glIsVertexArrayAPPLE(GLuint array);
REGAL_DECL void REGAL_CALL glBindVertexArrayAPPLE(GLuint array);
REGAL_DECL void REGAL_CALL glDeleteVertexArraysAPPLE(GLsizei n, const GLuint *arrays);
REGAL_DECL void REGAL_CALL glGenVertexArraysAPPLE(GLsizei n, GLuint *arrays);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_VERTEX_ARRAY_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glIsVertexArrayAPPLE(GLuint array);
REGAL_DECL void REGAL_CALL plugin_glBindVertexArrayAPPLE(GLuint array);
REGAL_DECL void REGAL_CALL plugin_glDeleteVertexArraysAPPLE(GLsizei n, const GLuint *arrays);
REGAL_DECL void REGAL_CALL plugin_glGenVertexArraysAPPLE(GLsizei n, GLuint *arrays);
#endif

/**
 ** GL_APPLE_vertex_array_range
 **/

#if (defined(GL_APPLE_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_ENUM_GL_APPLE_VERTEX_ARRAY_RANGE)
#define REGAL_NO_ENUM_GL_APPLE_VERTEX_ARRAY_RANGE
#endif

#if (defined(GL_APPLE_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_ARRAY_RANGE)
#define REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_ARRAY_RANGE
#endif

#if (defined(GL_APPLE_VERTEX_ARRAY_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_ARRAY_RANGE)
#define REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_ARRAY_RANGE
#endif

#if (defined(GL_APPLE_VERTEX_ARRAY_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_VERTEX_ARRAY_RANGE)
#define REGAL_NO_PLUGIN_GL_APPLE_VERTEX_ARRAY_RANGE
#endif

#if (defined(GL_APPLE_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_VERTEX_ARRAY_RANGE)
#define REGAL_NO_DECLARATION_GL_APPLE_VERTEX_ARRAY_RANGE
#endif

#ifndef GL_APPLE_vertex_array_range
#define GL_APPLE_vertex_array_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_VERTEX_ARRAY_RANGE
#define GL_VERTEX_ARRAY_RANGE_APPLE             0x851d     /* 34077 */
#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE      0x851e     /* 34078 */
#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE      0x851f     /* 34079 */
#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520     /* 34080 */
#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE     0x8521     /* 34081 */
#define GL_STORAGE_CLIENT_APPLE                 0x85b4     /* 34228 */
#define GL_STORAGE_CACHED_APPLE                 0x85be     /* 34238 */
#define GL_STORAGE_SHARED_APPLE                 0x85bf     /* 34239 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_ARRAY_RANGE
typedef void (REGAL_CALL *PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_ARRAY_RANGE
#define glFlushVertexArrayRangeAPPLE        rglFlushVertexArrayRangeAPPLE
#define glVertexArrayParameteriAPPLE        rglVertexArrayParameteriAPPLE
#define glVertexArrayRangeAPPLE             rglVertexArrayRangeAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_VERTEX_ARRAY_RANGE
REGAL_DECL void REGAL_CALL glFlushVertexArrayRangeAPPLE(GLsizei length, GLvoid *pointer);
REGAL_DECL void REGAL_CALL glVertexArrayParameteriAPPLE(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glVertexArrayRangeAPPLE(GLsizei length, GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_VERTEX_ARRAY_RANGE
REGAL_DECL void REGAL_CALL plugin_glFlushVertexArrayRangeAPPLE(GLsizei length, GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayParameteriAPPLE(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayRangeAPPLE(GLsizei length, GLvoid *pointer);
#endif

/**
 ** GL_APPLE_vertex_program_evaluators
 **/

#if (defined(GL_APPLE_VERTEX_PROGRAM_EVALUATORS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)) && !defined(REGAL_NO_ENUM_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)
#define REGAL_NO_ENUM_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
#endif

#if (defined(GL_APPLE_VERTEX_PROGRAM_EVALUATORS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)
#define REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
#endif

#if (defined(GL_APPLE_VERTEX_PROGRAM_EVALUATORS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)
#define REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
#endif

#if (defined(GL_APPLE_VERTEX_PROGRAM_EVALUATORS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)
#define REGAL_NO_PLUGIN_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
#endif

#if (defined(GL_APPLE_VERTEX_PROGRAM_EVALUATORS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_VERTEX_PROGRAM_EVALUATORS)
#define REGAL_NO_DECLARATION_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
#endif

#ifndef GL_APPLE_vertex_program_evaluators
#define GL_APPLE_vertex_program_evaluators 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
#define GL_VERTEX_ATTRIB_MAP1_APPLE        0x8a00     /* 35328 */
#define GL_VERTEX_ATTRIB_MAP2_APPLE        0x8a01     /* 35329 */
#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE   0x8a02     /* 35330 */
#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE  0x8a03     /* 35331 */
#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE  0x8a04     /* 35332 */
#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8a05     /* 35333 */
#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE   0x8a06     /* 35334 */
#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE  0x8a07     /* 35335 */
#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE  0x8a08     /* 35336 */
#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8a09     /* 35337 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
typedef GLboolean (REGAL_CALL *PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)(GLuint index, GLenum pname);
typedef void (REGAL_CALL *PFNGLDISABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname);
typedef void (REGAL_CALL *PFNGLENABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname);
typedef void (REGAL_CALL *PFNGLMAPVERTEXATTRIB1DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
typedef void (REGAL_CALL *PFNGLMAPVERTEXATTRIB1FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
typedef void (REGAL_CALL *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 (REGAL_CALL *PFNGLMAPVERTEXATTRIB2FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
#define glDisableVertexAttribAPPLE          rglDisableVertexAttribAPPLE
#define glEnableVertexAttribAPPLE           rglEnableVertexAttribAPPLE
#define glIsVertexAttribEnabledAPPLE        rglIsVertexAttribEnabledAPPLE
#define glMapVertexAttrib1dAPPLE            rglMapVertexAttrib1dAPPLE
#define glMapVertexAttrib1fAPPLE            rglMapVertexAttrib1fAPPLE
#define glMapVertexAttrib2dAPPLE            rglMapVertexAttrib2dAPPLE
#define glMapVertexAttrib2fAPPLE            rglMapVertexAttrib2fAPPLE
#endif

#ifndef REGAL_NO_DECLARATION_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
REGAL_DECL GLboolean REGAL_CALL glIsVertexAttribEnabledAPPLE(GLuint index, GLenum pname);
REGAL_DECL void REGAL_CALL glDisableVertexAttribAPPLE(GLuint index, GLenum pname);
REGAL_DECL void REGAL_CALL glEnableVertexAttribAPPLE(GLuint index, GLenum pname);
REGAL_DECL void REGAL_CALL glMapVertexAttrib1dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
REGAL_DECL void REGAL_CALL glMapVertexAttrib1fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
REGAL_DECL void REGAL_CALL glMapVertexAttrib2dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
REGAL_DECL void REGAL_CALL glMapVertexAttrib2fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
#endif

#ifndef REGAL_NO_PLUGIN_GL_APPLE_VERTEX_PROGRAM_EVALUATORS
REGAL_DECL GLboolean REGAL_CALL plugin_glIsVertexAttribEnabledAPPLE(GLuint index, GLenum pname);
REGAL_DECL void REGAL_CALL plugin_glDisableVertexAttribAPPLE(GLuint index, GLenum pname);
REGAL_DECL void REGAL_CALL plugin_glEnableVertexAttribAPPLE(GLuint index, GLenum pname);
REGAL_DECL void REGAL_CALL plugin_glMapVertexAttrib1dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
REGAL_DECL void REGAL_CALL plugin_glMapVertexAttrib1fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
REGAL_DECL void REGAL_CALL plugin_glMapVertexAttrib2dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
REGAL_DECL void REGAL_CALL plugin_glMapVertexAttrib2fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
#endif

/**
 ** GL_APPLE_ycbcr_422
 **/

#if (defined(GL_APPLE_YCBCR_422) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_APPLE_YCBCR_422)) && !defined(REGAL_NO_ENUM_GL_APPLE_YCBCR_422)
#define REGAL_NO_ENUM_GL_APPLE_YCBCR_422
#endif

#if (defined(GL_APPLE_YCBCR_422) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_APPLE_YCBCR_422)) && !defined(REGAL_NO_TYPEDEF_GL_APPLE_YCBCR_422)
#define REGAL_NO_TYPEDEF_GL_APPLE_YCBCR_422
#endif

#if (defined(GL_APPLE_YCBCR_422) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_APPLE_YCBCR_422)) && !defined(REGAL_NO_NAMESPACE_GL_APPLE_YCBCR_422)
#define REGAL_NO_NAMESPACE_GL_APPLE_YCBCR_422
#endif

#if (defined(GL_APPLE_YCBCR_422) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_APPLE_YCBCR_422)) && !defined(REGAL_NO_PLUGIN_GL_APPLE_YCBCR_422)
#define REGAL_NO_PLUGIN_GL_APPLE_YCBCR_422
#endif

#if (defined(GL_APPLE_YCBCR_422) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_APPLE_YCBCR_422)) && !defined(REGAL_NO_DECLARATION_GL_APPLE_YCBCR_422)
#define REGAL_NO_DECLARATION_GL_APPLE_YCBCR_422
#endif

#ifndef GL_APPLE_ycbcr_422
#define GL_APPLE_ycbcr_422 1
#endif

#ifndef REGAL_NO_ENUM_GL_APPLE_YCBCR_422
#define GL_YCBCR_422_APPLE              0x85b9     /* 34233 */
#define GL_UNSIGNED_SHORT_8_8_APPLE     0x85ba     /* 34234 */
#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85bb     /* 34235 */
#endif

/**
 ** GL_ARB_ES2_compatibility
 **/

#if (defined(GL_ARB_ES2_COMPATIBILITY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_ES2_COMPATIBILITY)) && !defined(REGAL_NO_ENUM_GL_ARB_ES2_COMPATIBILITY)
#define REGAL_NO_ENUM_GL_ARB_ES2_COMPATIBILITY
#endif

#if (defined(GL_ARB_ES2_COMPATIBILITY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_ES2_COMPATIBILITY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_ES2_COMPATIBILITY)
#define REGAL_NO_TYPEDEF_GL_ARB_ES2_COMPATIBILITY
#endif

#if (defined(GL_ARB_ES2_COMPATIBILITY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_ES2_COMPATIBILITY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_ES2_COMPATIBILITY)
#define REGAL_NO_NAMESPACE_GL_ARB_ES2_COMPATIBILITY
#endif

#if (defined(GL_ARB_ES2_COMPATIBILITY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_ES2_COMPATIBILITY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_ES2_COMPATIBILITY)
#define REGAL_NO_PLUGIN_GL_ARB_ES2_COMPATIBILITY
#endif

#if (defined(GL_ARB_ES2_COMPATIBILITY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_ES2_COMPATIBILITY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_ES2_COMPATIBILITY)
#define REGAL_NO_DECLARATION_GL_ARB_ES2_COMPATIBILITY
#endif

#ifndef GL_ARB_ES2_compatibility
#define GL_ARB_ES2_compatibility 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_ES2_COMPATIBILITY
#define GL_FIXED                            0x140c     /* 5132 */
#define GL_IMPLEMENTATION_COLOR_READ_TYPE   0x8b9a     /* 35738 */
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8b9b     /* 35739 */
#define GL_RGB565                           0x8d62     /* 36194 */
#define GL_LOW_FLOAT                        0x8df0     /* 36336 */
#define GL_MEDIUM_FLOAT                     0x8df1     /* 36337 */
#define GL_HIGH_FLOAT                       0x8df2     /* 36338 */
#define GL_LOW_INT                          0x8df3     /* 36339 */
#define GL_MEDIUM_INT                       0x8df4     /* 36340 */
#define GL_HIGH_INT                         0x8df5     /* 36341 */
#define GL_SHADER_BINARY_FORMATS            0x8df8     /* 36344 */
#define GL_NUM_SHADER_BINARY_FORMATS        0x8df9     /* 36345 */
#define GL_SHADER_COMPILER                  0x8dfa     /* 36346 */
#define GL_MAX_VERTEX_UNIFORM_VECTORS       0x8dfb     /* 36347 */
#define GL_MAX_VARYING_VECTORS              0x8dfc     /* 36348 */
#define GL_MAX_FRAGMENT_UNIFORM_VECTORS     0x8dfd     /* 36349 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_ES2_COMPATIBILITY
typedef void (REGAL_CALL *PFNGLCLEARDEPTHFPROC)(GLclampf d);
typedef void (REGAL_CALL *PFNGLDEPTHRANGEFPROC)(GLclampf n, GLclampf f);
typedef void (REGAL_CALL *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
typedef void (REGAL_CALL *PFNGLRELEASESHADERCOMPILERPROC)(void);
typedef void (REGAL_CALL *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_ES2_COMPATIBILITY
#define glClearDepthf                       rglClearDepthf
#define glDepthRangef                       rglDepthRangef
#define glGetShaderPrecisionFormat          rglGetShaderPrecisionFormat
#define glReleaseShaderCompiler             rglReleaseShaderCompiler
#define glShaderBinary                      rglShaderBinary
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_ES2_COMPATIBILITY
REGAL_DECL void REGAL_CALL glClearDepthf(GLclampf d);
REGAL_DECL void REGAL_CALL glDepthRangef(GLclampf n, GLclampf f);
REGAL_DECL void REGAL_CALL glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
REGAL_DECL void REGAL_CALL glReleaseShaderCompiler(void);
REGAL_DECL void REGAL_CALL glShaderBinary(GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_ES2_COMPATIBILITY
REGAL_DECL void REGAL_CALL plugin_glClearDepthf(GLclampf d);
REGAL_DECL void REGAL_CALL plugin_glDepthRangef(GLclampf n, GLclampf f);
REGAL_DECL void REGAL_CALL plugin_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision);
REGAL_DECL void REGAL_CALL plugin_glReleaseShaderCompiler(void);
REGAL_DECL void REGAL_CALL plugin_glShaderBinary(GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length);
#endif

/**
 ** GL_ARB_ES3_compatibility
 **/

#if (defined(GL_ARB_ES3_COMPATIBILITY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_ES3_COMPATIBILITY)) && !defined(REGAL_NO_ENUM_GL_ARB_ES3_COMPATIBILITY)
#define REGAL_NO_ENUM_GL_ARB_ES3_COMPATIBILITY
#endif

#if (defined(GL_ARB_ES3_COMPATIBILITY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_ES3_COMPATIBILITY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_ES3_COMPATIBILITY)
#define REGAL_NO_TYPEDEF_GL_ARB_ES3_COMPATIBILITY
#endif

#if (defined(GL_ARB_ES3_COMPATIBILITY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_ES3_COMPATIBILITY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_ES3_COMPATIBILITY)
#define REGAL_NO_NAMESPACE_GL_ARB_ES3_COMPATIBILITY
#endif

#if (defined(GL_ARB_ES3_COMPATIBILITY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_ES3_COMPATIBILITY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_ES3_COMPATIBILITY)
#define REGAL_NO_PLUGIN_GL_ARB_ES3_COMPATIBILITY
#endif

#if (defined(GL_ARB_ES3_COMPATIBILITY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_ES3_COMPATIBILITY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_ES3_COMPATIBILITY)
#define REGAL_NO_DECLARATION_GL_ARB_ES3_COMPATIBILITY
#endif

#ifndef GL_ARB_ES3_compatibility
#define GL_ARB_ES3_compatibility 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_ES3_COMPATIBILITY
#define GL_PRIMITIVE_RESTART_FIXED_INDEX             0x8d69     /* 36201 */
#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE           0x8d6a     /* 36202 */
#define GL_MAX_ELEMENT_INDEX                         0x8d6b     /* 36203 */
#define GL_COMPRESSED_R11_EAC                        0x9270     /* 37488 */
#define GL_COMPRESSED_SIGNED_R11_EAC                 0x9271     /* 37489 */
#define GL_COMPRESSED_RG11_EAC                       0x9272     /* 37490 */
#define GL_COMPRESSED_SIGNED_RG11_EAC                0x9273     /* 37491 */
#define GL_COMPRESSED_RGB8_ETC2                      0x9274     /* 37492 */
#define GL_COMPRESSED_SRGB8_ETC2                     0x9275     /* 37493 */
#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2  0x9276     /* 37494 */
#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 0x9277     /* 37495 */
#define GL_COMPRESSED_RGBA8_ETC2_EAC                 0x9278     /* 37496 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC          0x9279     /* 37497 */
#endif

/**
 ** GL_ARB_base_instance
 **/

#if (defined(GL_ARB_BASE_INSTANCE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_BASE_INSTANCE)) && !defined(REGAL_NO_ENUM_GL_ARB_BASE_INSTANCE)
#define REGAL_NO_ENUM_GL_ARB_BASE_INSTANCE
#endif

#if (defined(GL_ARB_BASE_INSTANCE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_BASE_INSTANCE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_BASE_INSTANCE)
#define REGAL_NO_TYPEDEF_GL_ARB_BASE_INSTANCE
#endif

#if (defined(GL_ARB_BASE_INSTANCE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_BASE_INSTANCE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_BASE_INSTANCE)
#define REGAL_NO_NAMESPACE_GL_ARB_BASE_INSTANCE
#endif

#if (defined(GL_ARB_BASE_INSTANCE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_BASE_INSTANCE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_BASE_INSTANCE)
#define REGAL_NO_PLUGIN_GL_ARB_BASE_INSTANCE
#endif

#if (defined(GL_ARB_BASE_INSTANCE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_BASE_INSTANCE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_BASE_INSTANCE)
#define REGAL_NO_DECLARATION_GL_ARB_BASE_INSTANCE
#endif

#ifndef GL_ARB_base_instance
#define GL_ARB_base_instance 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_BASE_INSTANCE
typedef void (REGAL_CALL *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLuint baseinstance);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_BASE_INSTANCE
#define glDrawArraysInstancedBaseInstance   rglDrawArraysInstancedBaseInstance
#define glDrawElementsInstancedBaseInstance rglDrawElementsInstancedBaseInstance
#define glDrawElementsInstancedBaseVertexBaseInstance rglDrawElementsInstancedBaseVertexBaseInstance
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_BASE_INSTANCE
REGAL_DECL void REGAL_CALL glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance);
REGAL_DECL void REGAL_CALL glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLuint baseinstance);
REGAL_DECL void REGAL_CALL glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_BASE_INSTANCE
REGAL_DECL void REGAL_CALL plugin_glDrawArraysInstancedBaseInstance(GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance);
REGAL_DECL void REGAL_CALL plugin_glDrawElementsInstancedBaseInstance(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLuint baseinstance);
REGAL_DECL void REGAL_CALL plugin_glDrawElementsInstancedBaseVertexBaseInstance(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance);
#endif

/**
 ** GL_ARB_bindless_texture
 **/

#if (defined(GL_ARB_BINDLESS_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_BINDLESS_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_ARB_BINDLESS_TEXTURE)
#define REGAL_NO_ENUM_GL_ARB_BINDLESS_TEXTURE
#endif

#if (defined(GL_ARB_BINDLESS_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_BINDLESS_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_BINDLESS_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_ARB_BINDLESS_TEXTURE
#endif

#if (defined(GL_ARB_BINDLESS_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_BINDLESS_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_BINDLESS_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_ARB_BINDLESS_TEXTURE
#endif

#if (defined(GL_ARB_BINDLESS_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_BINDLESS_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_BINDLESS_TEXTURE)
#define REGAL_NO_PLUGIN_GL_ARB_BINDLESS_TEXTURE
#endif

#if (defined(GL_ARB_BINDLESS_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_BINDLESS_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_BINDLESS_TEXTURE)
#define REGAL_NO_DECLARATION_GL_ARB_BINDLESS_TEXTURE
#endif

#ifndef GL_ARB_bindless_texture
#define GL_ARB_bindless_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_BINDLESS_TEXTURE
#define GL_UNSIGNED_INT64_ARB 0x140f /* 5135 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_BINDLESS_TEXTURE
typedef GLboolean (REGAL_CALL *PFNGLISIMAGEHANDLERESIDENTARBPROC)(GLuint64 handle);
typedef GLboolean (REGAL_CALL *PFNGLISTEXTUREHANDLERESIDENTARBPROC)(GLuint64 handle);
typedef GLuint64 (REGAL_CALL *PFNGLGETIMAGEHANDLEARBPROC)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
typedef GLuint64 (REGAL_CALL *PFNGLGETTEXTUREHANDLEARBPROC)(GLuint texture);
typedef GLuint64 (REGAL_CALL *PFNGLGETTEXTURESAMPLERHANDLEARBPROC)(GLuint texture, GLuint sampler);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBLUI64VARBPROC)(GLuint index, GLenum pname, GLuint64EXT *params);
typedef void (REGAL_CALL *PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC)(GLuint64 handle);
typedef void (REGAL_CALL *PFNGLMAKEIMAGEHANDLERESIDENTARBPROC)(GLuint64 handle, GLenum access);
typedef void (REGAL_CALL *PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC)(GLuint64 handle);
typedef void (REGAL_CALL *PFNGLMAKETEXTUREHANDLERESIDENTARBPROC)(GLuint64 handle);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC)(GLuint program, GLint location, GLuint64 value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 *values);
typedef void (REGAL_CALL *PFNGLUNIFORMHANDLEUI64ARBPROC)(GLint location, GLuint64 value);
typedef void (REGAL_CALL *PFNGLUNIFORMHANDLEUI64VARBPROC)(GLint location, GLsizei count, const GLuint64 *value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1UI64ARBPROC)(GLuint index, GLuint64EXT x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1UI64VARBPROC)(GLuint index, const GLuint64EXT *v);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_BINDLESS_TEXTURE
#define glGetImageHandleARB                 rglGetImageHandleARB
#define glGetTextureHandleARB               rglGetTextureHandleARB
#define glGetTextureSamplerHandleARB        rglGetTextureSamplerHandleARB
#define glGetVertexAttribLui64vARB          rglGetVertexAttribLui64vARB
#define glIsImageHandleResidentARB          rglIsImageHandleResidentARB
#define glIsTextureHandleResidentARB        rglIsTextureHandleResidentARB
#define glMakeImageHandleNonResidentARB     rglMakeImageHandleNonResidentARB
#define glMakeImageHandleResidentARB        rglMakeImageHandleResidentARB
#define glMakeTextureHandleNonResidentARB   rglMakeTextureHandleNonResidentARB
#define glMakeTextureHandleResidentARB      rglMakeTextureHandleResidentARB
#define glProgramUniformHandleui64ARB       rglProgramUniformHandleui64ARB
#define glProgramUniformHandleui64vARB      rglProgramUniformHandleui64vARB
#define glUniformHandleui64ARB              rglUniformHandleui64ARB
#define glUniformHandleui64vARB             rglUniformHandleui64vARB
#define glVertexAttribL1ui64ARB             rglVertexAttribL1ui64ARB
#define glVertexAttribL1ui64vARB            rglVertexAttribL1ui64vARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_BINDLESS_TEXTURE
REGAL_DECL GLboolean REGAL_CALL glIsImageHandleResidentARB(GLuint64 handle);
REGAL_DECL GLboolean REGAL_CALL glIsTextureHandleResidentARB(GLuint64 handle);
REGAL_DECL GLuint64 REGAL_CALL glGetImageHandleARB(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
REGAL_DECL GLuint64 REGAL_CALL glGetTextureHandleARB(GLuint texture);
REGAL_DECL GLuint64 REGAL_CALL glGetTextureSamplerHandleARB(GLuint texture, GLuint sampler);
REGAL_DECL void REGAL_CALL glGetVertexAttribLui64vARB(GLuint index, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL glMakeImageHandleNonResidentARB(GLuint64 handle);
REGAL_DECL void REGAL_CALL glMakeImageHandleResidentARB(GLuint64 handle, GLenum access);
REGAL_DECL void REGAL_CALL glMakeTextureHandleNonResidentARB(GLuint64 handle);
REGAL_DECL void REGAL_CALL glMakeTextureHandleResidentARB(GLuint64 handle);
REGAL_DECL void REGAL_CALL glProgramUniformHandleui64ARB(GLuint program, GLint location, GLuint64 value);
REGAL_DECL void REGAL_CALL glProgramUniformHandleui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 *values);
REGAL_DECL void REGAL_CALL glUniformHandleui64ARB(GLint location, GLuint64 value);
REGAL_DECL void REGAL_CALL glUniformHandleui64vARB(GLint location, GLsizei count, const GLuint64 *value);
REGAL_DECL void REGAL_CALL glVertexAttribL1ui64ARB(GLuint index, GLuint64EXT x);
REGAL_DECL void REGAL_CALL glVertexAttribL1ui64vARB(GLuint index, const GLuint64EXT *v);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_BINDLESS_TEXTURE
REGAL_DECL GLboolean REGAL_CALL plugin_glIsImageHandleResidentARB(GLuint64 handle);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsTextureHandleResidentARB(GLuint64 handle);
REGAL_DECL GLuint64 REGAL_CALL plugin_glGetImageHandleARB(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
REGAL_DECL GLuint64 REGAL_CALL plugin_glGetTextureHandleARB(GLuint texture);
REGAL_DECL GLuint64 REGAL_CALL plugin_glGetTextureSamplerHandleARB(GLuint texture, GLuint sampler);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribLui64vARB(GLuint index, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glMakeImageHandleNonResidentARB(GLuint64 handle);
REGAL_DECL void REGAL_CALL plugin_glMakeImageHandleResidentARB(GLuint64 handle, GLenum access);
REGAL_DECL void REGAL_CALL plugin_glMakeTextureHandleNonResidentARB(GLuint64 handle);
REGAL_DECL void REGAL_CALL plugin_glMakeTextureHandleResidentARB(GLuint64 handle);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformHandleui64ARB(GLuint program, GLint location, GLuint64 value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformHandleui64vARB(GLuint program, GLint location, GLsizei count, const GLuint64 *values);
REGAL_DECL void REGAL_CALL plugin_glUniformHandleui64ARB(GLint location, GLuint64 value);
REGAL_DECL void REGAL_CALL plugin_glUniformHandleui64vARB(GLint location, GLsizei count, const GLuint64 *value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1ui64ARB(GLuint index, GLuint64EXT x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1ui64vARB(GLuint index, const GLuint64EXT *v);
#endif

/**
 ** GL_ARB_blend_func_extended
 **/

#if (defined(GL_ARB_BLEND_FUNC_EXTENDED) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_BLEND_FUNC_EXTENDED)) && !defined(REGAL_NO_ENUM_GL_ARB_BLEND_FUNC_EXTENDED)
#define REGAL_NO_ENUM_GL_ARB_BLEND_FUNC_EXTENDED
#endif

#if (defined(GL_ARB_BLEND_FUNC_EXTENDED) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_BLEND_FUNC_EXTENDED)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_BLEND_FUNC_EXTENDED)
#define REGAL_NO_TYPEDEF_GL_ARB_BLEND_FUNC_EXTENDED
#endif

#if (defined(GL_ARB_BLEND_FUNC_EXTENDED) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_BLEND_FUNC_EXTENDED)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_BLEND_FUNC_EXTENDED)
#define REGAL_NO_NAMESPACE_GL_ARB_BLEND_FUNC_EXTENDED
#endif

#if (defined(GL_ARB_BLEND_FUNC_EXTENDED) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_BLEND_FUNC_EXTENDED)) && !defined(REGAL_NO_PLUGIN_GL_ARB_BLEND_FUNC_EXTENDED)
#define REGAL_NO_PLUGIN_GL_ARB_BLEND_FUNC_EXTENDED
#endif

#if (defined(GL_ARB_BLEND_FUNC_EXTENDED) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_BLEND_FUNC_EXTENDED)) && !defined(REGAL_NO_DECLARATION_GL_ARB_BLEND_FUNC_EXTENDED)
#define REGAL_NO_DECLARATION_GL_ARB_BLEND_FUNC_EXTENDED
#endif

#ifndef GL_ARB_blend_func_extended
#define GL_ARB_blend_func_extended 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_BLEND_FUNC_EXTENDED
#define GL_SRC1_COLOR                   0x88f9     /* 35065 */
#define GL_ONE_MINUS_SRC1_COLOR         0x88fa     /* 35066 */
#define GL_ONE_MINUS_SRC1_ALPHA         0x88fb     /* 35067 */
#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88fc     /* 35068 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_BLEND_FUNC_EXTENDED
typedef GLint (REGAL_CALL *PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar *name);
typedef void (REGAL_CALL *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_BLEND_FUNC_EXTENDED
#define glBindFragDataLocationIndexed       rglBindFragDataLocationIndexed
#define glGetFragDataIndex                  rglGetFragDataIndex
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_BLEND_FUNC_EXTENDED
REGAL_DECL GLint REGAL_CALL glGetFragDataIndex(GLuint program, const GLchar *name);
REGAL_DECL void REGAL_CALL glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_BLEND_FUNC_EXTENDED
REGAL_DECL GLint REGAL_CALL plugin_glGetFragDataIndex(GLuint program, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glBindFragDataLocationIndexed(GLuint program, GLuint colorNumber, GLuint index, const GLchar *name);
#endif

/**
 ** GL_ARB_buffer_storage
 **/

#if (defined(GL_ARB_BUFFER_STORAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_BUFFER_STORAGE)) && !defined(REGAL_NO_ENUM_GL_ARB_BUFFER_STORAGE)
#define REGAL_NO_ENUM_GL_ARB_BUFFER_STORAGE
#endif

#if (defined(GL_ARB_BUFFER_STORAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_BUFFER_STORAGE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_BUFFER_STORAGE)
#define REGAL_NO_TYPEDEF_GL_ARB_BUFFER_STORAGE
#endif

#if (defined(GL_ARB_BUFFER_STORAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_BUFFER_STORAGE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_BUFFER_STORAGE)
#define REGAL_NO_NAMESPACE_GL_ARB_BUFFER_STORAGE
#endif

#if (defined(GL_ARB_BUFFER_STORAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_BUFFER_STORAGE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_BUFFER_STORAGE)
#define REGAL_NO_PLUGIN_GL_ARB_BUFFER_STORAGE
#endif

#if (defined(GL_ARB_BUFFER_STORAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_BUFFER_STORAGE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_BUFFER_STORAGE)
#define REGAL_NO_DECLARATION_GL_ARB_BUFFER_STORAGE
#endif

#ifndef GL_ARB_buffer_storage
#define GL_ARB_buffer_storage 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_BUFFER_STORAGE
#define GL_DYNAMIC_STORAGE_BIT              0x100      /* 256 */
#define GL_CLIENT_STORAGE_BIT               0x200      /* 512 */
#define GL_MAP_PERSISTENT_BIT               0x40       /* 64 */
#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT 0x4000     /* 16384 */
#define GL_MAP_COHERENT_BIT                 0x80       /* 128 */
#define GL_BUFFER_IMMUTABLE_STORAGE         0x821f     /* 33311 */
#define GL_BUFFER_STORAGE_FLAGS             0x8220     /* 33312 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_BUFFER_STORAGE
typedef void (REGAL_CALL *PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const GLvoid *data, GLbitfield flags);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_BUFFER_STORAGE
#define glBufferStorage                     rglBufferStorage
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_BUFFER_STORAGE
REGAL_DECL void REGAL_CALL glBufferStorage(GLenum target, GLsizeiptr size, const GLvoid *data, GLbitfield flags);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_BUFFER_STORAGE
REGAL_DECL void REGAL_CALL plugin_glBufferStorage(GLenum target, GLsizeiptr size, const GLvoid *data, GLbitfield flags);
#endif

/**
 ** GL_ARB_cl_event
 **/

#if (defined(GL_ARB_CL_EVENT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_CL_EVENT)) && !defined(REGAL_NO_ENUM_GL_ARB_CL_EVENT)
#define REGAL_NO_ENUM_GL_ARB_CL_EVENT
#endif

#if (defined(GL_ARB_CL_EVENT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_CL_EVENT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_CL_EVENT)
#define REGAL_NO_TYPEDEF_GL_ARB_CL_EVENT
#endif

#if (defined(GL_ARB_CL_EVENT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_CL_EVENT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_CL_EVENT)
#define REGAL_NO_NAMESPACE_GL_ARB_CL_EVENT
#endif

#if (defined(GL_ARB_CL_EVENT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_CL_EVENT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_CL_EVENT)
#define REGAL_NO_PLUGIN_GL_ARB_CL_EVENT
#endif

#if (defined(GL_ARB_CL_EVENT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_CL_EVENT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_CL_EVENT)
#define REGAL_NO_DECLARATION_GL_ARB_CL_EVENT
#endif

#ifndef GL_ARB_cl_event
#define GL_ARB_cl_event 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_CL_EVENT
#define GL_SYNC_CL_EVENT_ARB          0x8240     /* 33344 */
#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241     /* 33345 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_CL_EVENT
typedef GLsync (REGAL_CALL *PFNGLCREATESYNCFROMCLEVENTARBPROC)(cl_context context, cl_event event, GLbitfield flags);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_CL_EVENT
#define glCreateSyncFromCLeventARB          rglCreateSyncFromCLeventARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_CL_EVENT
REGAL_DECL GLsync REGAL_CALL glCreateSyncFromCLeventARB(cl_context context, cl_event event, GLbitfield flags);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_CL_EVENT
REGAL_DECL GLsync REGAL_CALL plugin_glCreateSyncFromCLeventARB(cl_context context, cl_event event, GLbitfield flags);
#endif

/**
 ** GL_ARB_clear_buffer_object
 **/

#if (defined(GL_ARB_CLEAR_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_CLEAR_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_CLEAR_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_CLEAR_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_CLEAR_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_CLEAR_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_CLEAR_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_CLEAR_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_CLEAR_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_CLEAR_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_CLEAR_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_CLEAR_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_CLEAR_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_CLEAR_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_CLEAR_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_CLEAR_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_CLEAR_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_CLEAR_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_CLEAR_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_CLEAR_BUFFER_OBJECT
#endif

#ifndef GL_ARB_clear_buffer_object
#define GL_ARB_clear_buffer_object 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_CLEAR_BUFFER_OBJECT
typedef void (REGAL_CALL *PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCLEARNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_CLEAR_BUFFER_OBJECT
#define glClearBufferData                   rglClearBufferData
#define glClearBufferSubData                rglClearBufferSubData
#define glClearNamedBufferDataEXT           rglClearNamedBufferDataEXT
#define glClearNamedBufferSubDataEXT        rglClearNamedBufferSubDataEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_CLEAR_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL glClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL glClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_CLEAR_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL plugin_glClearBufferData(GLenum target, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glClearBufferSubData(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glClearNamedBufferDataEXT(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glClearNamedBufferSubDataEXT(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const GLvoid *data);
#endif

/**
 ** GL_ARB_clear_texture
 **/

#if (defined(GL_ARB_CLEAR_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_CLEAR_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_ARB_CLEAR_TEXTURE)
#define REGAL_NO_ENUM_GL_ARB_CLEAR_TEXTURE
#endif

#if (defined(GL_ARB_CLEAR_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_CLEAR_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_CLEAR_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_ARB_CLEAR_TEXTURE
#endif

#if (defined(GL_ARB_CLEAR_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_CLEAR_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_CLEAR_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_ARB_CLEAR_TEXTURE
#endif

#if (defined(GL_ARB_CLEAR_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_CLEAR_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_CLEAR_TEXTURE)
#define REGAL_NO_PLUGIN_GL_ARB_CLEAR_TEXTURE
#endif

#if (defined(GL_ARB_CLEAR_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_CLEAR_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_CLEAR_TEXTURE)
#define REGAL_NO_DECLARATION_GL_ARB_CLEAR_TEXTURE
#endif

#ifndef GL_ARB_clear_texture
#define GL_ARB_clear_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_CLEAR_TEXTURE
#define GL_CLEAR_TEXTURE 0x9365 /* 37733 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_CLEAR_TEXTURE
typedef void (REGAL_CALL *PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *data);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_CLEAR_TEXTURE
#define glClearTexImage                     rglClearTexImage
#define glClearTexSubImage                  rglClearTexSubImage
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_CLEAR_TEXTURE
REGAL_DECL void REGAL_CALL glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL glClearTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *data);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_CLEAR_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glClearTexImage(GLuint texture, GLint level, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glClearTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *data);
#endif

/**
 ** GL_ARB_color_buffer_float
 **/

#if (defined(GL_ARB_COLOR_BUFFER_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_COLOR_BUFFER_FLOAT)) && !defined(REGAL_NO_ENUM_GL_ARB_COLOR_BUFFER_FLOAT)
#define REGAL_NO_ENUM_GL_ARB_COLOR_BUFFER_FLOAT
#endif

#if (defined(GL_ARB_COLOR_BUFFER_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_COLOR_BUFFER_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_COLOR_BUFFER_FLOAT)
#define REGAL_NO_TYPEDEF_GL_ARB_COLOR_BUFFER_FLOAT
#endif

#if (defined(GL_ARB_COLOR_BUFFER_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_COLOR_BUFFER_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_COLOR_BUFFER_FLOAT)
#define REGAL_NO_NAMESPACE_GL_ARB_COLOR_BUFFER_FLOAT
#endif

#if (defined(GL_ARB_COLOR_BUFFER_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_COLOR_BUFFER_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_COLOR_BUFFER_FLOAT)
#define REGAL_NO_PLUGIN_GL_ARB_COLOR_BUFFER_FLOAT
#endif

#if (defined(GL_ARB_COLOR_BUFFER_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_COLOR_BUFFER_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_COLOR_BUFFER_FLOAT)
#define REGAL_NO_DECLARATION_GL_ARB_COLOR_BUFFER_FLOAT
#endif

#ifndef GL_ARB_color_buffer_float
#define GL_ARB_color_buffer_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_COLOR_BUFFER_FLOAT
#define GL_RGBA_FLOAT_MODE_ARB      0x8820     /* 34848 */
#define GL_CLAMP_VERTEX_COLOR_ARB   0x891a     /* 35098 */
#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891b     /* 35099 */
#define GL_CLAMP_READ_COLOR_ARB     0x891c     /* 35100 */
#define GL_FIXED_ONLY_ARB           0x891d     /* 35101 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_COLOR_BUFFER_FLOAT
typedef void (REGAL_CALL *PFNGLCLAMPCOLORARBPROC)(GLenum target, GLenum clamp);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_COLOR_BUFFER_FLOAT
#define glClampColorARB                     rglClampColorARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_COLOR_BUFFER_FLOAT
REGAL_DECL void REGAL_CALL glClampColorARB(GLenum target, GLenum clamp);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_COLOR_BUFFER_FLOAT
REGAL_DECL void REGAL_CALL plugin_glClampColorARB(GLenum target, GLenum clamp);
#endif

/**
 ** GL_ARB_compressed_texture_pixel_storage
 **/

#if (defined(GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)) && !defined(REGAL_NO_ENUM_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)
#define REGAL_NO_ENUM_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE
#endif

#if (defined(GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)
#define REGAL_NO_TYPEDEF_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE
#endif

#if (defined(GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)
#define REGAL_NO_NAMESPACE_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE
#endif

#if (defined(GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)
#define REGAL_NO_PLUGIN_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE
#endif

#if (defined(GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE)
#define REGAL_NO_DECLARATION_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE
#endif

#ifndef GL_ARB_compressed_texture_pixel_storage
#define GL_ARB_compressed_texture_pixel_storage 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_COMPRESSED_TEXTURE_PIXEL_STORAGE
#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH  0x9127     /* 37159 */
#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128     /* 37160 */
#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH  0x9129     /* 37161 */
#define GL_UNPACK_COMPRESSED_BLOCK_SIZE   0x912a     /* 37162 */
#define GL_PACK_COMPRESSED_BLOCK_WIDTH    0x912b     /* 37163 */
#define GL_PACK_COMPRESSED_BLOCK_HEIGHT   0x912c     /* 37164 */
#define GL_PACK_COMPRESSED_BLOCK_DEPTH    0x912d     /* 37165 */
#define GL_PACK_COMPRESSED_BLOCK_SIZE     0x912e     /* 37166 */
#endif

/**
 ** GL_ARB_compute_shader
 **/

#if (defined(GL_ARB_COMPUTE_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_COMPUTE_SHADER)) && !defined(REGAL_NO_ENUM_GL_ARB_COMPUTE_SHADER)
#define REGAL_NO_ENUM_GL_ARB_COMPUTE_SHADER
#endif

#if (defined(GL_ARB_COMPUTE_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_COMPUTE_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_COMPUTE_SHADER)
#define REGAL_NO_TYPEDEF_GL_ARB_COMPUTE_SHADER
#endif

#if (defined(GL_ARB_COMPUTE_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_COMPUTE_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_COMPUTE_SHADER)
#define REGAL_NO_NAMESPACE_GL_ARB_COMPUTE_SHADER
#endif

#if (defined(GL_ARB_COMPUTE_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_COMPUTE_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_ARB_COMPUTE_SHADER)
#define REGAL_NO_PLUGIN_GL_ARB_COMPUTE_SHADER
#endif

#if (defined(GL_ARB_COMPUTE_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_COMPUTE_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_ARB_COMPUTE_SHADER)
#define REGAL_NO_DECLARATION_GL_ARB_COMPUTE_SHADER
#endif

#ifndef GL_ARB_compute_shader
#define GL_ARB_compute_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_COMPUTE_SHADER
#define GL_COMPUTE_SHADER_BIT                                 0x20       /* 32 */
#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE                     0x8262     /* 33378 */
#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS                     0x8263     /* 33379 */
#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS                 0x8264     /* 33380 */
#define GL_MAX_COMPUTE_ATOMIC_COUNTERS                        0x8265     /* 33381 */
#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS            0x8266     /* 33382 */
#define GL_COMPUTE_WORK_GROUP_SIZE                            0x8267     /* 33383 */
#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS                 0x90eb     /* 37099 */
#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER         0x90ec     /* 37100 */
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER 0x90ed     /* 37101 */
#define GL_DISPATCH_INDIRECT_BUFFER                           0x90ee     /* 37102 */
#define GL_DISPATCH_INDIRECT_BUFFER_BINDING                   0x90ef     /* 37103 */
#define GL_COMPUTE_SHADER                                     0x91b9     /* 37305 */
#define GL_MAX_COMPUTE_UNIFORM_BLOCKS                         0x91bb     /* 37307 */
#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS                    0x91bc     /* 37308 */
#define GL_MAX_COMPUTE_IMAGE_UNIFORMS                         0x91bd     /* 37309 */
#define GL_MAX_COMPUTE_WORK_GROUP_COUNT                       0x91be     /* 37310 */
#define GL_MAX_COMPUTE_WORK_GROUP_SIZE                        0x91bf     /* 37311 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_COMPUTE_SHADER
typedef void (REGAL_CALL *PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect);
typedef void (REGAL_CALL *PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_COMPUTE_SHADER
#define glDispatchCompute                   rglDispatchCompute
#define glDispatchComputeIndirect           rglDispatchComputeIndirect
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_COMPUTE_SHADER
REGAL_DECL void REGAL_CALL glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
REGAL_DECL void REGAL_CALL glDispatchComputeIndirect(GLintptr indirect);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_COMPUTE_SHADER
REGAL_DECL void REGAL_CALL plugin_glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
REGAL_DECL void REGAL_CALL plugin_glDispatchComputeIndirect(GLintptr indirect);
#endif

/**
 ** GL_ARB_compute_variable_group_size
 **/

#if (defined(GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)) && !defined(REGAL_NO_ENUM_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)
#define REGAL_NO_ENUM_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
#endif

#if (defined(GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)
#define REGAL_NO_TYPEDEF_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
#endif

#if (defined(GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)
#define REGAL_NO_NAMESPACE_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
#endif

#if (defined(GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)
#define REGAL_NO_PLUGIN_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
#endif

#if (defined(GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE)
#define REGAL_NO_DECLARATION_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
#endif

#ifndef GL_ARB_compute_variable_group_size
#define GL_ARB_compute_variable_group_size 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB    0x90eb     /* 37099 */
#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB           0x91bf     /* 37311 */
#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB 0x9344     /* 37700 */
#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB        0x9345     /* 37701 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
typedef void (REGAL_CALL *PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
#define glDispatchComputeGroupSizeARB       rglDispatchComputeGroupSizeARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
REGAL_DECL void REGAL_CALL glDispatchComputeGroupSizeARB(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_COMPUTE_VARIABLE_GROUP_SIZE
REGAL_DECL void REGAL_CALL plugin_glDispatchComputeGroupSizeARB(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
#endif

/**
 ** GL_ARB_copy_buffer
 **/

#if (defined(GL_ARB_COPY_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_COPY_BUFFER)) && !defined(REGAL_NO_ENUM_GL_ARB_COPY_BUFFER)
#define REGAL_NO_ENUM_GL_ARB_COPY_BUFFER
#endif

#if (defined(GL_ARB_COPY_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_COPY_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_COPY_BUFFER)
#define REGAL_NO_TYPEDEF_GL_ARB_COPY_BUFFER
#endif

#if (defined(GL_ARB_COPY_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_COPY_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_COPY_BUFFER)
#define REGAL_NO_NAMESPACE_GL_ARB_COPY_BUFFER
#endif

#if (defined(GL_ARB_COPY_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_COPY_BUFFER)) && !defined(REGAL_NO_PLUGIN_GL_ARB_COPY_BUFFER)
#define REGAL_NO_PLUGIN_GL_ARB_COPY_BUFFER
#endif

#if (defined(GL_ARB_COPY_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_COPY_BUFFER)) && !defined(REGAL_NO_DECLARATION_GL_ARB_COPY_BUFFER)
#define REGAL_NO_DECLARATION_GL_ARB_COPY_BUFFER
#endif

#ifndef GL_ARB_copy_buffer
#define GL_ARB_copy_buffer 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_COPY_BUFFER
#define GL_COPY_READ_BUFFER  0x8f36     /* 36662 */
#define GL_COPY_WRITE_BUFFER 0x8f37     /* 36663 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_COPY_BUFFER
typedef void (REGAL_CALL *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_COPY_BUFFER
#define glCopyBufferSubData                 rglCopyBufferSubData
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_COPY_BUFFER
REGAL_DECL void REGAL_CALL glCopyBufferSubData(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_COPY_BUFFER
REGAL_DECL void REGAL_CALL plugin_glCopyBufferSubData(GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size);
#endif

/**
 ** GL_ARB_copy_image
 **/

#if (defined(GL_ARB_COPY_IMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_COPY_IMAGE)) && !defined(REGAL_NO_ENUM_GL_ARB_COPY_IMAGE)
#define REGAL_NO_ENUM_GL_ARB_COPY_IMAGE
#endif

#if (defined(GL_ARB_COPY_IMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_COPY_IMAGE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_COPY_IMAGE)
#define REGAL_NO_TYPEDEF_GL_ARB_COPY_IMAGE
#endif

#if (defined(GL_ARB_COPY_IMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_COPY_IMAGE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_COPY_IMAGE)
#define REGAL_NO_NAMESPACE_GL_ARB_COPY_IMAGE
#endif

#if (defined(GL_ARB_COPY_IMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_COPY_IMAGE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_COPY_IMAGE)
#define REGAL_NO_PLUGIN_GL_ARB_COPY_IMAGE
#endif

#if (defined(GL_ARB_COPY_IMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_COPY_IMAGE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_COPY_IMAGE)
#define REGAL_NO_DECLARATION_GL_ARB_COPY_IMAGE
#endif

#ifndef GL_ARB_copy_image
#define GL_ARB_copy_image 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_COPY_IMAGE
typedef void (REGAL_CALL *PFNGLCOPYIMAGESUBDATAPROC)(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 srcWidth, GLsizei srcHeight, GLsizei srcDepth);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_COPY_IMAGE
#define glCopyImageSubData                  rglCopyImageSubData
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_COPY_IMAGE
REGAL_DECL void REGAL_CALL glCopyImageSubData(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 srcWidth, GLsizei srcHeight, GLsizei srcDepth);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_COPY_IMAGE
REGAL_DECL void REGAL_CALL plugin_glCopyImageSubData(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 srcWidth, GLsizei srcHeight, GLsizei srcDepth);
#endif

/**
 ** GL_ARB_debug_output
 **/

#if (defined(GL_ARB_DEBUG_OUTPUT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DEBUG_OUTPUT)) && !defined(REGAL_NO_ENUM_GL_ARB_DEBUG_OUTPUT)
#define REGAL_NO_ENUM_GL_ARB_DEBUG_OUTPUT
#endif

#if (defined(GL_ARB_DEBUG_OUTPUT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DEBUG_OUTPUT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DEBUG_OUTPUT)
#define REGAL_NO_TYPEDEF_GL_ARB_DEBUG_OUTPUT
#endif

#if (defined(GL_ARB_DEBUG_OUTPUT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DEBUG_OUTPUT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DEBUG_OUTPUT)
#define REGAL_NO_NAMESPACE_GL_ARB_DEBUG_OUTPUT
#endif

#if (defined(GL_ARB_DEBUG_OUTPUT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DEBUG_OUTPUT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DEBUG_OUTPUT)
#define REGAL_NO_PLUGIN_GL_ARB_DEBUG_OUTPUT
#endif

#if (defined(GL_ARB_DEBUG_OUTPUT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DEBUG_OUTPUT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DEBUG_OUTPUT)
#define REGAL_NO_DECLARATION_GL_ARB_DEBUG_OUTPUT
#endif

#ifndef GL_ARB_debug_output
#define GL_ARB_debug_output 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_DEBUG_OUTPUT
#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB         0x8242     /* 33346 */
#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243     /* 33347 */
#define GL_DEBUG_CALLBACK_FUNCTION_ARB          0x8244     /* 33348 */
#define GL_DEBUG_CALLBACK_USER_PARAM_ARB        0x8245     /* 33349 */
#define GL_DEBUG_SOURCE_API_ARB                 0x8246     /* 33350 */
#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB       0x8247     /* 33351 */
#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB     0x8248     /* 33352 */
#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB         0x8249     /* 33353 */
#define GL_DEBUG_SOURCE_APPLICATION_ARB         0x824a     /* 33354 */
#define GL_DEBUG_SOURCE_OTHER_ARB               0x824b     /* 33355 */
#define GL_DEBUG_TYPE_ERROR_ARB                 0x824c     /* 33356 */
#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB   0x824d     /* 33357 */
#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB    0x824e     /* 33358 */
#define GL_DEBUG_TYPE_PORTABILITY_ARB           0x824f     /* 33359 */
#define GL_DEBUG_TYPE_PERFORMANCE_ARB           0x8250     /* 33360 */
#define GL_DEBUG_TYPE_OTHER_ARB                 0x8251     /* 33361 */
#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB         0x9143     /* 37187 */
#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB        0x9144     /* 37188 */
#define GL_DEBUG_LOGGED_MESSAGES_ARB            0x9145     /* 37189 */
#define GL_DEBUG_SEVERITY_HIGH_ARB              0x9146     /* 37190 */
#define GL_DEBUG_SEVERITY_MEDIUM_ARB            0x9147     /* 37191 */
#define GL_DEBUG_SEVERITY_LOW_ARB               0x9148     /* 37192 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_DEBUG_OUTPUT
typedef GLuint (REGAL_CALL *PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback, const GLvoid *userParam);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_DEBUG_OUTPUT
#define glDebugMessageCallbackARB           rglDebugMessageCallbackARB
#define glDebugMessageControlARB            rglDebugMessageControlARB
#define glDebugMessageInsertARB             rglDebugMessageInsertARB
#define glGetDebugMessageLogARB             rglGetDebugMessageLogARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_DEBUG_OUTPUT
REGAL_DECL GLuint REGAL_CALL glGetDebugMessageLogARB(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
REGAL_DECL void REGAL_CALL glDebugMessageCallbackARB(GLDEBUGPROCARB callback, const GLvoid *userParam);
REGAL_DECL void REGAL_CALL glDebugMessageControlARB(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
REGAL_DECL void REGAL_CALL glDebugMessageInsertARB(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_DEBUG_OUTPUT
REGAL_DECL GLuint REGAL_CALL plugin_glGetDebugMessageLogARB(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageCallbackARB(GLDEBUGPROCARB callback, const GLvoid *userParam);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageControlARB(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageInsertARB(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
#endif

/**
 ** GL_ARB_depth_buffer_float
 **/

#if (defined(GL_ARB_DEPTH_BUFFER_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_ENUM_GL_ARB_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_ENUM_GL_ARB_DEPTH_BUFFER_FLOAT
#endif

#if (defined(GL_ARB_DEPTH_BUFFER_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_TYPEDEF_GL_ARB_DEPTH_BUFFER_FLOAT
#endif

#if (defined(GL_ARB_DEPTH_BUFFER_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_NAMESPACE_GL_ARB_DEPTH_BUFFER_FLOAT
#endif

#if (defined(GL_ARB_DEPTH_BUFFER_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_PLUGIN_GL_ARB_DEPTH_BUFFER_FLOAT
#endif

#if (defined(GL_ARB_DEPTH_BUFFER_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_DECLARATION_GL_ARB_DEPTH_BUFFER_FLOAT
#endif

#ifndef GL_ARB_depth_buffer_float
#define GL_ARB_depth_buffer_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_DEPTH_BUFFER_FLOAT
#define GL_DEPTH_COMPONENT32F             0x8cac     /* 36012 */
#define GL_DEPTH32F_STENCIL8              0x8cad     /* 36013 */
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8dad     /* 36269 */
#endif

/**
 ** GL_ARB_depth_clamp
 **/

#if (defined(GL_ARB_DEPTH_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DEPTH_CLAMP)) && !defined(REGAL_NO_ENUM_GL_ARB_DEPTH_CLAMP)
#define REGAL_NO_ENUM_GL_ARB_DEPTH_CLAMP
#endif

#if (defined(GL_ARB_DEPTH_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DEPTH_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DEPTH_CLAMP)
#define REGAL_NO_TYPEDEF_GL_ARB_DEPTH_CLAMP
#endif

#if (defined(GL_ARB_DEPTH_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DEPTH_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DEPTH_CLAMP)
#define REGAL_NO_NAMESPACE_GL_ARB_DEPTH_CLAMP
#endif

#if (defined(GL_ARB_DEPTH_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DEPTH_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DEPTH_CLAMP)
#define REGAL_NO_PLUGIN_GL_ARB_DEPTH_CLAMP
#endif

#if (defined(GL_ARB_DEPTH_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DEPTH_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DEPTH_CLAMP)
#define REGAL_NO_DECLARATION_GL_ARB_DEPTH_CLAMP
#endif

#ifndef GL_ARB_depth_clamp
#define GL_ARB_depth_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_DEPTH_CLAMP
#define GL_DEPTH_CLAMP 0x864f /* 34383 */
#endif

/**
 ** GL_ARB_depth_texture
 **/

#if (defined(GL_ARB_DEPTH_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DEPTH_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_ARB_DEPTH_TEXTURE)
#define REGAL_NO_ENUM_GL_ARB_DEPTH_TEXTURE
#endif

#if (defined(GL_ARB_DEPTH_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DEPTH_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DEPTH_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_ARB_DEPTH_TEXTURE
#endif

#if (defined(GL_ARB_DEPTH_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DEPTH_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DEPTH_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_ARB_DEPTH_TEXTURE
#endif

#if (defined(GL_ARB_DEPTH_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DEPTH_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DEPTH_TEXTURE)
#define REGAL_NO_PLUGIN_GL_ARB_DEPTH_TEXTURE
#endif

#if (defined(GL_ARB_DEPTH_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DEPTH_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DEPTH_TEXTURE)
#define REGAL_NO_DECLARATION_GL_ARB_DEPTH_TEXTURE
#endif

#ifndef GL_ARB_depth_texture
#define GL_ARB_depth_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_DEPTH_TEXTURE
#define GL_DEPTH_COMPONENT16_ARB  0x81a5     /* 33189 */
#define GL_DEPTH_COMPONENT24_ARB  0x81a6     /* 33190 */
#define GL_DEPTH_COMPONENT32_ARB  0x81a7     /* 33191 */
#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884a     /* 34890 */
#define GL_DEPTH_TEXTURE_MODE_ARB 0x884b     /* 34891 */
#endif

/**
 ** GL_ARB_draw_buffers
 **/

#if (defined(GL_ARB_DRAW_BUFFERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS)) && !defined(REGAL_NO_ENUM_GL_ARB_DRAW_BUFFERS)
#define REGAL_NO_ENUM_GL_ARB_DRAW_BUFFERS
#endif

#if (defined(GL_ARB_DRAW_BUFFERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DRAW_BUFFERS)
#define REGAL_NO_TYPEDEF_GL_ARB_DRAW_BUFFERS
#endif

#if (defined(GL_ARB_DRAW_BUFFERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DRAW_BUFFERS)
#define REGAL_NO_NAMESPACE_GL_ARB_DRAW_BUFFERS
#endif

#if (defined(GL_ARB_DRAW_BUFFERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DRAW_BUFFERS)
#define REGAL_NO_PLUGIN_GL_ARB_DRAW_BUFFERS
#endif

#if (defined(GL_ARB_DRAW_BUFFERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DRAW_BUFFERS)
#define REGAL_NO_DECLARATION_GL_ARB_DRAW_BUFFERS
#endif

#ifndef GL_ARB_draw_buffers
#define GL_ARB_draw_buffers 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_DRAW_BUFFERS
#define GL_MAX_DRAW_BUFFERS_ARB 0x8824     /* 34852 */
#define GL_DRAW_BUFFER0_ARB     0x8825     /* 34853 */
#define GL_DRAW_BUFFER1_ARB     0x8826     /* 34854 */
#define GL_DRAW_BUFFER2_ARB     0x8827     /* 34855 */
#define GL_DRAW_BUFFER3_ARB     0x8828     /* 34856 */
#define GL_DRAW_BUFFER4_ARB     0x8829     /* 34857 */
#define GL_DRAW_BUFFER5_ARB     0x882a     /* 34858 */
#define GL_DRAW_BUFFER6_ARB     0x882b     /* 34859 */
#define GL_DRAW_BUFFER7_ARB     0x882c     /* 34860 */
#define GL_DRAW_BUFFER8_ARB     0x882d     /* 34861 */
#define GL_DRAW_BUFFER9_ARB     0x882e     /* 34862 */
#define GL_DRAW_BUFFER10_ARB    0x882f     /* 34863 */
#define GL_DRAW_BUFFER11_ARB    0x8830     /* 34864 */
#define GL_DRAW_BUFFER12_ARB    0x8831     /* 34865 */
#define GL_DRAW_BUFFER13_ARB    0x8832     /* 34866 */
#define GL_DRAW_BUFFER14_ARB    0x8833     /* 34867 */
#define GL_DRAW_BUFFER15_ARB    0x8834     /* 34868 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_DRAW_BUFFERS
typedef void (REGAL_CALL *PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum *bufs);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_DRAW_BUFFERS
#define glDrawBuffersARB                    rglDrawBuffersARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_DRAW_BUFFERS
REGAL_DECL void REGAL_CALL glDrawBuffersARB(GLsizei n, const GLenum *bufs);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_DRAW_BUFFERS
REGAL_DECL void REGAL_CALL plugin_glDrawBuffersARB(GLsizei n, const GLenum *bufs);
#endif

/**
 ** GL_ARB_draw_buffers_blend
 **/

#if (defined(GL_ARB_DRAW_BUFFERS_BLEND) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_ENUM_GL_ARB_DRAW_BUFFERS_BLEND)
#define REGAL_NO_ENUM_GL_ARB_DRAW_BUFFERS_BLEND
#endif

#if (defined(GL_ARB_DRAW_BUFFERS_BLEND) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DRAW_BUFFERS_BLEND)
#define REGAL_NO_TYPEDEF_GL_ARB_DRAW_BUFFERS_BLEND
#endif

#if (defined(GL_ARB_DRAW_BUFFERS_BLEND) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DRAW_BUFFERS_BLEND)
#define REGAL_NO_NAMESPACE_GL_ARB_DRAW_BUFFERS_BLEND
#endif

#if (defined(GL_ARB_DRAW_BUFFERS_BLEND) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DRAW_BUFFERS_BLEND)
#define REGAL_NO_PLUGIN_GL_ARB_DRAW_BUFFERS_BLEND
#endif

#if (defined(GL_ARB_DRAW_BUFFERS_BLEND) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DRAW_BUFFERS_BLEND)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DRAW_BUFFERS_BLEND)
#define REGAL_NO_DECLARATION_GL_ARB_DRAW_BUFFERS_BLEND
#endif

#ifndef GL_ARB_draw_buffers_blend
#define GL_ARB_draw_buffers_blend 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_DRAW_BUFFERS_BLEND
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode);
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
typedef void (REGAL_CALL *PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst);
typedef void (REGAL_CALL *PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_DRAW_BUFFERS_BLEND
#define glBlendEquationSeparateiARB         rglBlendEquationSeparateiARB
#define glBlendEquationiARB                 rglBlendEquationiARB
#define glBlendFuncSeparateiARB             rglBlendFuncSeparateiARB
#define glBlendFunciARB                     rglBlendFunciARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_DRAW_BUFFERS_BLEND
REGAL_DECL void REGAL_CALL glBlendEquationSeparateiARB(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
REGAL_DECL void REGAL_CALL glBlendEquationiARB(GLuint buf, GLenum mode);
REGAL_DECL void REGAL_CALL glBlendFuncSeparateiARB(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
REGAL_DECL void REGAL_CALL glBlendFunciARB(GLuint buf, GLenum src, GLenum dst);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_DRAW_BUFFERS_BLEND
REGAL_DECL void REGAL_CALL plugin_glBlendEquationSeparateiARB(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
REGAL_DECL void REGAL_CALL plugin_glBlendEquationiARB(GLuint buf, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glBlendFuncSeparateiARB(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
REGAL_DECL void REGAL_CALL plugin_glBlendFunciARB(GLuint buf, GLenum src, GLenum dst);
#endif

/**
 ** GL_ARB_draw_elements_base_vertex
 **/

#if (defined(GL_ARB_DRAW_ELEMENTS_BASE_VERTEX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)) && !defined(REGAL_NO_ENUM_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)
#define REGAL_NO_ENUM_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
#endif

#if (defined(GL_ARB_DRAW_ELEMENTS_BASE_VERTEX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)
#define REGAL_NO_TYPEDEF_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
#endif

#if (defined(GL_ARB_DRAW_ELEMENTS_BASE_VERTEX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)
#define REGAL_NO_NAMESPACE_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
#endif

#if (defined(GL_ARB_DRAW_ELEMENTS_BASE_VERTEX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)
#define REGAL_NO_PLUGIN_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
#endif

#if (defined(GL_ARB_DRAW_ELEMENTS_BASE_VERTEX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX)
#define REGAL_NO_DECLARATION_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
#endif

#ifndef GL_ARB_draw_elements_base_vertex
#define GL_ARB_draw_elements_base_vertex 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
typedef void (REGAL_CALL *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
typedef void (REGAL_CALL *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, const GLint *basevertex);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
#define glDrawElementsBaseVertex            rglDrawElementsBaseVertex
#define glDrawElementsInstancedBaseVertex   rglDrawElementsInstancedBaseVertex
#define glDrawRangeElementsBaseVertex       rglDrawRangeElementsBaseVertex
#define glMultiDrawElementsBaseVertex       rglMultiDrawElementsBaseVertex
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
REGAL_DECL void REGAL_CALL glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
REGAL_DECL void REGAL_CALL glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
REGAL_DECL void REGAL_CALL glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
REGAL_DECL void REGAL_CALL glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, const GLint *basevertex);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_DRAW_ELEMENTS_BASE_VERTEX
REGAL_DECL void REGAL_CALL plugin_glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
REGAL_DECL void REGAL_CALL plugin_glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex);
REGAL_DECL void REGAL_CALL plugin_glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, const GLint *basevertex);
#endif

/**
 ** GL_ARB_draw_indirect
 **/

#if (defined(GL_ARB_DRAW_INDIRECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DRAW_INDIRECT)) && !defined(REGAL_NO_ENUM_GL_ARB_DRAW_INDIRECT)
#define REGAL_NO_ENUM_GL_ARB_DRAW_INDIRECT
#endif

#if (defined(GL_ARB_DRAW_INDIRECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DRAW_INDIRECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DRAW_INDIRECT)
#define REGAL_NO_TYPEDEF_GL_ARB_DRAW_INDIRECT
#endif

#if (defined(GL_ARB_DRAW_INDIRECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DRAW_INDIRECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DRAW_INDIRECT)
#define REGAL_NO_NAMESPACE_GL_ARB_DRAW_INDIRECT
#endif

#if (defined(GL_ARB_DRAW_INDIRECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DRAW_INDIRECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DRAW_INDIRECT)
#define REGAL_NO_PLUGIN_GL_ARB_DRAW_INDIRECT
#endif

#if (defined(GL_ARB_DRAW_INDIRECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DRAW_INDIRECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DRAW_INDIRECT)
#define REGAL_NO_DECLARATION_GL_ARB_DRAW_INDIRECT
#endif

#ifndef GL_ARB_draw_indirect
#define GL_ARB_draw_indirect 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_DRAW_INDIRECT
#define GL_DRAW_INDIRECT_BUFFER         0x8f3f     /* 36671 */
#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8f43     /* 36675 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_DRAW_INDIRECT
typedef void (REGAL_CALL *PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const GLvoid *indirect);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const GLvoid *indirect);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_DRAW_INDIRECT
#define glDrawArraysIndirect                rglDrawArraysIndirect
#define glDrawElementsIndirect              rglDrawElementsIndirect
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_DRAW_INDIRECT
REGAL_DECL void REGAL_CALL glDrawArraysIndirect(GLenum mode, const GLvoid *indirect);
REGAL_DECL void REGAL_CALL glDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_DRAW_INDIRECT
REGAL_DECL void REGAL_CALL plugin_glDrawArraysIndirect(GLenum mode, const GLvoid *indirect);
REGAL_DECL void REGAL_CALL plugin_glDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect);
#endif

/**
 ** GL_ARB_draw_instanced
 **/

#if (defined(GL_ARB_DRAW_INSTANCED) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_DRAW_INSTANCED)) && !defined(REGAL_NO_ENUM_GL_ARB_DRAW_INSTANCED)
#define REGAL_NO_ENUM_GL_ARB_DRAW_INSTANCED
#endif

#if (defined(GL_ARB_DRAW_INSTANCED) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_DRAW_INSTANCED)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_DRAW_INSTANCED)
#define REGAL_NO_TYPEDEF_GL_ARB_DRAW_INSTANCED
#endif

#if (defined(GL_ARB_DRAW_INSTANCED) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_DRAW_INSTANCED)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_DRAW_INSTANCED)
#define REGAL_NO_NAMESPACE_GL_ARB_DRAW_INSTANCED
#endif

#if (defined(GL_ARB_DRAW_INSTANCED) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_DRAW_INSTANCED)) && !defined(REGAL_NO_PLUGIN_GL_ARB_DRAW_INSTANCED)
#define REGAL_NO_PLUGIN_GL_ARB_DRAW_INSTANCED
#endif

#if (defined(GL_ARB_DRAW_INSTANCED) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_DRAW_INSTANCED)) && !defined(REGAL_NO_DECLARATION_GL_ARB_DRAW_INSTANCED)
#define REGAL_NO_DECLARATION_GL_ARB_DRAW_INSTANCED
#endif

#ifndef GL_ARB_draw_instanced
#define GL_ARB_draw_instanced 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_DRAW_INSTANCED
typedef void (REGAL_CALL *PFNGLDRAWARRAYSINSTANCEDARBPROC)(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSINSTANCEDARBPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_DRAW_INSTANCED
#define glDrawArraysInstancedARB            rglDrawArraysInstancedARB
#define glDrawElementsInstancedARB          rglDrawElementsInstancedARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_DRAW_INSTANCED
REGAL_DECL void REGAL_CALL glDrawArraysInstancedARB(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
REGAL_DECL void REGAL_CALL glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_DRAW_INSTANCED
REGAL_DECL void REGAL_CALL plugin_glDrawArraysInstancedARB(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
#endif

/**
 ** GL_ARB_enhanced_layouts
 **/

#if (defined(GL_ARB_ENHANCED_LAYOUTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_ENHANCED_LAYOUTS)) && !defined(REGAL_NO_ENUM_GL_ARB_ENHANCED_LAYOUTS)
#define REGAL_NO_ENUM_GL_ARB_ENHANCED_LAYOUTS
#endif

#if (defined(GL_ARB_ENHANCED_LAYOUTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_ENHANCED_LAYOUTS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_ENHANCED_LAYOUTS)
#define REGAL_NO_TYPEDEF_GL_ARB_ENHANCED_LAYOUTS
#endif

#if (defined(GL_ARB_ENHANCED_LAYOUTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_ENHANCED_LAYOUTS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_ENHANCED_LAYOUTS)
#define REGAL_NO_NAMESPACE_GL_ARB_ENHANCED_LAYOUTS
#endif

#if (defined(GL_ARB_ENHANCED_LAYOUTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_ENHANCED_LAYOUTS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_ENHANCED_LAYOUTS)
#define REGAL_NO_PLUGIN_GL_ARB_ENHANCED_LAYOUTS
#endif

#if (defined(GL_ARB_ENHANCED_LAYOUTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_ENHANCED_LAYOUTS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_ENHANCED_LAYOUTS)
#define REGAL_NO_DECLARATION_GL_ARB_ENHANCED_LAYOUTS
#endif

#ifndef GL_ARB_enhanced_layouts
#define GL_ARB_enhanced_layouts 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_ENHANCED_LAYOUTS
#define GL_LOCATION_COMPONENT               0x934a     /* 37706 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX  0x934b     /* 37707 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE 0x934c     /* 37708 */
#endif

/**
 ** GL_ARB_explicit_uniform_location
 **/

#if (defined(GL_ARB_EXPLICIT_UNIFORM_LOCATION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_EXPLICIT_UNIFORM_LOCATION)) && !defined(REGAL_NO_ENUM_GL_ARB_EXPLICIT_UNIFORM_LOCATION)
#define REGAL_NO_ENUM_GL_ARB_EXPLICIT_UNIFORM_LOCATION
#endif

#if (defined(GL_ARB_EXPLICIT_UNIFORM_LOCATION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_EXPLICIT_UNIFORM_LOCATION)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_EXPLICIT_UNIFORM_LOCATION)
#define REGAL_NO_TYPEDEF_GL_ARB_EXPLICIT_UNIFORM_LOCATION
#endif

#if (defined(GL_ARB_EXPLICIT_UNIFORM_LOCATION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_EXPLICIT_UNIFORM_LOCATION)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_EXPLICIT_UNIFORM_LOCATION)
#define REGAL_NO_NAMESPACE_GL_ARB_EXPLICIT_UNIFORM_LOCATION
#endif

#if (defined(GL_ARB_EXPLICIT_UNIFORM_LOCATION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_EXPLICIT_UNIFORM_LOCATION)) && !defined(REGAL_NO_PLUGIN_GL_ARB_EXPLICIT_UNIFORM_LOCATION)
#define REGAL_NO_PLUGIN_GL_ARB_EXPLICIT_UNIFORM_LOCATION
#endif

#if (defined(GL_ARB_EXPLICIT_UNIFORM_LOCATION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_EXPLICIT_UNIFORM_LOCATION)) && !defined(REGAL_NO_DECLARATION_GL_ARB_EXPLICIT_UNIFORM_LOCATION)
#define REGAL_NO_DECLARATION_GL_ARB_EXPLICIT_UNIFORM_LOCATION
#endif

#ifndef GL_ARB_explicit_uniform_location
#define GL_ARB_explicit_uniform_location 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_EXPLICIT_UNIFORM_LOCATION
#define GL_MAX_UNIFORM_LOCATIONS 0x826e /* 33390 */
#endif

/**
 ** GL_ARB_fragment_program
 **/

#if (defined(GL_ARB_FRAGMENT_PROGRAM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_ENUM_GL_ARB_FRAGMENT_PROGRAM)
#define REGAL_NO_ENUM_GL_ARB_FRAGMENT_PROGRAM
#endif

#if (defined(GL_ARB_FRAGMENT_PROGRAM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_FRAGMENT_PROGRAM)
#define REGAL_NO_TYPEDEF_GL_ARB_FRAGMENT_PROGRAM
#endif

#if (defined(GL_ARB_FRAGMENT_PROGRAM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_FRAGMENT_PROGRAM)
#define REGAL_NO_NAMESPACE_GL_ARB_FRAGMENT_PROGRAM
#endif

#if (defined(GL_ARB_FRAGMENT_PROGRAM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_PLUGIN_GL_ARB_FRAGMENT_PROGRAM)
#define REGAL_NO_PLUGIN_GL_ARB_FRAGMENT_PROGRAM
#endif

#if (defined(GL_ARB_FRAGMENT_PROGRAM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_DECLARATION_GL_ARB_FRAGMENT_PROGRAM)
#define REGAL_NO_DECLARATION_GL_ARB_FRAGMENT_PROGRAM
#endif

#ifndef GL_ARB_fragment_program
#define GL_ARB_fragment_program 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_FRAGMENT_PROGRAM
#define GL_FRAGMENT_PROGRAM_ARB                    0x8804     /* 34820 */
#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB            0x8805     /* 34821 */
#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB            0x8806     /* 34822 */
#define GL_PROGRAM_TEX_INDIRECTIONS_ARB            0x8807     /* 34823 */
#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB     0x8808     /* 34824 */
#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB     0x8809     /* 34825 */
#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB     0x880a     /* 34826 */
#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB        0x880b     /* 34827 */
#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB        0x880c     /* 34828 */
#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB        0x880d     /* 34829 */
#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880e     /* 34830 */
#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880f     /* 34831 */
#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810     /* 34832 */
#define GL_MAX_TEXTURE_COORDS_ARB                  0x8871     /* 34929 */
#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB             0x8872     /* 34930 */
#endif

/**
 ** GL_ARB_fragment_shader
 **/

#if (defined(GL_ARB_FRAGMENT_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_FRAGMENT_SHADER)) && !defined(REGAL_NO_ENUM_GL_ARB_FRAGMENT_SHADER)
#define REGAL_NO_ENUM_GL_ARB_FRAGMENT_SHADER
#endif

#if (defined(GL_ARB_FRAGMENT_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_FRAGMENT_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_FRAGMENT_SHADER)
#define REGAL_NO_TYPEDEF_GL_ARB_FRAGMENT_SHADER
#endif

#if (defined(GL_ARB_FRAGMENT_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_FRAGMENT_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_FRAGMENT_SHADER)
#define REGAL_NO_NAMESPACE_GL_ARB_FRAGMENT_SHADER
#endif

#if (defined(GL_ARB_FRAGMENT_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_FRAGMENT_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_ARB_FRAGMENT_SHADER)
#define REGAL_NO_PLUGIN_GL_ARB_FRAGMENT_SHADER
#endif

#if (defined(GL_ARB_FRAGMENT_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_FRAGMENT_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_ARB_FRAGMENT_SHADER)
#define REGAL_NO_DECLARATION_GL_ARB_FRAGMENT_SHADER
#endif

#ifndef GL_ARB_fragment_shader
#define GL_ARB_fragment_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_FRAGMENT_SHADER
#define GL_FRAGMENT_SHADER_ARB                 0x8b30     /* 35632 */
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8b49     /* 35657 */
#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8b8b     /* 35723 */
#endif

/**
 ** GL_ARB_framebuffer_no_attachments
 **/

#if (defined(GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)) && !defined(REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)
#define REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
#endif

#if (defined(GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)
#define REGAL_NO_TYPEDEF_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
#endif

#if (defined(GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)
#define REGAL_NO_NAMESPACE_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
#endif

#if (defined(GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)
#define REGAL_NO_PLUGIN_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
#endif

#if (defined(GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS)
#define REGAL_NO_DECLARATION_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
#endif

#ifndef GL_ARB_framebuffer_no_attachments
#define GL_ARB_framebuffer_no_attachments 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
#define GL_FRAMEBUFFER_DEFAULT_WIDTH                  0x9310     /* 37648 */
#define GL_FRAMEBUFFER_DEFAULT_HEIGHT                 0x9311     /* 37649 */
#define GL_FRAMEBUFFER_DEFAULT_LAYERS                 0x9312     /* 37650 */
#define GL_FRAMEBUFFER_DEFAULT_SAMPLES                0x9313     /* 37651 */
#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS 0x9314     /* 37652 */
#define GL_MAX_FRAMEBUFFER_WIDTH                      0x9315     /* 37653 */
#define GL_MAX_FRAMEBUFFER_HEIGHT                     0x9316     /* 37654 */
#define GL_MAX_FRAMEBUFFER_LAYERS                     0x9317     /* 37655 */
#define GL_MAX_FRAMEBUFFER_SAMPLES                    0x9318     /* 37656 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)(GLuint framebuffer, GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
#define glFramebufferParameteri             rglFramebufferParameteri
#define glGetFramebufferParameteriv         rglGetFramebufferParameteriv
#define glGetNamedFramebufferParameterivEXT rglGetNamedFramebufferParameterivEXT
#define glNamedFramebufferParameteriEXT     rglNamedFramebufferParameteriEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
REGAL_DECL void REGAL_CALL glFramebufferParameteri(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetNamedFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glNamedFramebufferParameteriEXT(GLuint framebuffer, GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_FRAMEBUFFER_NO_ATTACHMENTS
REGAL_DECL void REGAL_CALL plugin_glFramebufferParameteri(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glGetFramebufferParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glNamedFramebufferParameteriEXT(GLuint framebuffer, GLenum pname, GLint param);
#endif

/**
 ** GL_ARB_framebuffer_object
 **/

#if (defined(GL_ARB_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_ARB_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_FRAMEBUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_ARB_FRAMEBUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_FRAMEBUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_ARB_FRAMEBUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_FRAMEBUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_ARB_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_FRAMEBUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_FRAMEBUFFER_OBJECT
#endif

#ifndef GL_ARB_framebuffer_object
#define GL_ARB_framebuffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_OBJECT
#define GL_INVALID_FRAMEBUFFER_OPERATION                0x506      /* 1286 */
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING        0x8210     /* 33296 */
#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE        0x8211     /* 33297 */
#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE              0x8212     /* 33298 */
#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE            0x8213     /* 33299 */
#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE             0x8214     /* 33300 */
#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE            0x8215     /* 33301 */
#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE            0x8216     /* 33302 */
#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE          0x8217     /* 33303 */
#define GL_FRAMEBUFFER_DEFAULT                          0x8218     /* 33304 */
#define GL_FRAMEBUFFER_UNDEFINED                        0x8219     /* 33305 */
#define GL_DEPTH_STENCIL_ATTACHMENT                     0x821a     /* 33306 */
#define GL_INDEX                                        0x8222     /* 33314 */
#define GL_MAX_RENDERBUFFER_SIZE                        0x84e8     /* 34024 */
#define GL_DEPTH_STENCIL                                0x84f9     /* 34041 */
#define GL_UNSIGNED_INT_24_8                            0x84fa     /* 34042 */
#define GL_DEPTH24_STENCIL8                             0x88f0     /* 35056 */
#define GL_TEXTURE_STENCIL_SIZE                         0x88f1     /* 35057 */
#define GL_UNSIGNED_NORMALIZED                          0x8c17     /* 35863 */
#define GL_DRAW_FRAMEBUFFER_BINDING                     0x8ca6     /* 36006 */
#define GL_FRAMEBUFFER_BINDING                          0x8ca6     /* 36006 */
#define GL_RENDERBUFFER_BINDING                         0x8ca7     /* 36007 */
#define GL_READ_FRAMEBUFFER                             0x8ca8     /* 36008 */
#define GL_DRAW_FRAMEBUFFER                             0x8ca9     /* 36009 */
#define GL_READ_FRAMEBUFFER_BINDING                     0x8caa     /* 36010 */
#define GL_RENDERBUFFER_SAMPLES                         0x8cab     /* 36011 */
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE           0x8cd0     /* 36048 */
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME           0x8cd1     /* 36049 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL         0x8cd2     /* 36050 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8cd3     /* 36051 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER         0x8cd4     /* 36052 */
#define GL_FRAMEBUFFER_COMPLETE                         0x8cd5     /* 36053 */
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT            0x8cd6     /* 36054 */
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT    0x8cd7     /* 36055 */
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER           0x8cdb     /* 36059 */
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER           0x8cdc     /* 36060 */
#define GL_FRAMEBUFFER_UNSUPPORTED                      0x8cdd     /* 36061 */
#define GL_MAX_COLOR_ATTACHMENTS                        0x8cdf     /* 36063 */
#define GL_COLOR_ATTACHMENT0                            0x8ce0     /* 36064 */
#define GL_COLOR_ATTACHMENT1                            0x8ce1     /* 36065 */
#define GL_COLOR_ATTACHMENT2                            0x8ce2     /* 36066 */
#define GL_COLOR_ATTACHMENT3                            0x8ce3     /* 36067 */
#define GL_COLOR_ATTACHMENT4                            0x8ce4     /* 36068 */
#define GL_COLOR_ATTACHMENT5                            0x8ce5     /* 36069 */
#define GL_COLOR_ATTACHMENT6                            0x8ce6     /* 36070 */
#define GL_COLOR_ATTACHMENT7                            0x8ce7     /* 36071 */
#define GL_COLOR_ATTACHMENT8                            0x8ce8     /* 36072 */
#define GL_COLOR_ATTACHMENT9                            0x8ce9     /* 36073 */
#define GL_COLOR_ATTACHMENT10                           0x8cea     /* 36074 */
#define GL_COLOR_ATTACHMENT11                           0x8ceb     /* 36075 */
#define GL_COLOR_ATTACHMENT12                           0x8cec     /* 36076 */
#define GL_COLOR_ATTACHMENT13                           0x8ced     /* 36077 */
#define GL_COLOR_ATTACHMENT14                           0x8cee     /* 36078 */
#define GL_COLOR_ATTACHMENT15                           0x8cef     /* 36079 */
#define GL_DEPTH_ATTACHMENT                             0x8d00     /* 36096 */
#define GL_STENCIL_ATTACHMENT                           0x8d20     /* 36128 */
#define GL_FRAMEBUFFER                                  0x8d40     /* 36160 */
#define GL_RENDERBUFFER                                 0x8d41     /* 36161 */
#define GL_RENDERBUFFER_WIDTH                           0x8d42     /* 36162 */
#define GL_RENDERBUFFER_HEIGHT                          0x8d43     /* 36163 */
#define GL_RENDERBUFFER_INTERNAL_FORMAT                 0x8d44     /* 36164 */
#define GL_STENCIL_INDEX1                               0x8d46     /* 36166 */
#define GL_STENCIL_INDEX4                               0x8d47     /* 36167 */
#define GL_STENCIL_INDEX8                               0x8d48     /* 36168 */
#define GL_STENCIL_INDEX16                              0x8d49     /* 36169 */
#define GL_RENDERBUFFER_RED_SIZE                        0x8d50     /* 36176 */
#define GL_RENDERBUFFER_GREEN_SIZE                      0x8d51     /* 36177 */
#define GL_RENDERBUFFER_BLUE_SIZE                       0x8d52     /* 36178 */
#define GL_RENDERBUFFER_ALPHA_SIZE                      0x8d53     /* 36179 */
#define GL_RENDERBUFFER_DEPTH_SIZE                      0x8d54     /* 36180 */
#define GL_RENDERBUFFER_STENCIL_SIZE                    0x8d55     /* 36181 */
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE           0x8d56     /* 36182 */
#define GL_MAX_SAMPLES                                  0x8d57     /* 36183 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_FRAMEBUFFER_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
typedef GLboolean (REGAL_CALL *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
typedef GLenum (REGAL_CALL *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
typedef void (REGAL_CALL *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
typedef void (REGAL_CALL *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint *framebuffers);
typedef void (REGAL_CALL *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint *renderbuffers);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
typedef void (REGAL_CALL *PFNGLGENERATEMIPMAPPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint *framebuffers);
typedef void (REGAL_CALL *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint *renderbuffers);
typedef void (REGAL_CALL *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_FRAMEBUFFER_OBJECT
#define glBindFramebuffer                   rglBindFramebuffer
#define glBindRenderbuffer                  rglBindRenderbuffer
#define glBlitFramebuffer                   rglBlitFramebuffer
#define glCheckFramebufferStatus            rglCheckFramebufferStatus
#define glDeleteFramebuffers                rglDeleteFramebuffers
#define glDeleteRenderbuffers               rglDeleteRenderbuffers
#define glFramebufferRenderbuffer           rglFramebufferRenderbuffer
#define glFramebufferTexture1D              rglFramebufferTexture1D
#define glFramebufferTexture2D              rglFramebufferTexture2D
#define glFramebufferTexture3D              rglFramebufferTexture3D
#define glFramebufferTextureLayer           rglFramebufferTextureLayer
#define glGenFramebuffers                   rglGenFramebuffers
#define glGenRenderbuffers                  rglGenRenderbuffers
#define glGenerateMipmap                    rglGenerateMipmap
#define glGetFramebufferAttachmentParameteriv rglGetFramebufferAttachmentParameteriv
#define glGetRenderbufferParameteriv        rglGetRenderbufferParameteriv
#define glIsFramebuffer                     rglIsFramebuffer
#define glIsRenderbuffer                    rglIsRenderbuffer
#define glRenderbufferStorage               rglRenderbufferStorage
#define glRenderbufferStorageMultisample    rglRenderbufferStorageMultisample
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_FRAMEBUFFER_OBJECT
REGAL_DECL GLboolean REGAL_CALL glIsFramebuffer(GLuint framebuffer);
REGAL_DECL GLboolean REGAL_CALL glIsRenderbuffer(GLuint renderbuffer);
REGAL_DECL GLenum REGAL_CALL glCheckFramebufferStatus(GLenum target);
REGAL_DECL void REGAL_CALL glBindFramebuffer(GLenum target, GLuint framebuffer);
REGAL_DECL void REGAL_CALL glBindRenderbuffer(GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
REGAL_DECL void REGAL_CALL glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
REGAL_DECL void REGAL_CALL glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
REGAL_DECL void REGAL_CALL glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
REGAL_DECL void REGAL_CALL glGenFramebuffers(GLsizei n, GLuint *framebuffers);
REGAL_DECL void REGAL_CALL glGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL glGenerateMipmap(GLenum target);
REGAL_DECL void REGAL_CALL glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_FRAMEBUFFER_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glIsFramebuffer(GLuint framebuffer);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsRenderbuffer(GLuint renderbuffer);
REGAL_DECL GLenum REGAL_CALL plugin_glCheckFramebufferStatus(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glBindFramebuffer(GLenum target, GLuint framebuffer);
REGAL_DECL void REGAL_CALL plugin_glBindRenderbuffer(GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
REGAL_DECL void REGAL_CALL plugin_glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers);
REGAL_DECL void REGAL_CALL plugin_glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL plugin_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint layer);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
REGAL_DECL void REGAL_CALL plugin_glGenFramebuffers(GLsizei n, GLuint *framebuffers);
REGAL_DECL void REGAL_CALL plugin_glGenRenderbuffers(GLsizei n, GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL plugin_glGenerateMipmap(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

/**
 ** GL_ARB_framebuffer_sRGB
 **/

#if (defined(GL_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(GL_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_TYPEDEF_GL_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(GL_ARB_FRAMEBUFFER_SRGB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_NAMESPACE_GL_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(GL_ARB_FRAMEBUFFER_SRGB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_PLUGIN_GL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_PLUGIN_GL_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(GL_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_DECLARATION_GL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_DECLARATION_GL_ARB_FRAMEBUFFER_SRGB
#endif

#ifndef GL_ARB_framebuffer_sRGB
#define GL_ARB_framebuffer_sRGB 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_FRAMEBUFFER_SRGB
#define GL_FRAMEBUFFER_SRGB 0x8db9 /* 36281 */
#endif

/**
 ** GL_ARB_geometry_shader4
 **/

#if (defined(GL_ARB_GEOMETRY_SHADER4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_GEOMETRY_SHADER4)) && !defined(REGAL_NO_ENUM_GL_ARB_GEOMETRY_SHADER4)
#define REGAL_NO_ENUM_GL_ARB_GEOMETRY_SHADER4
#endif

#if (defined(GL_ARB_GEOMETRY_SHADER4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_GEOMETRY_SHADER4)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_GEOMETRY_SHADER4)
#define REGAL_NO_TYPEDEF_GL_ARB_GEOMETRY_SHADER4
#endif

#if (defined(GL_ARB_GEOMETRY_SHADER4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_GEOMETRY_SHADER4)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_GEOMETRY_SHADER4)
#define REGAL_NO_NAMESPACE_GL_ARB_GEOMETRY_SHADER4
#endif

#if (defined(GL_ARB_GEOMETRY_SHADER4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_GEOMETRY_SHADER4)) && !defined(REGAL_NO_PLUGIN_GL_ARB_GEOMETRY_SHADER4)
#define REGAL_NO_PLUGIN_GL_ARB_GEOMETRY_SHADER4
#endif

#if (defined(GL_ARB_GEOMETRY_SHADER4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_GEOMETRY_SHADER4)) && !defined(REGAL_NO_DECLARATION_GL_ARB_GEOMETRY_SHADER4)
#define REGAL_NO_DECLARATION_GL_ARB_GEOMETRY_SHADER4
#endif

#ifndef GL_ARB_geometry_shader4
#define GL_ARB_geometry_shader4 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_GEOMETRY_SHADER4
#define GL_PROGRAM_POINT_SIZE_ARB                   0x8642     /* 34370 */
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB     0x8c29     /* 35881 */
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB       0x8da7     /* 36263 */
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8da8     /* 36264 */
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB   0x8da9     /* 36265 */
#define GL_GEOMETRY_SHADER_ARB                      0x8dd9     /* 36313 */
#define GL_GEOMETRY_VERTICES_OUT_ARB                0x8dda     /* 36314 */
#define GL_GEOMETRY_INPUT_TYPE_ARB                  0x8ddb     /* 36315 */
#define GL_GEOMETRY_OUTPUT_TYPE_ARB                 0x8ddc     /* 36316 */
#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB      0x8ddd     /* 36317 */
#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB        0x8dde     /* 36318 */
#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB      0x8ddf     /* 36319 */
#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB         0x8de0     /* 36320 */
#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8de1     /* 36321 */
#define GL_LINES_ADJACENCY_ARB                      0xa        /* 10 */
#define GL_LINE_STRIP_ADJACENCY_ARB                 0xb        /* 11 */
#define GL_TRIANGLES_ADJACENCY_ARB                  0xc        /* 12 */
#define GL_TRIANGLE_STRIP_ADJACENCY_ARB             0xd        /* 13 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_GEOMETRY_SHADER4
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname, GLint value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_GEOMETRY_SHADER4
#define glFramebufferTextureARB             rglFramebufferTextureARB
#define glFramebufferTextureFaceARB         rglFramebufferTextureFaceARB
#define glFramebufferTextureLayerARB        rglFramebufferTextureLayerARB
#define glProgramParameteriARB              rglProgramParameteriARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_GEOMETRY_SHADER4
REGAL_DECL void REGAL_CALL glFramebufferTextureARB(GLenum target, GLenum attachment, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glFramebufferTextureFaceARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
REGAL_DECL void REGAL_CALL glFramebufferTextureLayerARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
REGAL_DECL void REGAL_CALL glProgramParameteriARB(GLuint program, GLenum pname, GLint value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_GEOMETRY_SHADER4
REGAL_DECL void REGAL_CALL plugin_glFramebufferTextureARB(GLenum target, GLenum attachment, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTextureFaceARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTextureLayerARB(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
REGAL_DECL void REGAL_CALL plugin_glProgramParameteriARB(GLuint program, GLenum pname, GLint value);
#endif

/**
 ** GL_ARB_get_program_binary
 **/

#if (defined(GL_ARB_GET_PROGRAM_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_ENUM_GL_ARB_GET_PROGRAM_BINARY)
#define REGAL_NO_ENUM_GL_ARB_GET_PROGRAM_BINARY
#endif

#if (defined(GL_ARB_GET_PROGRAM_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_GET_PROGRAM_BINARY)
#define REGAL_NO_TYPEDEF_GL_ARB_GET_PROGRAM_BINARY
#endif

#if (defined(GL_ARB_GET_PROGRAM_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_GET_PROGRAM_BINARY)
#define REGAL_NO_NAMESPACE_GL_ARB_GET_PROGRAM_BINARY
#endif

#if (defined(GL_ARB_GET_PROGRAM_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_GET_PROGRAM_BINARY)
#define REGAL_NO_PLUGIN_GL_ARB_GET_PROGRAM_BINARY
#endif

#if (defined(GL_ARB_GET_PROGRAM_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_GET_PROGRAM_BINARY)
#define REGAL_NO_DECLARATION_GL_ARB_GET_PROGRAM_BINARY
#endif

#ifndef GL_ARB_get_program_binary
#define GL_ARB_get_program_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_GET_PROGRAM_BINARY
#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257     /* 33367 */
#define GL_PROGRAM_BINARY_LENGTH           0x8741     /* 34625 */
#define GL_NUM_PROGRAM_BINARY_FORMATS      0x87fe     /* 34814 */
#define GL_PROGRAM_BINARY_FORMATS          0x87ff     /* 34815 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_GET_PROGRAM_BINARY
typedef void (REGAL_CALL *PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
typedef void (REGAL_CALL *PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_GET_PROGRAM_BINARY
#define glGetProgramBinary                  rglGetProgramBinary
#define glProgramBinary                     rglProgramBinary
#define glProgramParameteri                 rglProgramParameteri
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_GET_PROGRAM_BINARY
REGAL_DECL void REGAL_CALL glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
REGAL_DECL void REGAL_CALL glProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
REGAL_DECL void REGAL_CALL glProgramParameteri(GLuint program, GLenum pname, GLint value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_GET_PROGRAM_BINARY
REGAL_DECL void REGAL_CALL plugin_glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
REGAL_DECL void REGAL_CALL plugin_glProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length);
REGAL_DECL void REGAL_CALL plugin_glProgramParameteri(GLuint program, GLenum pname, GLint value);
#endif

/**
 ** GL_ARB_gpu_shader5
 **/

#if (defined(GL_ARB_GPU_SHADER5) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_GPU_SHADER5)) && !defined(REGAL_NO_ENUM_GL_ARB_GPU_SHADER5)
#define REGAL_NO_ENUM_GL_ARB_GPU_SHADER5
#endif

#if (defined(GL_ARB_GPU_SHADER5) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_GPU_SHADER5)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_GPU_SHADER5)
#define REGAL_NO_TYPEDEF_GL_ARB_GPU_SHADER5
#endif

#if (defined(GL_ARB_GPU_SHADER5) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_GPU_SHADER5)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_GPU_SHADER5)
#define REGAL_NO_NAMESPACE_GL_ARB_GPU_SHADER5
#endif

#if (defined(GL_ARB_GPU_SHADER5) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_GPU_SHADER5)) && !defined(REGAL_NO_PLUGIN_GL_ARB_GPU_SHADER5)
#define REGAL_NO_PLUGIN_GL_ARB_GPU_SHADER5
#endif

#if (defined(GL_ARB_GPU_SHADER5) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_GPU_SHADER5)) && !defined(REGAL_NO_DECLARATION_GL_ARB_GPU_SHADER5)
#define REGAL_NO_DECLARATION_GL_ARB_GPU_SHADER5
#endif

#ifndef GL_ARB_gpu_shader5
#define GL_ARB_gpu_shader5 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_GPU_SHADER5
#define GL_GEOMETRY_SHADER_INVOCATIONS        0x887f     /* 34943 */
#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS    0x8e5a     /* 36442 */
#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET  0x8e5b     /* 36443 */
#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET  0x8e5c     /* 36444 */
#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8e5d     /* 36445 */
#define GL_MAX_VERTEX_STREAMS                 0x8e71     /* 36465 */
#endif

/**
 ** GL_ARB_gpu_shader_fp64
 **/

#if (defined(GL_ARB_GPU_SHADER_FP64) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_GPU_SHADER_FP64)) && !defined(REGAL_NO_ENUM_GL_ARB_GPU_SHADER_FP64)
#define REGAL_NO_ENUM_GL_ARB_GPU_SHADER_FP64
#endif

#if (defined(GL_ARB_GPU_SHADER_FP64) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_GPU_SHADER_FP64)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_GPU_SHADER_FP64)
#define REGAL_NO_TYPEDEF_GL_ARB_GPU_SHADER_FP64
#endif

#if (defined(GL_ARB_GPU_SHADER_FP64) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_GPU_SHADER_FP64)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_GPU_SHADER_FP64)
#define REGAL_NO_NAMESPACE_GL_ARB_GPU_SHADER_FP64
#endif

#if (defined(GL_ARB_GPU_SHADER_FP64) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_GPU_SHADER_FP64)) && !defined(REGAL_NO_PLUGIN_GL_ARB_GPU_SHADER_FP64)
#define REGAL_NO_PLUGIN_GL_ARB_GPU_SHADER_FP64
#endif

#if (defined(GL_ARB_GPU_SHADER_FP64) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_GPU_SHADER_FP64)) && !defined(REGAL_NO_DECLARATION_GL_ARB_GPU_SHADER_FP64)
#define REGAL_NO_DECLARATION_GL_ARB_GPU_SHADER_FP64
#endif

#ifndef GL_ARB_gpu_shader_fp64
#define GL_ARB_gpu_shader_fp64 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_GPU_SHADER_FP64
#define GL_DOUBLE_MAT2   0x8f46     /* 36678 */
#define GL_DOUBLE_MAT3   0x8f47     /* 36679 */
#define GL_DOUBLE_MAT4   0x8f48     /* 36680 */
#define GL_DOUBLE_MAT2x3 0x8f49     /* 36681 */
#define GL_DOUBLE_MAT2x4 0x8f4a     /* 36682 */
#define GL_DOUBLE_MAT3x2 0x8f4b     /* 36683 */
#define GL_DOUBLE_MAT3x4 0x8f4c     /* 36684 */
#define GL_DOUBLE_MAT4x2 0x8f4d     /* 36685 */
#define GL_DOUBLE_MAT4x3 0x8f4e     /* 36686 */
#define GL_DOUBLE_VEC2   0x8ffc     /* 36860 */
#define GL_DOUBLE_VEC3   0x8ffd     /* 36861 */
#define GL_DOUBLE_VEC4   0x8ffe     /* 36862 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_GPU_SHADER_FP64
typedef void (REGAL_CALL *PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble *params);
typedef void (REGAL_CALL *PFNGLUNIFORM1DPROC)(GLint location, GLdouble x);
typedef void (REGAL_CALL *PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_GPU_SHADER_FP64
#define glGetUniformdv                      rglGetUniformdv
#define glUniform1d                         rglUniform1d
#define glUniform1dv                        rglUniform1dv
#define glUniform2d                         rglUniform2d
#define glUniform2dv                        rglUniform2dv
#define glUniform3d                         rglUniform3d
#define glUniform3dv                        rglUniform3dv
#define glUniform4d                         rglUniform4d
#define glUniform4dv                        rglUniform4dv
#define glUniformMatrix2dv                  rglUniformMatrix2dv
#define glUniformMatrix2x3dv                rglUniformMatrix2x3dv
#define glUniformMatrix2x4dv                rglUniformMatrix2x4dv
#define glUniformMatrix3dv                  rglUniformMatrix3dv
#define glUniformMatrix3x2dv                rglUniformMatrix3x2dv
#define glUniformMatrix3x4dv                rglUniformMatrix3x4dv
#define glUniformMatrix4dv                  rglUniformMatrix4dv
#define glUniformMatrix4x2dv                rglUniformMatrix4x2dv
#define glUniformMatrix4x3dv                rglUniformMatrix4x3dv
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_GPU_SHADER_FP64
REGAL_DECL void REGAL_CALL glGetUniformdv(GLuint program, GLint location, GLdouble *params);
REGAL_DECL void REGAL_CALL glUniform1d(GLint location, GLdouble x);
REGAL_DECL void REGAL_CALL glUniform1dv(GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniform2d(GLint location, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glUniform2dv(GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glUniform3dv(GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glUniform4dv(GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_GPU_SHADER_FP64
REGAL_DECL void REGAL_CALL plugin_glGetUniformdv(GLuint program, GLint location, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glUniform1d(GLint location, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glUniform1dv(GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2d(GLint location, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glUniform2dv(GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3d(GLint location, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glUniform3dv(GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4d(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glUniform4dv(GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix2x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix2x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix3x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix3x4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix4dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix4x2dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix4x3dv(GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
#endif

/**
 ** GL_ARB_half_float_pixel
 **/

#if (defined(GL_ARB_HALF_FLOAT_PIXEL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_PIXEL)) && !defined(REGAL_NO_ENUM_GL_ARB_HALF_FLOAT_PIXEL)
#define REGAL_NO_ENUM_GL_ARB_HALF_FLOAT_PIXEL
#endif

#if (defined(GL_ARB_HALF_FLOAT_PIXEL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_PIXEL)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_HALF_FLOAT_PIXEL)
#define REGAL_NO_TYPEDEF_GL_ARB_HALF_FLOAT_PIXEL
#endif

#if (defined(GL_ARB_HALF_FLOAT_PIXEL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_PIXEL)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_HALF_FLOAT_PIXEL)
#define REGAL_NO_NAMESPACE_GL_ARB_HALF_FLOAT_PIXEL
#endif

#if (defined(GL_ARB_HALF_FLOAT_PIXEL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_PIXEL)) && !defined(REGAL_NO_PLUGIN_GL_ARB_HALF_FLOAT_PIXEL)
#define REGAL_NO_PLUGIN_GL_ARB_HALF_FLOAT_PIXEL
#endif

#if (defined(GL_ARB_HALF_FLOAT_PIXEL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_PIXEL)) && !defined(REGAL_NO_DECLARATION_GL_ARB_HALF_FLOAT_PIXEL)
#define REGAL_NO_DECLARATION_GL_ARB_HALF_FLOAT_PIXEL
#endif

#ifndef GL_ARB_half_float_pixel
#define GL_ARB_half_float_pixel 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_HALF_FLOAT_PIXEL
#define GL_HALF_FLOAT_ARB 0x140b /* 5131 */
#endif

/**
 ** GL_ARB_half_float_vertex
 **/

#if (defined(GL_ARB_HALF_FLOAT_VERTEX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_VERTEX)) && !defined(REGAL_NO_ENUM_GL_ARB_HALF_FLOAT_VERTEX)
#define REGAL_NO_ENUM_GL_ARB_HALF_FLOAT_VERTEX
#endif

#if (defined(GL_ARB_HALF_FLOAT_VERTEX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_VERTEX)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_HALF_FLOAT_VERTEX)
#define REGAL_NO_TYPEDEF_GL_ARB_HALF_FLOAT_VERTEX
#endif

#if (defined(GL_ARB_HALF_FLOAT_VERTEX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_VERTEX)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_HALF_FLOAT_VERTEX)
#define REGAL_NO_NAMESPACE_GL_ARB_HALF_FLOAT_VERTEX
#endif

#if (defined(GL_ARB_HALF_FLOAT_VERTEX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_VERTEX)) && !defined(REGAL_NO_PLUGIN_GL_ARB_HALF_FLOAT_VERTEX)
#define REGAL_NO_PLUGIN_GL_ARB_HALF_FLOAT_VERTEX
#endif

#if (defined(GL_ARB_HALF_FLOAT_VERTEX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_HALF_FLOAT_VERTEX)) && !defined(REGAL_NO_DECLARATION_GL_ARB_HALF_FLOAT_VERTEX)
#define REGAL_NO_DECLARATION_GL_ARB_HALF_FLOAT_VERTEX
#endif

#ifndef GL_ARB_half_float_vertex
#define GL_ARB_half_float_vertex 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_HALF_FLOAT_VERTEX
#define GL_HALF_FLOAT 0x140b /* 5131 */
#endif

/**
 ** GL_ARB_imaging
 **/

#if (defined(GL_ARB_IMAGING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_IMAGING)) && !defined(REGAL_NO_ENUM_GL_ARB_IMAGING)
#define REGAL_NO_ENUM_GL_ARB_IMAGING
#endif

#if (defined(GL_ARB_IMAGING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_IMAGING)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_IMAGING)
#define REGAL_NO_TYPEDEF_GL_ARB_IMAGING
#endif

#if (defined(GL_ARB_IMAGING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_IMAGING)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_IMAGING)
#define REGAL_NO_NAMESPACE_GL_ARB_IMAGING
#endif

#if (defined(GL_ARB_IMAGING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_IMAGING)) && !defined(REGAL_NO_PLUGIN_GL_ARB_IMAGING)
#define REGAL_NO_PLUGIN_GL_ARB_IMAGING
#endif

#if (defined(GL_ARB_IMAGING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_IMAGING)) && !defined(REGAL_NO_DECLARATION_GL_ARB_IMAGING)
#define REGAL_NO_DECLARATION_GL_ARB_IMAGING
#endif

#ifndef GL_ARB_imaging
#define GL_ARB_imaging 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_IMAGING
#define GL_CONSTANT_COLOR                      0x8001     /* 32769 */
#define GL_ONE_MINUS_CONSTANT_COLOR            0x8002     /* 32770 */
#define GL_CONSTANT_ALPHA                      0x8003     /* 32771 */
#define GL_ONE_MINUS_CONSTANT_ALPHA            0x8004     /* 32772 */
#define GL_BLEND_COLOR                         0x8005     /* 32773 */
#define GL_FUNC_ADD                            0x8006     /* 32774 */
#define GL_MIN                                 0x8007     /* 32775 */
#define GL_MAX                                 0x8008     /* 32776 */
#define GL_BLEND_EQUATION                      0x8009     /* 32777 */
#define GL_FUNC_SUBTRACT                       0x800a     /* 32778 */
#define GL_FUNC_REVERSE_SUBTRACT               0x800b     /* 32779 */
#define GL_CONVOLUTION_1D                      0x8010     /* 32784 */
#define GL_CONVOLUTION_2D                      0x8011     /* 32785 */
#define GL_SEPARABLE_2D                        0x8012     /* 32786 */
#define GL_CONVOLUTION_BORDER_MODE             0x8013     /* 32787 */
#define GL_CONVOLUTION_FILTER_SCALE            0x8014     /* 32788 */
#define GL_CONVOLUTION_FILTER_BIAS             0x8015     /* 32789 */
#define GL_REDUCE                              0x8016     /* 32790 */
#define GL_CONVOLUTION_FORMAT                  0x8017     /* 32791 */
#define GL_CONVOLUTION_WIDTH                   0x8018     /* 32792 */
#define GL_CONVOLUTION_HEIGHT                  0x8019     /* 32793 */
#define GL_MAX_CONVOLUTION_WIDTH               0x801a     /* 32794 */
#define GL_MAX_CONVOLUTION_HEIGHT              0x801b     /* 32795 */
#define GL_POST_CONVOLUTION_RED_SCALE          0x801c     /* 32796 */
#define GL_POST_CONVOLUTION_GREEN_SCALE        0x801d     /* 32797 */
#define GL_POST_CONVOLUTION_BLUE_SCALE         0x801e     /* 32798 */
#define GL_POST_CONVOLUTION_ALPHA_SCALE        0x801f     /* 32799 */
#define GL_POST_CONVOLUTION_RED_BIAS           0x8020     /* 32800 */
#define GL_POST_CONVOLUTION_GREEN_BIAS         0x8021     /* 32801 */
#define GL_POST_CONVOLUTION_BLUE_BIAS          0x8022     /* 32802 */
#define GL_POST_CONVOLUTION_ALPHA_BIAS         0x8023     /* 32803 */
#define GL_HISTOGRAM                           0x8024     /* 32804 */
#define GL_PROXY_HISTOGRAM                     0x8025     /* 32805 */
#define GL_HISTOGRAM_WIDTH                     0x8026     /* 32806 */
#define GL_HISTOGRAM_FORMAT                    0x8027     /* 32807 */
#define GL_HISTOGRAM_RED_SIZE                  0x8028     /* 32808 */
#define GL_HISTOGRAM_GREEN_SIZE                0x8029     /* 32809 */
#define GL_HISTOGRAM_BLUE_SIZE                 0x802a     /* 32810 */
#define GL_HISTOGRAM_ALPHA_SIZE                0x802b     /* 32811 */
#define GL_HISTOGRAM_LUMINANCE_SIZE            0x802c     /* 32812 */
#define GL_HISTOGRAM_SINK                      0x802d     /* 32813 */
#define GL_MINMAX                              0x802e     /* 32814 */
#define GL_MINMAX_FORMAT                       0x802f     /* 32815 */
#define GL_MINMAX_SINK                         0x8030     /* 32816 */
#define GL_TABLE_TOO_LARGE                     0x8031     /* 32817 */
#define GL_COLOR_MATRIX                        0x80b1     /* 32945 */
#define GL_COLOR_MATRIX_STACK_DEPTH            0x80b2     /* 32946 */
#define GL_MAX_COLOR_MATRIX_STACK_DEPTH        0x80b3     /* 32947 */
#define GL_POST_COLOR_MATRIX_RED_SCALE         0x80b4     /* 32948 */
#define GL_POST_COLOR_MATRIX_GREEN_SCALE       0x80b5     /* 32949 */
#define GL_POST_COLOR_MATRIX_BLUE_SCALE        0x80b6     /* 32950 */
#define GL_POST_COLOR_MATRIX_ALPHA_SCALE       0x80b7     /* 32951 */
#define GL_POST_COLOR_MATRIX_RED_BIAS          0x80b8     /* 32952 */
#define GL_POST_COLOR_MATRIX_GREEN_BIAS        0x80b9     /* 32953 */
#define GL_POST_COLOR_MATRIX_BLUE_BIAS         0x80ba     /* 32954 */
#define GL_POST_COLOR_MATRIX_ALPHA_BIAS        0x80bb     /* 32955 */
#define GL_COLOR_TABLE                         0x80d0     /* 32976 */
#define GL_POST_CONVOLUTION_COLOR_TABLE        0x80d1     /* 32977 */
#define GL_POST_COLOR_MATRIX_COLOR_TABLE       0x80d2     /* 32978 */
#define GL_PROXY_COLOR_TABLE                   0x80d3     /* 32979 */
#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE  0x80d4     /* 32980 */
#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80d5     /* 32981 */
#define GL_COLOR_TABLE_SCALE                   0x80d6     /* 32982 */
#define GL_COLOR_TABLE_BIAS                    0x80d7     /* 32983 */
#define GL_COLOR_TABLE_FORMAT                  0x80d8     /* 32984 */
#define GL_COLOR_TABLE_WIDTH                   0x80d9     /* 32985 */
#define GL_COLOR_TABLE_RED_SIZE                0x80da     /* 32986 */
#define GL_COLOR_TABLE_GREEN_SIZE              0x80db     /* 32987 */
#define GL_COLOR_TABLE_BLUE_SIZE               0x80dc     /* 32988 */
#define GL_COLOR_TABLE_ALPHA_SIZE              0x80dd     /* 32989 */
#define GL_COLOR_TABLE_LUMINANCE_SIZE          0x80de     /* 32990 */
#define GL_COLOR_TABLE_INTENSITY_SIZE          0x80df     /* 32991 */
#define GL_IGNORE_BORDER                       0x8150     /* 33104 */
#define GL_CONSTANT_BORDER                     0x8151     /* 33105 */
#define GL_WRAP_BORDER                         0x8152     /* 33106 */
#define GL_REPLICATE_BORDER                    0x8153     /* 33107 */
#define GL_CONVOLUTION_BORDER_COLOR            0x8154     /* 33108 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_IMAGING
typedef void (REGAL_CALL *PFNGLCOLORSUBTABLEPROC)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOLORTABLEPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLCOLORTABLEPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLCOLORTABLEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONFILTER1DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONFILTER2DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat params);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONPARAMETERIPROC)(GLenum target, GLenum pname, GLint params);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLCOPYCOLORSUBTABLEPROC)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLCOPYCOLORTABLEPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLCOPYCONVOLUTIONFILTER1DPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLCOPYCONVOLUTIONFILTER2DPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLEPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLEPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type, GLvoid *table);
typedef void (REGAL_CALL *PFNGLGETCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type, GLvoid *image);
typedef void (REGAL_CALL *PFNGLGETCONVOLUTIONPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETCONVOLUTIONPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETHISTOGRAMPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETHISTOGRAMPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
typedef void (REGAL_CALL *PFNGLGETMINMAXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMINMAXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMINMAXPROC)(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values);
typedef void (REGAL_CALL *PFNGLGETSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
typedef void (REGAL_CALL *PFNGLHISTOGRAMPROC)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
typedef void (REGAL_CALL *PFNGLMINMAXPROC)(GLenum target, GLenum internalformat, GLboolean sink);
typedef void (REGAL_CALL *PFNGLRESETHISTOGRAMPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLRESETMINMAXPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLSEPARABLEFILTER2DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_IMAGING
#define glColorSubTable                     rglColorSubTable
#define glColorTable                        rglColorTable
#define glColorTableParameterfv             rglColorTableParameterfv
#define glColorTableParameteriv             rglColorTableParameteriv
#define glConvolutionFilter1D               rglConvolutionFilter1D
#define glConvolutionFilter2D               rglConvolutionFilter2D
#define glConvolutionParameterf             rglConvolutionParameterf
#define glConvolutionParameterfv            rglConvolutionParameterfv
#define glConvolutionParameteri             rglConvolutionParameteri
#define glConvolutionParameteriv            rglConvolutionParameteriv
#define glCopyColorSubTable                 rglCopyColorSubTable
#define glCopyColorTable                    rglCopyColorTable
#define glCopyConvolutionFilter1D           rglCopyConvolutionFilter1D
#define glCopyConvolutionFilter2D           rglCopyConvolutionFilter2D
#define glGetColorTable                     rglGetColorTable
#define glGetColorTableParameterfv          rglGetColorTableParameterfv
#define glGetColorTableParameteriv          rglGetColorTableParameteriv
#define glGetConvolutionFilter              rglGetConvolutionFilter
#define glGetConvolutionParameterfv         rglGetConvolutionParameterfv
#define glGetConvolutionParameteriv         rglGetConvolutionParameteriv
#define glGetHistogram                      rglGetHistogram
#define glGetHistogramParameterfv           rglGetHistogramParameterfv
#define glGetHistogramParameteriv           rglGetHistogramParameteriv
#define glGetMinmax                         rglGetMinmax
#define glGetMinmaxParameterfv              rglGetMinmaxParameterfv
#define glGetMinmaxParameteriv              rglGetMinmaxParameteriv
#define glGetSeparableFilter                rglGetSeparableFilter
#define glHistogram                         rglHistogram
#define glMinmax                            rglMinmax
#define glResetHistogram                    rglResetHistogram
#define glResetMinmax                       rglResetMinmax
#define glSeparableFilter2D                 rglSeparableFilter2D
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_IMAGING
REGAL_DECL void REGAL_CALL glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
REGAL_DECL void REGAL_CALL glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glColorTableParameteriv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
REGAL_DECL void REGAL_CALL glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
REGAL_DECL void REGAL_CALL glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params);
REGAL_DECL void REGAL_CALL glConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glConvolutionParameteri(GLenum target, GLenum pname, GLint params);
REGAL_DECL void REGAL_CALL glConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table);
REGAL_DECL void REGAL_CALL glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetColorTableParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image);
REGAL_DECL void REGAL_CALL glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
REGAL_DECL void REGAL_CALL glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetHistogramParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values);
REGAL_DECL void REGAL_CALL glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
REGAL_DECL void REGAL_CALL glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
REGAL_DECL void REGAL_CALL glMinmax(GLenum target, GLenum internalformat, GLboolean sink);
REGAL_DECL void REGAL_CALL glResetHistogram(GLenum target);
REGAL_DECL void REGAL_CALL glResetMinmax(GLenum target);
REGAL_DECL void REGAL_CALL glSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_IMAGING
REGAL_DECL void REGAL_CALL plugin_glColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
REGAL_DECL void REGAL_CALL plugin_glColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glColorTableParameteriv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
REGAL_DECL void REGAL_CALL plugin_glConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
REGAL_DECL void REGAL_CALL plugin_glConvolutionParameterf(GLenum target, GLenum pname, GLfloat params);
REGAL_DECL void REGAL_CALL plugin_glConvolutionParameterfv(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glConvolutionParameteri(GLenum target, GLenum pname, GLint params);
REGAL_DECL void REGAL_CALL plugin_glConvolutionParameteriv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glCopyColorSubTable(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glCopyColorTable(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glCopyConvolutionFilter1D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glCopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glGetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table);
REGAL_DECL void REGAL_CALL plugin_glGetColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetColorTableParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image);
REGAL_DECL void REGAL_CALL plugin_glGetConvolutionParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetConvolutionParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetHistogram(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
REGAL_DECL void REGAL_CALL plugin_glGetHistogramParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetHistogramParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMinmax(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values);
REGAL_DECL void REGAL_CALL plugin_glGetMinmaxParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMinmaxParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetSeparableFilter(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
REGAL_DECL void REGAL_CALL plugin_glHistogram(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
REGAL_DECL void REGAL_CALL plugin_glMinmax(GLenum target, GLenum internalformat, GLboolean sink);
REGAL_DECL void REGAL_CALL plugin_glResetHistogram(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glResetMinmax(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glSeparableFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
#endif

/**
 ** GL_ARB_indirect_parameters
 **/

#if (defined(GL_ARB_INDIRECT_PARAMETERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_INDIRECT_PARAMETERS)) && !defined(REGAL_NO_ENUM_GL_ARB_INDIRECT_PARAMETERS)
#define REGAL_NO_ENUM_GL_ARB_INDIRECT_PARAMETERS
#endif

#if (defined(GL_ARB_INDIRECT_PARAMETERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_INDIRECT_PARAMETERS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_INDIRECT_PARAMETERS)
#define REGAL_NO_TYPEDEF_GL_ARB_INDIRECT_PARAMETERS
#endif

#if (defined(GL_ARB_INDIRECT_PARAMETERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_INDIRECT_PARAMETERS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_INDIRECT_PARAMETERS)
#define REGAL_NO_NAMESPACE_GL_ARB_INDIRECT_PARAMETERS
#endif

#if (defined(GL_ARB_INDIRECT_PARAMETERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_INDIRECT_PARAMETERS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_INDIRECT_PARAMETERS)
#define REGAL_NO_PLUGIN_GL_ARB_INDIRECT_PARAMETERS
#endif

#if (defined(GL_ARB_INDIRECT_PARAMETERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_INDIRECT_PARAMETERS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_INDIRECT_PARAMETERS)
#define REGAL_NO_DECLARATION_GL_ARB_INDIRECT_PARAMETERS
#endif

#ifndef GL_ARB_indirect_parameters
#define GL_ARB_indirect_parameters 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_INDIRECT_PARAMETERS
#define GL_PARAMETER_BUFFER_ARB         0x80ee     /* 33006 */
#define GL_PARAMETER_BUFFER_BINDING_ARB 0x80ef     /* 33007 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_INDIRECT_PARAMETERS
typedef void (REGAL_CALL *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC)(GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
typedef void (REGAL_CALL *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC)(GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_INDIRECT_PARAMETERS
#define glMultiDrawArraysIndirectCountARB   rglMultiDrawArraysIndirectCountARB
#define glMultiDrawElementsIndirectCountARB rglMultiDrawElementsIndirectCountARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_INDIRECT_PARAMETERS
REGAL_DECL void REGAL_CALL glMultiDrawArraysIndirectCountARB(GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
REGAL_DECL void REGAL_CALL glMultiDrawElementsIndirectCountARB(GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_INDIRECT_PARAMETERS
REGAL_DECL void REGAL_CALL plugin_glMultiDrawArraysIndirectCountARB(GLenum mode, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawElementsIndirectCountARB(GLenum mode, GLenum type, const GLvoid *indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
#endif

/**
 ** GL_ARB_instanced_arrays
 **/

#if (defined(GL_ARB_INSTANCED_ARRAYS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_INSTANCED_ARRAYS)) && !defined(REGAL_NO_ENUM_GL_ARB_INSTANCED_ARRAYS)
#define REGAL_NO_ENUM_GL_ARB_INSTANCED_ARRAYS
#endif

#if (defined(GL_ARB_INSTANCED_ARRAYS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_INSTANCED_ARRAYS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_INSTANCED_ARRAYS)
#define REGAL_NO_TYPEDEF_GL_ARB_INSTANCED_ARRAYS
#endif

#if (defined(GL_ARB_INSTANCED_ARRAYS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_INSTANCED_ARRAYS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_INSTANCED_ARRAYS)
#define REGAL_NO_NAMESPACE_GL_ARB_INSTANCED_ARRAYS
#endif

#if (defined(GL_ARB_INSTANCED_ARRAYS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_INSTANCED_ARRAYS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_INSTANCED_ARRAYS)
#define REGAL_NO_PLUGIN_GL_ARB_INSTANCED_ARRAYS
#endif

#if (defined(GL_ARB_INSTANCED_ARRAYS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_INSTANCED_ARRAYS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_INSTANCED_ARRAYS)
#define REGAL_NO_DECLARATION_GL_ARB_INSTANCED_ARRAYS
#endif

#ifndef GL_ARB_instanced_arrays
#define GL_ARB_instanced_arrays 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_INSTANCED_ARRAYS
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88fe /* 35070 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_INSTANCED_ARRAYS
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBDIVISORARBPROC)(GLuint index, GLuint divisor);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_INSTANCED_ARRAYS
#define glVertexAttribDivisorARB            rglVertexAttribDivisorARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_INSTANCED_ARRAYS
REGAL_DECL void REGAL_CALL glVertexAttribDivisorARB(GLuint index, GLuint divisor);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_INSTANCED_ARRAYS
REGAL_DECL void REGAL_CALL plugin_glVertexAttribDivisorARB(GLuint index, GLuint divisor);
#endif

/**
 ** GL_ARB_internalformat_query
 **/

#if (defined(GL_ARB_INTERNALFORMAT_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY)) && !defined(REGAL_NO_ENUM_GL_ARB_INTERNALFORMAT_QUERY)
#define REGAL_NO_ENUM_GL_ARB_INTERNALFORMAT_QUERY
#endif

#if (defined(GL_ARB_INTERNALFORMAT_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_INTERNALFORMAT_QUERY)
#define REGAL_NO_TYPEDEF_GL_ARB_INTERNALFORMAT_QUERY
#endif

#if (defined(GL_ARB_INTERNALFORMAT_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_INTERNALFORMAT_QUERY)
#define REGAL_NO_NAMESPACE_GL_ARB_INTERNALFORMAT_QUERY
#endif

#if (defined(GL_ARB_INTERNALFORMAT_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_INTERNALFORMAT_QUERY)
#define REGAL_NO_PLUGIN_GL_ARB_INTERNALFORMAT_QUERY
#endif

#if (defined(GL_ARB_INTERNALFORMAT_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_INTERNALFORMAT_QUERY)
#define REGAL_NO_DECLARATION_GL_ARB_INTERNALFORMAT_QUERY
#endif

#ifndef GL_ARB_internalformat_query
#define GL_ARB_internalformat_query 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_INTERNALFORMAT_QUERY
#define GL_NUM_SAMPLE_COUNTS 0x9380 /* 37760 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_INTERNALFORMAT_QUERY
typedef void (REGAL_CALL *PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_INTERNALFORMAT_QUERY
#define glGetInternalformativ               rglGetInternalformativ
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_INTERNALFORMAT_QUERY
REGAL_DECL void REGAL_CALL glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_INTERNALFORMAT_QUERY
REGAL_DECL void REGAL_CALL plugin_glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params);
#endif

/**
 ** GL_ARB_internalformat_query2
 **/

#if (defined(GL_ARB_INTERNALFORMAT_QUERY2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY2)) && !defined(REGAL_NO_ENUM_GL_ARB_INTERNALFORMAT_QUERY2)
#define REGAL_NO_ENUM_GL_ARB_INTERNALFORMAT_QUERY2
#endif

#if (defined(GL_ARB_INTERNALFORMAT_QUERY2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY2)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_INTERNALFORMAT_QUERY2)
#define REGAL_NO_TYPEDEF_GL_ARB_INTERNALFORMAT_QUERY2
#endif

#if (defined(GL_ARB_INTERNALFORMAT_QUERY2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY2)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_INTERNALFORMAT_QUERY2)
#define REGAL_NO_NAMESPACE_GL_ARB_INTERNALFORMAT_QUERY2
#endif

#if (defined(GL_ARB_INTERNALFORMAT_QUERY2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY2)) && !defined(REGAL_NO_PLUGIN_GL_ARB_INTERNALFORMAT_QUERY2)
#define REGAL_NO_PLUGIN_GL_ARB_INTERNALFORMAT_QUERY2
#endif

#if (defined(GL_ARB_INTERNALFORMAT_QUERY2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_INTERNALFORMAT_QUERY2)) && !defined(REGAL_NO_DECLARATION_GL_ARB_INTERNALFORMAT_QUERY2)
#define REGAL_NO_DECLARATION_GL_ARB_INTERNALFORMAT_QUERY2
#endif

#ifndef GL_ARB_internalformat_query2
#define GL_ARB_internalformat_query2 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_INTERNALFORMAT_QUERY2
#define GL_INTERNALFORMAT_SUPPORTED               0x826f     /* 33391 */
#define GL_INTERNALFORMAT_PREFERRED               0x8270     /* 33392 */
#define GL_INTERNALFORMAT_RED_SIZE                0x8271     /* 33393 */
#define GL_INTERNALFORMAT_GREEN_SIZE              0x8272     /* 33394 */
#define GL_INTERNALFORMAT_BLUE_SIZE               0x8273     /* 33395 */
#define GL_INTERNALFORMAT_ALPHA_SIZE              0x8274     /* 33396 */
#define GL_INTERNALFORMAT_DEPTH_SIZE              0x8275     /* 33397 */
#define GL_INTERNALFORMAT_STENCIL_SIZE            0x8276     /* 33398 */
#define GL_INTERNALFORMAT_SHARED_SIZE             0x8277     /* 33399 */
#define GL_INTERNALFORMAT_RED_TYPE                0x8278     /* 33400 */
#define GL_INTERNALFORMAT_GREEN_TYPE              0x8279     /* 33401 */
#define GL_INTERNALFORMAT_BLUE_TYPE               0x827a     /* 33402 */
#define GL_INTERNALFORMAT_ALPHA_TYPE              0x827b     /* 33403 */
#define GL_INTERNALFORMAT_DEPTH_TYPE              0x827c     /* 33404 */
#define GL_INTERNALFORMAT_STENCIL_TYPE            0x827d     /* 33405 */
#define GL_MAX_WIDTH                              0x827e     /* 33406 */
#define GL_MAX_HEIGHT                             0x827f     /* 33407 */
#define GL_MAX_DEPTH                              0x8280     /* 33408 */
#define GL_MAX_LAYERS                             0x8281     /* 33409 */
#define GL_MAX_COMBINED_DIMENSIONS                0x8282     /* 33410 */
#define GL_COLOR_COMPONENTS                       0x8283     /* 33411 */
#define GL_DEPTH_COMPONENTS                       0x8284     /* 33412 */
#define GL_STENCIL_COMPONENTS                     0x8285     /* 33413 */
#define GL_COLOR_RENDERABLE                       0x8286     /* 33414 */
#define GL_DEPTH_RENDERABLE                       0x8287     /* 33415 */
#define GL_STENCIL_RENDERABLE                     0x8288     /* 33416 */
#define GL_FRAMEBUFFER_RENDERABLE                 0x8289     /* 33417 */
#define GL_FRAMEBUFFER_RENDERABLE_LAYERED         0x828a     /* 33418 */
#define GL_FRAMEBUFFER_BLEND                      0x828b     /* 33419 */
#define GL_READ_PIXELS                            0x828c     /* 33420 */
#define GL_READ_PIXELS_FORMAT                     0x828d     /* 33421 */
#define GL_READ_PIXELS_TYPE                       0x828e     /* 33422 */
#define GL_TEXTURE_IMAGE_FORMAT                   0x828f     /* 33423 */
#define GL_TEXTURE_IMAGE_TYPE                     0x8290     /* 33424 */
#define GL_GET_TEXTURE_IMAGE_FORMAT               0x8291     /* 33425 */
#define GL_GET_TEXTURE_IMAGE_TYPE                 0x8292     /* 33426 */
#define GL_MIPMAP                                 0x8293     /* 33427 */
#define GL_MANUAL_GENERATE_MIPMAP                 0x8294     /* 33428 */
#define GL_AUTO_GENERATE_MIPMAP                   0x8295     /* 33429 */
#define GL_COLOR_ENCODING                         0x8296     /* 33430 */
#define GL_SRGB_READ                              0x8297     /* 33431 */
#define GL_SRGB_WRITE                             0x8298     /* 33432 */
#define GL_SRGB_DECODE_ARB                        0x8299     /* 33433 */
#define GL_FILTER                                 0x829a     /* 33434 */
#define GL_VERTEX_TEXTURE                         0x829b     /* 33435 */
#define GL_TESS_CONTROL_TEXTURE                   0x829c     /* 33436 */
#define GL_TESS_EVALUATION_TEXTURE                0x829d     /* 33437 */
#define GL_GEOMETRY_TEXTURE                       0x829e     /* 33438 */
#define GL_FRAGMENT_TEXTURE                       0x829f     /* 33439 */
#define GL_COMPUTE_TEXTURE                        0x82a0     /* 33440 */
#define GL_TEXTURE_SHADOW                         0x82a1     /* 33441 */
#define GL_TEXTURE_GATHER                         0x82a2     /* 33442 */
#define GL_TEXTURE_GATHER_SHADOW                  0x82a3     /* 33443 */
#define GL_SHADER_IMAGE_LOAD                      0x82a4     /* 33444 */
#define GL_SHADER_IMAGE_STORE                     0x82a5     /* 33445 */
#define GL_SHADER_IMAGE_ATOMIC                    0x82a6     /* 33446 */
#define GL_IMAGE_TEXEL_SIZE                       0x82a7     /* 33447 */
#define GL_IMAGE_COMPATIBILITY_CLASS              0x82a8     /* 33448 */
#define GL_IMAGE_PIXEL_FORMAT                     0x82a9     /* 33449 */
#define GL_IMAGE_PIXEL_TYPE                       0x82aa     /* 33450 */
#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST    0x82ac     /* 33452 */
#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST  0x82ad     /* 33453 */
#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE   0x82ae     /* 33454 */
#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE 0x82af     /* 33455 */
#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH         0x82b1     /* 33457 */
#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT        0x82b2     /* 33458 */
#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE          0x82b3     /* 33459 */
#define GL_CLEAR_BUFFER                           0x82b4     /* 33460 */
#define GL_TEXTURE_VIEW                           0x82b5     /* 33461 */
#define GL_VIEW_COMPATIBILITY_CLASS               0x82b6     /* 33462 */
#define GL_FULL_SUPPORT                           0x82b7     /* 33463 */
#define GL_CAVEAT_SUPPORT                         0x82b8     /* 33464 */
#define GL_IMAGE_CLASS_4_X_32                     0x82b9     /* 33465 */
#define GL_IMAGE_CLASS_2_X_32                     0x82ba     /* 33466 */
#define GL_IMAGE_CLASS_1_X_32                     0x82bb     /* 33467 */
#define GL_IMAGE_CLASS_4_X_16                     0x82bc     /* 33468 */
#define GL_IMAGE_CLASS_2_X_16                     0x82bd     /* 33469 */
#define GL_IMAGE_CLASS_1_X_16                     0x82be     /* 33470 */
#define GL_IMAGE_CLASS_4_X_8                      0x82bf     /* 33471 */
#define GL_IMAGE_CLASS_2_X_8                      0x82c0     /* 33472 */
#define GL_IMAGE_CLASS_1_X_8                      0x82c1     /* 33473 */
#define GL_IMAGE_CLASS_11_11_10                   0x82c2     /* 33474 */
#define GL_IMAGE_CLASS_10_10_10_2                 0x82c3     /* 33475 */
#define GL_VIEW_CLASS_128_BITS                    0x82c4     /* 33476 */
#define GL_VIEW_CLASS_96_BITS                     0x82c5     /* 33477 */
#define GL_VIEW_CLASS_64_BITS                     0x82c6     /* 33478 */
#define GL_VIEW_CLASS_48_BITS                     0x82c7     /* 33479 */
#define GL_VIEW_CLASS_32_BITS                     0x82c8     /* 33480 */
#define GL_VIEW_CLASS_24_BITS                     0x82c9     /* 33481 */
#define GL_VIEW_CLASS_16_BITS                     0x82ca     /* 33482 */
#define GL_VIEW_CLASS_8_BITS                      0x82cb     /* 33483 */
#define GL_VIEW_CLASS_S3TC_DXT1_RGB               0x82cc     /* 33484 */
#define GL_VIEW_CLASS_S3TC_DXT1_RGBA              0x82cd     /* 33485 */
#define GL_VIEW_CLASS_S3TC_DXT3_RGBA              0x82ce     /* 33486 */
#define GL_VIEW_CLASS_S3TC_DXT5_RGBA              0x82cf     /* 33487 */
#define GL_VIEW_CLASS_RGTC1_RED                   0x82d0     /* 33488 */
#define GL_VIEW_CLASS_RGTC2_RG                    0x82d1     /* 33489 */
#define GL_VIEW_CLASS_BPTC_UNORM                  0x82d2     /* 33490 */
#define GL_VIEW_CLASS_BPTC_FLOAT                  0x82d3     /* 33491 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_INTERNALFORMAT_QUERY2
typedef void (REGAL_CALL *PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_INTERNALFORMAT_QUERY2
#define glGetInternalformati64v             rglGetInternalformati64v
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_INTERNALFORMAT_QUERY2
REGAL_DECL void REGAL_CALL glGetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_INTERNALFORMAT_QUERY2
REGAL_DECL void REGAL_CALL plugin_glGetInternalformati64v(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 *params);
#endif

/**
 ** GL_ARB_invalidate_subdata
 **/

#if (defined(GL_ARB_INVALIDATE_SUBDATA) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_INVALIDATE_SUBDATA)) && !defined(REGAL_NO_ENUM_GL_ARB_INVALIDATE_SUBDATA)
#define REGAL_NO_ENUM_GL_ARB_INVALIDATE_SUBDATA
#endif

#if (defined(GL_ARB_INVALIDATE_SUBDATA) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_INVALIDATE_SUBDATA)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_INVALIDATE_SUBDATA)
#define REGAL_NO_TYPEDEF_GL_ARB_INVALIDATE_SUBDATA
#endif

#if (defined(GL_ARB_INVALIDATE_SUBDATA) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_INVALIDATE_SUBDATA)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_INVALIDATE_SUBDATA)
#define REGAL_NO_NAMESPACE_GL_ARB_INVALIDATE_SUBDATA
#endif

#if (defined(GL_ARB_INVALIDATE_SUBDATA) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_INVALIDATE_SUBDATA)) && !defined(REGAL_NO_PLUGIN_GL_ARB_INVALIDATE_SUBDATA)
#define REGAL_NO_PLUGIN_GL_ARB_INVALIDATE_SUBDATA
#endif

#if (defined(GL_ARB_INVALIDATE_SUBDATA) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_INVALIDATE_SUBDATA)) && !defined(REGAL_NO_DECLARATION_GL_ARB_INVALIDATE_SUBDATA)
#define REGAL_NO_DECLARATION_GL_ARB_INVALIDATE_SUBDATA
#endif

#ifndef GL_ARB_invalidate_subdata
#define GL_ARB_invalidate_subdata 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_INVALIDATE_SUBDATA
typedef void (REGAL_CALL *PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer);
typedef void (REGAL_CALL *PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
typedef void (REGAL_CALL *PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum *attachments);
typedef void (REGAL_CALL *PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_INVALIDATE_SUBDATA
#define glInvalidateBufferData              rglInvalidateBufferData
#define glInvalidateBufferSubData           rglInvalidateBufferSubData
#define glInvalidateFramebuffer             rglInvalidateFramebuffer
#define glInvalidateSubFramebuffer          rglInvalidateSubFramebuffer
#define glInvalidateTexImage                rglInvalidateTexImage
#define glInvalidateTexSubImage             rglInvalidateTexSubImage
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_INVALIDATE_SUBDATA
REGAL_DECL void REGAL_CALL glInvalidateBufferData(GLuint buffer);
REGAL_DECL void REGAL_CALL glInvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length);
REGAL_DECL void REGAL_CALL glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);
REGAL_DECL void REGAL_CALL glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glInvalidateTexImage(GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glInvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_INVALIDATE_SUBDATA
REGAL_DECL void REGAL_CALL plugin_glInvalidateBufferData(GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glInvalidateBufferSubData(GLuint buffer, GLintptr offset, GLsizeiptr length);
REGAL_DECL void REGAL_CALL plugin_glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments);
REGAL_DECL void REGAL_CALL plugin_glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum *attachments, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glInvalidateTexImage(GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glInvalidateTexSubImage(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
#endif

/**
 ** GL_ARB_map_buffer_alignment
 **/

#if (defined(GL_ARB_MAP_BUFFER_ALIGNMENT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_ALIGNMENT)) && !defined(REGAL_NO_ENUM_GL_ARB_MAP_BUFFER_ALIGNMENT)
#define REGAL_NO_ENUM_GL_ARB_MAP_BUFFER_ALIGNMENT
#endif

#if (defined(GL_ARB_MAP_BUFFER_ALIGNMENT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_ALIGNMENT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_MAP_BUFFER_ALIGNMENT)
#define REGAL_NO_TYPEDEF_GL_ARB_MAP_BUFFER_ALIGNMENT
#endif

#if (defined(GL_ARB_MAP_BUFFER_ALIGNMENT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_ALIGNMENT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_MAP_BUFFER_ALIGNMENT)
#define REGAL_NO_NAMESPACE_GL_ARB_MAP_BUFFER_ALIGNMENT
#endif

#if (defined(GL_ARB_MAP_BUFFER_ALIGNMENT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_ALIGNMENT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_MAP_BUFFER_ALIGNMENT)
#define REGAL_NO_PLUGIN_GL_ARB_MAP_BUFFER_ALIGNMENT
#endif

#if (defined(GL_ARB_MAP_BUFFER_ALIGNMENT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_ALIGNMENT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_MAP_BUFFER_ALIGNMENT)
#define REGAL_NO_DECLARATION_GL_ARB_MAP_BUFFER_ALIGNMENT
#endif

#ifndef GL_ARB_map_buffer_alignment
#define GL_ARB_map_buffer_alignment 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_MAP_BUFFER_ALIGNMENT
#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90bc /* 37052 */
#endif

/**
 ** GL_ARB_map_buffer_range
 **/

#if (defined(GL_ARB_MAP_BUFFER_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_ENUM_GL_ARB_MAP_BUFFER_RANGE)
#define REGAL_NO_ENUM_GL_ARB_MAP_BUFFER_RANGE
#endif

#if (defined(GL_ARB_MAP_BUFFER_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_MAP_BUFFER_RANGE)
#define REGAL_NO_TYPEDEF_GL_ARB_MAP_BUFFER_RANGE
#endif

#if (defined(GL_ARB_MAP_BUFFER_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_MAP_BUFFER_RANGE)
#define REGAL_NO_NAMESPACE_GL_ARB_MAP_BUFFER_RANGE
#endif

#if (defined(GL_ARB_MAP_BUFFER_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_MAP_BUFFER_RANGE)
#define REGAL_NO_PLUGIN_GL_ARB_MAP_BUFFER_RANGE
#endif

#if (defined(GL_ARB_MAP_BUFFER_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_MAP_BUFFER_RANGE)
#define REGAL_NO_DECLARATION_GL_ARB_MAP_BUFFER_RANGE
#endif

#ifndef GL_ARB_map_buffer_range
#define GL_ARB_map_buffer_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_MAP_BUFFER_RANGE
#define GL_MAP_READ_BIT              0x1
#define GL_MAP_FLUSH_EXPLICIT_BIT    0x10     /* 16 */
#define GL_MAP_WRITE_BIT             0x2
#define GL_MAP_UNSYNCHRONIZED_BIT    0x20     /* 32 */
#define GL_MAP_INVALIDATE_RANGE_BIT  0x4
#define GL_MAP_INVALIDATE_BUFFER_BIT 0x8
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_MAP_BUFFER_RANGE
typedef GLvoid *(REGAL_CALL *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
typedef void (REGAL_CALL *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_MAP_BUFFER_RANGE
#define glFlushMappedBufferRange            rglFlushMappedBufferRange
#define glMapBufferRange                    rglMapBufferRange
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_MAP_BUFFER_RANGE
REGAL_DECL GLvoid *REGAL_CALL glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
REGAL_DECL void REGAL_CALL glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_MAP_BUFFER_RANGE
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
REGAL_DECL void REGAL_CALL plugin_glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
#endif

/**
 ** GL_ARB_matrix_palette
 **/

#if (defined(GL_ARB_MATRIX_PALETTE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_MATRIX_PALETTE)) && !defined(REGAL_NO_ENUM_GL_ARB_MATRIX_PALETTE)
#define REGAL_NO_ENUM_GL_ARB_MATRIX_PALETTE
#endif

#if (defined(GL_ARB_MATRIX_PALETTE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_MATRIX_PALETTE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_MATRIX_PALETTE)
#define REGAL_NO_TYPEDEF_GL_ARB_MATRIX_PALETTE
#endif

#if (defined(GL_ARB_MATRIX_PALETTE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_MATRIX_PALETTE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_MATRIX_PALETTE)
#define REGAL_NO_NAMESPACE_GL_ARB_MATRIX_PALETTE
#endif

#if (defined(GL_ARB_MATRIX_PALETTE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_MATRIX_PALETTE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_MATRIX_PALETTE)
#define REGAL_NO_PLUGIN_GL_ARB_MATRIX_PALETTE
#endif

#if (defined(GL_ARB_MATRIX_PALETTE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_MATRIX_PALETTE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_MATRIX_PALETTE)
#define REGAL_NO_DECLARATION_GL_ARB_MATRIX_PALETTE
#endif

#ifndef GL_ARB_matrix_palette
#define GL_ARB_matrix_palette 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_MATRIX_PALETTE
#define GL_MATRIX_PALETTE_ARB                 0x8840     /* 34880 */
#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841     /* 34881 */
#define GL_MAX_PALETTE_MATRICES_ARB           0x8842     /* 34882 */
#define GL_CURRENT_PALETTE_MATRIX_ARB         0x8843     /* 34883 */
#define GL_MATRIX_INDEX_ARRAY_ARB             0x8844     /* 34884 */
#define GL_CURRENT_MATRIX_INDEX_ARB           0x8845     /* 34885 */
#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB        0x8846     /* 34886 */
#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB        0x8847     /* 34887 */
#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB      0x8848     /* 34888 */
#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB     0x8849     /* 34889 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_MATRIX_PALETTE
typedef void (REGAL_CALL *PFNGLCURRENTPALETTEMATRIXARBPROC)(GLint index);
typedef void (REGAL_CALL *PFNGLMATRIXINDEXPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLMATRIXINDEXUBVARBPROC)(GLint size, const GLubyte *indices);
typedef void (REGAL_CALL *PFNGLMATRIXINDEXUIVARBPROC)(GLint size, const GLuint *indices);
typedef void (REGAL_CALL *PFNGLMATRIXINDEXUSVARBPROC)(GLint size, const GLushort *indices);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_MATRIX_PALETTE
#define glCurrentPaletteMatrixARB           rglCurrentPaletteMatrixARB
#define glMatrixIndexPointerARB             rglMatrixIndexPointerARB
#define glMatrixIndexubvARB                 rglMatrixIndexubvARB
#define glMatrixIndexuivARB                 rglMatrixIndexuivARB
#define glMatrixIndexusvARB                 rglMatrixIndexusvARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_MATRIX_PALETTE
REGAL_DECL void REGAL_CALL glCurrentPaletteMatrixARB(GLint index);
REGAL_DECL void REGAL_CALL glMatrixIndexPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glMatrixIndexubvARB(GLint size, const GLubyte *indices);
REGAL_DECL void REGAL_CALL glMatrixIndexuivARB(GLint size, const GLuint *indices);
REGAL_DECL void REGAL_CALL glMatrixIndexusvARB(GLint size, const GLushort *indices);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_MATRIX_PALETTE
REGAL_DECL void REGAL_CALL plugin_glCurrentPaletteMatrixARB(GLint index);
REGAL_DECL void REGAL_CALL plugin_glMatrixIndexPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glMatrixIndexubvARB(GLint size, const GLubyte *indices);
REGAL_DECL void REGAL_CALL plugin_glMatrixIndexuivARB(GLint size, const GLuint *indices);
REGAL_DECL void REGAL_CALL plugin_glMatrixIndexusvARB(GLint size, const GLushort *indices);
#endif

/**
 ** GL_ARB_multi_bind
 **/

#if (defined(GL_ARB_MULTI_BIND) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_MULTI_BIND)) && !defined(REGAL_NO_ENUM_GL_ARB_MULTI_BIND)
#define REGAL_NO_ENUM_GL_ARB_MULTI_BIND
#endif

#if (defined(GL_ARB_MULTI_BIND) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_MULTI_BIND)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_MULTI_BIND)
#define REGAL_NO_TYPEDEF_GL_ARB_MULTI_BIND
#endif

#if (defined(GL_ARB_MULTI_BIND) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_MULTI_BIND)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_MULTI_BIND)
#define REGAL_NO_NAMESPACE_GL_ARB_MULTI_BIND
#endif

#if (defined(GL_ARB_MULTI_BIND) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_MULTI_BIND)) && !defined(REGAL_NO_PLUGIN_GL_ARB_MULTI_BIND)
#define REGAL_NO_PLUGIN_GL_ARB_MULTI_BIND
#endif

#if (defined(GL_ARB_MULTI_BIND) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_MULTI_BIND)) && !defined(REGAL_NO_DECLARATION_GL_ARB_MULTI_BIND)
#define REGAL_NO_DECLARATION_GL_ARB_MULTI_BIND
#endif

#ifndef GL_ARB_multi_bind
#define GL_ARB_multi_bind 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_MULTI_BIND
typedef void (REGAL_CALL *PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
typedef void (REGAL_CALL *PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
typedef void (REGAL_CALL *PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures);
typedef void (REGAL_CALL *PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count, const GLuint *samplers);
typedef void (REGAL_CALL *PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count, const GLuint *textures);
typedef void (REGAL_CALL *PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_MULTI_BIND
#define glBindBuffersBase                   rglBindBuffersBase
#define glBindBuffersRange                  rglBindBuffersRange
#define glBindImageTextures                 rglBindImageTextures
#define glBindSamplers                      rglBindSamplers
#define glBindTextures                      rglBindTextures
#define glBindVertexBuffers                 rglBindVertexBuffers
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_MULTI_BIND
REGAL_DECL void REGAL_CALL glBindBuffersBase(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
REGAL_DECL void REGAL_CALL glBindBuffersRange(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
REGAL_DECL void REGAL_CALL glBindImageTextures(GLuint first, GLsizei count, const GLuint *textures);
REGAL_DECL void REGAL_CALL glBindSamplers(GLuint first, GLsizei count, const GLuint *samplers);
REGAL_DECL void REGAL_CALL glBindTextures(GLuint first, GLsizei count, const GLuint *textures);
REGAL_DECL void REGAL_CALL glBindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_MULTI_BIND
REGAL_DECL void REGAL_CALL plugin_glBindBuffersBase(GLenum target, GLuint first, GLsizei count, const GLuint *buffers);
REGAL_DECL void REGAL_CALL plugin_glBindBuffersRange(GLenum target, GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizeiptr *sizes);
REGAL_DECL void REGAL_CALL plugin_glBindImageTextures(GLuint first, GLsizei count, const GLuint *textures);
REGAL_DECL void REGAL_CALL plugin_glBindSamplers(GLuint first, GLsizei count, const GLuint *samplers);
REGAL_DECL void REGAL_CALL plugin_glBindTextures(GLuint first, GLsizei count, const GLuint *textures);
REGAL_DECL void REGAL_CALL plugin_glBindVertexBuffers(GLuint first, GLsizei count, const GLuint *buffers, const GLintptr *offsets, const GLsizei *strides);
#endif

/**
 ** GL_ARB_multi_draw_indirect
 **/

#if (defined(GL_ARB_MULTI_DRAW_INDIRECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_ENUM_GL_ARB_MULTI_DRAW_INDIRECT)
#define REGAL_NO_ENUM_GL_ARB_MULTI_DRAW_INDIRECT
#endif

#if (defined(GL_ARB_MULTI_DRAW_INDIRECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_MULTI_DRAW_INDIRECT)
#define REGAL_NO_TYPEDEF_GL_ARB_MULTI_DRAW_INDIRECT
#endif

#if (defined(GL_ARB_MULTI_DRAW_INDIRECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_MULTI_DRAW_INDIRECT)
#define REGAL_NO_NAMESPACE_GL_ARB_MULTI_DRAW_INDIRECT
#endif

#if (defined(GL_ARB_MULTI_DRAW_INDIRECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_MULTI_DRAW_INDIRECT)
#define REGAL_NO_PLUGIN_GL_ARB_MULTI_DRAW_INDIRECT
#endif

#if (defined(GL_ARB_MULTI_DRAW_INDIRECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_MULTI_DRAW_INDIRECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_MULTI_DRAW_INDIRECT)
#define REGAL_NO_DECLARATION_GL_ARB_MULTI_DRAW_INDIRECT
#endif

#ifndef GL_ARB_multi_draw_indirect
#define GL_ARB_multi_draw_indirect 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_MULTI_DRAW_INDIRECT
typedef void (REGAL_CALL *PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
typedef void (REGAL_CALL *PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_MULTI_DRAW_INDIRECT
#define glMultiDrawArraysIndirect           rglMultiDrawArraysIndirect
#define glMultiDrawElementsIndirect         rglMultiDrawElementsIndirect
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_MULTI_DRAW_INDIRECT
REGAL_DECL void REGAL_CALL glMultiDrawArraysIndirect(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
REGAL_DECL void REGAL_CALL glMultiDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_MULTI_DRAW_INDIRECT
REGAL_DECL void REGAL_CALL plugin_glMultiDrawArraysIndirect(GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawElementsIndirect(GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride);
#endif

/**
 ** GL_ARB_multisample
 **/

#if (defined(GL_ARB_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_ARB_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_ARB_MULTISAMPLE
#endif

#if (defined(GL_ARB_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_ARB_MULTISAMPLE
#endif

#if (defined(GL_ARB_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_ARB_MULTISAMPLE
#endif

#if (defined(GL_ARB_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_ARB_MULTISAMPLE
#endif

#if (defined(GL_ARB_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_ARB_MULTISAMPLE
#endif

#ifndef GL_ARB_multisample
#define GL_ARB_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_MULTISAMPLE
#define GL_MULTISAMPLE_BIT_ARB          0x20000000     /* 536870912 */
#define GL_MULTISAMPLE_ARB              0x809d         /* 32925 */
#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809e         /* 32926 */
#define GL_SAMPLE_ALPHA_TO_ONE_ARB      0x809f         /* 32927 */
#define GL_SAMPLE_COVERAGE_ARB          0x80a0         /* 32928 */
#define GL_SAMPLE_BUFFERS_ARB           0x80a8         /* 32936 */
#define GL_SAMPLES_ARB                  0x80a9         /* 32937 */
#define GL_SAMPLE_COVERAGE_VALUE_ARB    0x80aa         /* 32938 */
#define GL_SAMPLE_COVERAGE_INVERT_ARB   0x80ab         /* 32939 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLSAMPLECOVERAGEARBPROC)(GLclampf value, GLboolean invert);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_MULTISAMPLE
#define glSampleCoverageARB                 rglSampleCoverageARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_MULTISAMPLE
REGAL_DECL void REGAL_CALL glSampleCoverageARB(GLclampf value, GLboolean invert);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glSampleCoverageARB(GLclampf value, GLboolean invert);
#endif

/**
 ** GL_ARB_multitexture
 **/

#if (defined(GL_ARB_MULTITEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_MULTITEXTURE)) && !defined(REGAL_NO_ENUM_GL_ARB_MULTITEXTURE)
#define REGAL_NO_ENUM_GL_ARB_MULTITEXTURE
#endif

#if (defined(GL_ARB_MULTITEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_MULTITEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_MULTITEXTURE)
#define REGAL_NO_TYPEDEF_GL_ARB_MULTITEXTURE
#endif

#if (defined(GL_ARB_MULTITEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_MULTITEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_MULTITEXTURE)
#define REGAL_NO_NAMESPACE_GL_ARB_MULTITEXTURE
#endif

#if (defined(GL_ARB_MULTITEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_MULTITEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_MULTITEXTURE)
#define REGAL_NO_PLUGIN_GL_ARB_MULTITEXTURE
#endif

#if (defined(GL_ARB_MULTITEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_MULTITEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_MULTITEXTURE)
#define REGAL_NO_DECLARATION_GL_ARB_MULTITEXTURE
#endif

#ifndef GL_ARB_multitexture
#define GL_ARB_multitexture 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_MULTITEXTURE
#define GL_TEXTURE0_ARB              0x84c0     /* 33984 */
#define GL_TEXTURE1_ARB              0x84c1     /* 33985 */
#define GL_TEXTURE2_ARB              0x84c2     /* 33986 */
#define GL_TEXTURE3_ARB              0x84c3     /* 33987 */
#define GL_TEXTURE4_ARB              0x84c4     /* 33988 */
#define GL_TEXTURE5_ARB              0x84c5     /* 33989 */
#define GL_TEXTURE6_ARB              0x84c6     /* 33990 */
#define GL_TEXTURE7_ARB              0x84c7     /* 33991 */
#define GL_TEXTURE8_ARB              0x84c8     /* 33992 */
#define GL_TEXTURE9_ARB              0x84c9     /* 33993 */
#define GL_TEXTURE10_ARB             0x84ca     /* 33994 */
#define GL_TEXTURE11_ARB             0x84cb     /* 33995 */
#define GL_TEXTURE12_ARB             0x84cc     /* 33996 */
#define GL_TEXTURE13_ARB             0x84cd     /* 33997 */
#define GL_TEXTURE14_ARB             0x84ce     /* 33998 */
#define GL_TEXTURE15_ARB             0x84cf     /* 33999 */
#define GL_TEXTURE16_ARB             0x84d0     /* 34000 */
#define GL_TEXTURE17_ARB             0x84d1     /* 34001 */
#define GL_TEXTURE18_ARB             0x84d2     /* 34002 */
#define GL_TEXTURE19_ARB             0x84d3     /* 34003 */
#define GL_TEXTURE20_ARB             0x84d4     /* 34004 */
#define GL_TEXTURE21_ARB             0x84d5     /* 34005 */
#define GL_TEXTURE22_ARB             0x84d6     /* 34006 */
#define GL_TEXTURE23_ARB             0x84d7     /* 34007 */
#define GL_TEXTURE24_ARB             0x84d8     /* 34008 */
#define GL_TEXTURE25_ARB             0x84d9     /* 34009 */
#define GL_TEXTURE26_ARB             0x84da     /* 34010 */
#define GL_TEXTURE27_ARB             0x84db     /* 34011 */
#define GL_TEXTURE28_ARB             0x84dc     /* 34012 */
#define GL_TEXTURE29_ARB             0x84dd     /* 34013 */
#define GL_TEXTURE30_ARB             0x84de     /* 34014 */
#define GL_TEXTURE31_ARB             0x84df     /* 34015 */
#define GL_ACTIVE_TEXTURE_ARB        0x84e0     /* 34016 */
#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84e1     /* 34017 */
#define GL_MAX_TEXTURE_UNITS_ARB     0x84e2     /* 34018 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_MULTITEXTURE
typedef void (REGAL_CALL *PFNGLACTIVETEXTUREARBPROC)(GLenum texture);
typedef void (REGAL_CALL *PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort *v);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_MULTITEXTURE
#define glActiveTextureARB                  rglActiveTextureARB
#define glClientActiveTextureARB            rglClientActiveTextureARB
#define glMultiTexCoord1dARB                rglMultiTexCoord1dARB
#define glMultiTexCoord1dvARB               rglMultiTexCoord1dvARB
#define glMultiTexCoord1fARB                rglMultiTexCoord1fARB
#define glMultiTexCoord1fvARB               rglMultiTexCoord1fvARB
#define glMultiTexCoord1iARB                rglMultiTexCoord1iARB
#define glMultiTexCoord1ivARB               rglMultiTexCoord1ivARB
#define glMultiTexCoord1sARB                rglMultiTexCoord1sARB
#define glMultiTexCoord1svARB               rglMultiTexCoord1svARB
#define glMultiTexCoord2dARB                rglMultiTexCoord2dARB
#define glMultiTexCoord2dvARB               rglMultiTexCoord2dvARB
#define glMultiTexCoord2fARB                rglMultiTexCoord2fARB
#define glMultiTexCoord2fvARB               rglMultiTexCoord2fvARB
#define glMultiTexCoord2iARB                rglMultiTexCoord2iARB
#define glMultiTexCoord2ivARB               rglMultiTexCoord2ivARB
#define glMultiTexCoord2sARB                rglMultiTexCoord2sARB
#define glMultiTexCoord2svARB               rglMultiTexCoord2svARB
#define glMultiTexCoord3dARB                rglMultiTexCoord3dARB
#define glMultiTexCoord3dvARB               rglMultiTexCoord3dvARB
#define glMultiTexCoord3fARB                rglMultiTexCoord3fARB
#define glMultiTexCoord3fvARB               rglMultiTexCoord3fvARB
#define glMultiTexCoord3iARB                rglMultiTexCoord3iARB
#define glMultiTexCoord3ivARB               rglMultiTexCoord3ivARB
#define glMultiTexCoord3sARB                rglMultiTexCoord3sARB
#define glMultiTexCoord3svARB               rglMultiTexCoord3svARB
#define glMultiTexCoord4dARB                rglMultiTexCoord4dARB
#define glMultiTexCoord4dvARB               rglMultiTexCoord4dvARB
#define glMultiTexCoord4fARB                rglMultiTexCoord4fARB
#define glMultiTexCoord4fvARB               rglMultiTexCoord4fvARB
#define glMultiTexCoord4iARB                rglMultiTexCoord4iARB
#define glMultiTexCoord4ivARB               rglMultiTexCoord4ivARB
#define glMultiTexCoord4sARB                rglMultiTexCoord4sARB
#define glMultiTexCoord4svARB               rglMultiTexCoord4svARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_MULTITEXTURE
REGAL_DECL void REGAL_CALL glActiveTextureARB(GLenum texture);
REGAL_DECL void REGAL_CALL glClientActiveTextureARB(GLenum texture);
REGAL_DECL void REGAL_CALL glMultiTexCoord1dARB(GLenum target, GLdouble s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1dvARB(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord1fARB(GLenum target, GLfloat s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1fvARB(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord1iARB(GLenum target, GLint s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1ivARB(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord1sARB(GLenum target, GLshort s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1svARB(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2dvARB(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2fvARB(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2iARB(GLenum target, GLint s, GLint t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2ivARB(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2svARB(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3dvARB(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3fvARB(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3ivARB(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3svARB(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4dvARB(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4ivARB(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4svARB(GLenum target, const GLshort *v);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_MULTITEXTURE
REGAL_DECL void REGAL_CALL plugin_glActiveTextureARB(GLenum texture);
REGAL_DECL void REGAL_CALL plugin_glClientActiveTextureARB(GLenum texture);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1dARB(GLenum target, GLdouble s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1dvARB(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1fARB(GLenum target, GLfloat s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1fvARB(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1iARB(GLenum target, GLint s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1ivARB(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1sARB(GLenum target, GLshort s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1svARB(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2dvARB(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2fvARB(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2iARB(GLenum target, GLint s, GLint t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2ivARB(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2svARB(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3dvARB(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3fvARB(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3ivARB(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3svARB(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4dvARB(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4ivARB(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4svARB(GLenum target, const GLshort *v);
#endif

/**
 ** GL_ARB_occlusion_query
 **/

#if (defined(GL_ARB_OCCLUSION_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY)) && !defined(REGAL_NO_ENUM_GL_ARB_OCCLUSION_QUERY)
#define REGAL_NO_ENUM_GL_ARB_OCCLUSION_QUERY
#endif

#if (defined(GL_ARB_OCCLUSION_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_OCCLUSION_QUERY)
#define REGAL_NO_TYPEDEF_GL_ARB_OCCLUSION_QUERY
#endif

#if (defined(GL_ARB_OCCLUSION_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_OCCLUSION_QUERY)
#define REGAL_NO_NAMESPACE_GL_ARB_OCCLUSION_QUERY
#endif

#if (defined(GL_ARB_OCCLUSION_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_OCCLUSION_QUERY)
#define REGAL_NO_PLUGIN_GL_ARB_OCCLUSION_QUERY
#endif

#if (defined(GL_ARB_OCCLUSION_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_OCCLUSION_QUERY)
#define REGAL_NO_DECLARATION_GL_ARB_OCCLUSION_QUERY
#endif

#ifndef GL_ARB_occlusion_query
#define GL_ARB_occlusion_query 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_OCCLUSION_QUERY
#define GL_QUERY_COUNTER_BITS_ARB     0x8864     /* 34916 */
#define GL_CURRENT_QUERY_ARB          0x8865     /* 34917 */
#define GL_QUERY_RESULT_ARB           0x8866     /* 34918 */
#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867     /* 34919 */
#define GL_SAMPLES_PASSED_ARB         0x8914     /* 35092 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_OCCLUSION_QUERY
typedef GLboolean (REGAL_CALL *PFNGLISQUERYARBPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLBEGINQUERYARBPROC)(GLenum target, GLuint id);
typedef void (REGAL_CALL *PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint *ids);
typedef void (REGAL_CALL *PFNGLENDQUERYARBPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint *ids);
typedef void (REGAL_CALL *PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTIVARBPROC)(GLuint id, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_OCCLUSION_QUERY
#define glBeginQueryARB                     rglBeginQueryARB
#define glDeleteQueriesARB                  rglDeleteQueriesARB
#define glEndQueryARB                       rglEndQueryARB
#define glGenQueriesARB                     rglGenQueriesARB
#define glGetQueryObjectivARB               rglGetQueryObjectivARB
#define glGetQueryObjectuivARB              rglGetQueryObjectuivARB
#define glGetQueryivARB                     rglGetQueryivARB
#define glIsQueryARB                        rglIsQueryARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_OCCLUSION_QUERY
REGAL_DECL GLboolean REGAL_CALL glIsQueryARB(GLuint id);
REGAL_DECL void REGAL_CALL glBeginQueryARB(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL glDeleteQueriesARB(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL glEndQueryARB(GLenum target);
REGAL_DECL void REGAL_CALL glGenQueriesARB(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL glGetQueryObjectivARB(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glGetQueryivARB(GLenum target, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_OCCLUSION_QUERY
REGAL_DECL GLboolean REGAL_CALL plugin_glIsQueryARB(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glBeginQueryARB(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDeleteQueriesARB(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glEndQueryARB(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glGenQueriesARB(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjectivARB(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetQueryivARB(GLenum target, GLenum pname, GLint *params);
#endif

/**
 ** GL_ARB_occlusion_query2
 **/

#if (defined(GL_ARB_OCCLUSION_QUERY2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY2)) && !defined(REGAL_NO_ENUM_GL_ARB_OCCLUSION_QUERY2)
#define REGAL_NO_ENUM_GL_ARB_OCCLUSION_QUERY2
#endif

#if (defined(GL_ARB_OCCLUSION_QUERY2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY2)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_OCCLUSION_QUERY2)
#define REGAL_NO_TYPEDEF_GL_ARB_OCCLUSION_QUERY2
#endif

#if (defined(GL_ARB_OCCLUSION_QUERY2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY2)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_OCCLUSION_QUERY2)
#define REGAL_NO_NAMESPACE_GL_ARB_OCCLUSION_QUERY2
#endif

#if (defined(GL_ARB_OCCLUSION_QUERY2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY2)) && !defined(REGAL_NO_PLUGIN_GL_ARB_OCCLUSION_QUERY2)
#define REGAL_NO_PLUGIN_GL_ARB_OCCLUSION_QUERY2
#endif

#if (defined(GL_ARB_OCCLUSION_QUERY2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_OCCLUSION_QUERY2)) && !defined(REGAL_NO_DECLARATION_GL_ARB_OCCLUSION_QUERY2)
#define REGAL_NO_DECLARATION_GL_ARB_OCCLUSION_QUERY2
#endif

#ifndef GL_ARB_occlusion_query2
#define GL_ARB_occlusion_query2 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_OCCLUSION_QUERY2
#define GL_ANY_SAMPLES_PASSED 0x8c2f /* 35887 */
#endif

/**
 ** GL_ARB_pixel_buffer_object
 **/

#if (defined(GL_ARB_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_PIXEL_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_PIXEL_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_PIXEL_BUFFER_OBJECT
#endif

#ifndef GL_ARB_pixel_buffer_object
#define GL_ARB_pixel_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_PIXEL_BUFFER_OBJECT
#define GL_PIXEL_PACK_BUFFER_ARB           0x88eb     /* 35051 */
#define GL_PIXEL_UNPACK_BUFFER_ARB         0x88ec     /* 35052 */
#define GL_PIXEL_PACK_BUFFER_BINDING_ARB   0x88ed     /* 35053 */
#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88ef     /* 35055 */
#endif

/**
 ** GL_ARB_point_parameters
 **/

#if (defined(GL_ARB_POINT_PARAMETERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_POINT_PARAMETERS)) && !defined(REGAL_NO_ENUM_GL_ARB_POINT_PARAMETERS)
#define REGAL_NO_ENUM_GL_ARB_POINT_PARAMETERS
#endif

#if (defined(GL_ARB_POINT_PARAMETERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_POINT_PARAMETERS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_POINT_PARAMETERS)
#define REGAL_NO_TYPEDEF_GL_ARB_POINT_PARAMETERS
#endif

#if (defined(GL_ARB_POINT_PARAMETERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_POINT_PARAMETERS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_POINT_PARAMETERS)
#define REGAL_NO_NAMESPACE_GL_ARB_POINT_PARAMETERS
#endif

#if (defined(GL_ARB_POINT_PARAMETERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_POINT_PARAMETERS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_POINT_PARAMETERS)
#define REGAL_NO_PLUGIN_GL_ARB_POINT_PARAMETERS
#endif

#if (defined(GL_ARB_POINT_PARAMETERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_POINT_PARAMETERS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_POINT_PARAMETERS)
#define REGAL_NO_DECLARATION_GL_ARB_POINT_PARAMETERS
#endif

#ifndef GL_ARB_point_parameters
#define GL_ARB_point_parameters 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_POINT_PARAMETERS
#define GL_POINT_SIZE_MIN_ARB             0x8126     /* 33062 */
#define GL_POINT_SIZE_MAX_ARB             0x8127     /* 33063 */
#define GL_POINT_FADE_THRESHOLD_SIZE_ARB  0x8128     /* 33064 */
#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129     /* 33065 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_POINT_PARAMETERS
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERFARBPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERFVARBPROC)(GLenum pname, const GLfloat *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_POINT_PARAMETERS
#define glPointParameterfARB                rglPointParameterfARB
#define glPointParameterfvARB               rglPointParameterfvARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_POINT_PARAMETERS
REGAL_DECL void REGAL_CALL glPointParameterfARB(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glPointParameterfvARB(GLenum pname, const GLfloat *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_POINT_PARAMETERS
REGAL_DECL void REGAL_CALL plugin_glPointParameterfARB(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPointParameterfvARB(GLenum pname, const GLfloat *params);
#endif

/**
 ** GL_ARB_point_sprite
 **/

#if (defined(GL_ARB_POINT_SPRITE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_POINT_SPRITE)) && !defined(REGAL_NO_ENUM_GL_ARB_POINT_SPRITE)
#define REGAL_NO_ENUM_GL_ARB_POINT_SPRITE
#endif

#if (defined(GL_ARB_POINT_SPRITE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_POINT_SPRITE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_POINT_SPRITE)
#define REGAL_NO_TYPEDEF_GL_ARB_POINT_SPRITE
#endif

#if (defined(GL_ARB_POINT_SPRITE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_POINT_SPRITE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_POINT_SPRITE)
#define REGAL_NO_NAMESPACE_GL_ARB_POINT_SPRITE
#endif

#if (defined(GL_ARB_POINT_SPRITE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_POINT_SPRITE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_POINT_SPRITE)
#define REGAL_NO_PLUGIN_GL_ARB_POINT_SPRITE
#endif

#if (defined(GL_ARB_POINT_SPRITE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_POINT_SPRITE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_POINT_SPRITE)
#define REGAL_NO_DECLARATION_GL_ARB_POINT_SPRITE
#endif

#ifndef GL_ARB_point_sprite
#define GL_ARB_point_sprite 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_POINT_SPRITE
#define GL_POINT_SPRITE_ARB  0x8861     /* 34913 */
#define GL_COORD_REPLACE_ARB 0x8862     /* 34914 */
#endif

/**
 ** GL_ARB_program_interface_query
 **/

#if (defined(GL_ARB_PROGRAM_INTERFACE_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_PROGRAM_INTERFACE_QUERY)) && !defined(REGAL_NO_ENUM_GL_ARB_PROGRAM_INTERFACE_QUERY)
#define REGAL_NO_ENUM_GL_ARB_PROGRAM_INTERFACE_QUERY
#endif

#if (defined(GL_ARB_PROGRAM_INTERFACE_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_PROGRAM_INTERFACE_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_PROGRAM_INTERFACE_QUERY)
#define REGAL_NO_TYPEDEF_GL_ARB_PROGRAM_INTERFACE_QUERY
#endif

#if (defined(GL_ARB_PROGRAM_INTERFACE_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_PROGRAM_INTERFACE_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_PROGRAM_INTERFACE_QUERY)
#define REGAL_NO_NAMESPACE_GL_ARB_PROGRAM_INTERFACE_QUERY
#endif

#if (defined(GL_ARB_PROGRAM_INTERFACE_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_PROGRAM_INTERFACE_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_PROGRAM_INTERFACE_QUERY)
#define REGAL_NO_PLUGIN_GL_ARB_PROGRAM_INTERFACE_QUERY
#endif

#if (defined(GL_ARB_PROGRAM_INTERFACE_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_PROGRAM_INTERFACE_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_PROGRAM_INTERFACE_QUERY)
#define REGAL_NO_DECLARATION_GL_ARB_PROGRAM_INTERFACE_QUERY
#endif

#ifndef GL_ARB_program_interface_query
#define GL_ARB_program_interface_query 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_PROGRAM_INTERFACE_QUERY
#define GL_UNIFORM                              0x92e1     /* 37601 */
#define GL_UNIFORM_BLOCK                        0x92e2     /* 37602 */
#define GL_PROGRAM_INPUT                        0x92e3     /* 37603 */
#define GL_PROGRAM_OUTPUT                       0x92e4     /* 37604 */
#define GL_BUFFER_VARIABLE                      0x92e5     /* 37605 */
#define GL_SHADER_STORAGE_BLOCK                 0x92e6     /* 37606 */
#define GL_IS_PER_PATCH                         0x92e7     /* 37607 */
#define GL_VERTEX_SUBROUTINE                    0x92e8     /* 37608 */
#define GL_TESS_CONTROL_SUBROUTINE              0x92e9     /* 37609 */
#define GL_TESS_EVALUATION_SUBROUTINE           0x92ea     /* 37610 */
#define GL_GEOMETRY_SUBROUTINE                  0x92eb     /* 37611 */
#define GL_FRAGMENT_SUBROUTINE                  0x92ec     /* 37612 */
#define GL_COMPUTE_SUBROUTINE                   0x92ed     /* 37613 */
#define GL_VERTEX_SUBROUTINE_UNIFORM            0x92ee     /* 37614 */
#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM      0x92ef     /* 37615 */
#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM   0x92f0     /* 37616 */
#define GL_GEOMETRY_SUBROUTINE_UNIFORM          0x92f1     /* 37617 */
#define GL_FRAGMENT_SUBROUTINE_UNIFORM          0x92f2     /* 37618 */
#define GL_COMPUTE_SUBROUTINE_UNIFORM           0x92f3     /* 37619 */
#define GL_TRANSFORM_FEEDBACK_VARYING           0x92f4     /* 37620 */
#define GL_ACTIVE_RESOURCES                     0x92f5     /* 37621 */
#define GL_MAX_NAME_LENGTH                      0x92f6     /* 37622 */
#define GL_MAX_NUM_ACTIVE_VARIABLES             0x92f7     /* 37623 */
#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES       0x92f8     /* 37624 */
#define GL_NAME_LENGTH                          0x92f9     /* 37625 */
#define GL_TYPE                                 0x92fa     /* 37626 */
#define GL_ARRAY_SIZE                           0x92fb     /* 37627 */
#define GL_OFFSET                               0x92fc     /* 37628 */
#define GL_BLOCK_INDEX                          0x92fd     /* 37629 */
#define GL_ARRAY_STRIDE                         0x92fe     /* 37630 */
#define GL_MATRIX_STRIDE                        0x92ff     /* 37631 */
#define GL_IS_ROW_MAJOR                         0x9300     /* 37632 */
#define GL_ATOMIC_COUNTER_BUFFER_INDEX          0x9301     /* 37633 */
#define GL_BUFFER_BINDING                       0x9302     /* 37634 */
#define GL_BUFFER_DATA_SIZE                     0x9303     /* 37635 */
#define GL_NUM_ACTIVE_VARIABLES                 0x9304     /* 37636 */
#define GL_ACTIVE_VARIABLES                     0x9305     /* 37637 */
#define GL_REFERENCED_BY_VERTEX_SHADER          0x9306     /* 37638 */
#define GL_REFERENCED_BY_TESS_CONTROL_SHADER    0x9307     /* 37639 */
#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER 0x9308     /* 37640 */
#define GL_REFERENCED_BY_GEOMETRY_SHADER        0x9309     /* 37641 */
#define GL_REFERENCED_BY_FRAGMENT_SHADER        0x930a     /* 37642 */
#define GL_REFERENCED_BY_COMPUTE_SHADER         0x930b     /* 37643 */
#define GL_TOP_LEVEL_ARRAY_SIZE                 0x930c     /* 37644 */
#define GL_TOP_LEVEL_ARRAY_STRIDE               0x930d     /* 37645 */
#define GL_LOCATION                             0x930e     /* 37646 */
#define GL_LOCATION_INDEX                       0x930f     /* 37647 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_PROGRAM_INTERFACE_QUERY
typedef GLint (REGAL_CALL *PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program, GLenum programInterface, const GLchar *name);
typedef GLint (REGAL_CALL *PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program, GLenum programInterface, const GLchar *name);
typedef GLuint (REGAL_CALL *PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program, GLenum programInterface, const GLchar *name);
typedef void (REGAL_CALL *PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_PROGRAM_INTERFACE_QUERY
#define glGetProgramInterfaceiv             rglGetProgramInterfaceiv
#define glGetProgramResourceIndex           rglGetProgramResourceIndex
#define glGetProgramResourceLocation        rglGetProgramResourceLocation
#define glGetProgramResourceLocationIndex   rglGetProgramResourceLocationIndex
#define glGetProgramResourceName            rglGetProgramResourceName
#define glGetProgramResourceiv              rglGetProgramResourceiv
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_PROGRAM_INTERFACE_QUERY
REGAL_DECL GLint REGAL_CALL glGetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name);
REGAL_DECL GLint REGAL_CALL glGetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const GLchar *name);
REGAL_DECL GLuint REGAL_CALL glGetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name);
REGAL_DECL void REGAL_CALL glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
REGAL_DECL void REGAL_CALL glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_PROGRAM_INTERFACE_QUERY
REGAL_DECL GLint REGAL_CALL plugin_glGetProgramResourceLocation(GLuint program, GLenum programInterface, const GLchar *name);
REGAL_DECL GLint REGAL_CALL plugin_glGetProgramResourceLocationIndex(GLuint program, GLenum programInterface, const GLchar *name);
REGAL_DECL GLuint REGAL_CALL plugin_glGetProgramResourceIndex(GLuint program, GLenum programInterface, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetProgramInterfaceiv(GLuint program, GLenum programInterface, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramResourceName(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetProgramResourceiv(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params);
#endif

/**
 ** GL_ARB_provoking_vertex
 **/

#if (defined(GL_ARB_PROVOKING_VERTEX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_PROVOKING_VERTEX)) && !defined(REGAL_NO_ENUM_GL_ARB_PROVOKING_VERTEX)
#define REGAL_NO_ENUM_GL_ARB_PROVOKING_VERTEX
#endif

#if (defined(GL_ARB_PROVOKING_VERTEX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_PROVOKING_VERTEX)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_PROVOKING_VERTEX)
#define REGAL_NO_TYPEDEF_GL_ARB_PROVOKING_VERTEX
#endif

#if (defined(GL_ARB_PROVOKING_VERTEX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_PROVOKING_VERTEX)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_PROVOKING_VERTEX)
#define REGAL_NO_NAMESPACE_GL_ARB_PROVOKING_VERTEX
#endif

#if (defined(GL_ARB_PROVOKING_VERTEX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_PROVOKING_VERTEX)) && !defined(REGAL_NO_PLUGIN_GL_ARB_PROVOKING_VERTEX)
#define REGAL_NO_PLUGIN_GL_ARB_PROVOKING_VERTEX
#endif

#if (defined(GL_ARB_PROVOKING_VERTEX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_PROVOKING_VERTEX)) && !defined(REGAL_NO_DECLARATION_GL_ARB_PROVOKING_VERTEX)
#define REGAL_NO_DECLARATION_GL_ARB_PROVOKING_VERTEX
#endif

#ifndef GL_ARB_provoking_vertex
#define GL_ARB_provoking_vertex 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_PROVOKING_VERTEX
#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8e4c     /* 36428 */
#define GL_FIRST_VERTEX_CONVENTION                  0x8e4d     /* 36429 */
#define GL_LAST_VERTEX_CONVENTION                   0x8e4e     /* 36430 */
#define GL_PROVOKING_VERTEX                         0x8e4f     /* 36431 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_PROVOKING_VERTEX
typedef void (REGAL_CALL *PFNGLPROVOKINGVERTEXPROC)(GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_PROVOKING_VERTEX
#define glProvokingVertex                   rglProvokingVertex
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_PROVOKING_VERTEX
REGAL_DECL void REGAL_CALL glProvokingVertex(GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_PROVOKING_VERTEX
REGAL_DECL void REGAL_CALL plugin_glProvokingVertex(GLenum mode);
#endif

/**
 ** GL_ARB_query_buffer_object
 **/

#if (defined(GL_ARB_QUERY_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_QUERY_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_QUERY_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_QUERY_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_QUERY_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_QUERY_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_QUERY_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_QUERY_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_QUERY_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_QUERY_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_QUERY_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_QUERY_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_QUERY_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_QUERY_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_QUERY_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_QUERY_BUFFER_OBJECT
#endif

#ifndef GL_ARB_query_buffer_object
#define GL_ARB_query_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_QUERY_BUFFER_OBJECT
#define GL_QUERY_BUFFER_BARRIER_BIT 0x8000     /* 32768 */
#define GL_QUERY_BUFFER             0x9192     /* 37266 */
#define GL_QUERY_BUFFER_BINDING     0x9193     /* 37267 */
#define GL_QUERY_RESULT_NO_WAIT     0x9194     /* 37268 */
#endif

/**
 ** GL_ARB_robustness
 **/

#if (defined(GL_ARB_ROBUSTNESS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_ROBUSTNESS)) && !defined(REGAL_NO_ENUM_GL_ARB_ROBUSTNESS)
#define REGAL_NO_ENUM_GL_ARB_ROBUSTNESS
#endif

#if (defined(GL_ARB_ROBUSTNESS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_ROBUSTNESS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_ROBUSTNESS)
#define REGAL_NO_TYPEDEF_GL_ARB_ROBUSTNESS
#endif

#if (defined(GL_ARB_ROBUSTNESS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_ROBUSTNESS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_ROBUSTNESS)
#define REGAL_NO_NAMESPACE_GL_ARB_ROBUSTNESS
#endif

#if (defined(GL_ARB_ROBUSTNESS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_ROBUSTNESS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_ROBUSTNESS)
#define REGAL_NO_PLUGIN_GL_ARB_ROBUSTNESS
#endif

#if (defined(GL_ARB_ROBUSTNESS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_ROBUSTNESS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_ROBUSTNESS)
#define REGAL_NO_DECLARATION_GL_ARB_ROBUSTNESS
#endif

#ifndef GL_ARB_robustness
#define GL_ARB_robustness 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_ROBUSTNESS
#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x4
#define GL_LOSE_CONTEXT_ON_RESET_ARB          0x8252     /* 33362 */
#define GL_GUILTY_CONTEXT_RESET_ARB           0x8253     /* 33363 */
#define GL_INNOCENT_CONTEXT_RESET_ARB         0x8254     /* 33364 */
#define GL_UNKNOWN_CONTEXT_RESET_ARB          0x8255     /* 33365 */
#define GL_RESET_NOTIFICATION_STRATEGY_ARB    0x8256     /* 33366 */
#define GL_NO_RESET_NOTIFICATION_ARB          0x8261     /* 33377 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_ROBUSTNESS
typedef GLenum (REGAL_CALL *PFNGLGETGRAPHICSRESETSTATUSARBPROC)(void);
typedef void (REGAL_CALL *PFNGLGETNCOLORTABLEARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
typedef void (REGAL_CALL *PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
typedef void (REGAL_CALL *PFNGLGETNCONVOLUTIONFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
typedef void (REGAL_CALL *PFNGLGETNHISTOGRAMARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
typedef void (REGAL_CALL *PFNGLGETNMAPDVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
typedef void (REGAL_CALL *PFNGLGETNMAPFVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
typedef void (REGAL_CALL *PFNGLGETNMAPIVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint *v);
typedef void (REGAL_CALL *PFNGLGETNMINMAXARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
typedef void (REGAL_CALL *PFNGLGETNPIXELMAPFVARBPROC)(GLenum map, GLsizei bufSize, GLfloat *values);
typedef void (REGAL_CALL *PFNGLGETNPIXELMAPUIVARBPROC)(GLenum map, GLsizei bufSize, GLuint *values);
typedef void (REGAL_CALL *PFNGLGETNPIXELMAPUSVARBPROC)(GLenum map, GLsizei bufSize, GLushort *values);
typedef void (REGAL_CALL *PFNGLGETNPOLYGONSTIPPLEARBPROC)(GLsizei bufSize, GLubyte *pattern);
typedef void (REGAL_CALL *PFNGLGETNSEPARABLEFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
typedef void (REGAL_CALL *PFNGLGETNTEXIMAGEARBPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
typedef void (REGAL_CALL *PFNGLGETNUNIFORMDVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETNUNIFORMFVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETNUNIFORMIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLint *params);
typedef void (REGAL_CALL *PFNGLGETNUNIFORMUIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
typedef void (REGAL_CALL *PFNGLREADNPIXELSARBPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_ROBUSTNESS
#define glGetGraphicsResetStatusARB         rglGetGraphicsResetStatusARB
#define glGetnColorTableARB                 rglGetnColorTableARB
#define glGetnCompressedTexImageARB         rglGetnCompressedTexImageARB
#define glGetnConvolutionFilterARB          rglGetnConvolutionFilterARB
#define glGetnHistogramARB                  rglGetnHistogramARB
#define glGetnMapdvARB                      rglGetnMapdvARB
#define glGetnMapfvARB                      rglGetnMapfvARB
#define glGetnMapivARB                      rglGetnMapivARB
#define glGetnMinmaxARB                     rglGetnMinmaxARB
#define glGetnPixelMapfvARB                 rglGetnPixelMapfvARB
#define glGetnPixelMapuivARB                rglGetnPixelMapuivARB
#define glGetnPixelMapusvARB                rglGetnPixelMapusvARB
#define glGetnPolygonStippleARB             rglGetnPolygonStippleARB
#define glGetnSeparableFilterARB            rglGetnSeparableFilterARB
#define glGetnTexImageARB                   rglGetnTexImageARB
#define glGetnUniformdvARB                  rglGetnUniformdvARB
#define glGetnUniformfvARB                  rglGetnUniformfvARB
#define glGetnUniformivARB                  rglGetnUniformivARB
#define glGetnUniformuivARB                 rglGetnUniformuivARB
#define glReadnPixelsARB                    rglReadnPixelsARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_ROBUSTNESS
REGAL_DECL GLenum REGAL_CALL glGetGraphicsResetStatusARB(void);
REGAL_DECL void REGAL_CALL glGetnColorTableARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
REGAL_DECL void REGAL_CALL glGetnCompressedTexImageARB(GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
REGAL_DECL void REGAL_CALL glGetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
REGAL_DECL void REGAL_CALL glGetnHistogramARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
REGAL_DECL void REGAL_CALL glGetnMapdvARB(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
REGAL_DECL void REGAL_CALL glGetnMapfvARB(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
REGAL_DECL void REGAL_CALL glGetnMapivARB(GLenum target, GLenum query, GLsizei bufSize, GLint *v);
REGAL_DECL void REGAL_CALL glGetnMinmaxARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
REGAL_DECL void REGAL_CALL glGetnPixelMapfvARB(GLenum map, GLsizei bufSize, GLfloat *values);
REGAL_DECL void REGAL_CALL glGetnPixelMapuivARB(GLenum map, GLsizei bufSize, GLuint *values);
REGAL_DECL void REGAL_CALL glGetnPixelMapusvARB(GLenum map, GLsizei bufSize, GLushort *values);
REGAL_DECL void REGAL_CALL glGetnPolygonStippleARB(GLsizei bufSize, GLubyte *pattern);
REGAL_DECL void REGAL_CALL glGetnSeparableFilterARB(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
REGAL_DECL void REGAL_CALL glGetnTexImageARB(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
REGAL_DECL void REGAL_CALL glGetnUniformdvARB(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetnUniformfvARB(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetnUniformivARB(GLuint program, GLint location, GLsizei bufSize, GLint *params);
REGAL_DECL void REGAL_CALL glGetnUniformuivARB(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
REGAL_DECL void REGAL_CALL glReadnPixelsARB(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_ROBUSTNESS
REGAL_DECL GLenum REGAL_CALL plugin_glGetGraphicsResetStatusARB(void);
REGAL_DECL void REGAL_CALL plugin_glGetnColorTableARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table);
REGAL_DECL void REGAL_CALL plugin_glGetnCompressedTexImageARB(GLenum target, GLint lod, GLsizei bufSize, GLvoid *img);
REGAL_DECL void REGAL_CALL plugin_glGetnConvolutionFilterARB(GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image);
REGAL_DECL void REGAL_CALL plugin_glGetnHistogramARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
REGAL_DECL void REGAL_CALL plugin_glGetnMapdvARB(GLenum target, GLenum query, GLsizei bufSize, GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glGetnMapfvARB(GLenum target, GLenum query, GLsizei bufSize, GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glGetnMapivARB(GLenum target, GLenum query, GLsizei bufSize, GLint *v);
REGAL_DECL void REGAL_CALL plugin_glGetnMinmaxARB(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values);
REGAL_DECL void REGAL_CALL plugin_glGetnPixelMapfvARB(GLenum map, GLsizei bufSize, GLfloat *values);
REGAL_DECL void REGAL_CALL plugin_glGetnPixelMapuivARB(GLenum map, GLsizei bufSize, GLuint *values);
REGAL_DECL void REGAL_CALL plugin_glGetnPixelMapusvARB(GLenum map, GLsizei bufSize, GLushort *values);
REGAL_DECL void REGAL_CALL plugin_glGetnPolygonStippleARB(GLsizei bufSize, GLubyte *pattern);
REGAL_DECL void REGAL_CALL plugin_glGetnSeparableFilterARB(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span);
REGAL_DECL void REGAL_CALL plugin_glGetnTexImageARB(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img);
REGAL_DECL void REGAL_CALL plugin_glGetnUniformdvARB(GLuint program, GLint location, GLsizei bufSize, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetnUniformfvARB(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetnUniformivARB(GLuint program, GLint location, GLsizei bufSize, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetnUniformuivARB(GLuint program, GLint location, GLsizei bufSize, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glReadnPixelsARB(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
#endif

/**
 ** GL_ARB_sample_shading
 **/

#if (defined(GL_ARB_SAMPLE_SHADING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SAMPLE_SHADING)) && !defined(REGAL_NO_ENUM_GL_ARB_SAMPLE_SHADING)
#define REGAL_NO_ENUM_GL_ARB_SAMPLE_SHADING
#endif

#if (defined(GL_ARB_SAMPLE_SHADING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SAMPLE_SHADING)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SAMPLE_SHADING)
#define REGAL_NO_TYPEDEF_GL_ARB_SAMPLE_SHADING
#endif

#if (defined(GL_ARB_SAMPLE_SHADING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SAMPLE_SHADING)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SAMPLE_SHADING)
#define REGAL_NO_NAMESPACE_GL_ARB_SAMPLE_SHADING
#endif

#if (defined(GL_ARB_SAMPLE_SHADING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SAMPLE_SHADING)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SAMPLE_SHADING)
#define REGAL_NO_PLUGIN_GL_ARB_SAMPLE_SHADING
#endif

#if (defined(GL_ARB_SAMPLE_SHADING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SAMPLE_SHADING)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SAMPLE_SHADING)
#define REGAL_NO_DECLARATION_GL_ARB_SAMPLE_SHADING
#endif

#ifndef GL_ARB_sample_shading
#define GL_ARB_sample_shading 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SAMPLE_SHADING
#define GL_SAMPLE_SHADING_ARB           0x8c36     /* 35894 */
#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8c37     /* 35895 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SAMPLE_SHADING
typedef void (REGAL_CALL *PFNGLMINSAMPLESHADINGARBPROC)(GLclampf value);
typedef void (REGAL_CALL *PFNGLMINSAMPLESHADINGPROC)(GLclampf value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SAMPLE_SHADING
#define glMinSampleShading                  rglMinSampleShading
#define glMinSampleShadingARB               rglMinSampleShadingARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SAMPLE_SHADING
REGAL_DECL void REGAL_CALL glMinSampleShading(GLclampf value);
REGAL_DECL void REGAL_CALL glMinSampleShadingARB(GLclampf value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SAMPLE_SHADING
REGAL_DECL void REGAL_CALL plugin_glMinSampleShading(GLclampf value);
REGAL_DECL void REGAL_CALL plugin_glMinSampleShadingARB(GLclampf value);
#endif

/**
 ** GL_ARB_sampler_objects
 **/

#if (defined(GL_ARB_SAMPLER_OBJECTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SAMPLER_OBJECTS)) && !defined(REGAL_NO_ENUM_GL_ARB_SAMPLER_OBJECTS)
#define REGAL_NO_ENUM_GL_ARB_SAMPLER_OBJECTS
#endif

#if (defined(GL_ARB_SAMPLER_OBJECTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SAMPLER_OBJECTS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SAMPLER_OBJECTS)
#define REGAL_NO_TYPEDEF_GL_ARB_SAMPLER_OBJECTS
#endif

#if (defined(GL_ARB_SAMPLER_OBJECTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SAMPLER_OBJECTS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SAMPLER_OBJECTS)
#define REGAL_NO_NAMESPACE_GL_ARB_SAMPLER_OBJECTS
#endif

#if (defined(GL_ARB_SAMPLER_OBJECTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SAMPLER_OBJECTS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SAMPLER_OBJECTS)
#define REGAL_NO_PLUGIN_GL_ARB_SAMPLER_OBJECTS
#endif

#if (defined(GL_ARB_SAMPLER_OBJECTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SAMPLER_OBJECTS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SAMPLER_OBJECTS)
#define REGAL_NO_DECLARATION_GL_ARB_SAMPLER_OBJECTS
#endif

#ifndef GL_ARB_sampler_objects
#define GL_ARB_sampler_objects 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SAMPLER_OBJECTS
#define GL_SAMPLER_BINDING 0x8919 /* 35097 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SAMPLER_OBJECTS
typedef GLboolean (REGAL_CALL *PFNGLISSAMPLERPROC)(GLuint sampler);
typedef void (REGAL_CALL *PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler);
typedef void (REGAL_CALL *PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint *samplers);
typedef void (REGAL_CALL *PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint *samplers);
typedef void (REGAL_CALL *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint *params);
typedef void (REGAL_CALL *PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SAMPLER_OBJECTS
#define glBindSampler                       rglBindSampler
#define glDeleteSamplers                    rglDeleteSamplers
#define glGenSamplers                       rglGenSamplers
#define glGetSamplerParameterIiv            rglGetSamplerParameterIiv
#define glGetSamplerParameterIuiv           rglGetSamplerParameterIuiv
#define glGetSamplerParameterfv             rglGetSamplerParameterfv
#define glGetSamplerParameteriv             rglGetSamplerParameteriv
#define glIsSampler                         rglIsSampler
#define glSamplerParameterIiv               rglSamplerParameterIiv
#define glSamplerParameterIuiv              rglSamplerParameterIuiv
#define glSamplerParameterf                 rglSamplerParameterf
#define glSamplerParameterfv                rglSamplerParameterfv
#define glSamplerParameteri                 rglSamplerParameteri
#define glSamplerParameteriv                rglSamplerParameteriv
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SAMPLER_OBJECTS
REGAL_DECL GLboolean REGAL_CALL glIsSampler(GLuint sampler);
REGAL_DECL void REGAL_CALL glBindSampler(GLuint unit, GLuint sampler);
REGAL_DECL void REGAL_CALL glDeleteSamplers(GLsizei count, const GLuint *samplers);
REGAL_DECL void REGAL_CALL glGenSamplers(GLsizei count, GLuint *samplers);
REGAL_DECL void REGAL_CALL glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params);
REGAL_DECL void REGAL_CALL glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SAMPLER_OBJECTS
REGAL_DECL GLboolean REGAL_CALL plugin_glIsSampler(GLuint sampler);
REGAL_DECL void REGAL_CALL plugin_glBindSampler(GLuint unit, GLuint sampler);
REGAL_DECL void REGAL_CALL plugin_glDeleteSamplers(GLsizei count, const GLuint *samplers);
REGAL_DECL void REGAL_CALL plugin_glGenSamplers(GLsizei count, GLuint *samplers);
REGAL_DECL void REGAL_CALL plugin_glGetSamplerParameterIiv(GLuint sampler, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetSamplerParameterIuiv(GLuint sampler, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glSamplerParameterIiv(GLuint sampler, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glSamplerParameterIuiv(GLuint sampler, GLenum pname, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint *params);
#endif

/**
 ** GL_ARB_seamless_cube_map
 **/

#if (defined(GL_ARB_SEAMLESS_CUBE_MAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SEAMLESS_CUBE_MAP)) && !defined(REGAL_NO_ENUM_GL_ARB_SEAMLESS_CUBE_MAP)
#define REGAL_NO_ENUM_GL_ARB_SEAMLESS_CUBE_MAP
#endif

#if (defined(GL_ARB_SEAMLESS_CUBE_MAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SEAMLESS_CUBE_MAP)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SEAMLESS_CUBE_MAP)
#define REGAL_NO_TYPEDEF_GL_ARB_SEAMLESS_CUBE_MAP
#endif

#if (defined(GL_ARB_SEAMLESS_CUBE_MAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SEAMLESS_CUBE_MAP)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SEAMLESS_CUBE_MAP)
#define REGAL_NO_NAMESPACE_GL_ARB_SEAMLESS_CUBE_MAP
#endif

#if (defined(GL_ARB_SEAMLESS_CUBE_MAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SEAMLESS_CUBE_MAP)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SEAMLESS_CUBE_MAP)
#define REGAL_NO_PLUGIN_GL_ARB_SEAMLESS_CUBE_MAP
#endif

#if (defined(GL_ARB_SEAMLESS_CUBE_MAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SEAMLESS_CUBE_MAP)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SEAMLESS_CUBE_MAP)
#define REGAL_NO_DECLARATION_GL_ARB_SEAMLESS_CUBE_MAP
#endif

#ifndef GL_ARB_seamless_cube_map
#define GL_ARB_seamless_cube_map 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SEAMLESS_CUBE_MAP
#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884f /* 34895 */
#endif

/**
 ** GL_ARB_separate_shader_objects
 **/

#if (defined(GL_ARB_SEPARATE_SHADER_OBJECTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_ENUM_GL_ARB_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_ENUM_GL_ARB_SEPARATE_SHADER_OBJECTS
#endif

#if (defined(GL_ARB_SEPARATE_SHADER_OBJECTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_TYPEDEF_GL_ARB_SEPARATE_SHADER_OBJECTS
#endif

#if (defined(GL_ARB_SEPARATE_SHADER_OBJECTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_NAMESPACE_GL_ARB_SEPARATE_SHADER_OBJECTS
#endif

#if (defined(GL_ARB_SEPARATE_SHADER_OBJECTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_PLUGIN_GL_ARB_SEPARATE_SHADER_OBJECTS
#endif

#if (defined(GL_ARB_SEPARATE_SHADER_OBJECTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_DECLARATION_GL_ARB_SEPARATE_SHADER_OBJECTS
#endif

#ifndef GL_ARB_separate_shader_objects
#define GL_ARB_separate_shader_objects 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SEPARATE_SHADER_OBJECTS
#define GL_VERTEX_SHADER_BIT          0x1
#define GL_TESS_EVALUATION_SHADER_BIT 0x10           /* 16 */
#define GL_FRAGMENT_SHADER_BIT        0x2
#define GL_GEOMETRY_SHADER_BIT        0x4
#define GL_TESS_CONTROL_SHADER_BIT    0x8
#define GL_PROGRAM_SEPARABLE          0x8258         /* 33368 */
#define GL_ACTIVE_PROGRAM             0x8259         /* 33369 */
#define GL_PROGRAM_PIPELINE_BINDING   0x825a         /* 33370 */
#define GL_ALL_SHADER_BITS            0xffffffff     /* 4294967295 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SEPARATE_SHADER_OBJECTS
typedef GLboolean (REGAL_CALL *PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline);
typedef GLuint (REGAL_CALL *PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar * const *strings);
typedef void (REGAL_CALL *PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program);
typedef void (REGAL_CALL *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline);
typedef void (REGAL_CALL *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint *pipelines);
typedef void (REGAL_CALL *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint *pipelines);
typedef void (REGAL_CALL *PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
typedef void (REGAL_CALL *PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble x);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat x);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint x);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint x, GLuint y);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint x, GLuint y, GLuint z);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program);
typedef void (REGAL_CALL *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SEPARATE_SHADER_OBJECTS
#define glActiveShaderProgram               rglActiveShaderProgram
#define glBindProgramPipeline               rglBindProgramPipeline
#define glCreateShaderProgramv              rglCreateShaderProgramv
#define glDeleteProgramPipelines            rglDeleteProgramPipelines
#define glGenProgramPipelines               rglGenProgramPipelines
#define glGetProgramPipelineInfoLog         rglGetProgramPipelineInfoLog
#define glGetProgramPipelineiv              rglGetProgramPipelineiv
#define glIsProgramPipeline                 rglIsProgramPipeline
#define glProgramUniform1d                  rglProgramUniform1d
#define glProgramUniform1dv                 rglProgramUniform1dv
#define glProgramUniform1f                  rglProgramUniform1f
#define glProgramUniform1fv                 rglProgramUniform1fv
#define glProgramUniform1i                  rglProgramUniform1i
#define glProgramUniform1iv                 rglProgramUniform1iv
#define glProgramUniform1ui                 rglProgramUniform1ui
#define glProgramUniform1uiv                rglProgramUniform1uiv
#define glProgramUniform2d                  rglProgramUniform2d
#define glProgramUniform2dv                 rglProgramUniform2dv
#define glProgramUniform2f                  rglProgramUniform2f
#define glProgramUniform2fv                 rglProgramUniform2fv
#define glProgramUniform2i                  rglProgramUniform2i
#define glProgramUniform2iv                 rglProgramUniform2iv
#define glProgramUniform2ui                 rglProgramUniform2ui
#define glProgramUniform2uiv                rglProgramUniform2uiv
#define glProgramUniform3d                  rglProgramUniform3d
#define glProgramUniform3dv                 rglProgramUniform3dv
#define glProgramUniform3f                  rglProgramUniform3f
#define glProgramUniform3fv                 rglProgramUniform3fv
#define glProgramUniform3i                  rglProgramUniform3i
#define glProgramUniform3iv                 rglProgramUniform3iv
#define glProgramUniform3ui                 rglProgramUniform3ui
#define glProgramUniform3uiv                rglProgramUniform3uiv
#define glProgramUniform4d                  rglProgramUniform4d
#define glProgramUniform4dv                 rglProgramUniform4dv
#define glProgramUniform4f                  rglProgramUniform4f
#define glProgramUniform4fv                 rglProgramUniform4fv
#define glProgramUniform4i                  rglProgramUniform4i
#define glProgramUniform4iv                 rglProgramUniform4iv
#define glProgramUniform4ui                 rglProgramUniform4ui
#define glProgramUniform4uiv                rglProgramUniform4uiv
#define glProgramUniformMatrix2dv           rglProgramUniformMatrix2dv
#define glProgramUniformMatrix2fv           rglProgramUniformMatrix2fv
#define glProgramUniformMatrix2x3dv         rglProgramUniformMatrix2x3dv
#define glProgramUniformMatrix2x3fv         rglProgramUniformMatrix2x3fv
#define glProgramUniformMatrix2x4dv         rglProgramUniformMatrix2x4dv
#define glProgramUniformMatrix2x4fv         rglProgramUniformMatrix2x4fv
#define glProgramUniformMatrix3dv           rglProgramUniformMatrix3dv
#define glProgramUniformMatrix3fv           rglProgramUniformMatrix3fv
#define glProgramUniformMatrix3x2dv         rglProgramUniformMatrix3x2dv
#define glProgramUniformMatrix3x2fv         rglProgramUniformMatrix3x2fv
#define glProgramUniformMatrix3x4dv         rglProgramUniformMatrix3x4dv
#define glProgramUniformMatrix3x4fv         rglProgramUniformMatrix3x4fv
#define glProgramUniformMatrix4dv           rglProgramUniformMatrix4dv
#define glProgramUniformMatrix4fv           rglProgramUniformMatrix4fv
#define glProgramUniformMatrix4x2dv         rglProgramUniformMatrix4x2dv
#define glProgramUniformMatrix4x2fv         rglProgramUniformMatrix4x2fv
#define glProgramUniformMatrix4x3dv         rglProgramUniformMatrix4x3dv
#define glProgramUniformMatrix4x3fv         rglProgramUniformMatrix4x3fv
#define glUseProgramStages                  rglUseProgramStages
#define glValidateProgramPipeline           rglValidateProgramPipeline
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SEPARATE_SHADER_OBJECTS
REGAL_DECL GLboolean REGAL_CALL glIsProgramPipeline(GLuint pipeline);
REGAL_DECL GLuint REGAL_CALL glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar * const *strings);
REGAL_DECL void REGAL_CALL glActiveShaderProgram(GLuint pipeline, GLuint program);
REGAL_DECL void REGAL_CALL glBindProgramPipeline(GLuint pipeline);
REGAL_DECL void REGAL_CALL glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines);
REGAL_DECL void REGAL_CALL glGenProgramPipelines(GLsizei n, GLuint *pipelines);
REGAL_DECL void REGAL_CALL glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
REGAL_DECL void REGAL_CALL glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glProgramUniform1d(GLuint program, GLint location, GLdouble x);
REGAL_DECL void REGAL_CALL glProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniform1f(GLuint program, GLint location, GLfloat x);
REGAL_DECL void REGAL_CALL glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniform1i(GLuint program, GLint location, GLint x);
REGAL_DECL void REGAL_CALL glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glProgramUniform1ui(GLuint program, GLint location, GLuint v0);
REGAL_DECL void REGAL_CALL glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glProgramUniform2d(GLuint program, GLint location, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniform2f(GLuint program, GLint location, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniform2i(GLuint program, GLint location, GLint x, GLint y);
REGAL_DECL void REGAL_CALL glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glProgramUniform2ui(GLuint program, GLint location, GLuint x, GLuint y);
REGAL_DECL void REGAL_CALL glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glProgramUniform3d(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniform3f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniform3i(GLuint program, GLint location, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glProgramUniform3ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z);
REGAL_DECL void REGAL_CALL glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glProgramUniform4d(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniform4f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniform4i(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glProgramUniform4ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
REGAL_DECL void REGAL_CALL glValidateProgramPipeline(GLuint pipeline);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SEPARATE_SHADER_OBJECTS
REGAL_DECL GLboolean REGAL_CALL plugin_glIsProgramPipeline(GLuint pipeline);
REGAL_DECL GLuint REGAL_CALL plugin_glCreateShaderProgramv(GLenum type, GLsizei count, const GLchar * const *strings);
REGAL_DECL void REGAL_CALL plugin_glActiveShaderProgram(GLuint pipeline, GLuint program);
REGAL_DECL void REGAL_CALL plugin_glBindProgramPipeline(GLuint pipeline);
REGAL_DECL void REGAL_CALL plugin_glDeleteProgramPipelines(GLsizei n, const GLuint *pipelines);
REGAL_DECL void REGAL_CALL plugin_glGenProgramPipelines(GLsizei n, GLuint *pipelines);
REGAL_DECL void REGAL_CALL plugin_glGetProgramPipelineInfoLog(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
REGAL_DECL void REGAL_CALL plugin_glGetProgramPipelineiv(GLuint pipeline, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1d(GLuint program, GLint location, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1f(GLuint program, GLint location, GLfloat x);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1i(GLuint program, GLint location, GLint x);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1iv(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1ui(GLuint program, GLint location, GLuint v0);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2d(GLuint program, GLint location, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2f(GLuint program, GLint location, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2i(GLuint program, GLint location, GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2iv(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2ui(GLuint program, GLint location, GLuint x, GLuint y);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3d(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3i(GLuint program, GLint location, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3iv(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4d(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4dv(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4f(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4fv(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4i(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4iv(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4ui(GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4uiv(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3x4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3x4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4x2dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4x2fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4x3dv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4x3fv(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUseProgramStages(GLuint pipeline, GLbitfield stages, GLuint program);
REGAL_DECL void REGAL_CALL plugin_glValidateProgramPipeline(GLuint pipeline);
#endif

/**
 ** GL_ARB_shader_atomic_counters
 **/

#if (defined(GL_ARB_SHADER_ATOMIC_COUNTERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADER_ATOMIC_COUNTERS)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADER_ATOMIC_COUNTERS)
#define REGAL_NO_ENUM_GL_ARB_SHADER_ATOMIC_COUNTERS
#endif

#if (defined(GL_ARB_SHADER_ATOMIC_COUNTERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADER_ATOMIC_COUNTERS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADER_ATOMIC_COUNTERS)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADER_ATOMIC_COUNTERS
#endif

#if (defined(GL_ARB_SHADER_ATOMIC_COUNTERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADER_ATOMIC_COUNTERS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADER_ATOMIC_COUNTERS)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADER_ATOMIC_COUNTERS
#endif

#if (defined(GL_ARB_SHADER_ATOMIC_COUNTERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADER_ATOMIC_COUNTERS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADER_ATOMIC_COUNTERS)
#define REGAL_NO_PLUGIN_GL_ARB_SHADER_ATOMIC_COUNTERS
#endif

#if (defined(GL_ARB_SHADER_ATOMIC_COUNTERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADER_ATOMIC_COUNTERS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADER_ATOMIC_COUNTERS)
#define REGAL_NO_DECLARATION_GL_ARB_SHADER_ATOMIC_COUNTERS
#endif

#ifndef GL_ARB_shader_atomic_counters
#define GL_ARB_shader_atomic_counters 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADER_ATOMIC_COUNTERS
#define GL_ATOMIC_COUNTER_BUFFER                                      0x92c0     /* 37568 */
#define GL_ATOMIC_COUNTER_BUFFER_BINDING                              0x92c1     /* 37569 */
#define GL_ATOMIC_COUNTER_BUFFER_START                                0x92c2     /* 37570 */
#define GL_ATOMIC_COUNTER_BUFFER_SIZE                                 0x92c3     /* 37571 */
#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE                            0x92c4     /* 37572 */
#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS               0x92c5     /* 37573 */
#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES        0x92c6     /* 37574 */
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER          0x92c7     /* 37575 */
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER    0x92c8     /* 37576 */
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92c9     /* 37577 */
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER        0x92ca     /* 37578 */
#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER        0x92cb     /* 37579 */
#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS                          0x92cc     /* 37580 */
#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS                    0x92cd     /* 37581 */
#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS                 0x92ce     /* 37582 */
#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS                        0x92cf     /* 37583 */
#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS                        0x92d0     /* 37584 */
#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS                        0x92d1     /* 37585 */
#define GL_MAX_VERTEX_ATOMIC_COUNTERS                                 0x92d2     /* 37586 */
#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS                           0x92d3     /* 37587 */
#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS                        0x92d4     /* 37588 */
#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS                               0x92d5     /* 37589 */
#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS                               0x92d6     /* 37590 */
#define GL_MAX_COMBINED_ATOMIC_COUNTERS                               0x92d7     /* 37591 */
#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE                             0x92d8     /* 37592 */
#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS                              0x92d9     /* 37593 */
#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX                        0x92da     /* 37594 */
#define GL_UNSIGNED_INT_ATOMIC_COUNTER                                0x92db     /* 37595 */
#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS                         0x92dc     /* 37596 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SHADER_ATOMIC_COUNTERS
typedef void (REGAL_CALL *PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SHADER_ATOMIC_COUNTERS
#define glGetActiveAtomicCounterBufferiv    rglGetActiveAtomicCounterBufferiv
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SHADER_ATOMIC_COUNTERS
REGAL_DECL void REGAL_CALL glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SHADER_ATOMIC_COUNTERS
REGAL_DECL void REGAL_CALL plugin_glGetActiveAtomicCounterBufferiv(GLuint program, GLuint bufferIndex, GLenum pname, GLint *params);
#endif

/**
 ** GL_ARB_shader_image_load_store
 **/

#if (defined(GL_ARB_SHADER_IMAGE_LOAD_STORE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_ENUM_GL_ARB_SHADER_IMAGE_LOAD_STORE
#endif

#if (defined(GL_ARB_SHADER_IMAGE_LOAD_STORE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADER_IMAGE_LOAD_STORE
#endif

#if (defined(GL_ARB_SHADER_IMAGE_LOAD_STORE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADER_IMAGE_LOAD_STORE
#endif

#if (defined(GL_ARB_SHADER_IMAGE_LOAD_STORE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_PLUGIN_GL_ARB_SHADER_IMAGE_LOAD_STORE
#endif

#if (defined(GL_ARB_SHADER_IMAGE_LOAD_STORE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_DECLARATION_GL_ARB_SHADER_IMAGE_LOAD_STORE
#endif

#ifndef GL_ARB_shader_image_load_store
#define GL_ARB_shader_image_load_store 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADER_IMAGE_LOAD_STORE
#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT               0x1
#define GL_TEXTURE_UPDATE_BARRIER_BIT                    0x100          /* 256 */
#define GL_ATOMIC_COUNTER_BARRIER_BIT                    0x1000         /* 4096 */
#define GL_ELEMENT_ARRAY_BARRIER_BIT                     0x2
#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT               0x20           /* 32 */
#define GL_BUFFER_UPDATE_BARRIER_BIT                     0x200          /* 512 */
#define GL_UNIFORM_BARRIER_BIT                           0x4
#define GL_COMMAND_BARRIER_BIT                           0x40           /* 64 */
#define GL_FRAMEBUFFER_BARRIER_BIT                       0x400          /* 1024 */
#define GL_TEXTURE_FETCH_BARRIER_BIT                     0x8
#define GL_PIXEL_BUFFER_BARRIER_BIT                      0x80           /* 128 */
#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT                0x800          /* 2048 */
#define GL_MAX_IMAGE_UNITS                               0x8f38         /* 36664 */
#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8f39         /* 36665 */
#define GL_IMAGE_BINDING_NAME                            0x8f3a         /* 36666 */
#define GL_IMAGE_BINDING_LEVEL                           0x8f3b         /* 36667 */
#define GL_IMAGE_BINDING_LAYERED                         0x8f3c         /* 36668 */
#define GL_IMAGE_BINDING_LAYER                           0x8f3d         /* 36669 */
#define GL_IMAGE_BINDING_ACCESS                          0x8f3e         /* 36670 */
#define GL_IMAGE_1D                                      0x904c         /* 36940 */
#define GL_IMAGE_2D                                      0x904d         /* 36941 */
#define GL_IMAGE_3D                                      0x904e         /* 36942 */
#define GL_IMAGE_2D_RECT                                 0x904f         /* 36943 */
#define GL_IMAGE_CUBE                                    0x9050         /* 36944 */
#define GL_IMAGE_BUFFER                                  0x9051         /* 36945 */
#define GL_IMAGE_1D_ARRAY                                0x9052         /* 36946 */
#define GL_IMAGE_2D_ARRAY                                0x9053         /* 36947 */
#define GL_IMAGE_CUBE_MAP_ARRAY                          0x9054         /* 36948 */
#define GL_IMAGE_2D_MULTISAMPLE                          0x9055         /* 36949 */
#define GL_IMAGE_2D_MULTISAMPLE_ARRAY                    0x9056         /* 36950 */
#define GL_INT_IMAGE_1D                                  0x9057         /* 36951 */
#define GL_INT_IMAGE_2D                                  0x9058         /* 36952 */
#define GL_INT_IMAGE_3D                                  0x9059         /* 36953 */
#define GL_INT_IMAGE_2D_RECT                             0x905a         /* 36954 */
#define GL_INT_IMAGE_CUBE                                0x905b         /* 36955 */
#define GL_INT_IMAGE_BUFFER                              0x905c         /* 36956 */
#define GL_INT_IMAGE_1D_ARRAY                            0x905d         /* 36957 */
#define GL_INT_IMAGE_2D_ARRAY                            0x905e         /* 36958 */
#define GL_INT_IMAGE_CUBE_MAP_ARRAY                      0x905f         /* 36959 */
#define GL_INT_IMAGE_2D_MULTISAMPLE                      0x9060         /* 36960 */
#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY                0x9061         /* 36961 */
#define GL_UNSIGNED_INT_IMAGE_1D                         0x9062         /* 36962 */
#define GL_UNSIGNED_INT_IMAGE_2D                         0x9063         /* 36963 */
#define GL_UNSIGNED_INT_IMAGE_3D                         0x9064         /* 36964 */
#define GL_UNSIGNED_INT_IMAGE_2D_RECT                    0x9065         /* 36965 */
#define GL_UNSIGNED_INT_IMAGE_CUBE                       0x9066         /* 36966 */
#define GL_UNSIGNED_INT_IMAGE_BUFFER                     0x9067         /* 36967 */
#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY                   0x9068         /* 36968 */
#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY                   0x9069         /* 36969 */
#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY             0x906a         /* 36970 */
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE             0x906b         /* 36971 */
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY       0x906c         /* 36972 */
#define GL_MAX_IMAGE_SAMPLES                             0x906d         /* 36973 */
#define GL_IMAGE_BINDING_FORMAT                          0x906e         /* 36974 */
#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE               0x90c7         /* 37063 */
#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE            0x90c8         /* 37064 */
#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS           0x90c9         /* 37065 */
#define GL_MAX_VERTEX_IMAGE_UNIFORMS                     0x90ca         /* 37066 */
#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS               0x90cb         /* 37067 */
#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS            0x90cc         /* 37068 */
#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS                   0x90cd         /* 37069 */
#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS                   0x90ce         /* 37070 */
#define GL_MAX_COMBINED_IMAGE_UNIFORMS                   0x90cf         /* 37071 */
#define GL_ALL_BARRIER_BITS                              0xffffffff     /* 4294967295 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SHADER_IMAGE_LOAD_STORE
typedef void (REGAL_CALL *PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
typedef void (REGAL_CALL *PFNGLMEMORYBARRIERPROC)(GLbitfield barriers);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SHADER_IMAGE_LOAD_STORE
#define glBindImageTexture                  rglBindImageTexture
#define glMemoryBarrier                     rglMemoryBarrier
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SHADER_IMAGE_LOAD_STORE
REGAL_DECL void REGAL_CALL glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
REGAL_DECL void REGAL_CALL glMemoryBarrier(GLbitfield barriers);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SHADER_IMAGE_LOAD_STORE
REGAL_DECL void REGAL_CALL plugin_glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
REGAL_DECL void REGAL_CALL plugin_glMemoryBarrier(GLbitfield barriers);
#endif

/**
 ** GL_ARB_shader_objects
 **/

#if (defined(GL_ARB_SHADER_OBJECTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADER_OBJECTS)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADER_OBJECTS)
#define REGAL_NO_ENUM_GL_ARB_SHADER_OBJECTS
#endif

#if (defined(GL_ARB_SHADER_OBJECTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADER_OBJECTS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADER_OBJECTS)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADER_OBJECTS
#endif

#if (defined(GL_ARB_SHADER_OBJECTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADER_OBJECTS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADER_OBJECTS)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADER_OBJECTS
#endif

#if (defined(GL_ARB_SHADER_OBJECTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADER_OBJECTS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADER_OBJECTS)
#define REGAL_NO_PLUGIN_GL_ARB_SHADER_OBJECTS
#endif

#if (defined(GL_ARB_SHADER_OBJECTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADER_OBJECTS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADER_OBJECTS)
#define REGAL_NO_DECLARATION_GL_ARB_SHADER_OBJECTS
#endif

#ifndef GL_ARB_shader_objects
#define GL_ARB_shader_objects 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADER_OBJECTS
#define GL_PROGRAM_OBJECT_ARB                   0x8b40     /* 35648 */
#define GL_SHADER_OBJECT_ARB                    0x8b48     /* 35656 */
#define GL_OBJECT_TYPE_ARB                      0x8b4e     /* 35662 */
#define GL_OBJECT_SUBTYPE_ARB                   0x8b4f     /* 35663 */
#define GL_FLOAT_VEC2_ARB                       0x8b50     /* 35664 */
#define GL_FLOAT_VEC3_ARB                       0x8b51     /* 35665 */
#define GL_FLOAT_VEC4_ARB                       0x8b52     /* 35666 */
#define GL_INT_VEC2_ARB                         0x8b53     /* 35667 */
#define GL_INT_VEC3_ARB                         0x8b54     /* 35668 */
#define GL_INT_VEC4_ARB                         0x8b55     /* 35669 */
#define GL_BOOL_ARB                             0x8b56     /* 35670 */
#define GL_BOOL_VEC2_ARB                        0x8b57     /* 35671 */
#define GL_BOOL_VEC3_ARB                        0x8b58     /* 35672 */
#define GL_BOOL_VEC4_ARB                        0x8b59     /* 35673 */
#define GL_FLOAT_MAT2_ARB                       0x8b5a     /* 35674 */
#define GL_FLOAT_MAT3_ARB                       0x8b5b     /* 35675 */
#define GL_FLOAT_MAT4_ARB                       0x8b5c     /* 35676 */
#define GL_SAMPLER_1D_ARB                       0x8b5d     /* 35677 */
#define GL_SAMPLER_2D_ARB                       0x8b5e     /* 35678 */
#define GL_SAMPLER_3D_ARB                       0x8b5f     /* 35679 */
#define GL_SAMPLER_CUBE_ARB                     0x8b60     /* 35680 */
#define GL_SAMPLER_1D_SHADOW_ARB                0x8b61     /* 35681 */
#define GL_SAMPLER_2D_SHADOW_ARB                0x8b62     /* 35682 */
#define GL_SAMPLER_2D_RECT_ARB                  0x8b63     /* 35683 */
#define GL_SAMPLER_2D_RECT_SHADOW_ARB           0x8b64     /* 35684 */
#define GL_OBJECT_DELETE_STATUS_ARB             0x8b80     /* 35712 */
#define GL_OBJECT_COMPILE_STATUS_ARB            0x8b81     /* 35713 */
#define GL_OBJECT_LINK_STATUS_ARB               0x8b82     /* 35714 */
#define GL_OBJECT_VALIDATE_STATUS_ARB           0x8b83     /* 35715 */
#define GL_OBJECT_INFO_LOG_LENGTH_ARB           0x8b84     /* 35716 */
#define GL_OBJECT_ATTACHED_OBJECTS_ARB          0x8b85     /* 35717 */
#define GL_OBJECT_ACTIVE_UNIFORMS_ARB           0x8b86     /* 35718 */
#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8b87     /* 35719 */
#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB      0x8b88     /* 35720 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SHADER_OBJECTS
typedef GLhandleARB (REGAL_CALL *PFNGLCREATEPROGRAMOBJECTARBPROC)(void);
typedef GLhandleARB (REGAL_CALL *PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType);
typedef GLhandleARB (REGAL_CALL *PFNGLGETHANDLEARBPROC)(GLenum pname);
typedef GLint (REGAL_CALL *PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB *name);
typedef void (REGAL_CALL *PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj);
typedef void (REGAL_CALL *PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj);
typedef void (REGAL_CALL *PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj);
typedef void (REGAL_CALL *PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB attachedObj);
typedef void (REGAL_CALL *PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
typedef void (REGAL_CALL *PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
typedef void (REGAL_CALL *PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
typedef void (REGAL_CALL *PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
typedef void (REGAL_CALL *PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location, GLint *params);
typedef void (REGAL_CALL *PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj);
typedef void (REGAL_CALL *PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count, const GLcharARB ** const string, const GLint *length);
typedef void (REGAL_CALL *PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0);
typedef void (REGAL_CALL *PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0);
typedef void (REGAL_CALL *PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1);
typedef void (REGAL_CALL *PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1);
typedef void (REGAL_CALL *PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
typedef void (REGAL_CALL *PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2);
typedef void (REGAL_CALL *PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
typedef void (REGAL_CALL *PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
typedef void (REGAL_CALL *PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj);
typedef void (REGAL_CALL *PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SHADER_OBJECTS
#define glAttachObjectARB                   rglAttachObjectARB
#define glCompileShaderARB                  rglCompileShaderARB
#define glCreateProgramObjectARB            rglCreateProgramObjectARB
#define glCreateShaderObjectARB             rglCreateShaderObjectARB
#define glDeleteObjectARB                   rglDeleteObjectARB
#define glDetachObjectARB                   rglDetachObjectARB
#define glGetActiveUniformARB               rglGetActiveUniformARB
#define glGetAttachedObjectsARB             rglGetAttachedObjectsARB
#define glGetHandleARB                      rglGetHandleARB
#define glGetInfoLogARB                     rglGetInfoLogARB
#define glGetObjectParameterfvARB           rglGetObjectParameterfvARB
#define glGetObjectParameterivARB           rglGetObjectParameterivARB
#define glGetShaderSourceARB                rglGetShaderSourceARB
#define glGetUniformLocationARB             rglGetUniformLocationARB
#define glGetUniformfvARB                   rglGetUniformfvARB
#define glGetUniformivARB                   rglGetUniformivARB
#define glLinkProgramARB                    rglLinkProgramARB
#define glShaderSourceARB                   rglShaderSourceARB
#define glUniform1fARB                      rglUniform1fARB
#define glUniform1fvARB                     rglUniform1fvARB
#define glUniform1iARB                      rglUniform1iARB
#define glUniform1ivARB                     rglUniform1ivARB
#define glUniform2fARB                      rglUniform2fARB
#define glUniform2fvARB                     rglUniform2fvARB
#define glUniform2iARB                      rglUniform2iARB
#define glUniform2ivARB                     rglUniform2ivARB
#define glUniform3fARB                      rglUniform3fARB
#define glUniform3fvARB                     rglUniform3fvARB
#define glUniform3iARB                      rglUniform3iARB
#define glUniform3ivARB                     rglUniform3ivARB
#define glUniform4fARB                      rglUniform4fARB
#define glUniform4fvARB                     rglUniform4fvARB
#define glUniform4iARB                      rglUniform4iARB
#define glUniform4ivARB                     rglUniform4ivARB
#define glUniformMatrix2fvARB               rglUniformMatrix2fvARB
#define glUniformMatrix3fvARB               rglUniformMatrix3fvARB
#define glUniformMatrix4fvARB               rglUniformMatrix4fvARB
#define glUseProgramObjectARB               rglUseProgramObjectARB
#define glValidateProgramARB                rglValidateProgramARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SHADER_OBJECTS
REGAL_DECL GLhandleARB REGAL_CALL glCreateProgramObjectARB(void);
REGAL_DECL GLhandleARB REGAL_CALL glCreateShaderObjectARB(GLenum shaderType);
REGAL_DECL GLhandleARB REGAL_CALL glGetHandleARB(GLenum pname);
REGAL_DECL GLint REGAL_CALL glGetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name);
REGAL_DECL void REGAL_CALL glAttachObjectARB(GLhandleARB containerObj, GLhandleARB obj);
REGAL_DECL void REGAL_CALL glCompileShaderARB(GLhandleARB shaderObj);
REGAL_DECL void REGAL_CALL glDeleteObjectARB(GLhandleARB obj);
REGAL_DECL void REGAL_CALL glDetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj);
REGAL_DECL void REGAL_CALL glGetActiveUniformARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
REGAL_DECL void REGAL_CALL glGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
REGAL_DECL void REGAL_CALL glGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
REGAL_DECL void REGAL_CALL glGetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetShaderSourceARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
REGAL_DECL void REGAL_CALL glGetUniformfvARB(GLhandleARB programObj, GLint location, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetUniformivARB(GLhandleARB programObj, GLint location, GLint *params);
REGAL_DECL void REGAL_CALL glLinkProgramARB(GLhandleARB programObj);
REGAL_DECL void REGAL_CALL glShaderSourceARB(GLhandleARB shaderObj, GLsizei count, const GLcharARB ** const string, const GLint *length);
REGAL_DECL void REGAL_CALL glUniform1fARB(GLint location, GLfloat v0);
REGAL_DECL void REGAL_CALL glUniform1fvARB(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniform1iARB(GLint location, GLint v0);
REGAL_DECL void REGAL_CALL glUniform1ivARB(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glUniform2fARB(GLint location, GLfloat v0, GLfloat v1);
REGAL_DECL void REGAL_CALL glUniform2fvARB(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniform2iARB(GLint location, GLint v0, GLint v1);
REGAL_DECL void REGAL_CALL glUniform2ivARB(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glUniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
REGAL_DECL void REGAL_CALL glUniform3fvARB(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniform3iARB(GLint location, GLint v0, GLint v1, GLint v2);
REGAL_DECL void REGAL_CALL glUniform3ivARB(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glUniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
REGAL_DECL void REGAL_CALL glUniform4fvARB(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
REGAL_DECL void REGAL_CALL glUniform4ivARB(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glUniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUseProgramObjectARB(GLhandleARB programObj);
REGAL_DECL void REGAL_CALL glValidateProgramARB(GLhandleARB programObj);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SHADER_OBJECTS
REGAL_DECL GLhandleARB REGAL_CALL plugin_glCreateProgramObjectARB(void);
REGAL_DECL GLhandleARB REGAL_CALL plugin_glCreateShaderObjectARB(GLenum shaderType);
REGAL_DECL GLhandleARB REGAL_CALL plugin_glGetHandleARB(GLenum pname);
REGAL_DECL GLint REGAL_CALL plugin_glGetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name);
REGAL_DECL void REGAL_CALL plugin_glAttachObjectARB(GLhandleARB containerObj, GLhandleARB obj);
REGAL_DECL void REGAL_CALL plugin_glCompileShaderARB(GLhandleARB shaderObj);
REGAL_DECL void REGAL_CALL plugin_glDeleteObjectARB(GLhandleARB obj);
REGAL_DECL void REGAL_CALL plugin_glDetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj);
REGAL_DECL void REGAL_CALL plugin_glGetActiveUniformARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
REGAL_DECL void REGAL_CALL plugin_glGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj);
REGAL_DECL void REGAL_CALL plugin_glGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog);
REGAL_DECL void REGAL_CALL plugin_glGetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetShaderSourceARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source);
REGAL_DECL void REGAL_CALL plugin_glGetUniformfvARB(GLhandleARB programObj, GLint location, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetUniformivARB(GLhandleARB programObj, GLint location, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glLinkProgramARB(GLhandleARB programObj);
REGAL_DECL void REGAL_CALL plugin_glShaderSourceARB(GLhandleARB shaderObj, GLsizei count, const GLcharARB ** const string, const GLint *length);
REGAL_DECL void REGAL_CALL plugin_glUniform1fARB(GLint location, GLfloat v0);
REGAL_DECL void REGAL_CALL plugin_glUniform1fvARB(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniform1iARB(GLint location, GLint v0);
REGAL_DECL void REGAL_CALL plugin_glUniform1ivARB(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2fARB(GLint location, GLfloat v0, GLfloat v1);
REGAL_DECL void REGAL_CALL plugin_glUniform2fvARB(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2iARB(GLint location, GLint v0, GLint v1);
REGAL_DECL void REGAL_CALL plugin_glUniform2ivARB(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
REGAL_DECL void REGAL_CALL plugin_glUniform3fvARB(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3iARB(GLint location, GLint v0, GLint v1, GLint v2);
REGAL_DECL void REGAL_CALL plugin_glUniform3ivARB(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
REGAL_DECL void REGAL_CALL plugin_glUniform4fvARB(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
REGAL_DECL void REGAL_CALL plugin_glUniform4ivARB(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUseProgramObjectARB(GLhandleARB programObj);
REGAL_DECL void REGAL_CALL plugin_glValidateProgramARB(GLhandleARB programObj);
#endif

/**
 ** GL_ARB_shader_storage_buffer_object
 **/

#if (defined(GL_ARB_SHADER_STORAGE_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_SHADER_STORAGE_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_SHADER_STORAGE_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_SHADER_STORAGE_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_SHADER_STORAGE_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
#endif

#ifndef GL_ARB_shader_storage_buffer_object
#define GL_ARB_shader_storage_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
#define GL_SHADER_STORAGE_BARRIER_BIT                0x2000     /* 8192 */
#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES      0x8f39     /* 36665 */
#define GL_SHADER_STORAGE_BUFFER                     0x90d2     /* 37074 */
#define GL_SHADER_STORAGE_BUFFER_BINDING             0x90d3     /* 37075 */
#define GL_SHADER_STORAGE_BUFFER_START               0x90d4     /* 37076 */
#define GL_SHADER_STORAGE_BUFFER_SIZE                0x90d5     /* 37077 */
#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS          0x90d6     /* 37078 */
#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS        0x90d7     /* 37079 */
#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS    0x90d8     /* 37080 */
#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS 0x90d9     /* 37081 */
#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS        0x90da     /* 37082 */
#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS         0x90db     /* 37083 */
#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS        0x90dc     /* 37084 */
#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS        0x90dd     /* 37085 */
#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE             0x90de     /* 37086 */
#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT    0x90df     /* 37087 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
typedef void (REGAL_CALL *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
#define glShaderStorageBlockBinding         rglShaderStorageBlockBinding
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL glShaderStorageBlockBinding(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SHADER_STORAGE_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL plugin_glShaderStorageBlockBinding(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
#endif

/**
 ** GL_ARB_shader_subroutine
 **/

#if (defined(GL_ARB_SHADER_SUBROUTINE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADER_SUBROUTINE)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADER_SUBROUTINE)
#define REGAL_NO_ENUM_GL_ARB_SHADER_SUBROUTINE
#endif

#if (defined(GL_ARB_SHADER_SUBROUTINE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADER_SUBROUTINE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADER_SUBROUTINE)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADER_SUBROUTINE
#endif

#if (defined(GL_ARB_SHADER_SUBROUTINE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADER_SUBROUTINE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADER_SUBROUTINE)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADER_SUBROUTINE
#endif

#if (defined(GL_ARB_SHADER_SUBROUTINE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADER_SUBROUTINE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADER_SUBROUTINE)
#define REGAL_NO_PLUGIN_GL_ARB_SHADER_SUBROUTINE
#endif

#if (defined(GL_ARB_SHADER_SUBROUTINE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADER_SUBROUTINE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADER_SUBROUTINE)
#define REGAL_NO_DECLARATION_GL_ARB_SHADER_SUBROUTINE
#endif

#ifndef GL_ARB_shader_subroutine
#define GL_ARB_shader_subroutine 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADER_SUBROUTINE
#define GL_ACTIVE_SUBROUTINES                   0x8de5     /* 36325 */
#define GL_ACTIVE_SUBROUTINE_UNIFORMS           0x8de6     /* 36326 */
#define GL_MAX_SUBROUTINES                      0x8de7     /* 36327 */
#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS     0x8de8     /* 36328 */
#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS  0x8e47     /* 36423 */
#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH         0x8e48     /* 36424 */
#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8e49     /* 36425 */
#define GL_NUM_COMPATIBLE_SUBROUTINES           0x8e4a     /* 36426 */
#define GL_COMPATIBLE_SUBROUTINES               0x8e4b     /* 36427 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SHADER_SUBROUTINE
typedef GLint (REGAL_CALL *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shaderType, const GLchar *name);
typedef GLuint (REGAL_CALL *PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shaderType, const GLchar *name);
typedef void (REGAL_CALL *PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shaderType, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
typedef void (REGAL_CALL *PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shaderType, GLuint index, GLenum pname, GLint *values);
typedef void (REGAL_CALL *PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shaderType, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
typedef void (REGAL_CALL *PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shaderType, GLenum pname, GLint *values);
typedef void (REGAL_CALL *PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC)(GLenum target, GLuint index, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shaderType, GLint location, GLuint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC)(GLenum target, GLsizei count, const GLuint *params);
typedef void (REGAL_CALL *PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shaderType, GLsizei count, const GLuint *indices);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SHADER_SUBROUTINE
#define glGetActiveSubroutineName           rglGetActiveSubroutineName
#define glGetActiveSubroutineUniformName    rglGetActiveSubroutineUniformName
#define glGetActiveSubroutineUniformiv      rglGetActiveSubroutineUniformiv
#define glGetProgramStageiv                 rglGetProgramStageiv
#define glGetProgramSubroutineParameteruivNV rglGetProgramSubroutineParameteruivNV
#define glGetSubroutineIndex                rglGetSubroutineIndex
#define glGetSubroutineUniformLocation      rglGetSubroutineUniformLocation
#define glGetUniformSubroutineuiv           rglGetUniformSubroutineuiv
#define glProgramSubroutineParametersuivNV  rglProgramSubroutineParametersuivNV
#define glUniformSubroutinesuiv             rglUniformSubroutinesuiv
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SHADER_SUBROUTINE
REGAL_DECL GLint REGAL_CALL glGetSubroutineUniformLocation(GLuint program, GLenum shaderType, const GLchar *name);
REGAL_DECL GLuint REGAL_CALL glGetSubroutineIndex(GLuint program, GLenum shaderType, const GLchar *name);
REGAL_DECL void REGAL_CALL glGetActiveSubroutineName(GLuint program, GLenum shaderType, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
REGAL_DECL void REGAL_CALL glGetActiveSubroutineUniformName(GLuint program, GLenum shaderType, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
REGAL_DECL void REGAL_CALL glGetActiveSubroutineUniformiv(GLuint program, GLenum shaderType, GLuint index, GLenum pname, GLint *values);
REGAL_DECL void REGAL_CALL glGetProgramStageiv(GLuint program, GLenum shaderType, GLenum pname, GLint *values);
REGAL_DECL void REGAL_CALL glGetProgramSubroutineParameteruivNV(GLenum target, GLuint index, GLuint *params);
REGAL_DECL void REGAL_CALL glGetUniformSubroutineuiv(GLenum shaderType, GLint location, GLuint *params);
REGAL_DECL void REGAL_CALL glProgramSubroutineParametersuivNV(GLenum target, GLsizei count, const GLuint *params);
REGAL_DECL void REGAL_CALL glUniformSubroutinesuiv(GLenum shaderType, GLsizei count, const GLuint *indices);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SHADER_SUBROUTINE
REGAL_DECL GLint REGAL_CALL plugin_glGetSubroutineUniformLocation(GLuint program, GLenum shaderType, const GLchar *name);
REGAL_DECL GLuint REGAL_CALL plugin_glGetSubroutineIndex(GLuint program, GLenum shaderType, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetActiveSubroutineName(GLuint program, GLenum shaderType, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetActiveSubroutineUniformName(GLuint program, GLenum shaderType, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetActiveSubroutineUniformiv(GLuint program, GLenum shaderType, GLuint index, GLenum pname, GLint *values);
REGAL_DECL void REGAL_CALL plugin_glGetProgramStageiv(GLuint program, GLenum shaderType, GLenum pname, GLint *values);
REGAL_DECL void REGAL_CALL plugin_glGetProgramSubroutineParameteruivNV(GLenum target, GLuint index, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetUniformSubroutineuiv(GLenum shaderType, GLint location, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramSubroutineParametersuivNV(GLenum target, GLsizei count, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glUniformSubroutinesuiv(GLenum shaderType, GLsizei count, const GLuint *indices);
#endif

/**
 ** GL_ARB_shading_language_100
 **/

#if (defined(GL_ARB_SHADING_LANGUAGE_100) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_100)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADING_LANGUAGE_100)
#define REGAL_NO_ENUM_GL_ARB_SHADING_LANGUAGE_100
#endif

#if (defined(GL_ARB_SHADING_LANGUAGE_100) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_100)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADING_LANGUAGE_100)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADING_LANGUAGE_100
#endif

#if (defined(GL_ARB_SHADING_LANGUAGE_100) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_100)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADING_LANGUAGE_100)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADING_LANGUAGE_100
#endif

#if (defined(GL_ARB_SHADING_LANGUAGE_100) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_100)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADING_LANGUAGE_100)
#define REGAL_NO_PLUGIN_GL_ARB_SHADING_LANGUAGE_100
#endif

#if (defined(GL_ARB_SHADING_LANGUAGE_100) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_100)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADING_LANGUAGE_100)
#define REGAL_NO_DECLARATION_GL_ARB_SHADING_LANGUAGE_100
#endif

#ifndef GL_ARB_shading_language_100
#define GL_ARB_shading_language_100 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADING_LANGUAGE_100
#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8b8c /* 35724 */
#endif

/**
 ** GL_ARB_shading_language_include
 **/

#if (defined(GL_ARB_SHADING_LANGUAGE_INCLUDE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_INCLUDE)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADING_LANGUAGE_INCLUDE)
#define REGAL_NO_ENUM_GL_ARB_SHADING_LANGUAGE_INCLUDE
#endif

#if (defined(GL_ARB_SHADING_LANGUAGE_INCLUDE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_INCLUDE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADING_LANGUAGE_INCLUDE)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADING_LANGUAGE_INCLUDE
#endif

#if (defined(GL_ARB_SHADING_LANGUAGE_INCLUDE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_INCLUDE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADING_LANGUAGE_INCLUDE)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADING_LANGUAGE_INCLUDE
#endif

#if (defined(GL_ARB_SHADING_LANGUAGE_INCLUDE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_INCLUDE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADING_LANGUAGE_INCLUDE)
#define REGAL_NO_PLUGIN_GL_ARB_SHADING_LANGUAGE_INCLUDE
#endif

#if (defined(GL_ARB_SHADING_LANGUAGE_INCLUDE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADING_LANGUAGE_INCLUDE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADING_LANGUAGE_INCLUDE)
#define REGAL_NO_DECLARATION_GL_ARB_SHADING_LANGUAGE_INCLUDE
#endif

#ifndef GL_ARB_shading_language_include
#define GL_ARB_shading_language_include 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADING_LANGUAGE_INCLUDE
#define GL_SHADER_INCLUDE_ARB      0x8dae     /* 36270 */
#define GL_NAMED_STRING_LENGTH_ARB 0x8de9     /* 36329 */
#define GL_NAMED_STRING_TYPE_ARB   0x8dea     /* 36330 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SHADING_LANGUAGE_INCLUDE
typedef GLboolean (REGAL_CALL *PFNGLISNAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name);
typedef void (REGAL_CALL *PFNGLCOMPILESHADERINCLUDEARBPROC)(GLuint shader, GLsizei count, const GLchar **path, const GLint *length);
typedef void (REGAL_CALL *PFNGLDELETENAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name);
typedef void (REGAL_CALL *PFNGLGETNAMEDSTRINGARBPROC)(GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
typedef void (REGAL_CALL *PFNGLGETNAMEDSTRINGIVARBPROC)(GLint namelen, const GLchar *name, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLNAMEDSTRINGARBPROC)(GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SHADING_LANGUAGE_INCLUDE
#define glCompileShaderIncludeARB           rglCompileShaderIncludeARB
#define glDeleteNamedStringARB              rglDeleteNamedStringARB
#define glGetNamedStringARB                 rglGetNamedStringARB
#define glGetNamedStringivARB               rglGetNamedStringivARB
#define glIsNamedStringARB                  rglIsNamedStringARB
#define glNamedStringARB                    rglNamedStringARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SHADING_LANGUAGE_INCLUDE
REGAL_DECL GLboolean REGAL_CALL glIsNamedStringARB(GLint namelen, const GLchar *name);
REGAL_DECL void REGAL_CALL glCompileShaderIncludeARB(GLuint shader, GLsizei count, const GLchar **path, const GLint *length);
REGAL_DECL void REGAL_CALL glDeleteNamedStringARB(GLint namelen, const GLchar *name);
REGAL_DECL void REGAL_CALL glGetNamedStringARB(GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
REGAL_DECL void REGAL_CALL glGetNamedStringivARB(GLint namelen, const GLchar *name, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glNamedStringARB(GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SHADING_LANGUAGE_INCLUDE
REGAL_DECL GLboolean REGAL_CALL plugin_glIsNamedStringARB(GLint namelen, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glCompileShaderIncludeARB(GLuint shader, GLsizei count, const GLchar **path, const GLint *length);
REGAL_DECL void REGAL_CALL plugin_glDeleteNamedStringARB(GLint namelen, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetNamedStringARB(GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string);
REGAL_DECL void REGAL_CALL plugin_glGetNamedStringivARB(GLint namelen, const GLchar *name, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glNamedStringARB(GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string);
#endif

/**
 ** GL_ARB_shadow
 **/

#if (defined(GL_ARB_SHADOW) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADOW)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADOW)
#define REGAL_NO_ENUM_GL_ARB_SHADOW
#endif

#if (defined(GL_ARB_SHADOW) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADOW)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADOW)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADOW
#endif

#if (defined(GL_ARB_SHADOW) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADOW)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADOW)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADOW
#endif

#if (defined(GL_ARB_SHADOW) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADOW)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADOW)
#define REGAL_NO_PLUGIN_GL_ARB_SHADOW
#endif

#if (defined(GL_ARB_SHADOW) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADOW)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADOW)
#define REGAL_NO_DECLARATION_GL_ARB_SHADOW
#endif

#ifndef GL_ARB_shadow
#define GL_ARB_shadow 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADOW
#define GL_TEXTURE_COMPARE_MODE_ARB 0x884c     /* 34892 */
#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884d     /* 34893 */
#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884e     /* 34894 */
#endif

/**
 ** GL_ARB_shadow_ambient
 **/

#if (defined(GL_ARB_SHADOW_AMBIENT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SHADOW_AMBIENT)) && !defined(REGAL_NO_ENUM_GL_ARB_SHADOW_AMBIENT)
#define REGAL_NO_ENUM_GL_ARB_SHADOW_AMBIENT
#endif

#if (defined(GL_ARB_SHADOW_AMBIENT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SHADOW_AMBIENT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SHADOW_AMBIENT)
#define REGAL_NO_TYPEDEF_GL_ARB_SHADOW_AMBIENT
#endif

#if (defined(GL_ARB_SHADOW_AMBIENT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SHADOW_AMBIENT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SHADOW_AMBIENT)
#define REGAL_NO_NAMESPACE_GL_ARB_SHADOW_AMBIENT
#endif

#if (defined(GL_ARB_SHADOW_AMBIENT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SHADOW_AMBIENT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SHADOW_AMBIENT)
#define REGAL_NO_PLUGIN_GL_ARB_SHADOW_AMBIENT
#endif

#if (defined(GL_ARB_SHADOW_AMBIENT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SHADOW_AMBIENT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SHADOW_AMBIENT)
#define REGAL_NO_DECLARATION_GL_ARB_SHADOW_AMBIENT
#endif

#ifndef GL_ARB_shadow_ambient
#define GL_ARB_shadow_ambient 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SHADOW_AMBIENT
#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80bf /* 32959 */
#endif

/**
 ** GL_ARB_sparse_texture
 **/

#if (defined(GL_ARB_SPARSE_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SPARSE_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_ARB_SPARSE_TEXTURE)
#define REGAL_NO_ENUM_GL_ARB_SPARSE_TEXTURE
#endif

#if (defined(GL_ARB_SPARSE_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SPARSE_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SPARSE_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_ARB_SPARSE_TEXTURE
#endif

#if (defined(GL_ARB_SPARSE_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SPARSE_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SPARSE_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_ARB_SPARSE_TEXTURE
#endif

#if (defined(GL_ARB_SPARSE_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SPARSE_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SPARSE_TEXTURE)
#define REGAL_NO_PLUGIN_GL_ARB_SPARSE_TEXTURE
#endif

#if (defined(GL_ARB_SPARSE_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SPARSE_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SPARSE_TEXTURE)
#define REGAL_NO_DECLARATION_GL_ARB_SPARSE_TEXTURE
#endif

#ifndef GL_ARB_sparse_texture
#define GL_ARB_sparse_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SPARSE_TEXTURE
#define GL_VIRTUAL_PAGE_SIZE_X_ARB                    0x9195     /* 37269 */
#define GL_VIRTUAL_PAGE_SIZE_Y_ARB                    0x9196     /* 37270 */
#define GL_VIRTUAL_PAGE_SIZE_Z_ARB                    0x9197     /* 37271 */
#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB                0x9198     /* 37272 */
#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB             0x9199     /* 37273 */
#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB        0x919a     /* 37274 */
#define GL_TEXTURE_SPARSE_ARB                         0x91a6     /* 37286 */
#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB                0x91a7     /* 37287 */
#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB                 0x91a8     /* 37288 */
#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB 0x91a9     /* 37289 */
#define GL_NUM_SPARSE_LEVELS_ARB                      0x91aa     /* 37290 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SPARSE_TEXTURE
typedef void (REGAL_CALL *PFNGLTEXPAGECOMMITMENTARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
typedef void (REGAL_CALL *PFNGLTEXTUREPAGECOMMITMENTEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SPARSE_TEXTURE
#define glTexPageCommitmentARB              rglTexPageCommitmentARB
#define glTexturePageCommitmentEXT          rglTexturePageCommitmentEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SPARSE_TEXTURE
REGAL_DECL void REGAL_CALL glTexPageCommitmentARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
REGAL_DECL void REGAL_CALL glTexturePageCommitmentEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SPARSE_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glTexPageCommitmentARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
REGAL_DECL void REGAL_CALL plugin_glTexturePageCommitmentEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
#endif

/**
 ** GL_ARB_stencil_texturing
 **/

#if (defined(GL_ARB_STENCIL_TEXTURING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_STENCIL_TEXTURING)) && !defined(REGAL_NO_ENUM_GL_ARB_STENCIL_TEXTURING)
#define REGAL_NO_ENUM_GL_ARB_STENCIL_TEXTURING
#endif

#if (defined(GL_ARB_STENCIL_TEXTURING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_STENCIL_TEXTURING)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_STENCIL_TEXTURING)
#define REGAL_NO_TYPEDEF_GL_ARB_STENCIL_TEXTURING
#endif

#if (defined(GL_ARB_STENCIL_TEXTURING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_STENCIL_TEXTURING)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_STENCIL_TEXTURING)
#define REGAL_NO_NAMESPACE_GL_ARB_STENCIL_TEXTURING
#endif

#if (defined(GL_ARB_STENCIL_TEXTURING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_STENCIL_TEXTURING)) && !defined(REGAL_NO_PLUGIN_GL_ARB_STENCIL_TEXTURING)
#define REGAL_NO_PLUGIN_GL_ARB_STENCIL_TEXTURING
#endif

#if (defined(GL_ARB_STENCIL_TEXTURING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_STENCIL_TEXTURING)) && !defined(REGAL_NO_DECLARATION_GL_ARB_STENCIL_TEXTURING)
#define REGAL_NO_DECLARATION_GL_ARB_STENCIL_TEXTURING
#endif

#ifndef GL_ARB_stencil_texturing
#define GL_ARB_stencil_texturing 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_STENCIL_TEXTURING
#define GL_DEPTH_STENCIL_TEXTURE_MODE 0x90ea /* 37098 */
#endif

/**
 ** GL_ARB_sync
 **/

#if (defined(GL_ARB_SYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_SYNC)) && !defined(REGAL_NO_ENUM_GL_ARB_SYNC)
#define REGAL_NO_ENUM_GL_ARB_SYNC
#endif

#if (defined(GL_ARB_SYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_SYNC)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_SYNC)
#define REGAL_NO_TYPEDEF_GL_ARB_SYNC
#endif

#if (defined(GL_ARB_SYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_SYNC)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_SYNC)
#define REGAL_NO_NAMESPACE_GL_ARB_SYNC
#endif

#if (defined(GL_ARB_SYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_SYNC)) && !defined(REGAL_NO_PLUGIN_GL_ARB_SYNC)
#define REGAL_NO_PLUGIN_GL_ARB_SYNC
#endif

#if (defined(GL_ARB_SYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_SYNC)) && !defined(REGAL_NO_DECLARATION_GL_ARB_SYNC)
#define REGAL_NO_DECLARATION_GL_ARB_SYNC
#endif

#ifndef GL_ARB_sync
#define GL_ARB_sync 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_SYNC
#define GL_SYNC_FLUSH_COMMANDS_BIT    0x1
#define GL_MAX_SERVER_WAIT_TIMEOUT    0x9111                 /* 37137 */
#define GL_OBJECT_TYPE                0x9112                 /* 37138 */
#define GL_SYNC_CONDITION             0x9113                 /* 37139 */
#define GL_SYNC_STATUS                0x9114                 /* 37140 */
#define GL_SYNC_FLAGS                 0x9115                 /* 37141 */
#define GL_SYNC_FENCE                 0x9116                 /* 37142 */
#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117                 /* 37143 */
#define GL_UNSIGNALED                 0x9118                 /* 37144 */
#define GL_SIGNALED                   0x9119                 /* 37145 */
#define GL_ALREADY_SIGNALED           0x911a                 /* 37146 */
#define GL_TIMEOUT_EXPIRED            0x911b                 /* 37147 */
#define GL_CONDITION_SATISFIED        0x911c                 /* 37148 */
#define GL_WAIT_FAILED                0x911d                 /* 37149 */
#define GL_TIMEOUT_IGNORED            0xffffffffffffffff     /* 18446744073709551615 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_SYNC
typedef GLboolean (REGAL_CALL *PFNGLISSYNCPROC)(GLsync sync);
typedef GLenum (REGAL_CALL *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
typedef GLsync (REGAL_CALL *PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
typedef void (REGAL_CALL *PFNGLDELETESYNCPROC)(GLsync sync);
typedef void (REGAL_CALL *PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 *params);
typedef void (REGAL_CALL *PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
typedef void (REGAL_CALL *PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_SYNC
#define glClientWaitSync                    rglClientWaitSync
#define glDeleteSync                        rglDeleteSync
#define glFenceSync                         rglFenceSync
#define glGetInteger64v                     rglGetInteger64v
#define glGetSynciv                         rglGetSynciv
#define glIsSync                            rglIsSync
#define glWaitSync                          rglWaitSync
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_SYNC
REGAL_DECL GLboolean REGAL_CALL glIsSync(GLsync sync);
REGAL_DECL GLenum REGAL_CALL glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
REGAL_DECL GLsync REGAL_CALL glFenceSync(GLenum condition, GLbitfield flags);
REGAL_DECL void REGAL_CALL glDeleteSync(GLsync sync);
REGAL_DECL void REGAL_CALL glGetInteger64v(GLenum pname, GLint64 *params);
REGAL_DECL void REGAL_CALL glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
REGAL_DECL void REGAL_CALL glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_SYNC
REGAL_DECL GLboolean REGAL_CALL plugin_glIsSync(GLsync sync);
REGAL_DECL GLenum REGAL_CALL plugin_glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
REGAL_DECL GLsync REGAL_CALL plugin_glFenceSync(GLenum condition, GLbitfield flags);
REGAL_DECL void REGAL_CALL plugin_glDeleteSync(GLsync sync);
REGAL_DECL void REGAL_CALL plugin_glGetInteger64v(GLenum pname, GLint64 *params);
REGAL_DECL void REGAL_CALL plugin_glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
REGAL_DECL void REGAL_CALL plugin_glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
#endif

/**
 ** GL_ARB_tessellation_shader
 **/

#if (defined(GL_ARB_TESSELLATION_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TESSELLATION_SHADER)) && !defined(REGAL_NO_ENUM_GL_ARB_TESSELLATION_SHADER)
#define REGAL_NO_ENUM_GL_ARB_TESSELLATION_SHADER
#endif

#if (defined(GL_ARB_TESSELLATION_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TESSELLATION_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TESSELLATION_SHADER)
#define REGAL_NO_TYPEDEF_GL_ARB_TESSELLATION_SHADER
#endif

#if (defined(GL_ARB_TESSELLATION_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TESSELLATION_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TESSELLATION_SHADER)
#define REGAL_NO_NAMESPACE_GL_ARB_TESSELLATION_SHADER
#endif

#if (defined(GL_ARB_TESSELLATION_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TESSELLATION_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TESSELLATION_SHADER)
#define REGAL_NO_PLUGIN_GL_ARB_TESSELLATION_SHADER
#endif

#if (defined(GL_ARB_TESSELLATION_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TESSELLATION_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TESSELLATION_SHADER)
#define REGAL_NO_DECLARATION_GL_ARB_TESSELLATION_SHADER
#endif

#ifndef GL_ARB_tessellation_shader
#define GL_ARB_tessellation_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TESSELLATION_SHADER
#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER    0x84f0     /* 34032 */
#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84f1     /* 34033 */
#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS                  0x886c     /* 34924 */
#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS               0x886d     /* 34925 */
#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS       0x8e1e     /* 36382 */
#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS    0x8e1f     /* 36383 */
#define GL_PATCH_VERTICES                                     0x8e72     /* 36466 */
#define GL_PATCH_DEFAULT_INNER_LEVEL                          0x8e73     /* 36467 */
#define GL_PATCH_DEFAULT_OUTER_LEVEL                          0x8e74     /* 36468 */
#define GL_TESS_CONTROL_OUTPUT_VERTICES                       0x8e75     /* 36469 */
#define GL_TESS_GEN_MODE                                      0x8e76     /* 36470 */
#define GL_TESS_GEN_SPACING                                   0x8e77     /* 36471 */
#define GL_TESS_GEN_VERTEX_ORDER                              0x8e78     /* 36472 */
#define GL_TESS_GEN_POINT_MODE                                0x8e79     /* 36473 */
#define GL_ISOLINES                                           0x8e7a     /* 36474 */
#define GL_FRACTIONAL_ODD                                     0x8e7b     /* 36475 */
#define GL_FRACTIONAL_EVEN                                    0x8e7c     /* 36476 */
#define GL_MAX_PATCH_VERTICES                                 0x8e7d     /* 36477 */
#define GL_MAX_TESS_GEN_LEVEL                                 0x8e7e     /* 36478 */
#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS                0x8e7f     /* 36479 */
#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS             0x8e80     /* 36480 */
#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS               0x8e81     /* 36481 */
#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS            0x8e82     /* 36482 */
#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS                 0x8e83     /* 36483 */
#define GL_MAX_TESS_PATCH_COMPONENTS                          0x8e84     /* 36484 */
#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS           0x8e85     /* 36485 */
#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS              0x8e86     /* 36486 */
#define GL_TESS_EVALUATION_SHADER                             0x8e87     /* 36487 */
#define GL_TESS_CONTROL_SHADER                                0x8e88     /* 36488 */
#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS                    0x8e89     /* 36489 */
#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS                 0x8e8a     /* 36490 */
#define GL_PATCHES                                            0xe        /* 14 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TESSELLATION_SHADER
typedef void (REGAL_CALL *PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat *values);
typedef void (REGAL_CALL *PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TESSELLATION_SHADER
#define glPatchParameterfv                  rglPatchParameterfv
#define glPatchParameteri                   rglPatchParameteri
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TESSELLATION_SHADER
REGAL_DECL void REGAL_CALL glPatchParameterfv(GLenum pname, const GLfloat *values);
REGAL_DECL void REGAL_CALL glPatchParameteri(GLenum pname, GLint value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TESSELLATION_SHADER
REGAL_DECL void REGAL_CALL plugin_glPatchParameterfv(GLenum pname, const GLfloat *values);
REGAL_DECL void REGAL_CALL plugin_glPatchParameteri(GLenum pname, GLint value);
#endif

/**
 ** GL_ARB_texture_border_clamp
 **/

#if (defined(GL_ARB_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_ARB_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_ARB_TEXTURE_BORDER_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_ARB_TEXTURE_BORDER_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_ARB_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_BORDER_CLAMP
#endif

#ifndef GL_ARB_texture_border_clamp
#define GL_ARB_texture_border_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_BORDER_CLAMP
#define GL_CLAMP_TO_BORDER_ARB 0x812d /* 33069 */
#endif

/**
 ** GL_ARB_texture_buffer_object
 **/

#if (defined(GL_ARB_TEXTURE_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_TEXTURE_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_TEXTURE_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_TEXTURE_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_TEXTURE_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_BUFFER_OBJECT
#endif

#ifndef GL_ARB_texture_buffer_object
#define GL_ARB_texture_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_BUFFER_OBJECT
#define GL_TEXTURE_BUFFER_ARB                    0x8c2a     /* 35882 */
#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB           0x8c2b     /* 35883 */
#define GL_TEXTURE_BINDING_BUFFER_ARB            0x8c2c     /* 35884 */
#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8c2d     /* 35885 */
#define GL_TEXTURE_BUFFER_FORMAT_ARB             0x8c2e     /* 35886 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_BUFFER_OBJECT
typedef void (REGAL_CALL *PFNGLTEXBUFFERARBPROC)(GLenum target, GLenum internalformat, GLuint buffer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_BUFFER_OBJECT
#define glTexBufferARB                      rglTexBufferARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TEXTURE_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL glTexBufferARB(GLenum target, GLenum internalformat, GLuint buffer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TEXTURE_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL plugin_glTexBufferARB(GLenum target, GLenum internalformat, GLuint buffer);
#endif

/**
 ** GL_ARB_texture_buffer_range
 **/

#if (defined(GL_ARB_TEXTURE_BUFFER_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_RANGE)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_BUFFER_RANGE)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_BUFFER_RANGE
#endif

#if (defined(GL_ARB_TEXTURE_BUFFER_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_BUFFER_RANGE)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_BUFFER_RANGE
#endif

#if (defined(GL_ARB_TEXTURE_BUFFER_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_BUFFER_RANGE)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_BUFFER_RANGE
#endif

#if (defined(GL_ARB_TEXTURE_BUFFER_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_BUFFER_RANGE)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_BUFFER_RANGE
#endif

#if (defined(GL_ARB_TEXTURE_BUFFER_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_BUFFER_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_BUFFER_RANGE)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_BUFFER_RANGE
#endif

#ifndef GL_ARB_texture_buffer_range
#define GL_ARB_texture_buffer_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_BUFFER_RANGE
#define GL_TEXTURE_BUFFER_OFFSET           0x919d     /* 37277 */
#define GL_TEXTURE_BUFFER_SIZE             0x919e     /* 37278 */
#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT 0x919f     /* 37279 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_BUFFER_RANGE
typedef void (REGAL_CALL *PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (REGAL_CALL *PFNGLTEXTUREBUFFERRANGEEXTPROC)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_BUFFER_RANGE
#define glTexBufferRange                    rglTexBufferRange
#define glTextureBufferRangeEXT             rglTextureBufferRangeEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TEXTURE_BUFFER_RANGE
REGAL_DECL void REGAL_CALL glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL glTextureBufferRangeEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TEXTURE_BUFFER_RANGE
REGAL_DECL void REGAL_CALL plugin_glTexBufferRange(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL plugin_glTextureBufferRangeEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
#endif

/**
 ** GL_ARB_texture_compression
 **/

#if (defined(GL_ARB_TEXTURE_COMPRESSION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_COMPRESSION)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_COMPRESSION
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_COMPRESSION)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_COMPRESSION
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_COMPRESSION)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_COMPRESSION
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_COMPRESSION)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_COMPRESSION
#endif

#ifndef GL_ARB_texture_compression
#define GL_ARB_texture_compression 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION
#define GL_COMPRESSED_ALPHA_ARB               0x84e9     /* 34025 */
#define GL_COMPRESSED_LUMINANCE_ARB           0x84ea     /* 34026 */
#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB     0x84eb     /* 34027 */
#define GL_COMPRESSED_INTENSITY_ARB           0x84ec     /* 34028 */
#define GL_COMPRESSED_RGB_ARB                 0x84ed     /* 34029 */
#define GL_COMPRESSED_RGBA_ARB                0x84ee     /* 34030 */
#define GL_TEXTURE_COMPRESSION_HINT_ARB       0x84ef     /* 34031 */
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB  0x86a0     /* 34464 */
#define GL_TEXTURE_COMPRESSED_ARB             0x86a1     /* 34465 */
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86a2     /* 34466 */
#define GL_COMPRESSED_TEXTURE_FORMATS_ARB     0x86a3     /* 34467 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_COMPRESSION
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod, GLvoid *img);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_COMPRESSION
#define glCompressedTexImage1DARB           rglCompressedTexImage1DARB
#define glCompressedTexImage2DARB           rglCompressedTexImage2DARB
#define glCompressedTexImage3DARB           rglCompressedTexImage3DARB
#define glCompressedTexSubImage1DARB        rglCompressedTexSubImage1DARB
#define glCompressedTexSubImage2DARB        rglCompressedTexSubImage2DARB
#define glCompressedTexSubImage3DARB        rglCompressedTexSubImage3DARB
#define glGetCompressedTexImageARB          rglGetCompressedTexImageARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TEXTURE_COMPRESSION
REGAL_DECL void REGAL_CALL glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glGetCompressedTexImageARB(GLenum target, GLint lod, GLvoid *img);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TEXTURE_COMPRESSION
REGAL_DECL void REGAL_CALL plugin_glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glGetCompressedTexImageARB(GLenum target, GLint lod, GLvoid *img);
#endif

/**
 ** GL_ARB_texture_compression_bptc
 **/

#if (defined(GL_ARB_TEXTURE_COMPRESSION_BPTC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_BPTC)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION_BPTC)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION_BPTC
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION_BPTC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_BPTC)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_COMPRESSION_BPTC)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_COMPRESSION_BPTC
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION_BPTC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_BPTC)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_COMPRESSION_BPTC)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_COMPRESSION_BPTC
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION_BPTC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_BPTC)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_COMPRESSION_BPTC)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_COMPRESSION_BPTC
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION_BPTC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_BPTC)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_COMPRESSION_BPTC)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_COMPRESSION_BPTC
#endif

#ifndef GL_ARB_texture_compression_bptc
#define GL_ARB_texture_compression_bptc 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION_BPTC
#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB         0x8e8c     /* 36492 */
#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB   0x8e8d     /* 36493 */
#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB   0x8e8e     /* 36494 */
#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8e8f     /* 36495 */
#endif

/**
 ** GL_ARB_texture_compression_rgtc
 **/

#if (defined(GL_ARB_TEXTURE_COMPRESSION_RGTC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION_RGTC
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION_RGTC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_COMPRESSION_RGTC
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION_RGTC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_COMPRESSION_RGTC
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION_RGTC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_COMPRESSION_RGTC
#endif

#if (defined(GL_ARB_TEXTURE_COMPRESSION_RGTC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_COMPRESSION_RGTC
#endif

#ifndef GL_ARB_texture_compression_rgtc
#define GL_ARB_texture_compression_rgtc 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_COMPRESSION_RGTC
#define GL_COMPRESSED_RED_RGTC1        0x8dbb     /* 36283 */
#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8dbc     /* 36284 */
#define GL_COMPRESSED_RG_RGTC2         0x8dbd     /* 36285 */
#define GL_COMPRESSED_SIGNED_RG_RGTC2  0x8dbe     /* 36286 */
#endif

/**
 ** GL_ARB_texture_cube_map
 **/

#if (defined(GL_ARB_TEXTURE_CUBE_MAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_CUBE_MAP)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_ARB_TEXTURE_CUBE_MAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_CUBE_MAP)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_ARB_TEXTURE_CUBE_MAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_CUBE_MAP)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_ARB_TEXTURE_CUBE_MAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_CUBE_MAP)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_ARB_TEXTURE_CUBE_MAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_CUBE_MAP)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_CUBE_MAP
#endif

#ifndef GL_ARB_texture_cube_map
#define GL_ARB_texture_cube_map 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_CUBE_MAP
#define GL_NORMAL_MAP_ARB                  0x8511     /* 34065 */
#define GL_REFLECTION_MAP_ARB              0x8512     /* 34066 */
#define GL_TEXTURE_CUBE_MAP_ARB            0x8513     /* 34067 */
#define GL_TEXTURE_BINDING_CUBE_MAP_ARB    0x8514     /* 34068 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515     /* 34069 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516     /* 34070 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517     /* 34071 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518     /* 34072 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519     /* 34073 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851a     /* 34074 */
#define GL_PROXY_TEXTURE_CUBE_MAP_ARB      0x851b     /* 34075 */
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB   0x851c     /* 34076 */
#endif

/**
 ** GL_ARB_texture_cube_map_array
 **/

#if (defined(GL_ARB_TEXTURE_CUBE_MAP_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_CUBE_MAP_ARRAY
#endif

#if (defined(GL_ARB_TEXTURE_CUBE_MAP_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_CUBE_MAP_ARRAY
#endif

#if (defined(GL_ARB_TEXTURE_CUBE_MAP_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_CUBE_MAP_ARRAY
#endif

#if (defined(GL_ARB_TEXTURE_CUBE_MAP_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_CUBE_MAP_ARRAY
#endif

#if (defined(GL_ARB_TEXTURE_CUBE_MAP_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_CUBE_MAP_ARRAY)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_CUBE_MAP_ARRAY
#endif

#ifndef GL_ARB_texture_cube_map_array
#define GL_ARB_texture_cube_map_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_CUBE_MAP_ARRAY
#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB              0x9009     /* 36873 */
#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB      0x900a     /* 36874 */
#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB        0x900b     /* 36875 */
#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB              0x900c     /* 36876 */
#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB       0x900d     /* 36877 */
#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB          0x900e     /* 36878 */
#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900f     /* 36879 */
#endif

/**
 ** GL_ARB_texture_env_combine
 **/

#if (defined(GL_ARB_TEXTURE_ENV_COMBINE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_ENV_COMBINE)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_ENV_COMBINE
#endif

#if (defined(GL_ARB_TEXTURE_ENV_COMBINE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_ENV_COMBINE)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_ENV_COMBINE
#endif

#if (defined(GL_ARB_TEXTURE_ENV_COMBINE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_ENV_COMBINE)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_ENV_COMBINE
#endif

#if (defined(GL_ARB_TEXTURE_ENV_COMBINE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_ENV_COMBINE)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_ENV_COMBINE
#endif

#if (defined(GL_ARB_TEXTURE_ENV_COMBINE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_ENV_COMBINE)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_ENV_COMBINE
#endif

#ifndef GL_ARB_texture_env_combine
#define GL_ARB_texture_env_combine 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_ENV_COMBINE
#define GL_SUBTRACT_ARB       0x84e7     /* 34023 */
#define GL_COMBINE_ARB        0x8570     /* 34160 */
#define GL_COMBINE_RGB_ARB    0x8571     /* 34161 */
#define GL_COMBINE_ALPHA_ARB  0x8572     /* 34162 */
#define GL_RGB_SCALE_ARB      0x8573     /* 34163 */
#define GL_ADD_SIGNED_ARB     0x8574     /* 34164 */
#define GL_INTERPOLATE_ARB    0x8575     /* 34165 */
#define GL_CONSTANT_ARB       0x8576     /* 34166 */
#define GL_PRIMARY_COLOR_ARB  0x8577     /* 34167 */
#define GL_PREVIOUS_ARB       0x8578     /* 34168 */
#define GL_SOURCE0_RGB_ARB    0x8580     /* 34176 */
#define GL_SOURCE1_RGB_ARB    0x8581     /* 34177 */
#define GL_SOURCE2_RGB_ARB    0x8582     /* 34178 */
#define GL_SOURCE0_ALPHA_ARB  0x8588     /* 34184 */
#define GL_SOURCE1_ALPHA_ARB  0x8589     /* 34185 */
#define GL_SOURCE2_ALPHA_ARB  0x858a     /* 34186 */
#define GL_OPERAND0_RGB_ARB   0x8590     /* 34192 */
#define GL_OPERAND1_RGB_ARB   0x8591     /* 34193 */
#define GL_OPERAND2_RGB_ARB   0x8592     /* 34194 */
#define GL_OPERAND0_ALPHA_ARB 0x8598     /* 34200 */
#define GL_OPERAND1_ALPHA_ARB 0x8599     /* 34201 */
#define GL_OPERAND2_ALPHA_ARB 0x859a     /* 34202 */
#endif

/**
 ** GL_ARB_texture_env_dot3
 **/

#if (defined(GL_ARB_TEXTURE_ENV_DOT3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_ENV_DOT3)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_ENV_DOT3
#endif

#if (defined(GL_ARB_TEXTURE_ENV_DOT3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_ENV_DOT3)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_ENV_DOT3
#endif

#if (defined(GL_ARB_TEXTURE_ENV_DOT3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_ENV_DOT3)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_ENV_DOT3
#endif

#if (defined(GL_ARB_TEXTURE_ENV_DOT3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_ENV_DOT3)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_ENV_DOT3
#endif

#if (defined(GL_ARB_TEXTURE_ENV_DOT3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_ENV_DOT3)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_ENV_DOT3
#endif

#ifndef GL_ARB_texture_env_dot3
#define GL_ARB_texture_env_dot3 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_ENV_DOT3
#define GL_DOT3_RGB_ARB  0x86ae     /* 34478 */
#define GL_DOT3_RGBA_ARB 0x86af     /* 34479 */
#endif

/**
 ** GL_ARB_texture_float
 **/

#if (defined(GL_ARB_TEXTURE_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_FLOAT)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_FLOAT)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_FLOAT
#endif

#if (defined(GL_ARB_TEXTURE_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_FLOAT)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_FLOAT
#endif

#if (defined(GL_ARB_TEXTURE_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_FLOAT)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_FLOAT
#endif

#if (defined(GL_ARB_TEXTURE_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_FLOAT)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_FLOAT
#endif

#if (defined(GL_ARB_TEXTURE_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_FLOAT)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_FLOAT
#endif

#ifndef GL_ARB_texture_float
#define GL_ARB_texture_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_FLOAT
#define GL_RGBA32F_ARB                0x8814     /* 34836 */
#define GL_RGB32F_ARB                 0x8815     /* 34837 */
#define GL_ALPHA32F_ARB               0x8816     /* 34838 */
#define GL_INTENSITY32F_ARB           0x8817     /* 34839 */
#define GL_LUMINANCE32F_ARB           0x8818     /* 34840 */
#define GL_LUMINANCE_ALPHA32F_ARB     0x8819     /* 34841 */
#define GL_RGBA16F_ARB                0x881a     /* 34842 */
#define GL_RGB16F_ARB                 0x881b     /* 34843 */
#define GL_ALPHA16F_ARB               0x881c     /* 34844 */
#define GL_INTENSITY16F_ARB           0x881d     /* 34845 */
#define GL_LUMINANCE16F_ARB           0x881e     /* 34846 */
#define GL_LUMINANCE_ALPHA16F_ARB     0x881f     /* 34847 */
#define GL_TEXTURE_RED_TYPE_ARB       0x8c10     /* 35856 */
#define GL_TEXTURE_GREEN_TYPE_ARB     0x8c11     /* 35857 */
#define GL_TEXTURE_BLUE_TYPE_ARB      0x8c12     /* 35858 */
#define GL_TEXTURE_ALPHA_TYPE_ARB     0x8c13     /* 35859 */
#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8c14     /* 35860 */
#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8c15     /* 35861 */
#define GL_TEXTURE_DEPTH_TYPE_ARB     0x8c16     /* 35862 */
#define GL_UNSIGNED_NORMALIZED_ARB    0x8c17     /* 35863 */
#endif

/**
 ** GL_ARB_texture_gather
 **/

#if (defined(GL_ARB_TEXTURE_GATHER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_GATHER)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_GATHER)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_GATHER
#endif

#if (defined(GL_ARB_TEXTURE_GATHER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_GATHER)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_GATHER)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_GATHER
#endif

#if (defined(GL_ARB_TEXTURE_GATHER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_GATHER)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_GATHER)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_GATHER
#endif

#if (defined(GL_ARB_TEXTURE_GATHER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_GATHER)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_GATHER)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_GATHER
#endif

#if (defined(GL_ARB_TEXTURE_GATHER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_GATHER)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_GATHER)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_GATHER
#endif

#ifndef GL_ARB_texture_gather
#define GL_ARB_texture_gather 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_GATHER
#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB     0x8e5e     /* 36446 */
#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB     0x8e5f     /* 36447 */
#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8f9f     /* 36767 */
#endif

/**
 ** GL_ARB_texture_mirror_clamp_to_edge
 **/

#if (defined(GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE
#endif

#if (defined(GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE
#endif

#if (defined(GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE
#endif

#if (defined(GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE
#endif

#if (defined(GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE
#endif

#ifndef GL_ARB_texture_mirror_clamp_to_edge
#define GL_ARB_texture_mirror_clamp_to_edge 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE
#define GL_MIRROR_CLAMP_TO_EDGE 0x8743 /* 34627 */
#endif

/**
 ** GL_ARB_texture_mirrored_repeat
 **/

#if (defined(GL_ARB_TEXTURE_MIRRORED_REPEAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_MIRRORED_REPEAT
#endif

#if (defined(GL_ARB_TEXTURE_MIRRORED_REPEAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_MIRRORED_REPEAT
#endif

#if (defined(GL_ARB_TEXTURE_MIRRORED_REPEAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_MIRRORED_REPEAT
#endif

#if (defined(GL_ARB_TEXTURE_MIRRORED_REPEAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_MIRRORED_REPEAT
#endif

#if (defined(GL_ARB_TEXTURE_MIRRORED_REPEAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_MIRRORED_REPEAT
#endif

#ifndef GL_ARB_texture_mirrored_repeat
#define GL_ARB_texture_mirrored_repeat 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_MIRRORED_REPEAT
#define GL_MIRRORED_REPEAT_ARB 0x8370 /* 33648 */
#endif

/**
 ** GL_ARB_texture_multisample
 **/

#if (defined(GL_ARB_TEXTURE_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_MULTISAMPLE
#endif

#if (defined(GL_ARB_TEXTURE_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_MULTISAMPLE
#endif

#if (defined(GL_ARB_TEXTURE_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_MULTISAMPLE
#endif

#if (defined(GL_ARB_TEXTURE_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_MULTISAMPLE
#endif

#if (defined(GL_ARB_TEXTURE_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_MULTISAMPLE
#endif

#ifndef GL_ARB_texture_multisample
#define GL_ARB_texture_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_MULTISAMPLE
#define GL_SAMPLE_POSITION                           0x8e50     /* 36432 */
#define GL_SAMPLE_MASK                               0x8e51     /* 36433 */
#define GL_SAMPLE_MASK_VALUE                         0x8e52     /* 36434 */
#define GL_MAX_SAMPLE_MASK_WORDS                     0x8e59     /* 36441 */
#define GL_TEXTURE_2D_MULTISAMPLE                    0x9100     /* 37120 */
#define GL_PROXY_TEXTURE_2D_MULTISAMPLE              0x9101     /* 37121 */
#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY              0x9102     /* 37122 */
#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY        0x9103     /* 37123 */
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE            0x9104     /* 37124 */
#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY      0x9105     /* 37125 */
#define GL_TEXTURE_SAMPLES                           0x9106     /* 37126 */
#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS            0x9107     /* 37127 */
#define GL_SAMPLER_2D_MULTISAMPLE                    0x9108     /* 37128 */
#define GL_INT_SAMPLER_2D_MULTISAMPLE                0x9109     /* 37129 */
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE       0x910a     /* 37130 */
#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY              0x910b     /* 37131 */
#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY          0x910c     /* 37132 */
#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910d     /* 37133 */
#define GL_MAX_COLOR_TEXTURE_SAMPLES                 0x910e     /* 37134 */
#define GL_MAX_DEPTH_TEXTURE_SAMPLES                 0x910f     /* 37135 */
#define GL_MAX_INTEGER_SAMPLES                       0x9110     /* 37136 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat *val);
typedef void (REGAL_CALL *PFNGLSAMPLEMASKIPROC)(GLuint index, GLbitfield mask);
typedef void (REGAL_CALL *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
typedef void (REGAL_CALL *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_MULTISAMPLE
#define glGetMultisamplefv                  rglGetMultisamplefv
#define glSampleMaski                       rglSampleMaski
#define glTexImage2DMultisample             rglTexImage2DMultisample
#define glTexImage3DMultisample             rglTexImage3DMultisample
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TEXTURE_MULTISAMPLE
REGAL_DECL void REGAL_CALL glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
REGAL_DECL void REGAL_CALL glSampleMaski(GLuint index, GLbitfield mask);
REGAL_DECL void REGAL_CALL glTexImage2DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
REGAL_DECL void REGAL_CALL glTexImage3DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TEXTURE_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glGetMultisamplefv(GLenum pname, GLuint index, GLfloat *val);
REGAL_DECL void REGAL_CALL plugin_glSampleMaski(GLuint index, GLbitfield mask);
REGAL_DECL void REGAL_CALL plugin_glTexImage2DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
REGAL_DECL void REGAL_CALL plugin_glTexImage3DMultisample(GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
#endif

/**
 ** GL_ARB_texture_rectangle
 **/

#if (defined(GL_ARB_TEXTURE_RECTANGLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_RECTANGLE)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_RECTANGLE
#endif

#if (defined(GL_ARB_TEXTURE_RECTANGLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_RECTANGLE)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_RECTANGLE
#endif

#if (defined(GL_ARB_TEXTURE_RECTANGLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_RECTANGLE)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_RECTANGLE
#endif

#if (defined(GL_ARB_TEXTURE_RECTANGLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_RECTANGLE)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_RECTANGLE
#endif

#if (defined(GL_ARB_TEXTURE_RECTANGLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_RECTANGLE)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_RECTANGLE
#endif

#ifndef GL_ARB_texture_rectangle
#define GL_ARB_texture_rectangle 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_RECTANGLE
#define GL_TEXTURE_RECTANGLE_ARB          0x84f5     /* 34037 */
#define GL_TEXTURE_BINDING_RECTANGLE_ARB  0x84f6     /* 34038 */
#define GL_PROXY_TEXTURE_RECTANGLE_ARB    0x84f7     /* 34039 */
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84f8     /* 34040 */
#endif

/**
 ** GL_ARB_texture_rg
 **/

#if (defined(GL_ARB_TEXTURE_RG) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_RG)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_RG)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_RG
#endif

#if (defined(GL_ARB_TEXTURE_RG) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_RG)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_RG)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_RG
#endif

#if (defined(GL_ARB_TEXTURE_RG) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_RG)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_RG)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_RG
#endif

#if (defined(GL_ARB_TEXTURE_RG) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_RG)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_RG)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_RG
#endif

#if (defined(GL_ARB_TEXTURE_RG) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_RG)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_RG)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_RG
#endif

#ifndef GL_ARB_texture_rg
#define GL_ARB_texture_rg 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_RG
#define GL_COMPRESSED_RED 0x8225     /* 33317 */
#define GL_COMPRESSED_RG  0x8226     /* 33318 */
#define GL_RG             0x8227     /* 33319 */
#define GL_RG_INTEGER     0x8228     /* 33320 */
#define GL_R8             0x8229     /* 33321 */
#define GL_R16            0x822a     /* 33322 */
#define GL_RG8            0x822b     /* 33323 */
#define GL_RG16           0x822c     /* 33324 */
#define GL_R16F           0x822d     /* 33325 */
#define GL_R32F           0x822e     /* 33326 */
#define GL_RG16F          0x822f     /* 33327 */
#define GL_RG32F          0x8230     /* 33328 */
#define GL_R8I            0x8231     /* 33329 */
#define GL_R8UI           0x8232     /* 33330 */
#define GL_R16I           0x8233     /* 33331 */
#define GL_R16UI          0x8234     /* 33332 */
#define GL_R32I           0x8235     /* 33333 */
#define GL_R32UI          0x8236     /* 33334 */
#define GL_RG8I           0x8237     /* 33335 */
#define GL_RG8UI          0x8238     /* 33336 */
#define GL_RG16I          0x8239     /* 33337 */
#define GL_RG16UI         0x823a     /* 33338 */
#define GL_RG32I          0x823b     /* 33339 */
#define GL_RG32UI         0x823c     /* 33340 */
#endif

/**
 ** GL_ARB_texture_rgb10_a2ui
 **/

#if (defined(GL_ARB_TEXTURE_RGB10_A2UI) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_RGB10_A2UI)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_RGB10_A2UI)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_RGB10_A2UI
#endif

#if (defined(GL_ARB_TEXTURE_RGB10_A2UI) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_RGB10_A2UI)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_RGB10_A2UI)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_RGB10_A2UI
#endif

#if (defined(GL_ARB_TEXTURE_RGB10_A2UI) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_RGB10_A2UI)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_RGB10_A2UI)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_RGB10_A2UI
#endif

#if (defined(GL_ARB_TEXTURE_RGB10_A2UI) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_RGB10_A2UI)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_RGB10_A2UI)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_RGB10_A2UI
#endif

#if (defined(GL_ARB_TEXTURE_RGB10_A2UI) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_RGB10_A2UI)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_RGB10_A2UI)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_RGB10_A2UI
#endif

#ifndef GL_ARB_texture_rgb10_a2ui
#define GL_ARB_texture_rgb10_a2ui 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_RGB10_A2UI
#define GL_RGB10_A2UI 0x906f /* 36975 */
#endif

/**
 ** GL_ARB_texture_storage
 **/

#if (defined(GL_ARB_TEXTURE_STORAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_STORAGE)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_STORAGE
#endif

#if (defined(GL_ARB_TEXTURE_STORAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_STORAGE)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_STORAGE
#endif

#if (defined(GL_ARB_TEXTURE_STORAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_STORAGE)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_STORAGE
#endif

#if (defined(GL_ARB_TEXTURE_STORAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_STORAGE)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_STORAGE
#endif

#if (defined(GL_ARB_TEXTURE_STORAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_STORAGE)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_STORAGE
#endif

#ifndef GL_ARB_texture_storage
#define GL_ARB_texture_storage 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_STORAGE
#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912f /* 37167 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_STORAGE
typedef void (REGAL_CALL *PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
typedef void (REGAL_CALL *PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
typedef void (REGAL_CALL *PFNGLTEXTURESTORAGE1DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
typedef void (REGAL_CALL *PFNGLTEXTURESTORAGE2DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLTEXTURESTORAGE3DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_STORAGE
#define glTexStorage1D                      rglTexStorage1D
#define glTexStorage2D                      rglTexStorage2D
#define glTexStorage3D                      rglTexStorage3D
#define glTextureStorage1DEXT               rglTextureStorage1DEXT
#define glTextureStorage2DEXT               rglTextureStorage2DEXT
#define glTextureStorage3DEXT               rglTextureStorage3DEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TEXTURE_STORAGE
REGAL_DECL void REGAL_CALL glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
REGAL_DECL void REGAL_CALL glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
REGAL_DECL void REGAL_CALL glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
REGAL_DECL void REGAL_CALL glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TEXTURE_STORAGE
REGAL_DECL void REGAL_CALL plugin_glTexStorage1D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
REGAL_DECL void REGAL_CALL plugin_glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif

/**
 ** GL_ARB_texture_storage_multisample
 **/

#if (defined(GL_ARB_TEXTURE_STORAGE_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
#endif

#if (defined(GL_ARB_TEXTURE_STORAGE_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
#endif

#if (defined(GL_ARB_TEXTURE_STORAGE_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
#endif

#if (defined(GL_ARB_TEXTURE_STORAGE_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
#endif

#if (defined(GL_ARB_TEXTURE_STORAGE_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
#endif

#ifndef GL_ARB_texture_storage_multisample
#define GL_ARB_texture_storage_multisample 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
typedef void (REGAL_CALL *PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
typedef void (REGAL_CALL *PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
typedef void (REGAL_CALL *PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
#define glTexStorage2DMultisample           rglTexStorage2DMultisample
#define glTexStorage3DMultisample           rglTexStorage3DMultisample
#define glTextureStorage2DMultisampleEXT    rglTextureStorage2DMultisampleEXT
#define glTextureStorage3DMultisampleEXT    rglTextureStorage3DMultisampleEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
REGAL_DECL void REGAL_CALL glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
REGAL_DECL void REGAL_CALL glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
REGAL_DECL void REGAL_CALL glTextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
REGAL_DECL void REGAL_CALL glTextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TEXTURE_STORAGE_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glTexStorage2DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
REGAL_DECL void REGAL_CALL plugin_glTexStorage3DMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
REGAL_DECL void REGAL_CALL plugin_glTextureStorage2DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
REGAL_DECL void REGAL_CALL plugin_glTextureStorage3DMultisampleEXT(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
#endif

/**
 ** GL_ARB_texture_swizzle
 **/

#if (defined(GL_ARB_TEXTURE_SWIZZLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_SWIZZLE)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_SWIZZLE
#endif

#if (defined(GL_ARB_TEXTURE_SWIZZLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_SWIZZLE)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_SWIZZLE
#endif

#if (defined(GL_ARB_TEXTURE_SWIZZLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_SWIZZLE)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_SWIZZLE
#endif

#if (defined(GL_ARB_TEXTURE_SWIZZLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_SWIZZLE)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_SWIZZLE
#endif

#if (defined(GL_ARB_TEXTURE_SWIZZLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_SWIZZLE)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_SWIZZLE
#endif

#ifndef GL_ARB_texture_swizzle
#define GL_ARB_texture_swizzle 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_SWIZZLE
#define GL_TEXTURE_SWIZZLE_R    0x8e42     /* 36418 */
#define GL_TEXTURE_SWIZZLE_G    0x8e43     /* 36419 */
#define GL_TEXTURE_SWIZZLE_B    0x8e44     /* 36420 */
#define GL_TEXTURE_SWIZZLE_A    0x8e45     /* 36421 */
#define GL_TEXTURE_SWIZZLE_RGBA 0x8e46     /* 36422 */
#endif

/**
 ** GL_ARB_texture_view
 **/

#if (defined(GL_ARB_TEXTURE_VIEW) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TEXTURE_VIEW)) && !defined(REGAL_NO_ENUM_GL_ARB_TEXTURE_VIEW)
#define REGAL_NO_ENUM_GL_ARB_TEXTURE_VIEW
#endif

#if (defined(GL_ARB_TEXTURE_VIEW) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TEXTURE_VIEW)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_VIEW)
#define REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_VIEW
#endif

#if (defined(GL_ARB_TEXTURE_VIEW) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TEXTURE_VIEW)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_VIEW)
#define REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_VIEW
#endif

#if (defined(GL_ARB_TEXTURE_VIEW) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TEXTURE_VIEW)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TEXTURE_VIEW)
#define REGAL_NO_PLUGIN_GL_ARB_TEXTURE_VIEW
#endif

#if (defined(GL_ARB_TEXTURE_VIEW) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TEXTURE_VIEW)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TEXTURE_VIEW)
#define REGAL_NO_DECLARATION_GL_ARB_TEXTURE_VIEW
#endif

#ifndef GL_ARB_texture_view
#define GL_ARB_texture_view 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TEXTURE_VIEW
#define GL_TEXTURE_VIEW_MIN_LEVEL   0x82db     /* 33499 */
#define GL_TEXTURE_VIEW_NUM_LEVELS  0x82dc     /* 33500 */
#define GL_TEXTURE_VIEW_MIN_LAYER   0x82dd     /* 33501 */
#define GL_TEXTURE_VIEW_NUM_LAYERS  0x82de     /* 33502 */
#define GL_TEXTURE_IMMUTABLE_LEVELS 0x82df     /* 33503 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TEXTURE_VIEW
typedef void (REGAL_CALL *PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TEXTURE_VIEW
#define glTextureView                       rglTextureView
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TEXTURE_VIEW
REGAL_DECL void REGAL_CALL glTextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TEXTURE_VIEW
REGAL_DECL void REGAL_CALL plugin_glTextureView(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
#endif

/**
 ** GL_ARB_timer_query
 **/

#if (defined(GL_ARB_TIMER_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TIMER_QUERY)) && !defined(REGAL_NO_ENUM_GL_ARB_TIMER_QUERY)
#define REGAL_NO_ENUM_GL_ARB_TIMER_QUERY
#endif

#if (defined(GL_ARB_TIMER_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TIMER_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TIMER_QUERY)
#define REGAL_NO_TYPEDEF_GL_ARB_TIMER_QUERY
#endif

#if (defined(GL_ARB_TIMER_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TIMER_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TIMER_QUERY)
#define REGAL_NO_NAMESPACE_GL_ARB_TIMER_QUERY
#endif

#if (defined(GL_ARB_TIMER_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TIMER_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TIMER_QUERY)
#define REGAL_NO_PLUGIN_GL_ARB_TIMER_QUERY
#endif

#if (defined(GL_ARB_TIMER_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TIMER_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TIMER_QUERY)
#define REGAL_NO_DECLARATION_GL_ARB_TIMER_QUERY
#endif

#ifndef GL_ARB_timer_query
#define GL_ARB_timer_query 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TIMER_QUERY
#define GL_TIME_ELAPSED 0x88bf     /* 35007 */
#define GL_TIMESTAMP    0x8e28     /* 36392 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TIMER_QUERY
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 *params);
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 *params);
typedef void (REGAL_CALL *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TIMER_QUERY
#define glGetQueryObjecti64v                rglGetQueryObjecti64v
#define glGetQueryObjectui64v               rglGetQueryObjectui64v
#define glQueryCounter                      rglQueryCounter
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TIMER_QUERY
REGAL_DECL void REGAL_CALL glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params);
REGAL_DECL void REGAL_CALL glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params);
REGAL_DECL void REGAL_CALL glQueryCounter(GLuint id, GLenum target);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TIMER_QUERY
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjecti64v(GLuint id, GLenum pname, GLint64 *params);
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjectui64v(GLuint id, GLenum pname, GLuint64 *params);
REGAL_DECL void REGAL_CALL plugin_glQueryCounter(GLuint id, GLenum target);
#endif

/**
 ** GL_ARB_transform_feedback2
 **/

#if (defined(GL_ARB_TRANSFORM_FEEDBACK2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_ENUM_GL_ARB_TRANSFORM_FEEDBACK2)
#define REGAL_NO_ENUM_GL_ARB_TRANSFORM_FEEDBACK2
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK2)
#define REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK2
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK2)
#define REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK2
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK2)
#define REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK2
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK2)
#define REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK2
#endif

#ifndef GL_ARB_transform_feedback2
#define GL_ARB_transform_feedback2 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TRANSFORM_FEEDBACK2
#define GL_TRANSFORM_FEEDBACK               0x8e22     /* 36386 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8e23     /* 36387 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8e24     /* 36388 */
#define GL_TRANSFORM_FEEDBACK_BINDING       0x8e25     /* 36389 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK2
typedef GLboolean (REGAL_CALL *PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id);
typedef void (REGAL_CALL *PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint *ids);
typedef void (REGAL_CALL *PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint name);
typedef void (REGAL_CALL *PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint *ids);
typedef void (REGAL_CALL *PFNGLPAUSETRANSFORMFEEDBACKPROC)(void);
typedef void (REGAL_CALL *PFNGLRESUMETRANSFORMFEEDBACKPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK2
#define glBindTransformFeedback             rglBindTransformFeedback
#define glDeleteTransformFeedbacks          rglDeleteTransformFeedbacks
#define glDrawTransformFeedback             rglDrawTransformFeedback
#define glGenTransformFeedbacks             rglGenTransformFeedbacks
#define glIsTransformFeedback               rglIsTransformFeedback
#define glPauseTransformFeedback            rglPauseTransformFeedback
#define glResumeTransformFeedback           rglResumeTransformFeedback
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK2
REGAL_DECL GLboolean REGAL_CALL glIsTransformFeedback(GLuint id);
REGAL_DECL void REGAL_CALL glBindTransformFeedback(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL glDrawTransformFeedback(GLenum mode, GLuint name);
REGAL_DECL void REGAL_CALL glGenTransformFeedbacks(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL glPauseTransformFeedback(void);
REGAL_DECL void REGAL_CALL glResumeTransformFeedback(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK2
REGAL_DECL GLboolean REGAL_CALL plugin_glIsTransformFeedback(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glBindTransformFeedback(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDeleteTransformFeedbacks(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glDrawTransformFeedback(GLenum mode, GLuint name);
REGAL_DECL void REGAL_CALL plugin_glGenTransformFeedbacks(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glPauseTransformFeedback(void);
REGAL_DECL void REGAL_CALL plugin_glResumeTransformFeedback(void);
#endif

/**
 ** GL_ARB_transform_feedback3
 **/

#if (defined(GL_ARB_TRANSFORM_FEEDBACK3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK3)) && !defined(REGAL_NO_ENUM_GL_ARB_TRANSFORM_FEEDBACK3)
#define REGAL_NO_ENUM_GL_ARB_TRANSFORM_FEEDBACK3
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK3)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK3)
#define REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK3
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK3)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK3)
#define REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK3
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK3)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK3)
#define REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK3
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK3)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK3)
#define REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK3
#endif

#ifndef GL_ARB_transform_feedback3
#define GL_ARB_transform_feedback3 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TRANSFORM_FEEDBACK3
#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8e70 /* 36464 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK3
typedef void (REGAL_CALL *PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id);
typedef void (REGAL_CALL *PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream);
typedef void (REGAL_CALL *PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index);
typedef void (REGAL_CALL *PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK3
#define glBeginQueryIndexed                 rglBeginQueryIndexed
#define glDrawTransformFeedbackStream       rglDrawTransformFeedbackStream
#define glEndQueryIndexed                   rglEndQueryIndexed
#define glGetQueryIndexediv                 rglGetQueryIndexediv
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK3
REGAL_DECL void REGAL_CALL glBeginQueryIndexed(GLenum target, GLuint index, GLuint id);
REGAL_DECL void REGAL_CALL glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream);
REGAL_DECL void REGAL_CALL glEndQueryIndexed(GLenum target, GLuint index);
REGAL_DECL void REGAL_CALL glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK3
REGAL_DECL void REGAL_CALL plugin_glBeginQueryIndexed(GLenum target, GLuint index, GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDrawTransformFeedbackStream(GLenum mode, GLuint id, GLuint stream);
REGAL_DECL void REGAL_CALL plugin_glEndQueryIndexed(GLenum target, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glGetQueryIndexediv(GLenum target, GLuint index, GLenum pname, GLint *params);
#endif

/**
 ** GL_ARB_transform_feedback_instanced
 **/

#if (defined(GL_ARB_TRANSFORM_FEEDBACK_INSTANCED) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)) && !defined(REGAL_NO_ENUM_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)
#define REGAL_NO_ENUM_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK_INSTANCED) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)
#define REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK_INSTANCED) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)
#define REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK_INSTANCED) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)
#define REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
#endif

#if (defined(GL_ARB_TRANSFORM_FEEDBACK_INSTANCED) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED)
#define REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
#endif

#ifndef GL_ARB_transform_feedback_instanced
#define GL_ARB_transform_feedback_instanced 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
typedef void (REGAL_CALL *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id, GLuint stream, GLsizei primcount);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
#define glDrawTransformFeedbackInstanced    rglDrawTransformFeedbackInstanced
#define glDrawTransformFeedbackStreamInstanced rglDrawTransformFeedbackStreamInstanced
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
REGAL_DECL void REGAL_CALL glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei primcount);
REGAL_DECL void REGAL_CALL glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei primcount);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TRANSFORM_FEEDBACK_INSTANCED
REGAL_DECL void REGAL_CALL plugin_glDrawTransformFeedbackInstanced(GLenum mode, GLuint id, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glDrawTransformFeedbackStreamInstanced(GLenum mode, GLuint id, GLuint stream, GLsizei primcount);
#endif

/**
 ** GL_ARB_transpose_matrix
 **/

#if (defined(GL_ARB_TRANSPOSE_MATRIX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_TRANSPOSE_MATRIX)) && !defined(REGAL_NO_ENUM_GL_ARB_TRANSPOSE_MATRIX)
#define REGAL_NO_ENUM_GL_ARB_TRANSPOSE_MATRIX
#endif

#if (defined(GL_ARB_TRANSPOSE_MATRIX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_TRANSPOSE_MATRIX)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_TRANSPOSE_MATRIX)
#define REGAL_NO_TYPEDEF_GL_ARB_TRANSPOSE_MATRIX
#endif

#if (defined(GL_ARB_TRANSPOSE_MATRIX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_TRANSPOSE_MATRIX)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_TRANSPOSE_MATRIX)
#define REGAL_NO_NAMESPACE_GL_ARB_TRANSPOSE_MATRIX
#endif

#if (defined(GL_ARB_TRANSPOSE_MATRIX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_TRANSPOSE_MATRIX)) && !defined(REGAL_NO_PLUGIN_GL_ARB_TRANSPOSE_MATRIX)
#define REGAL_NO_PLUGIN_GL_ARB_TRANSPOSE_MATRIX
#endif

#if (defined(GL_ARB_TRANSPOSE_MATRIX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_TRANSPOSE_MATRIX)) && !defined(REGAL_NO_DECLARATION_GL_ARB_TRANSPOSE_MATRIX)
#define REGAL_NO_DECLARATION_GL_ARB_TRANSPOSE_MATRIX
#endif

#ifndef GL_ARB_transpose_matrix
#define GL_ARB_transpose_matrix 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_TRANSPOSE_MATRIX
#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB  0x84e3     /* 34019 */
#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84e4     /* 34020 */
#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB    0x84e5     /* 34021 */
#define GL_TRANSPOSE_COLOR_MATRIX_ARB      0x84e6     /* 34022 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_TRANSPOSE_MATRIX
typedef void (REGAL_CALL *PFNGLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble *m);
typedef void (REGAL_CALL *PFNGLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat *m);
typedef void (REGAL_CALL *PFNGLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble *m);
typedef void (REGAL_CALL *PFNGLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat *m);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_TRANSPOSE_MATRIX
#define glLoadTransposeMatrixdARB           rglLoadTransposeMatrixdARB
#define glLoadTransposeMatrixfARB           rglLoadTransposeMatrixfARB
#define glMultTransposeMatrixdARB           rglMultTransposeMatrixdARB
#define glMultTransposeMatrixfARB           rglMultTransposeMatrixfARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_TRANSPOSE_MATRIX
REGAL_DECL void REGAL_CALL glLoadTransposeMatrixdARB(const GLdouble *m);
REGAL_DECL void REGAL_CALL glLoadTransposeMatrixfARB(const GLfloat *m);
REGAL_DECL void REGAL_CALL glMultTransposeMatrixdARB(const GLdouble *m);
REGAL_DECL void REGAL_CALL glMultTransposeMatrixfARB(const GLfloat *m);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_TRANSPOSE_MATRIX
REGAL_DECL void REGAL_CALL plugin_glLoadTransposeMatrixdARB(const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glLoadTransposeMatrixfARB(const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glMultTransposeMatrixdARB(const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glMultTransposeMatrixfARB(const GLfloat *m);
#endif

/**
 ** GL_ARB_uniform_buffer_object
 **/

#if (defined(GL_ARB_UNIFORM_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_UNIFORM_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_UNIFORM_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_UNIFORM_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_UNIFORM_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_UNIFORM_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_UNIFORM_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_UNIFORM_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_UNIFORM_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_UNIFORM_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_UNIFORM_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_UNIFORM_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_UNIFORM_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_UNIFORM_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_UNIFORM_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_UNIFORM_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_UNIFORM_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_UNIFORM_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_UNIFORM_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_UNIFORM_BUFFER_OBJECT
#endif

#ifndef GL_ARB_uniform_buffer_object
#define GL_ARB_uniform_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_UNIFORM_BUFFER_OBJECT
#define GL_UNIFORM_BUFFER                              0x8a11         /* 35345 */
#define GL_UNIFORM_BUFFER_BINDING                      0x8a28         /* 35368 */
#define GL_UNIFORM_BUFFER_START                        0x8a29         /* 35369 */
#define GL_UNIFORM_BUFFER_SIZE                         0x8a2a         /* 35370 */
#define GL_MAX_VERTEX_UNIFORM_BLOCKS                   0x8a2b         /* 35371 */
#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS                 0x8a2c         /* 35372 */
#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS                 0x8a2d         /* 35373 */
#define GL_MAX_COMBINED_UNIFORM_BLOCKS                 0x8a2e         /* 35374 */
#define GL_MAX_UNIFORM_BUFFER_BINDINGS                 0x8a2f         /* 35375 */
#define GL_MAX_UNIFORM_BLOCK_SIZE                      0x8a30         /* 35376 */
#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS      0x8a31         /* 35377 */
#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS    0x8a32         /* 35378 */
#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS    0x8a33         /* 35379 */
#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT             0x8a34         /* 35380 */
#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH        0x8a35         /* 35381 */
#define GL_ACTIVE_UNIFORM_BLOCKS                       0x8a36         /* 35382 */
#define GL_UNIFORM_TYPE                                0x8a37         /* 35383 */
#define GL_UNIFORM_SIZE                                0x8a38         /* 35384 */
#define GL_UNIFORM_NAME_LENGTH                         0x8a39         /* 35385 */
#define GL_UNIFORM_BLOCK_INDEX                         0x8a3a         /* 35386 */
#define GL_UNIFORM_OFFSET                              0x8a3b         /* 35387 */
#define GL_UNIFORM_ARRAY_STRIDE                        0x8a3c         /* 35388 */
#define GL_UNIFORM_MATRIX_STRIDE                       0x8a3d         /* 35389 */
#define GL_UNIFORM_IS_ROW_MAJOR                        0x8a3e         /* 35390 */
#define GL_UNIFORM_BLOCK_BINDING                       0x8a3f         /* 35391 */
#define GL_UNIFORM_BLOCK_DATA_SIZE                     0x8a40         /* 35392 */
#define GL_UNIFORM_BLOCK_NAME_LENGTH                   0x8a41         /* 35393 */
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS               0x8a42         /* 35394 */
#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES        0x8a43         /* 35395 */
#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER   0x8a44         /* 35396 */
#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8a45         /* 35397 */
#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8a46         /* 35398 */
#define GL_INVALID_INDEX                               0xffffffff     /* 4294967295 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_UNIFORM_BUFFER_OBJECT
typedef GLuint (REGAL_CALL *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar *uniformBlockName);
typedef void (REGAL_CALL *PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer);
typedef void (REGAL_CALL *PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (REGAL_CALL *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
typedef void (REGAL_CALL *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
typedef void (REGAL_CALL *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint *data);
typedef void (REGAL_CALL *PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar * const *uniformNames, GLuint *uniformIndices);
typedef void (REGAL_CALL *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_UNIFORM_BUFFER_OBJECT
#define glBindBufferBase                    rglBindBufferBase
#define glBindBufferRange                   rglBindBufferRange
#define glGetActiveUniformBlockName         rglGetActiveUniformBlockName
#define glGetActiveUniformBlockiv           rglGetActiveUniformBlockiv
#define glGetActiveUniformName              rglGetActiveUniformName
#define glGetActiveUniformsiv               rglGetActiveUniformsiv
#define glGetIntegeri_v                     rglGetIntegeri_v
#define glGetUniformBlockIndex              rglGetUniformBlockIndex
#define glGetUniformIndices                 rglGetUniformIndices
#define glUniformBlockBinding               rglUniformBlockBinding
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_UNIFORM_BUFFER_OBJECT
REGAL_DECL GLuint REGAL_CALL glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName);
REGAL_DECL void REGAL_CALL glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
REGAL_DECL void REGAL_CALL glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
REGAL_DECL void REGAL_CALL glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
REGAL_DECL void REGAL_CALL glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetIntegeri_v(GLenum target, GLuint index, GLint *data);
REGAL_DECL void REGAL_CALL glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar * const *uniformNames, GLuint *uniformIndices);
REGAL_DECL void REGAL_CALL glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_UNIFORM_BUFFER_OBJECT
REGAL_DECL GLuint REGAL_CALL plugin_glGetUniformBlockIndex(GLuint program, const GLchar *uniformBlockName);
REGAL_DECL void REGAL_CALL plugin_glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL plugin_glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName);
REGAL_DECL void REGAL_CALL plugin_glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetActiveUniformName(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName);
REGAL_DECL void REGAL_CALL plugin_glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetIntegeri_v(GLenum target, GLuint index, GLint *data);
REGAL_DECL void REGAL_CALL plugin_glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar * const *uniformNames, GLuint *uniformIndices);
REGAL_DECL void REGAL_CALL plugin_glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
#endif

/**
 ** GL_ARB_vertex_array_object
 **/

#if (defined(GL_ARB_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_ARB_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_ARB_VERTEX_ARRAY_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_ARB_VERTEX_ARRAY_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_ARB_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_VERTEX_ARRAY_OBJECT
#endif

#ifndef GL_ARB_vertex_array_object
#define GL_ARB_vertex_array_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_VERTEX_ARRAY_OBJECT
#define GL_VERTEX_ARRAY_BINDING 0x85b5 /* 34229 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ARRAY_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLISVERTEXARRAYPROC)(GLuint array);
typedef void (REGAL_CALL *PFNGLBINDVERTEXARRAYPROC)(GLuint array);
typedef void (REGAL_CALL *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint *arrays);
typedef void (REGAL_CALL *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint *arrays);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ARRAY_OBJECT
#define glBindVertexArray                   rglBindVertexArray
#define glDeleteVertexArrays                rglDeleteVertexArrays
#define glGenVertexArrays                   rglGenVertexArrays
#define glIsVertexArray                     rglIsVertexArray
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VERTEX_ARRAY_OBJECT
REGAL_DECL GLboolean REGAL_CALL glIsVertexArray(GLuint array);
REGAL_DECL void REGAL_CALL glBindVertexArray(GLuint array);
REGAL_DECL void REGAL_CALL glDeleteVertexArrays(GLsizei n, const GLuint *arrays);
REGAL_DECL void REGAL_CALL glGenVertexArrays(GLsizei n, GLuint *arrays);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VERTEX_ARRAY_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glIsVertexArray(GLuint array);
REGAL_DECL void REGAL_CALL plugin_glBindVertexArray(GLuint array);
REGAL_DECL void REGAL_CALL plugin_glDeleteVertexArrays(GLsizei n, const GLuint *arrays);
REGAL_DECL void REGAL_CALL plugin_glGenVertexArrays(GLsizei n, GLuint *arrays);
#endif

/**
 ** GL_ARB_vertex_attrib_64bit
 **/

#if (defined(GL_ARB_VERTEX_ATTRIB_64BIT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_ENUM_GL_ARB_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_ENUM_GL_ARB_VERTEX_ATTRIB_64BIT
#endif

#if (defined(GL_ARB_VERTEX_ATTRIB_64BIT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ATTRIB_64BIT
#endif

#if (defined(GL_ARB_VERTEX_ATTRIB_64BIT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ATTRIB_64BIT
#endif

#if (defined(GL_ARB_VERTEX_ATTRIB_64BIT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_PLUGIN_GL_ARB_VERTEX_ATTRIB_64BIT
#endif

#if (defined(GL_ARB_VERTEX_ATTRIB_64BIT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_DECLARATION_GL_ARB_VERTEX_ATTRIB_64BIT
#endif

#ifndef GL_ARB_vertex_attrib_64bit
#define GL_ARB_vertex_attrib_64bit 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ATTRIB_64BIT
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ATTRIB_64BIT
#define glGetVertexAttribLdv                rglGetVertexAttribLdv
#define glVertexAttribL1d                   rglVertexAttribL1d
#define glVertexAttribL1dv                  rglVertexAttribL1dv
#define glVertexAttribL2d                   rglVertexAttribL2d
#define glVertexAttribL2dv                  rglVertexAttribL2dv
#define glVertexAttribL3d                   rglVertexAttribL3d
#define glVertexAttribL3dv                  rglVertexAttribL3dv
#define glVertexAttribL4d                   rglVertexAttribL4d
#define glVertexAttribL4dv                  rglVertexAttribL4dv
#define glVertexAttribLPointer              rglVertexAttribLPointer
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VERTEX_ATTRIB_64BIT
REGAL_DECL void REGAL_CALL glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glVertexAttribL1d(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL glVertexAttribL1dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glVertexAttribL2dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glVertexAttribL3dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glVertexAttribL4dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VERTEX_ATTRIB_64BIT
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribLdv(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1d(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL2d(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL2dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL3dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL4dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribLPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_ARB_vertex_attrib_binding
 **/

#if (defined(GL_ARB_VERTEX_ATTRIB_BINDING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_BINDING)) && !defined(REGAL_NO_ENUM_GL_ARB_VERTEX_ATTRIB_BINDING)
#define REGAL_NO_ENUM_GL_ARB_VERTEX_ATTRIB_BINDING
#endif

#if (defined(GL_ARB_VERTEX_ATTRIB_BINDING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_BINDING)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ATTRIB_BINDING)
#define REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ATTRIB_BINDING
#endif

#if (defined(GL_ARB_VERTEX_ATTRIB_BINDING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_BINDING)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ATTRIB_BINDING)
#define REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ATTRIB_BINDING
#endif

#if (defined(GL_ARB_VERTEX_ATTRIB_BINDING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_BINDING)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VERTEX_ATTRIB_BINDING)
#define REGAL_NO_PLUGIN_GL_ARB_VERTEX_ATTRIB_BINDING
#endif

#if (defined(GL_ARB_VERTEX_ATTRIB_BINDING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VERTEX_ATTRIB_BINDING)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VERTEX_ATTRIB_BINDING)
#define REGAL_NO_DECLARATION_GL_ARB_VERTEX_ATTRIB_BINDING
#endif

#ifndef GL_ARB_vertex_attrib_binding
#define GL_ARB_vertex_attrib_binding 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_VERTEX_ATTRIB_BINDING
#define GL_VERTEX_ATTRIB_BINDING             0x82d4     /* 33492 */
#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET     0x82d5     /* 33493 */
#define GL_VERTEX_BINDING_DIVISOR            0x82d6     /* 33494 */
#define GL_VERTEX_BINDING_OFFSET             0x82d7     /* 33495 */
#define GL_VERTEX_BINDING_STRIDE             0x82d8     /* 33496 */
#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET 0x82d9     /* 33497 */
#define GL_MAX_VERTEX_ATTRIB_BINDINGS        0x82da     /* 33498 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VERTEX_ATTRIB_BINDING
typedef void (REGAL_CALL *PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
typedef void (REGAL_CALL *PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VERTEX_ATTRIB_BINDING
#define glBindVertexBuffer                  rglBindVertexBuffer
#define glVertexAttribBinding               rglVertexAttribBinding
#define glVertexAttribFormat                rglVertexAttribFormat
#define glVertexAttribIFormat               rglVertexAttribIFormat
#define glVertexAttribLFormat               rglVertexAttribLFormat
#define glVertexBindingDivisor              rglVertexBindingDivisor
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VERTEX_ATTRIB_BINDING
REGAL_DECL void REGAL_CALL glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
REGAL_DECL void REGAL_CALL glVertexAttribBinding(GLuint attribindex, GLuint bindingindex);
REGAL_DECL void REGAL_CALL glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
REGAL_DECL void REGAL_CALL glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
REGAL_DECL void REGAL_CALL glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
REGAL_DECL void REGAL_CALL glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VERTEX_ATTRIB_BINDING
REGAL_DECL void REGAL_CALL plugin_glBindVertexBuffer(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribBinding(GLuint attribindex, GLuint bindingindex);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribFormat(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribIFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribLFormat(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
REGAL_DECL void REGAL_CALL plugin_glVertexBindingDivisor(GLuint bindingindex, GLuint divisor);
#endif

/**
 ** GL_ARB_vertex_blend
 **/

#if (defined(GL_ARB_VERTEX_BLEND) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VERTEX_BLEND)) && !defined(REGAL_NO_ENUM_GL_ARB_VERTEX_BLEND)
#define REGAL_NO_ENUM_GL_ARB_VERTEX_BLEND
#endif

#if (defined(GL_ARB_VERTEX_BLEND) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VERTEX_BLEND)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VERTEX_BLEND)
#define REGAL_NO_TYPEDEF_GL_ARB_VERTEX_BLEND
#endif

#if (defined(GL_ARB_VERTEX_BLEND) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VERTEX_BLEND)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VERTEX_BLEND)
#define REGAL_NO_NAMESPACE_GL_ARB_VERTEX_BLEND
#endif

#if (defined(GL_ARB_VERTEX_BLEND) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VERTEX_BLEND)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VERTEX_BLEND)
#define REGAL_NO_PLUGIN_GL_ARB_VERTEX_BLEND
#endif

#if (defined(GL_ARB_VERTEX_BLEND) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VERTEX_BLEND)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VERTEX_BLEND)
#define REGAL_NO_DECLARATION_GL_ARB_VERTEX_BLEND
#endif

#ifndef GL_ARB_vertex_blend
#define GL_ARB_vertex_blend 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_VERTEX_BLEND
#define GL_MODELVIEW0_ARB           0x1700     /* 5888 */
#define GL_MODELVIEW1_ARB           0x850a     /* 34058 */
#define GL_MAX_VERTEX_UNITS_ARB     0x86a4     /* 34468 */
#define GL_ACTIVE_VERTEX_UNITS_ARB  0x86a5     /* 34469 */
#define GL_WEIGHT_SUM_UNITY_ARB     0x86a6     /* 34470 */
#define GL_VERTEX_BLEND_ARB         0x86a7     /* 34471 */
#define GL_CURRENT_WEIGHT_ARB       0x86a8     /* 34472 */
#define GL_WEIGHT_ARRAY_TYPE_ARB    0x86a9     /* 34473 */
#define GL_WEIGHT_ARRAY_STRIDE_ARB  0x86aa     /* 34474 */
#define GL_WEIGHT_ARRAY_SIZE_ARB    0x86ab     /* 34475 */
#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86ac     /* 34476 */
#define GL_WEIGHT_ARRAY_ARB         0x86ad     /* 34477 */
#define GL_MODELVIEW2_ARB           0x8722     /* 34594 */
#define GL_MODELVIEW3_ARB           0x8723     /* 34595 */
#define GL_MODELVIEW4_ARB           0x8724     /* 34596 */
#define GL_MODELVIEW5_ARB           0x8725     /* 34597 */
#define GL_MODELVIEW6_ARB           0x8726     /* 34598 */
#define GL_MODELVIEW7_ARB           0x8727     /* 34599 */
#define GL_MODELVIEW8_ARB           0x8728     /* 34600 */
#define GL_MODELVIEW9_ARB           0x8729     /* 34601 */
#define GL_MODELVIEW10_ARB          0x872a     /* 34602 */
#define GL_MODELVIEW11_ARB          0x872b     /* 34603 */
#define GL_MODELVIEW12_ARB          0x872c     /* 34604 */
#define GL_MODELVIEW13_ARB          0x872d     /* 34605 */
#define GL_MODELVIEW14_ARB          0x872e     /* 34606 */
#define GL_MODELVIEW15_ARB          0x872f     /* 34607 */
#define GL_MODELVIEW16_ARB          0x8730     /* 34608 */
#define GL_MODELVIEW17_ARB          0x8731     /* 34609 */
#define GL_MODELVIEW18_ARB          0x8732     /* 34610 */
#define GL_MODELVIEW19_ARB          0x8733     /* 34611 */
#define GL_MODELVIEW20_ARB          0x8734     /* 34612 */
#define GL_MODELVIEW21_ARB          0x8735     /* 34613 */
#define GL_MODELVIEW22_ARB          0x8736     /* 34614 */
#define GL_MODELVIEW23_ARB          0x8737     /* 34615 */
#define GL_MODELVIEW24_ARB          0x8738     /* 34616 */
#define GL_MODELVIEW25_ARB          0x8739     /* 34617 */
#define GL_MODELVIEW26_ARB          0x873a     /* 34618 */
#define GL_MODELVIEW27_ARB          0x873b     /* 34619 */
#define GL_MODELVIEW28_ARB          0x873c     /* 34620 */
#define GL_MODELVIEW29_ARB          0x873d     /* 34621 */
#define GL_MODELVIEW30_ARB          0x873e     /* 34622 */
#define GL_MODELVIEW31_ARB          0x873f     /* 34623 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VERTEX_BLEND
typedef void (REGAL_CALL *PFNGLVERTEXBLENDARBPROC)(GLint count);
typedef void (REGAL_CALL *PFNGLWEIGHTBVARBPROC)(GLint size, const GLbyte *weights);
typedef void (REGAL_CALL *PFNGLWEIGHTDVARBPROC)(GLint size, const GLdouble *weights);
typedef void (REGAL_CALL *PFNGLWEIGHTFVARBPROC)(GLint size, const GLfloat *weights);
typedef void (REGAL_CALL *PFNGLWEIGHTIVARBPROC)(GLint size, const GLint *weights);
typedef void (REGAL_CALL *PFNGLWEIGHTPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLWEIGHTSVARBPROC)(GLint size, const GLshort *weights);
typedef void (REGAL_CALL *PFNGLWEIGHTUBVARBPROC)(GLint size, const GLubyte *weights);
typedef void (REGAL_CALL *PFNGLWEIGHTUIVARBPROC)(GLint size, const GLuint *weights);
typedef void (REGAL_CALL *PFNGLWEIGHTUSVARBPROC)(GLint size, const GLushort *weights);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VERTEX_BLEND
#define glVertexBlendARB                    rglVertexBlendARB
#define glWeightPointerARB                  rglWeightPointerARB
#define glWeightbvARB                       rglWeightbvARB
#define glWeightdvARB                       rglWeightdvARB
#define glWeightfvARB                       rglWeightfvARB
#define glWeightivARB                       rglWeightivARB
#define glWeightsvARB                       rglWeightsvARB
#define glWeightubvARB                      rglWeightubvARB
#define glWeightuivARB                      rglWeightuivARB
#define glWeightusvARB                      rglWeightusvARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VERTEX_BLEND
REGAL_DECL void REGAL_CALL glVertexBlendARB(GLint count);
REGAL_DECL void REGAL_CALL glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glWeightbvARB(GLint size, const GLbyte *weights);
REGAL_DECL void REGAL_CALL glWeightdvARB(GLint size, const GLdouble *weights);
REGAL_DECL void REGAL_CALL glWeightfvARB(GLint size, const GLfloat *weights);
REGAL_DECL void REGAL_CALL glWeightivARB(GLint size, const GLint *weights);
REGAL_DECL void REGAL_CALL glWeightsvARB(GLint size, const GLshort *weights);
REGAL_DECL void REGAL_CALL glWeightubvARB(GLint size, const GLubyte *weights);
REGAL_DECL void REGAL_CALL glWeightuivARB(GLint size, const GLuint *weights);
REGAL_DECL void REGAL_CALL glWeightusvARB(GLint size, const GLushort *weights);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VERTEX_BLEND
REGAL_DECL void REGAL_CALL plugin_glVertexBlendARB(GLint count);
REGAL_DECL void REGAL_CALL plugin_glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glWeightbvARB(GLint size, const GLbyte *weights);
REGAL_DECL void REGAL_CALL plugin_glWeightdvARB(GLint size, const GLdouble *weights);
REGAL_DECL void REGAL_CALL plugin_glWeightfvARB(GLint size, const GLfloat *weights);
REGAL_DECL void REGAL_CALL plugin_glWeightivARB(GLint size, const GLint *weights);
REGAL_DECL void REGAL_CALL plugin_glWeightsvARB(GLint size, const GLshort *weights);
REGAL_DECL void REGAL_CALL plugin_glWeightubvARB(GLint size, const GLubyte *weights);
REGAL_DECL void REGAL_CALL plugin_glWeightuivARB(GLint size, const GLuint *weights);
REGAL_DECL void REGAL_CALL plugin_glWeightusvARB(GLint size, const GLushort *weights);
#endif

/**
 ** GL_ARB_vertex_buffer_object
 **/

#if (defined(GL_ARB_VERTEX_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_ARB_VERTEX_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_VERTEX_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ARB_VERTEX_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_VERTEX_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ARB_VERTEX_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_VERTEX_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_ARB_VERTEX_BUFFER_OBJECT
#endif

#if (defined(GL_ARB_VERTEX_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_ARB_VERTEX_BUFFER_OBJECT
#endif

#ifndef GL_ARB_vertex_buffer_object
#define GL_ARB_vertex_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_VERTEX_BUFFER_OBJECT
#define GL_BUFFER_SIZE_ARB                          0x8764     /* 34660 */
#define GL_BUFFER_USAGE_ARB                         0x8765     /* 34661 */
#define GL_ARRAY_BUFFER_ARB                         0x8892     /* 34962 */
#define GL_ELEMENT_ARRAY_BUFFER_ARB                 0x8893     /* 34963 */
#define GL_ARRAY_BUFFER_BINDING_ARB                 0x8894     /* 34964 */
#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB         0x8895     /* 34965 */
#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB          0x8896     /* 34966 */
#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB          0x8897     /* 34967 */
#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB           0x8898     /* 34968 */
#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB           0x8899     /* 34969 */
#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB   0x889a     /* 34970 */
#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB       0x889b     /* 34971 */
#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889c     /* 34972 */
#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB  0x889d     /* 34973 */
#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB          0x889e     /* 34974 */
#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB   0x889f     /* 34975 */
#define GL_READ_ONLY_ARB                            0x88b8     /* 35000 */
#define GL_WRITE_ONLY_ARB                           0x88b9     /* 35001 */
#define GL_READ_WRITE_ARB                           0x88ba     /* 35002 */
#define GL_BUFFER_ACCESS_ARB                        0x88bb     /* 35003 */
#define GL_BUFFER_MAPPED_ARB                        0x88bc     /* 35004 */
#define GL_BUFFER_MAP_POINTER_ARB                   0x88bd     /* 35005 */
#define GL_STREAM_DRAW_ARB                          0x88e0     /* 35040 */
#define GL_STREAM_READ_ARB                          0x88e1     /* 35041 */
#define GL_STREAM_COPY_ARB                          0x88e2     /* 35042 */
#define GL_STATIC_DRAW_ARB                          0x88e4     /* 35044 */
#define GL_STATIC_READ_ARB                          0x88e5     /* 35045 */
#define GL_STATIC_COPY_ARB                          0x88e6     /* 35046 */
#define GL_DYNAMIC_DRAW_ARB                         0x88e8     /* 35048 */
#define GL_DYNAMIC_READ_ARB                         0x88e9     /* 35049 */
#define GL_DYNAMIC_COPY_ARB                         0x88ea     /* 35050 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VERTEX_BUFFER_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLISBUFFERARBPROC)(GLuint buffer);
typedef GLboolean (REGAL_CALL *PFNGLUNMAPBUFFERARBPROC)(GLenum target);
typedef GLvoid *(REGAL_CALL *PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access);
typedef void (REGAL_CALL *PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer);
typedef void (REGAL_CALL *PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
typedef void (REGAL_CALL *PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint *buffers);
typedef void (REGAL_CALL *PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint *buffers);
typedef void (REGAL_CALL *PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname, GLvoid **params);
typedef void (REGAL_CALL *PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VERTEX_BUFFER_OBJECT
#define glBindBufferARB                     rglBindBufferARB
#define glBufferDataARB                     rglBufferDataARB
#define glBufferSubDataARB                  rglBufferSubDataARB
#define glDeleteBuffersARB                  rglDeleteBuffersARB
#define glGenBuffersARB                     rglGenBuffersARB
#define glGetBufferParameterivARB           rglGetBufferParameterivARB
#define glGetBufferPointervARB              rglGetBufferPointervARB
#define glGetBufferSubDataARB               rglGetBufferSubDataARB
#define glIsBufferARB                       rglIsBufferARB
#define glMapBufferARB                      rglMapBufferARB
#define glUnmapBufferARB                    rglUnmapBufferARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VERTEX_BUFFER_OBJECT
REGAL_DECL GLboolean REGAL_CALL glIsBufferARB(GLuint buffer);
REGAL_DECL GLboolean REGAL_CALL glUnmapBufferARB(GLenum target);
REGAL_DECL GLvoid *REGAL_CALL glMapBufferARB(GLenum target, GLenum access);
REGAL_DECL void REGAL_CALL glBindBufferARB(GLenum target, GLuint buffer);
REGAL_DECL void REGAL_CALL glBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
REGAL_DECL void REGAL_CALL glBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
REGAL_DECL void REGAL_CALL glDeleteBuffersARB(GLsizei n, const GLuint *buffers);
REGAL_DECL void REGAL_CALL glGenBuffersARB(GLsizei n, GLuint *buffers);
REGAL_DECL void REGAL_CALL glGetBufferParameterivARB(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL glGetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VERTEX_BUFFER_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glIsBufferARB(GLuint buffer);
REGAL_DECL GLboolean REGAL_CALL plugin_glUnmapBufferARB(GLenum target);
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapBufferARB(GLenum target, GLenum access);
REGAL_DECL void REGAL_CALL plugin_glBindBufferARB(GLenum target, GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage);
REGAL_DECL void REGAL_CALL plugin_glBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glDeleteBuffersARB(GLsizei n, const GLuint *buffers);
REGAL_DECL void REGAL_CALL plugin_glGenBuffersARB(GLsizei n, GLuint *buffers);
REGAL_DECL void REGAL_CALL plugin_glGetBufferParameterivARB(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL plugin_glGetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data);
#endif

/**
 ** GL_ARB_vertex_program
 **/

#if (defined(GL_ARB_VERTEX_PROGRAM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VERTEX_PROGRAM)) && !defined(REGAL_NO_ENUM_GL_ARB_VERTEX_PROGRAM)
#define REGAL_NO_ENUM_GL_ARB_VERTEX_PROGRAM
#endif

#if (defined(GL_ARB_VERTEX_PROGRAM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VERTEX_PROGRAM)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VERTEX_PROGRAM)
#define REGAL_NO_TYPEDEF_GL_ARB_VERTEX_PROGRAM
#endif

#if (defined(GL_ARB_VERTEX_PROGRAM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VERTEX_PROGRAM)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VERTEX_PROGRAM)
#define REGAL_NO_NAMESPACE_GL_ARB_VERTEX_PROGRAM
#endif

#if (defined(GL_ARB_VERTEX_PROGRAM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VERTEX_PROGRAM)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VERTEX_PROGRAM)
#define REGAL_NO_PLUGIN_GL_ARB_VERTEX_PROGRAM
#endif

#if (defined(GL_ARB_VERTEX_PROGRAM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VERTEX_PROGRAM)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VERTEX_PROGRAM)
#define REGAL_NO_DECLARATION_GL_ARB_VERTEX_PROGRAM
#endif

#ifndef GL_ARB_vertex_program
#define GL_ARB_vertex_program 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_VERTEX_PROGRAM
#define GL_COLOR_SUM_ARB                            0x8458     /* 33880 */
#define GL_VERTEX_PROGRAM_ARB                       0x8620     /* 34336 */
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB          0x8622     /* 34338 */
#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB             0x8623     /* 34339 */
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB           0x8624     /* 34340 */
#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB             0x8625     /* 34341 */
#define GL_CURRENT_VERTEX_ATTRIB_ARB                0x8626     /* 34342 */
#define GL_PROGRAM_LENGTH_ARB                       0x8627     /* 34343 */
#define GL_PROGRAM_STRING_ARB                       0x8628     /* 34344 */
#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB       0x862e     /* 34350 */
#define GL_MAX_PROGRAM_MATRICES_ARB                 0x862f     /* 34351 */
#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB           0x8640     /* 34368 */
#define GL_CURRENT_MATRIX_ARB                       0x8641     /* 34369 */
#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB            0x8642     /* 34370 */
#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB              0x8643     /* 34371 */
#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB          0x8645     /* 34373 */
#define GL_PROGRAM_ERROR_POSITION_ARB               0x864b     /* 34379 */
#define GL_PROGRAM_BINDING_ARB                      0x8677     /* 34423 */
#define GL_MAX_VERTEX_ATTRIBS_ARB                   0x8869     /* 34921 */
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB       0x886a     /* 34922 */
#define GL_PROGRAM_ERROR_STRING_ARB                 0x8874     /* 34932 */
#define GL_PROGRAM_FORMAT_ASCII_ARB                 0x8875     /* 34933 */
#define GL_PROGRAM_FORMAT_ARB                       0x8876     /* 34934 */
#define GL_PROGRAM_INSTRUCTIONS_ARB                 0x88a0     /* 34976 */
#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB             0x88a1     /* 34977 */
#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB          0x88a2     /* 34978 */
#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB      0x88a3     /* 34979 */
#define GL_PROGRAM_TEMPORARIES_ARB                  0x88a4     /* 34980 */
#define GL_MAX_PROGRAM_TEMPORARIES_ARB              0x88a5     /* 34981 */
#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB           0x88a6     /* 34982 */
#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB       0x88a7     /* 34983 */
#define GL_PROGRAM_PARAMETERS_ARB                   0x88a8     /* 34984 */
#define GL_MAX_PROGRAM_PARAMETERS_ARB               0x88a9     /* 34985 */
#define GL_PROGRAM_NATIVE_PARAMETERS_ARB            0x88aa     /* 34986 */
#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB        0x88ab     /* 34987 */
#define GL_PROGRAM_ATTRIBS_ARB                      0x88ac     /* 34988 */
#define GL_MAX_PROGRAM_ATTRIBS_ARB                  0x88ad     /* 34989 */
#define GL_PROGRAM_NATIVE_ATTRIBS_ARB               0x88ae     /* 34990 */
#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB           0x88af     /* 34991 */
#define GL_PROGRAM_ADDRESS_REGISTERS_ARB            0x88b0     /* 34992 */
#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB        0x88b1     /* 34993 */
#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB     0x88b2     /* 34994 */
#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88b3     /* 34995 */
#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB         0x88b4     /* 34996 */
#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB           0x88b5     /* 34997 */
#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB          0x88b6     /* 34998 */
#define GL_TRANSPOSE_CURRENT_MATRIX_ARB             0x88b7     /* 34999 */
#define GL_MATRIX0_ARB                              0x88c0     /* 35008 */
#define GL_MATRIX1_ARB                              0x88c1     /* 35009 */
#define GL_MATRIX2_ARB                              0x88c2     /* 35010 */
#define GL_MATRIX3_ARB                              0x88c3     /* 35011 */
#define GL_MATRIX4_ARB                              0x88c4     /* 35012 */
#define GL_MATRIX5_ARB                              0x88c5     /* 35013 */
#define GL_MATRIX6_ARB                              0x88c6     /* 35014 */
#define GL_MATRIX7_ARB                              0x88c7     /* 35015 */
#define GL_MATRIX8_ARB                              0x88c8     /* 35016 */
#define GL_MATRIX9_ARB                              0x88c9     /* 35017 */
#define GL_MATRIX10_ARB                             0x88ca     /* 35018 */
#define GL_MATRIX11_ARB                             0x88cb     /* 35019 */
#define GL_MATRIX12_ARB                             0x88cc     /* 35020 */
#define GL_MATRIX13_ARB                             0x88cd     /* 35021 */
#define GL_MATRIX14_ARB                             0x88ce     /* 35022 */
#define GL_MATRIX15_ARB                             0x88cf     /* 35023 */
#define GL_MATRIX16_ARB                             0x88d0     /* 35024 */
#define GL_MATRIX17_ARB                             0x88d1     /* 35025 */
#define GL_MATRIX18_ARB                             0x88d2     /* 35026 */
#define GL_MATRIX19_ARB                             0x88d3     /* 35027 */
#define GL_MATRIX20_ARB                             0x88d4     /* 35028 */
#define GL_MATRIX21_ARB                             0x88d5     /* 35029 */
#define GL_MATRIX22_ARB                             0x88d6     /* 35030 */
#define GL_MATRIX23_ARB                             0x88d7     /* 35031 */
#define GL_MATRIX24_ARB                             0x88d8     /* 35032 */
#define GL_MATRIX25_ARB                             0x88d9     /* 35033 */
#define GL_MATRIX26_ARB                             0x88da     /* 35034 */
#define GL_MATRIX27_ARB                             0x88db     /* 35035 */
#define GL_MATRIX28_ARB                             0x88dc     /* 35036 */
#define GL_MATRIX29_ARB                             0x88dd     /* 35037 */
#define GL_MATRIX30_ARB                             0x88de     /* 35038 */
#define GL_MATRIX31_ARB                             0x88df     /* 35039 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VERTEX_PROGRAM
typedef GLboolean (REGAL_CALL *PFNGLISPROGRAMARBPROC)(GLuint program);
typedef void (REGAL_CALL *PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program);
typedef void (REGAL_CALL *PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint *programs);
typedef void (REGAL_CALL *PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
typedef void (REGAL_CALL *PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
typedef void (REGAL_CALL *PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint *programs);
typedef void (REGAL_CALL *PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, GLvoid *string);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, GLvoid **pointer);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble *params);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const GLvoid *string);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VERTEX_PROGRAM
#define glBindProgramARB                    rglBindProgramARB
#define glDeleteProgramsARB                 rglDeleteProgramsARB
#define glDisableVertexAttribArrayARB       rglDisableVertexAttribArrayARB
#define glEnableVertexAttribArrayARB        rglEnableVertexAttribArrayARB
#define glGenProgramsARB                    rglGenProgramsARB
#define glGetProgramEnvParameterdvARB       rglGetProgramEnvParameterdvARB
#define glGetProgramEnvParameterfvARB       rglGetProgramEnvParameterfvARB
#define glGetProgramLocalParameterdvARB     rglGetProgramLocalParameterdvARB
#define glGetProgramLocalParameterfvARB     rglGetProgramLocalParameterfvARB
#define glGetProgramStringARB               rglGetProgramStringARB
#define glGetProgramivARB                   rglGetProgramivARB
#define glGetVertexAttribPointervARB        rglGetVertexAttribPointervARB
#define glGetVertexAttribdvARB              rglGetVertexAttribdvARB
#define glGetVertexAttribfvARB              rglGetVertexAttribfvARB
#define glGetVertexAttribivARB              rglGetVertexAttribivARB
#define glIsProgramARB                      rglIsProgramARB
#define glProgramEnvParameter4dARB          rglProgramEnvParameter4dARB
#define glProgramEnvParameter4dvARB         rglProgramEnvParameter4dvARB
#define glProgramEnvParameter4fARB          rglProgramEnvParameter4fARB
#define glProgramEnvParameter4fvARB         rglProgramEnvParameter4fvARB
#define glProgramLocalParameter4dARB        rglProgramLocalParameter4dARB
#define glProgramLocalParameter4dvARB       rglProgramLocalParameter4dvARB
#define glProgramLocalParameter4fARB        rglProgramLocalParameter4fARB
#define glProgramLocalParameter4fvARB       rglProgramLocalParameter4fvARB
#define glProgramStringARB                  rglProgramStringARB
#define glVertexAttrib1dARB                 rglVertexAttrib1dARB
#define glVertexAttrib1dvARB                rglVertexAttrib1dvARB
#define glVertexAttrib1fARB                 rglVertexAttrib1fARB
#define glVertexAttrib1fvARB                rglVertexAttrib1fvARB
#define glVertexAttrib1sARB                 rglVertexAttrib1sARB
#define glVertexAttrib1svARB                rglVertexAttrib1svARB
#define glVertexAttrib2dARB                 rglVertexAttrib2dARB
#define glVertexAttrib2dvARB                rglVertexAttrib2dvARB
#define glVertexAttrib2fARB                 rglVertexAttrib2fARB
#define glVertexAttrib2fvARB                rglVertexAttrib2fvARB
#define glVertexAttrib2sARB                 rglVertexAttrib2sARB
#define glVertexAttrib2svARB                rglVertexAttrib2svARB
#define glVertexAttrib3dARB                 rglVertexAttrib3dARB
#define glVertexAttrib3dvARB                rglVertexAttrib3dvARB
#define glVertexAttrib3fARB                 rglVertexAttrib3fARB
#define glVertexAttrib3fvARB                rglVertexAttrib3fvARB
#define glVertexAttrib3sARB                 rglVertexAttrib3sARB
#define glVertexAttrib3svARB                rglVertexAttrib3svARB
#define glVertexAttrib4NbvARB               rglVertexAttrib4NbvARB
#define glVertexAttrib4NivARB               rglVertexAttrib4NivARB
#define glVertexAttrib4NsvARB               rglVertexAttrib4NsvARB
#define glVertexAttrib4NubARB               rglVertexAttrib4NubARB
#define glVertexAttrib4NubvARB              rglVertexAttrib4NubvARB
#define glVertexAttrib4NuivARB              rglVertexAttrib4NuivARB
#define glVertexAttrib4NusvARB              rglVertexAttrib4NusvARB
#define glVertexAttrib4bvARB                rglVertexAttrib4bvARB
#define glVertexAttrib4dARB                 rglVertexAttrib4dARB
#define glVertexAttrib4dvARB                rglVertexAttrib4dvARB
#define glVertexAttrib4fARB                 rglVertexAttrib4fARB
#define glVertexAttrib4fvARB                rglVertexAttrib4fvARB
#define glVertexAttrib4ivARB                rglVertexAttrib4ivARB
#define glVertexAttrib4sARB                 rglVertexAttrib4sARB
#define glVertexAttrib4svARB                rglVertexAttrib4svARB
#define glVertexAttrib4ubvARB               rglVertexAttrib4ubvARB
#define glVertexAttrib4uivARB               rglVertexAttrib4uivARB
#define glVertexAttrib4usvARB               rglVertexAttrib4usvARB
#define glVertexAttribPointerARB            rglVertexAttribPointerARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VERTEX_PROGRAM
REGAL_DECL GLboolean REGAL_CALL glIsProgramARB(GLuint program);
REGAL_DECL void REGAL_CALL glBindProgramARB(GLenum target, GLuint program);
REGAL_DECL void REGAL_CALL glDeleteProgramsARB(GLsizei n, const GLuint *programs);
REGAL_DECL void REGAL_CALL glDisableVertexAttribArrayARB(GLuint index);
REGAL_DECL void REGAL_CALL glEnableVertexAttribArrayARB(GLuint index);
REGAL_DECL void REGAL_CALL glGenProgramsARB(GLsizei n, GLuint *programs);
REGAL_DECL void REGAL_CALL glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetProgramStringARB(GLenum target, GLenum pname, GLvoid *string);
REGAL_DECL void REGAL_CALL glGetProgramivARB(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid **pointer);
REGAL_DECL void REGAL_CALL glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribivARB(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble *params);
REGAL_DECL void REGAL_CALL glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat *params);
REGAL_DECL void REGAL_CALL glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble *params);
REGAL_DECL void REGAL_CALL glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat *params);
REGAL_DECL void REGAL_CALL glProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid *string);
REGAL_DECL void REGAL_CALL glVertexAttrib1dARB(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL glVertexAttrib1dvARB(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib1fARB(GLuint index, GLfloat x);
REGAL_DECL void REGAL_CALL glVertexAttrib1fvARB(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib1sARB(GLuint index, GLshort x);
REGAL_DECL void REGAL_CALL glVertexAttrib1svARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glVertexAttrib2dvARB(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glVertexAttrib2fvARB(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glVertexAttrib2svARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glVertexAttrib3dvARB(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glVertexAttrib3fvARB(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glVertexAttrib3svARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4NbvARB(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4NivARB(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4NsvARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
REGAL_DECL void REGAL_CALL glVertexAttrib4NubvARB(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4NuivARB(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4NusvARB(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4bvARB(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glVertexAttrib4dvARB(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glVertexAttrib4fvARB(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4ivARB(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL glVertexAttrib4svARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4ubvARB(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4uivARB(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4usvARB(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VERTEX_PROGRAM
REGAL_DECL GLboolean REGAL_CALL plugin_glIsProgramARB(GLuint program);
REGAL_DECL void REGAL_CALL plugin_glBindProgramARB(GLenum target, GLuint program);
REGAL_DECL void REGAL_CALL plugin_glDeleteProgramsARB(GLsizei n, const GLuint *programs);
REGAL_DECL void REGAL_CALL plugin_glDisableVertexAttribArrayARB(GLuint index);
REGAL_DECL void REGAL_CALL plugin_glEnableVertexAttribArrayARB(GLuint index);
REGAL_DECL void REGAL_CALL plugin_glGenProgramsARB(GLsizei n, GLuint *programs);
REGAL_DECL void REGAL_CALL plugin_glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramStringARB(GLenum target, GLenum pname, GLvoid *string);
REGAL_DECL void REGAL_CALL plugin_glGetProgramivARB(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid **pointer);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribivARB(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid *string);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1dARB(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1dvARB(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1fARB(GLuint index, GLfloat x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1fvARB(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1sARB(GLuint index, GLshort x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1svARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2dvARB(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2fvARB(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2svARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3dvARB(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3fvARB(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3svARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4NbvARB(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4NivARB(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4NsvARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4NubvARB(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4NuivARB(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4NusvARB(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4bvARB(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4dvARB(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4fvARB(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4ivARB(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4svARB(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4ubvARB(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4uivARB(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4usvARB(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_ARB_vertex_shader
 **/

#if (defined(GL_ARB_VERTEX_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VERTEX_SHADER)) && !defined(REGAL_NO_ENUM_GL_ARB_VERTEX_SHADER)
#define REGAL_NO_ENUM_GL_ARB_VERTEX_SHADER
#endif

#if (defined(GL_ARB_VERTEX_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VERTEX_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VERTEX_SHADER)
#define REGAL_NO_TYPEDEF_GL_ARB_VERTEX_SHADER
#endif

#if (defined(GL_ARB_VERTEX_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VERTEX_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VERTEX_SHADER)
#define REGAL_NO_NAMESPACE_GL_ARB_VERTEX_SHADER
#endif

#if (defined(GL_ARB_VERTEX_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VERTEX_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VERTEX_SHADER)
#define REGAL_NO_PLUGIN_GL_ARB_VERTEX_SHADER
#endif

#if (defined(GL_ARB_VERTEX_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VERTEX_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VERTEX_SHADER)
#define REGAL_NO_DECLARATION_GL_ARB_VERTEX_SHADER
#endif

#ifndef GL_ARB_vertex_shader
#define GL_ARB_vertex_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_VERTEX_SHADER
#define GL_VERTEX_SHADER_ARB                      0x8b31     /* 35633 */
#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB      0x8b4a     /* 35658 */
#define GL_MAX_VARYING_FLOATS_ARB                 0x8b4b     /* 35659 */
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB     0x8b4c     /* 35660 */
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB   0x8b4d     /* 35661 */
#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB           0x8b89     /* 35721 */
#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8b8a     /* 35722 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VERTEX_SHADER
typedef GLint (REGAL_CALL *PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB *name);
typedef void (REGAL_CALL *PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB *name);
typedef void (REGAL_CALL *PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VERTEX_SHADER
#define glBindAttribLocationARB             rglBindAttribLocationARB
#define glGetActiveAttribARB                rglGetActiveAttribARB
#define glGetAttribLocationARB              rglGetAttribLocationARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VERTEX_SHADER
REGAL_DECL GLint REGAL_CALL glGetAttribLocationARB(GLhandleARB programObj, const GLcharARB *name);
REGAL_DECL void REGAL_CALL glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB *name);
REGAL_DECL void REGAL_CALL glGetActiveAttribARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VERTEX_SHADER
REGAL_DECL GLint REGAL_CALL plugin_glGetAttribLocationARB(GLhandleARB programObj, const GLcharARB *name);
REGAL_DECL void REGAL_CALL plugin_glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB *name);
REGAL_DECL void REGAL_CALL plugin_glGetActiveAttribARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name);
#endif

/**
 ** GL_ARB_vertex_type_2_10_10_10_rev
 **/

#if (defined(GL_ARB_VERTEX_TYPE_2_10_10_10_REV) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_ENUM_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)
#define REGAL_NO_ENUM_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
#endif

#if (defined(GL_ARB_VERTEX_TYPE_2_10_10_10_REV) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)
#define REGAL_NO_TYPEDEF_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
#endif

#if (defined(GL_ARB_VERTEX_TYPE_2_10_10_10_REV) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)
#define REGAL_NO_NAMESPACE_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
#endif

#if (defined(GL_ARB_VERTEX_TYPE_2_10_10_10_REV) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)
#define REGAL_NO_PLUGIN_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
#endif

#if (defined(GL_ARB_VERTEX_TYPE_2_10_10_10_REV) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VERTEX_TYPE_2_10_10_10_REV)
#define REGAL_NO_DECLARATION_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
#endif

#ifndef GL_ARB_vertex_type_2_10_10_10_rev
#define GL_ARB_vertex_type_2_10_10_10_rev 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
#define GL_INT_2_10_10_10_REV 0x8d9f /* 36255 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
typedef void (REGAL_CALL *PFNGLCOLORP3UIPROC)(GLenum type, GLuint color);
typedef void (REGAL_CALL *PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint *color);
typedef void (REGAL_CALL *PFNGLCOLORP4UIPROC)(GLenum type, GLuint color);
typedef void (REGAL_CALL *PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint *color);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint *color);
typedef void (REGAL_CALL *PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
typedef void (REGAL_CALL *PFNGLVERTEXP2UIPROC)(GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLVERTEXP3UIPROC)(GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint *coords);
typedef void (REGAL_CALL *PFNGLVERTEXP4UIPROC)(GLenum type, GLuint coords);
typedef void (REGAL_CALL *PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint *coords);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
#define glColorP3ui                         rglColorP3ui
#define glColorP3uiv                        rglColorP3uiv
#define glColorP4ui                         rglColorP4ui
#define glColorP4uiv                        rglColorP4uiv
#define glMultiTexCoordP1ui                 rglMultiTexCoordP1ui
#define glMultiTexCoordP1uiv                rglMultiTexCoordP1uiv
#define glMultiTexCoordP2ui                 rglMultiTexCoordP2ui
#define glMultiTexCoordP2uiv                rglMultiTexCoordP2uiv
#define glMultiTexCoordP3ui                 rglMultiTexCoordP3ui
#define glMultiTexCoordP3uiv                rglMultiTexCoordP3uiv
#define glMultiTexCoordP4ui                 rglMultiTexCoordP4ui
#define glMultiTexCoordP4uiv                rglMultiTexCoordP4uiv
#define glNormalP3ui                        rglNormalP3ui
#define glNormalP3uiv                       rglNormalP3uiv
#define glSecondaryColorP3ui                rglSecondaryColorP3ui
#define glSecondaryColorP3uiv               rglSecondaryColorP3uiv
#define glTexCoordP1ui                      rglTexCoordP1ui
#define glTexCoordP1uiv                     rglTexCoordP1uiv
#define glTexCoordP2ui                      rglTexCoordP2ui
#define glTexCoordP2uiv                     rglTexCoordP2uiv
#define glTexCoordP3ui                      rglTexCoordP3ui
#define glTexCoordP3uiv                     rglTexCoordP3uiv
#define glTexCoordP4ui                      rglTexCoordP4ui
#define glTexCoordP4uiv                     rglTexCoordP4uiv
#define glVertexAttribP1ui                  rglVertexAttribP1ui
#define glVertexAttribP1uiv                 rglVertexAttribP1uiv
#define glVertexAttribP2ui                  rglVertexAttribP2ui
#define glVertexAttribP2uiv                 rglVertexAttribP2uiv
#define glVertexAttribP3ui                  rglVertexAttribP3ui
#define glVertexAttribP3uiv                 rglVertexAttribP3uiv
#define glVertexAttribP4ui                  rglVertexAttribP4ui
#define glVertexAttribP4uiv                 rglVertexAttribP4uiv
#define glVertexP2ui                        rglVertexP2ui
#define glVertexP2uiv                       rglVertexP2uiv
#define glVertexP3ui                        rglVertexP3ui
#define glVertexP3uiv                       rglVertexP3uiv
#define glVertexP4ui                        rglVertexP4ui
#define glVertexP4uiv                       rglVertexP4uiv
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
REGAL_DECL void REGAL_CALL glColorP3ui(GLenum type, GLuint color);
REGAL_DECL void REGAL_CALL glColorP3uiv(GLenum type, const GLuint *color);
REGAL_DECL void REGAL_CALL glColorP4ui(GLenum type, GLuint color);
REGAL_DECL void REGAL_CALL glColorP4uiv(GLenum type, const GLuint *color);
REGAL_DECL void REGAL_CALL glMultiTexCoordP1ui(GLenum texture, GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glMultiTexCoordP1uiv(GLenum texture, GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glMultiTexCoordP2ui(GLenum texture, GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glMultiTexCoordP2uiv(GLenum texture, GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glMultiTexCoordP3ui(GLenum texture, GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glMultiTexCoordP3uiv(GLenum texture, GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glMultiTexCoordP4ui(GLenum texture, GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glMultiTexCoordP4uiv(GLenum texture, GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glNormalP3ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glNormalP3uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glSecondaryColorP3ui(GLenum type, GLuint color);
REGAL_DECL void REGAL_CALL glSecondaryColorP3uiv(GLenum type, const GLuint *color);
REGAL_DECL void REGAL_CALL glTexCoordP1ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glTexCoordP1uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glTexCoordP2ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glTexCoordP2uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glTexCoordP3ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glTexCoordP3uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glTexCoordP4ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glTexCoordP4uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
REGAL_DECL void REGAL_CALL glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
REGAL_DECL void REGAL_CALL glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
REGAL_DECL void REGAL_CALL glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
REGAL_DECL void REGAL_CALL glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
REGAL_DECL void REGAL_CALL glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
REGAL_DECL void REGAL_CALL glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
REGAL_DECL void REGAL_CALL glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
REGAL_DECL void REGAL_CALL glVertexP2ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glVertexP2uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glVertexP3ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glVertexP3uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL glVertexP4ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL glVertexP4uiv(GLenum type, const GLuint *coords);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VERTEX_TYPE_2_10_10_10_REV
REGAL_DECL void REGAL_CALL plugin_glColorP3ui(GLenum type, GLuint color);
REGAL_DECL void REGAL_CALL plugin_glColorP3uiv(GLenum type, const GLuint *color);
REGAL_DECL void REGAL_CALL plugin_glColorP4ui(GLenum type, GLuint color);
REGAL_DECL void REGAL_CALL plugin_glColorP4uiv(GLenum type, const GLuint *color);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordP1ui(GLenum texture, GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordP1uiv(GLenum texture, GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordP2ui(GLenum texture, GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordP2uiv(GLenum texture, GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordP3ui(GLenum texture, GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordP3uiv(GLenum texture, GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordP4ui(GLenum texture, GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordP4uiv(GLenum texture, GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glNormalP3ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glNormalP3uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColorP3ui(GLenum type, GLuint color);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColorP3uiv(GLenum type, const GLuint *color);
REGAL_DECL void REGAL_CALL plugin_glTexCoordP1ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glTexCoordP1uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glTexCoordP2ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glTexCoordP2uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glTexCoordP3ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glTexCoordP3uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glTexCoordP4ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glTexCoordP4uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribP1ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribP1uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribP2ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribP2uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribP3ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribP3uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribP4ui(GLuint index, GLenum type, GLboolean normalized, GLuint value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribP4uiv(GLuint index, GLenum type, GLboolean normalized, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glVertexP2ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glVertexP2uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexP3ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glVertexP3uiv(GLenum type, const GLuint *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexP4ui(GLenum type, GLuint coords);
REGAL_DECL void REGAL_CALL plugin_glVertexP4uiv(GLenum type, const GLuint *coords);
#endif

/**
 ** GL_ARB_viewport_array
 **/

#if (defined(GL_ARB_VIEWPORT_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_VIEWPORT_ARRAY)) && !defined(REGAL_NO_ENUM_GL_ARB_VIEWPORT_ARRAY)
#define REGAL_NO_ENUM_GL_ARB_VIEWPORT_ARRAY
#endif

#if (defined(GL_ARB_VIEWPORT_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_VIEWPORT_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_VIEWPORT_ARRAY)
#define REGAL_NO_TYPEDEF_GL_ARB_VIEWPORT_ARRAY
#endif

#if (defined(GL_ARB_VIEWPORT_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_VIEWPORT_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_VIEWPORT_ARRAY)
#define REGAL_NO_NAMESPACE_GL_ARB_VIEWPORT_ARRAY
#endif

#if (defined(GL_ARB_VIEWPORT_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_VIEWPORT_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_ARB_VIEWPORT_ARRAY)
#define REGAL_NO_PLUGIN_GL_ARB_VIEWPORT_ARRAY
#endif

#if (defined(GL_ARB_VIEWPORT_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_VIEWPORT_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_ARB_VIEWPORT_ARRAY)
#define REGAL_NO_DECLARATION_GL_ARB_VIEWPORT_ARRAY
#endif

#ifndef GL_ARB_viewport_array
#define GL_ARB_viewport_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARB_VIEWPORT_ARRAY
#define GL_MAX_VIEWPORTS                   0x825b     /* 33371 */
#define GL_VIEWPORT_SUBPIXEL_BITS          0x825c     /* 33372 */
#define GL_VIEWPORT_BOUNDS_RANGE           0x825d     /* 33373 */
#define GL_LAYER_PROVOKING_VERTEX          0x825e     /* 33374 */
#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825f     /* 33375 */
#define GL_UNDEFINED_VERTEX                0x8260     /* 33376 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_VIEWPORT_ARRAY
typedef void (REGAL_CALL *PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLclampd *v);
typedef void (REGAL_CALL *PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLclampd n, GLclampd f);
typedef void (REGAL_CALL *PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble *v);
typedef void (REGAL_CALL *PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat *v);
typedef void (REGAL_CALL *PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint *v);
typedef void (REGAL_CALL *PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLint width, GLint height);
typedef void (REGAL_CALL *PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
typedef void (REGAL_CALL *PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat *v);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_VIEWPORT_ARRAY
#define glDepthRangeArrayv                  rglDepthRangeArrayv
#define glDepthRangeIndexed                 rglDepthRangeIndexed
#define glGetDoublei_v                      rglGetDoublei_v
#define glGetFloati_v                       rglGetFloati_v
#define glScissorArrayv                     rglScissorArrayv
#define glScissorIndexed                    rglScissorIndexed
#define glScissorIndexedv                   rglScissorIndexedv
#define glViewportArrayv                    rglViewportArrayv
#define glViewportIndexedf                  rglViewportIndexedf
#define glViewportIndexedfv                 rglViewportIndexedfv
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_VIEWPORT_ARRAY
REGAL_DECL void REGAL_CALL glDepthRangeArrayv(GLuint first, GLsizei count, const GLclampd *v);
REGAL_DECL void REGAL_CALL glDepthRangeIndexed(GLuint index, GLclampd n, GLclampd f);
REGAL_DECL void REGAL_CALL glGetDoublei_v(GLenum target, GLuint index, GLdouble *v);
REGAL_DECL void REGAL_CALL glGetFloati_v(GLenum target, GLuint index, GLfloat *v);
REGAL_DECL void REGAL_CALL glScissorArrayv(GLuint first, GLsizei count, const GLint *v);
REGAL_DECL void REGAL_CALL glScissorIndexed(GLuint index, GLint left, GLint bottom, GLint width, GLint height);
REGAL_DECL void REGAL_CALL glScissorIndexedv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glViewportArrayv(GLuint first, GLsizei count, const GLfloat *v);
REGAL_DECL void REGAL_CALL glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
REGAL_DECL void REGAL_CALL glViewportIndexedfv(GLuint index, const GLfloat *v);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_VIEWPORT_ARRAY
REGAL_DECL void REGAL_CALL plugin_glDepthRangeArrayv(GLuint first, GLsizei count, const GLclampd *v);
REGAL_DECL void REGAL_CALL plugin_glDepthRangeIndexed(GLuint index, GLclampd n, GLclampd f);
REGAL_DECL void REGAL_CALL plugin_glGetDoublei_v(GLenum target, GLuint index, GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glGetFloati_v(GLenum target, GLuint index, GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glScissorArrayv(GLuint first, GLsizei count, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glScissorIndexed(GLuint index, GLint left, GLint bottom, GLint width, GLint height);
REGAL_DECL void REGAL_CALL plugin_glScissorIndexedv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glViewportArrayv(GLuint first, GLsizei count, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glViewportIndexedf(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
REGAL_DECL void REGAL_CALL plugin_glViewportIndexedfv(GLuint index, const GLfloat *v);
#endif

/**
 ** GL_ARB_window_pos
 **/

#if (defined(GL_ARB_WINDOW_POS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARB_WINDOW_POS)) && !defined(REGAL_NO_ENUM_GL_ARB_WINDOW_POS)
#define REGAL_NO_ENUM_GL_ARB_WINDOW_POS
#endif

#if (defined(GL_ARB_WINDOW_POS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARB_WINDOW_POS)) && !defined(REGAL_NO_TYPEDEF_GL_ARB_WINDOW_POS)
#define REGAL_NO_TYPEDEF_GL_ARB_WINDOW_POS
#endif

#if (defined(GL_ARB_WINDOW_POS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARB_WINDOW_POS)) && !defined(REGAL_NO_NAMESPACE_GL_ARB_WINDOW_POS)
#define REGAL_NO_NAMESPACE_GL_ARB_WINDOW_POS
#endif

#if (defined(GL_ARB_WINDOW_POS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARB_WINDOW_POS)) && !defined(REGAL_NO_PLUGIN_GL_ARB_WINDOW_POS)
#define REGAL_NO_PLUGIN_GL_ARB_WINDOW_POS
#endif

#if (defined(GL_ARB_WINDOW_POS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARB_WINDOW_POS)) && !defined(REGAL_NO_DECLARATION_GL_ARB_WINDOW_POS)
#define REGAL_NO_DECLARATION_GL_ARB_WINDOW_POS
#endif

#ifndef GL_ARB_window_pos
#define GL_ARB_window_pos 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ARB_WINDOW_POS
typedef void (REGAL_CALL *PFNGLWINDOWPOS2DARBPROC)(GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2DVARBPROC)(const GLdouble *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2FARBPROC)(GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2FVARBPROC)(const GLfloat *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2IARBPROC)(GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2IVARBPROC)(const GLint *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2SARBPROC)(GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2SVARBPROC)(const GLshort *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3DARBPROC)(GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3DVARBPROC)(const GLdouble *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3FARBPROC)(GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3FVARBPROC)(const GLfloat *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3IARBPROC)(GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3IVARBPROC)(const GLint *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3SARBPROC)(GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3SVARBPROC)(const GLshort *p);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ARB_WINDOW_POS
#define glWindowPos2dARB                    rglWindowPos2dARB
#define glWindowPos2dvARB                   rglWindowPos2dvARB
#define glWindowPos2fARB                    rglWindowPos2fARB
#define glWindowPos2fvARB                   rglWindowPos2fvARB
#define glWindowPos2iARB                    rglWindowPos2iARB
#define glWindowPos2ivARB                   rglWindowPos2ivARB
#define glWindowPos2sARB                    rglWindowPos2sARB
#define glWindowPos2svARB                   rglWindowPos2svARB
#define glWindowPos3dARB                    rglWindowPos3dARB
#define glWindowPos3dvARB                   rglWindowPos3dvARB
#define glWindowPos3fARB                    rglWindowPos3fARB
#define glWindowPos3fvARB                   rglWindowPos3fvARB
#define glWindowPos3iARB                    rglWindowPos3iARB
#define glWindowPos3ivARB                   rglWindowPos3ivARB
#define glWindowPos3sARB                    rglWindowPos3sARB
#define glWindowPos3svARB                   rglWindowPos3svARB
#endif

#ifndef REGAL_NO_DECLARATION_GL_ARB_WINDOW_POS
REGAL_DECL void REGAL_CALL glWindowPos2dARB(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glWindowPos2dvARB(const GLdouble *p);
REGAL_DECL void REGAL_CALL glWindowPos2fARB(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glWindowPos2fvARB(const GLfloat *p);
REGAL_DECL void REGAL_CALL glWindowPos2iARB(GLint x, GLint y);
REGAL_DECL void REGAL_CALL glWindowPos2ivARB(const GLint *p);
REGAL_DECL void REGAL_CALL glWindowPos2sARB(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glWindowPos2svARB(const GLshort *p);
REGAL_DECL void REGAL_CALL glWindowPos3dARB(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glWindowPos3dvARB(const GLdouble *p);
REGAL_DECL void REGAL_CALL glWindowPos3fARB(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glWindowPos3fvARB(const GLfloat *p);
REGAL_DECL void REGAL_CALL glWindowPos3iARB(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glWindowPos3ivARB(const GLint *p);
REGAL_DECL void REGAL_CALL glWindowPos3sARB(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glWindowPos3svARB(const GLshort *p);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ARB_WINDOW_POS
REGAL_DECL void REGAL_CALL plugin_glWindowPos2dARB(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2dvARB(const GLdouble *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2fARB(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2fvARB(const GLfloat *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2iARB(GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2ivARB(const GLint *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2sARB(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2svARB(const GLshort *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3dARB(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3dvARB(const GLdouble *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3fARB(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3fvARB(const GLfloat *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3iARB(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3ivARB(const GLint *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3sARB(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3svARB(const GLshort *p);
#endif

/**
 ** GL_ARM_mali_program_binary
 **/

#if (defined(GL_ARM_MALI_PROGRAM_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARM_MALI_PROGRAM_BINARY)) && !defined(REGAL_NO_ENUM_GL_ARM_MALI_PROGRAM_BINARY)
#define REGAL_NO_ENUM_GL_ARM_MALI_PROGRAM_BINARY
#endif

#if (defined(GL_ARM_MALI_PROGRAM_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARM_MALI_PROGRAM_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_ARM_MALI_PROGRAM_BINARY)
#define REGAL_NO_TYPEDEF_GL_ARM_MALI_PROGRAM_BINARY
#endif

#if (defined(GL_ARM_MALI_PROGRAM_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARM_MALI_PROGRAM_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_ARM_MALI_PROGRAM_BINARY)
#define REGAL_NO_NAMESPACE_GL_ARM_MALI_PROGRAM_BINARY
#endif

#if (defined(GL_ARM_MALI_PROGRAM_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARM_MALI_PROGRAM_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_ARM_MALI_PROGRAM_BINARY)
#define REGAL_NO_PLUGIN_GL_ARM_MALI_PROGRAM_BINARY
#endif

#if (defined(GL_ARM_MALI_PROGRAM_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARM_MALI_PROGRAM_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_ARM_MALI_PROGRAM_BINARY)
#define REGAL_NO_DECLARATION_GL_ARM_MALI_PROGRAM_BINARY
#endif

#ifndef GL_ARM_mali_program_binary
#define GL_ARM_mali_program_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARM_MALI_PROGRAM_BINARY
#define GL_MALI_PROGRAM_BINARY_ARM 0x8f61 /* 36705 */
#endif

/**
 ** GL_ARM_mali_shader_binary
 **/

#if (defined(GL_ARM_MALI_SHADER_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ARM_MALI_SHADER_BINARY)) && !defined(REGAL_NO_ENUM_GL_ARM_MALI_SHADER_BINARY)
#define REGAL_NO_ENUM_GL_ARM_MALI_SHADER_BINARY
#endif

#if (defined(GL_ARM_MALI_SHADER_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ARM_MALI_SHADER_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_ARM_MALI_SHADER_BINARY)
#define REGAL_NO_TYPEDEF_GL_ARM_MALI_SHADER_BINARY
#endif

#if (defined(GL_ARM_MALI_SHADER_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ARM_MALI_SHADER_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_ARM_MALI_SHADER_BINARY)
#define REGAL_NO_NAMESPACE_GL_ARM_MALI_SHADER_BINARY
#endif

#if (defined(GL_ARM_MALI_SHADER_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ARM_MALI_SHADER_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_ARM_MALI_SHADER_BINARY)
#define REGAL_NO_PLUGIN_GL_ARM_MALI_SHADER_BINARY
#endif

#if (defined(GL_ARM_MALI_SHADER_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ARM_MALI_SHADER_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_ARM_MALI_SHADER_BINARY)
#define REGAL_NO_DECLARATION_GL_ARM_MALI_SHADER_BINARY
#endif

#ifndef GL_ARM_mali_shader_binary
#define GL_ARM_mali_shader_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_ARM_MALI_SHADER_BINARY
#define GL_MALI_SHADER_BINARY_ARM 0x8f60 /* 36704 */
#endif

/**
 ** GL_ATI_draw_buffers
 **/

#if (defined(GL_ATI_DRAW_BUFFERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_DRAW_BUFFERS)) && !defined(REGAL_NO_ENUM_GL_ATI_DRAW_BUFFERS)
#define REGAL_NO_ENUM_GL_ATI_DRAW_BUFFERS
#endif

#if (defined(GL_ATI_DRAW_BUFFERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_DRAW_BUFFERS)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_DRAW_BUFFERS)
#define REGAL_NO_TYPEDEF_GL_ATI_DRAW_BUFFERS
#endif

#if (defined(GL_ATI_DRAW_BUFFERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_DRAW_BUFFERS)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_DRAW_BUFFERS)
#define REGAL_NO_NAMESPACE_GL_ATI_DRAW_BUFFERS
#endif

#if (defined(GL_ATI_DRAW_BUFFERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_DRAW_BUFFERS)) && !defined(REGAL_NO_PLUGIN_GL_ATI_DRAW_BUFFERS)
#define REGAL_NO_PLUGIN_GL_ATI_DRAW_BUFFERS
#endif

#if (defined(GL_ATI_DRAW_BUFFERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_DRAW_BUFFERS)) && !defined(REGAL_NO_DECLARATION_GL_ATI_DRAW_BUFFERS)
#define REGAL_NO_DECLARATION_GL_ATI_DRAW_BUFFERS
#endif

#ifndef GL_ATI_draw_buffers
#define GL_ATI_draw_buffers 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_DRAW_BUFFERS
#define GL_MAX_DRAW_BUFFERS_ATI 0x8824     /* 34852 */
#define GL_DRAW_BUFFER0_ATI     0x8825     /* 34853 */
#define GL_DRAW_BUFFER1_ATI     0x8826     /* 34854 */
#define GL_DRAW_BUFFER2_ATI     0x8827     /* 34855 */
#define GL_DRAW_BUFFER3_ATI     0x8828     /* 34856 */
#define GL_DRAW_BUFFER4_ATI     0x8829     /* 34857 */
#define GL_DRAW_BUFFER5_ATI     0x882a     /* 34858 */
#define GL_DRAW_BUFFER6_ATI     0x882b     /* 34859 */
#define GL_DRAW_BUFFER7_ATI     0x882c     /* 34860 */
#define GL_DRAW_BUFFER8_ATI     0x882d     /* 34861 */
#define GL_DRAW_BUFFER9_ATI     0x882e     /* 34862 */
#define GL_DRAW_BUFFER10_ATI    0x882f     /* 34863 */
#define GL_DRAW_BUFFER11_ATI    0x8830     /* 34864 */
#define GL_DRAW_BUFFER12_ATI    0x8831     /* 34865 */
#define GL_DRAW_BUFFER13_ATI    0x8832     /* 34866 */
#define GL_DRAW_BUFFER14_ATI    0x8833     /* 34867 */
#define GL_DRAW_BUFFER15_ATI    0x8834     /* 34868 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_DRAW_BUFFERS
typedef void (REGAL_CALL *PFNGLDRAWBUFFERSATIPROC)(GLsizei n, const GLenum *bufs);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_DRAW_BUFFERS
#define glDrawBuffersATI                    rglDrawBuffersATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_DRAW_BUFFERS
REGAL_DECL void REGAL_CALL glDrawBuffersATI(GLsizei n, const GLenum *bufs);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_DRAW_BUFFERS
REGAL_DECL void REGAL_CALL plugin_glDrawBuffersATI(GLsizei n, const GLenum *bufs);
#endif

/**
 ** GL_ATI_element_array
 **/

#if (defined(GL_ATI_ELEMENT_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_ELEMENT_ARRAY)) && !defined(REGAL_NO_ENUM_GL_ATI_ELEMENT_ARRAY)
#define REGAL_NO_ENUM_GL_ATI_ELEMENT_ARRAY
#endif

#if (defined(GL_ATI_ELEMENT_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_ELEMENT_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_ELEMENT_ARRAY)
#define REGAL_NO_TYPEDEF_GL_ATI_ELEMENT_ARRAY
#endif

#if (defined(GL_ATI_ELEMENT_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_ELEMENT_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_ELEMENT_ARRAY)
#define REGAL_NO_NAMESPACE_GL_ATI_ELEMENT_ARRAY
#endif

#if (defined(GL_ATI_ELEMENT_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_ELEMENT_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_ATI_ELEMENT_ARRAY)
#define REGAL_NO_PLUGIN_GL_ATI_ELEMENT_ARRAY
#endif

#if (defined(GL_ATI_ELEMENT_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_ELEMENT_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_ATI_ELEMENT_ARRAY)
#define REGAL_NO_DECLARATION_GL_ATI_ELEMENT_ARRAY
#endif

#ifndef GL_ATI_element_array
#define GL_ATI_element_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_ELEMENT_ARRAY
#define GL_ELEMENT_ARRAY_ATI         0x8768     /* 34664 */
#define GL_ELEMENT_ARRAY_TYPE_ATI    0x8769     /* 34665 */
#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876a     /* 34666 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_ELEMENT_ARRAY
typedef void (REGAL_CALL *PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count);
typedef void (REGAL_CALL *PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count);
typedef void (REGAL_CALL *PFNGLELEMENTPOINTERATIPROC)(GLenum type, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_ELEMENT_ARRAY
#define glDrawElementArrayATI               rglDrawElementArrayATI
#define glDrawRangeElementArrayATI          rglDrawRangeElementArrayATI
#define glElementPointerATI                 rglElementPointerATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_ELEMENT_ARRAY
REGAL_DECL void REGAL_CALL glDrawElementArrayATI(GLenum mode, GLsizei count);
REGAL_DECL void REGAL_CALL glDrawRangeElementArrayATI(GLenum mode, GLuint start, GLuint end, GLsizei count);
REGAL_DECL void REGAL_CALL glElementPointerATI(GLenum type, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_ELEMENT_ARRAY
REGAL_DECL void REGAL_CALL plugin_glDrawElementArrayATI(GLenum mode, GLsizei count);
REGAL_DECL void REGAL_CALL plugin_glDrawRangeElementArrayATI(GLenum mode, GLuint start, GLuint end, GLsizei count);
REGAL_DECL void REGAL_CALL plugin_glElementPointerATI(GLenum type, const GLvoid *pointer);
#endif

/**
 ** GL_ATI_envmap_bumpmap
 **/

#if (defined(GL_ATI_ENVMAP_BUMPMAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_ENVMAP_BUMPMAP)) && !defined(REGAL_NO_ENUM_GL_ATI_ENVMAP_BUMPMAP)
#define REGAL_NO_ENUM_GL_ATI_ENVMAP_BUMPMAP
#endif

#if (defined(GL_ATI_ENVMAP_BUMPMAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_ENVMAP_BUMPMAP)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_ENVMAP_BUMPMAP)
#define REGAL_NO_TYPEDEF_GL_ATI_ENVMAP_BUMPMAP
#endif

#if (defined(GL_ATI_ENVMAP_BUMPMAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_ENVMAP_BUMPMAP)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_ENVMAP_BUMPMAP)
#define REGAL_NO_NAMESPACE_GL_ATI_ENVMAP_BUMPMAP
#endif

#if (defined(GL_ATI_ENVMAP_BUMPMAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_ENVMAP_BUMPMAP)) && !defined(REGAL_NO_PLUGIN_GL_ATI_ENVMAP_BUMPMAP)
#define REGAL_NO_PLUGIN_GL_ATI_ENVMAP_BUMPMAP
#endif

#if (defined(GL_ATI_ENVMAP_BUMPMAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_ENVMAP_BUMPMAP)) && !defined(REGAL_NO_DECLARATION_GL_ATI_ENVMAP_BUMPMAP)
#define REGAL_NO_DECLARATION_GL_ATI_ENVMAP_BUMPMAP
#endif

#ifndef GL_ATI_envmap_bumpmap
#define GL_ATI_envmap_bumpmap 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_ENVMAP_BUMPMAP
#define GL_BUMP_ROT_MATRIX_ATI      0x8775     /* 34677 */
#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776     /* 34678 */
#define GL_BUMP_NUM_TEX_UNITS_ATI   0x8777     /* 34679 */
#define GL_BUMP_TEX_UNITS_ATI       0x8778     /* 34680 */
#define GL_DUDV_ATI                 0x8779     /* 34681 */
#define GL_DU8DV8_ATI               0x877a     /* 34682 */
#define GL_BUMP_ENVMAP_ATI          0x877b     /* 34683 */
#define GL_BUMP_TARGET_ATI          0x877c     /* 34684 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_ENVMAP_BUMPMAP
typedef void (REGAL_CALL *PFNGLGETTEXBUMPPARAMETERFVATIPROC)(GLenum pname, GLfloat *param);
typedef void (REGAL_CALL *PFNGLGETTEXBUMPPARAMETERIVATIPROC)(GLenum pname, GLint *param);
typedef void (REGAL_CALL *PFNGLTEXBUMPPARAMETERFVATIPROC)(GLenum pname, const GLfloat *param);
typedef void (REGAL_CALL *PFNGLTEXBUMPPARAMETERIVATIPROC)(GLenum pname, const GLint *param);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_ENVMAP_BUMPMAP
#define glGetTexBumpParameterfvATI          rglGetTexBumpParameterfvATI
#define glGetTexBumpParameterivATI          rglGetTexBumpParameterivATI
#define glTexBumpParameterfvATI             rglTexBumpParameterfvATI
#define glTexBumpParameterivATI             rglTexBumpParameterivATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_ENVMAP_BUMPMAP
REGAL_DECL void REGAL_CALL glGetTexBumpParameterfvATI(GLenum pname, GLfloat *param);
REGAL_DECL void REGAL_CALL glGetTexBumpParameterivATI(GLenum pname, GLint *param);
REGAL_DECL void REGAL_CALL glTexBumpParameterfvATI(GLenum pname, const GLfloat *param);
REGAL_DECL void REGAL_CALL glTexBumpParameterivATI(GLenum pname, const GLint *param);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_ENVMAP_BUMPMAP
REGAL_DECL void REGAL_CALL plugin_glGetTexBumpParameterfvATI(GLenum pname, GLfloat *param);
REGAL_DECL void REGAL_CALL plugin_glGetTexBumpParameterivATI(GLenum pname, GLint *param);
REGAL_DECL void REGAL_CALL plugin_glTexBumpParameterfvATI(GLenum pname, const GLfloat *param);
REGAL_DECL void REGAL_CALL plugin_glTexBumpParameterivATI(GLenum pname, const GLint *param);
#endif

/**
 ** GL_ATI_fragment_shader
 **/

#if (defined(GL_ATI_FRAGMENT_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_FRAGMENT_SHADER)) && !defined(REGAL_NO_ENUM_GL_ATI_FRAGMENT_SHADER)
#define REGAL_NO_ENUM_GL_ATI_FRAGMENT_SHADER
#endif

#if (defined(GL_ATI_FRAGMENT_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_FRAGMENT_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_FRAGMENT_SHADER)
#define REGAL_NO_TYPEDEF_GL_ATI_FRAGMENT_SHADER
#endif

#if (defined(GL_ATI_FRAGMENT_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_FRAGMENT_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_FRAGMENT_SHADER)
#define REGAL_NO_NAMESPACE_GL_ATI_FRAGMENT_SHADER
#endif

#if (defined(GL_ATI_FRAGMENT_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_FRAGMENT_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_ATI_FRAGMENT_SHADER)
#define REGAL_NO_PLUGIN_GL_ATI_FRAGMENT_SHADER
#endif

#if (defined(GL_ATI_FRAGMENT_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_FRAGMENT_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_ATI_FRAGMENT_SHADER)
#define REGAL_NO_DECLARATION_GL_ATI_FRAGMENT_SHADER
#endif

#ifndef GL_ATI_fragment_shader
#define GL_ATI_fragment_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_FRAGMENT_SHADER
#define GL_2X_BIT_ATI                            0x1
#define GL_RED_BIT_ATI                           0x1
#define GL_QUARTER_BIT_ATI                       0x10       /* 16 */
#define GL_4X_BIT_ATI                            0x2
#define GL_COMP_BIT_ATI                          0x2
#define GL_GREEN_BIT_ATI                         0x2
#define GL_EIGHTH_BIT_ATI                        0x20       /* 32 */
#define GL_8X_BIT_ATI                            0x4
#define GL_BLUE_BIT_ATI                          0x4
#define GL_NEGATE_BIT_ATI                        0x4
#define GL_SATURATE_BIT_ATI                      0x40       /* 64 */
#define GL_BIAS_BIT_ATI                          0x8
#define GL_HALF_BIT_ATI                          0x8
#define GL_FRAGMENT_SHADER_ATI                   0x8920     /* 35104 */
#define GL_REG_0_ATI                             0x8921     /* 35105 */
#define GL_REG_1_ATI                             0x8922     /* 35106 */
#define GL_REG_2_ATI                             0x8923     /* 35107 */
#define GL_REG_3_ATI                             0x8924     /* 35108 */
#define GL_REG_4_ATI                             0x8925     /* 35109 */
#define GL_REG_5_ATI                             0x8926     /* 35110 */
#define GL_CON_0_ATI                             0x8941     /* 35137 */
#define GL_CON_1_ATI                             0x8942     /* 35138 */
#define GL_CON_2_ATI                             0x8943     /* 35139 */
#define GL_CON_3_ATI                             0x8944     /* 35140 */
#define GL_CON_4_ATI                             0x8945     /* 35141 */
#define GL_CON_5_ATI                             0x8946     /* 35142 */
#define GL_CON_6_ATI                             0x8947     /* 35143 */
#define GL_CON_7_ATI                             0x8948     /* 35144 */
#define GL_MOV_ATI                               0x8961     /* 35169 */
#define GL_ADD_ATI                               0x8963     /* 35171 */
#define GL_MUL_ATI                               0x8964     /* 35172 */
#define GL_SUB_ATI                               0x8965     /* 35173 */
#define GL_DOT3_ATI                              0x8966     /* 35174 */
#define GL_DOT4_ATI                              0x8967     /* 35175 */
#define GL_MAD_ATI                               0x8968     /* 35176 */
#define GL_LERP_ATI                              0x8969     /* 35177 */
#define GL_CND_ATI                               0x896a     /* 35178 */
#define GL_CND0_ATI                              0x896b     /* 35179 */
#define GL_DOT2_ADD_ATI                          0x896c     /* 35180 */
#define GL_SECONDARY_INTERPOLATOR_ATI            0x896d     /* 35181 */
#define GL_NUM_FRAGMENT_REGISTERS_ATI            0x896e     /* 35182 */
#define GL_NUM_FRAGMENT_CONSTANTS_ATI            0x896f     /* 35183 */
#define GL_NUM_PASSES_ATI                        0x8970     /* 35184 */
#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI         0x8971     /* 35185 */
#define GL_NUM_INSTRUCTIONS_TOTAL_ATI            0x8972     /* 35186 */
#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973     /* 35187 */
#define GL_NUM_LOOPBACK_COMPONENTS_ATI           0x8974     /* 35188 */
#define GL_COLOR_ALPHA_PAIRING_ATI               0x8975     /* 35189 */
#define GL_SWIZZLE_STR_ATI                       0x8976     /* 35190 */
#define GL_SWIZZLE_STQ_ATI                       0x8977     /* 35191 */
#define GL_SWIZZLE_STR_DR_ATI                    0x8978     /* 35192 */
#define GL_SWIZZLE_STQ_DQ_ATI                    0x8979     /* 35193 */
#define GL_SWIZZLE_STRQ_ATI                      0x897a     /* 35194 */
#define GL_SWIZZLE_STRQ_DQ_ATI                   0x897b     /* 35195 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_FRAGMENT_SHADER
typedef GLuint (REGAL_CALL *PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range);
typedef void (REGAL_CALL *PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
typedef void (REGAL_CALL *PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
typedef void (REGAL_CALL *PFNGLALPHAFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
typedef void (REGAL_CALL *PFNGLBEGINFRAGMENTSHADERATIPROC)(void);
typedef void (REGAL_CALL *PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
typedef void (REGAL_CALL *PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
typedef void (REGAL_CALL *PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
typedef void (REGAL_CALL *PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLENDFRAGMENTSHADERATIPROC)(void);
typedef void (REGAL_CALL *PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle);
typedef void (REGAL_CALL *PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle);
typedef void (REGAL_CALL *PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat *value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_FRAGMENT_SHADER
#define glAlphaFragmentOp1ATI               rglAlphaFragmentOp1ATI
#define glAlphaFragmentOp2ATI               rglAlphaFragmentOp2ATI
#define glAlphaFragmentOp3ATI               rglAlphaFragmentOp3ATI
#define glBeginFragmentShaderATI            rglBeginFragmentShaderATI
#define glBindFragmentShaderATI             rglBindFragmentShaderATI
#define glColorFragmentOp1ATI               rglColorFragmentOp1ATI
#define glColorFragmentOp2ATI               rglColorFragmentOp2ATI
#define glColorFragmentOp3ATI               rglColorFragmentOp3ATI
#define glDeleteFragmentShaderATI           rglDeleteFragmentShaderATI
#define glEndFragmentShaderATI              rglEndFragmentShaderATI
#define glGenFragmentShadersATI             rglGenFragmentShadersATI
#define glPassTexCoordATI                   rglPassTexCoordATI
#define glSampleMapATI                      rglSampleMapATI
#define glSetFragmentShaderConstantATI      rglSetFragmentShaderConstantATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_FRAGMENT_SHADER
REGAL_DECL GLuint REGAL_CALL glGenFragmentShadersATI(GLuint range);
REGAL_DECL void REGAL_CALL glAlphaFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
REGAL_DECL void REGAL_CALL glAlphaFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
REGAL_DECL void REGAL_CALL glAlphaFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
REGAL_DECL void REGAL_CALL glBeginFragmentShaderATI(void);
REGAL_DECL void REGAL_CALL glBindFragmentShaderATI(GLuint id);
REGAL_DECL void REGAL_CALL glColorFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
REGAL_DECL void REGAL_CALL glColorFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
REGAL_DECL void REGAL_CALL glColorFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
REGAL_DECL void REGAL_CALL glDeleteFragmentShaderATI(GLuint id);
REGAL_DECL void REGAL_CALL glEndFragmentShaderATI(void);
REGAL_DECL void REGAL_CALL glPassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle);
REGAL_DECL void REGAL_CALL glSampleMapATI(GLuint dst, GLuint interp, GLenum swizzle);
REGAL_DECL void REGAL_CALL glSetFragmentShaderConstantATI(GLuint dst, const GLfloat *value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_FRAGMENT_SHADER
REGAL_DECL GLuint REGAL_CALL plugin_glGenFragmentShadersATI(GLuint range);
REGAL_DECL void REGAL_CALL plugin_glAlphaFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
REGAL_DECL void REGAL_CALL plugin_glAlphaFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
REGAL_DECL void REGAL_CALL plugin_glAlphaFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
REGAL_DECL void REGAL_CALL plugin_glBeginFragmentShaderATI(void);
REGAL_DECL void REGAL_CALL plugin_glBindFragmentShaderATI(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glColorFragmentOp1ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
REGAL_DECL void REGAL_CALL plugin_glColorFragmentOp2ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
REGAL_DECL void REGAL_CALL plugin_glColorFragmentOp3ATI(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
REGAL_DECL void REGAL_CALL plugin_glDeleteFragmentShaderATI(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glEndFragmentShaderATI(void);
REGAL_DECL void REGAL_CALL plugin_glPassTexCoordATI(GLuint dst, GLuint coord, GLenum swizzle);
REGAL_DECL void REGAL_CALL plugin_glSampleMapATI(GLuint dst, GLuint interp, GLenum swizzle);
REGAL_DECL void REGAL_CALL plugin_glSetFragmentShaderConstantATI(GLuint dst, const GLfloat *value);
#endif

/**
 ** GL_ATI_map_object_buffer
 **/

#if (defined(GL_ATI_MAP_OBJECT_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_MAP_OBJECT_BUFFER)) && !defined(REGAL_NO_ENUM_GL_ATI_MAP_OBJECT_BUFFER)
#define REGAL_NO_ENUM_GL_ATI_MAP_OBJECT_BUFFER
#endif

#if (defined(GL_ATI_MAP_OBJECT_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_MAP_OBJECT_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_MAP_OBJECT_BUFFER)
#define REGAL_NO_TYPEDEF_GL_ATI_MAP_OBJECT_BUFFER
#endif

#if (defined(GL_ATI_MAP_OBJECT_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_MAP_OBJECT_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_MAP_OBJECT_BUFFER)
#define REGAL_NO_NAMESPACE_GL_ATI_MAP_OBJECT_BUFFER
#endif

#if (defined(GL_ATI_MAP_OBJECT_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_MAP_OBJECT_BUFFER)) && !defined(REGAL_NO_PLUGIN_GL_ATI_MAP_OBJECT_BUFFER)
#define REGAL_NO_PLUGIN_GL_ATI_MAP_OBJECT_BUFFER
#endif

#if (defined(GL_ATI_MAP_OBJECT_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_MAP_OBJECT_BUFFER)) && !defined(REGAL_NO_DECLARATION_GL_ATI_MAP_OBJECT_BUFFER)
#define REGAL_NO_DECLARATION_GL_ATI_MAP_OBJECT_BUFFER
#endif

#ifndef GL_ATI_map_object_buffer
#define GL_ATI_map_object_buffer 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_MAP_OBJECT_BUFFER
typedef GLvoid *(REGAL_CALL *PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer);
typedef void (REGAL_CALL *PFNGLUNMAPOBJECTBUFFERATIPROC)(GLuint buffer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_MAP_OBJECT_BUFFER
#define glMapObjectBufferATI                rglMapObjectBufferATI
#define glUnmapObjectBufferATI              rglUnmapObjectBufferATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_MAP_OBJECT_BUFFER
REGAL_DECL GLvoid *REGAL_CALL glMapObjectBufferATI(GLuint buffer);
REGAL_DECL void REGAL_CALL glUnmapObjectBufferATI(GLuint buffer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_MAP_OBJECT_BUFFER
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapObjectBufferATI(GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glUnmapObjectBufferATI(GLuint buffer);
#endif

/**
 ** GL_ATI_meminfo
 **/

#if (defined(GL_ATI_MEMINFO) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_MEMINFO)) && !defined(REGAL_NO_ENUM_GL_ATI_MEMINFO)
#define REGAL_NO_ENUM_GL_ATI_MEMINFO
#endif

#if (defined(GL_ATI_MEMINFO) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_MEMINFO)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_MEMINFO)
#define REGAL_NO_TYPEDEF_GL_ATI_MEMINFO
#endif

#if (defined(GL_ATI_MEMINFO) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_MEMINFO)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_MEMINFO)
#define REGAL_NO_NAMESPACE_GL_ATI_MEMINFO
#endif

#if (defined(GL_ATI_MEMINFO) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_MEMINFO)) && !defined(REGAL_NO_PLUGIN_GL_ATI_MEMINFO)
#define REGAL_NO_PLUGIN_GL_ATI_MEMINFO
#endif

#if (defined(GL_ATI_MEMINFO) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_MEMINFO)) && !defined(REGAL_NO_DECLARATION_GL_ATI_MEMINFO)
#define REGAL_NO_DECLARATION_GL_ATI_MEMINFO
#endif

#ifndef GL_ATI_meminfo
#define GL_ATI_meminfo 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_MEMINFO
#define GL_VBO_FREE_MEMORY_ATI          0x87fb     /* 34811 */
#define GL_TEXTURE_FREE_MEMORY_ATI      0x87fc     /* 34812 */
#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87fd     /* 34813 */
#endif

/**
 ** GL_ATI_pn_triangles
 **/

#if (defined(GL_ATI_PN_TRIANGLES) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_PN_TRIANGLES)) && !defined(REGAL_NO_ENUM_GL_ATI_PN_TRIANGLES)
#define REGAL_NO_ENUM_GL_ATI_PN_TRIANGLES
#endif

#if (defined(GL_ATI_PN_TRIANGLES) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_PN_TRIANGLES)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_PN_TRIANGLES)
#define REGAL_NO_TYPEDEF_GL_ATI_PN_TRIANGLES
#endif

#if (defined(GL_ATI_PN_TRIANGLES) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_PN_TRIANGLES)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_PN_TRIANGLES)
#define REGAL_NO_NAMESPACE_GL_ATI_PN_TRIANGLES
#endif

#if (defined(GL_ATI_PN_TRIANGLES) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_PN_TRIANGLES)) && !defined(REGAL_NO_PLUGIN_GL_ATI_PN_TRIANGLES)
#define REGAL_NO_PLUGIN_GL_ATI_PN_TRIANGLES
#endif

#if (defined(GL_ATI_PN_TRIANGLES) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_PN_TRIANGLES)) && !defined(REGAL_NO_DECLARATION_GL_ATI_PN_TRIANGLES)
#define REGAL_NO_DECLARATION_GL_ATI_PN_TRIANGLES
#endif

#ifndef GL_ATI_pn_triangles
#define GL_ATI_pn_triangles 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_PN_TRIANGLES
#define GL_PN_TRIANGLES_ATI                       0x87f0     /* 34800 */
#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87f1     /* 34801 */
#define GL_PN_TRIANGLES_POINT_MODE_ATI            0x87f2     /* 34802 */
#define GL_PN_TRIANGLES_NORMAL_MODE_ATI           0x87f3     /* 34803 */
#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI     0x87f4     /* 34804 */
#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI     0x87f5     /* 34805 */
#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI      0x87f6     /* 34806 */
#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI    0x87f7     /* 34807 */
#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87f8     /* 34808 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_PN_TRIANGLES
typedef void (REGAL_CALL *PFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_PN_TRIANGLES
#define glPNTrianglesfATI                   rglPNTrianglesfATI
#define glPNTrianglesiATI                   rglPNTrianglesiATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_PN_TRIANGLES
REGAL_DECL void REGAL_CALL glPNTrianglesfATI(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glPNTrianglesiATI(GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_PN_TRIANGLES
REGAL_DECL void REGAL_CALL plugin_glPNTrianglesfATI(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPNTrianglesiATI(GLenum pname, GLint param);
#endif

/**
 ** GL_ATI_separate_stencil
 **/

#if (defined(GL_ATI_SEPARATE_STENCIL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_SEPARATE_STENCIL)) && !defined(REGAL_NO_ENUM_GL_ATI_SEPARATE_STENCIL)
#define REGAL_NO_ENUM_GL_ATI_SEPARATE_STENCIL
#endif

#if (defined(GL_ATI_SEPARATE_STENCIL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_SEPARATE_STENCIL)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_SEPARATE_STENCIL)
#define REGAL_NO_TYPEDEF_GL_ATI_SEPARATE_STENCIL
#endif

#if (defined(GL_ATI_SEPARATE_STENCIL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_SEPARATE_STENCIL)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_SEPARATE_STENCIL)
#define REGAL_NO_NAMESPACE_GL_ATI_SEPARATE_STENCIL
#endif

#if (defined(GL_ATI_SEPARATE_STENCIL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_SEPARATE_STENCIL)) && !defined(REGAL_NO_PLUGIN_GL_ATI_SEPARATE_STENCIL)
#define REGAL_NO_PLUGIN_GL_ATI_SEPARATE_STENCIL
#endif

#if (defined(GL_ATI_SEPARATE_STENCIL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_SEPARATE_STENCIL)) && !defined(REGAL_NO_DECLARATION_GL_ATI_SEPARATE_STENCIL)
#define REGAL_NO_DECLARATION_GL_ATI_SEPARATE_STENCIL
#endif

#ifndef GL_ATI_separate_stencil
#define GL_ATI_separate_stencil 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_SEPARATE_STENCIL
#define GL_STENCIL_BACK_FUNC_ATI            0x8800     /* 34816 */
#define GL_STENCIL_BACK_FAIL_ATI            0x8801     /* 34817 */
#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802     /* 34818 */
#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803     /* 34819 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_SEPARATE_STENCIL
typedef void (REGAL_CALL *PFNGLSTENCILFUNCSEPARATEATIPROC)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
typedef void (REGAL_CALL *PFNGLSTENCILOPSEPARATEATIPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_SEPARATE_STENCIL
#define glStencilFuncSeparateATI            rglStencilFuncSeparateATI
#define glStencilOpSeparateATI              rglStencilOpSeparateATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_SEPARATE_STENCIL
REGAL_DECL void REGAL_CALL glStencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
REGAL_DECL void REGAL_CALL glStencilOpSeparateATI(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_SEPARATE_STENCIL
REGAL_DECL void REGAL_CALL plugin_glStencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glStencilOpSeparateATI(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
#endif

/**
 ** GL_ATI_text_fragment_shader
 **/

#if (defined(GL_ATI_TEXT_FRAGMENT_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_TEXT_FRAGMENT_SHADER)) && !defined(REGAL_NO_ENUM_GL_ATI_TEXT_FRAGMENT_SHADER)
#define REGAL_NO_ENUM_GL_ATI_TEXT_FRAGMENT_SHADER
#endif

#if (defined(GL_ATI_TEXT_FRAGMENT_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_TEXT_FRAGMENT_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_TEXT_FRAGMENT_SHADER)
#define REGAL_NO_TYPEDEF_GL_ATI_TEXT_FRAGMENT_SHADER
#endif

#if (defined(GL_ATI_TEXT_FRAGMENT_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_TEXT_FRAGMENT_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_TEXT_FRAGMENT_SHADER)
#define REGAL_NO_NAMESPACE_GL_ATI_TEXT_FRAGMENT_SHADER
#endif

#if (defined(GL_ATI_TEXT_FRAGMENT_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_TEXT_FRAGMENT_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_ATI_TEXT_FRAGMENT_SHADER)
#define REGAL_NO_PLUGIN_GL_ATI_TEXT_FRAGMENT_SHADER
#endif

#if (defined(GL_ATI_TEXT_FRAGMENT_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_TEXT_FRAGMENT_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_ATI_TEXT_FRAGMENT_SHADER)
#define REGAL_NO_DECLARATION_GL_ATI_TEXT_FRAGMENT_SHADER
#endif

#ifndef GL_ATI_text_fragment_shader
#define GL_ATI_text_fragment_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_TEXT_FRAGMENT_SHADER
#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 /* 33280 */
#endif

/**
 ** GL_ATI_texture_compression_3dc
 **/

#if (defined(GL_ATI_TEXTURE_COMPRESSION_3DC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_TEXTURE_COMPRESSION_3DC)) && !defined(REGAL_NO_ENUM_GL_ATI_TEXTURE_COMPRESSION_3DC)
#define REGAL_NO_ENUM_GL_ATI_TEXTURE_COMPRESSION_3DC
#endif

#if (defined(GL_ATI_TEXTURE_COMPRESSION_3DC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_TEXTURE_COMPRESSION_3DC)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_TEXTURE_COMPRESSION_3DC)
#define REGAL_NO_TYPEDEF_GL_ATI_TEXTURE_COMPRESSION_3DC
#endif

#if (defined(GL_ATI_TEXTURE_COMPRESSION_3DC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_TEXTURE_COMPRESSION_3DC)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_TEXTURE_COMPRESSION_3DC)
#define REGAL_NO_NAMESPACE_GL_ATI_TEXTURE_COMPRESSION_3DC
#endif

#if (defined(GL_ATI_TEXTURE_COMPRESSION_3DC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_TEXTURE_COMPRESSION_3DC)) && !defined(REGAL_NO_PLUGIN_GL_ATI_TEXTURE_COMPRESSION_3DC)
#define REGAL_NO_PLUGIN_GL_ATI_TEXTURE_COMPRESSION_3DC
#endif

#if (defined(GL_ATI_TEXTURE_COMPRESSION_3DC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_TEXTURE_COMPRESSION_3DC)) && !defined(REGAL_NO_DECLARATION_GL_ATI_TEXTURE_COMPRESSION_3DC)
#define REGAL_NO_DECLARATION_GL_ATI_TEXTURE_COMPRESSION_3DC
#endif

#ifndef GL_ATI_texture_compression_3dc
#define GL_ATI_texture_compression_3dc 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_TEXTURE_COMPRESSION_3DC
#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 /* 34871 */
#endif

/**
 ** GL_ATI_texture_env_combine3
 **/

#if (defined(GL_ATI_TEXTURE_ENV_COMBINE3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_TEXTURE_ENV_COMBINE3)) && !defined(REGAL_NO_ENUM_GL_ATI_TEXTURE_ENV_COMBINE3)
#define REGAL_NO_ENUM_GL_ATI_TEXTURE_ENV_COMBINE3
#endif

#if (defined(GL_ATI_TEXTURE_ENV_COMBINE3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_TEXTURE_ENV_COMBINE3)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_TEXTURE_ENV_COMBINE3)
#define REGAL_NO_TYPEDEF_GL_ATI_TEXTURE_ENV_COMBINE3
#endif

#if (defined(GL_ATI_TEXTURE_ENV_COMBINE3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_TEXTURE_ENV_COMBINE3)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_TEXTURE_ENV_COMBINE3)
#define REGAL_NO_NAMESPACE_GL_ATI_TEXTURE_ENV_COMBINE3
#endif

#if (defined(GL_ATI_TEXTURE_ENV_COMBINE3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_TEXTURE_ENV_COMBINE3)) && !defined(REGAL_NO_PLUGIN_GL_ATI_TEXTURE_ENV_COMBINE3)
#define REGAL_NO_PLUGIN_GL_ATI_TEXTURE_ENV_COMBINE3
#endif

#if (defined(GL_ATI_TEXTURE_ENV_COMBINE3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_TEXTURE_ENV_COMBINE3)) && !defined(REGAL_NO_DECLARATION_GL_ATI_TEXTURE_ENV_COMBINE3)
#define REGAL_NO_DECLARATION_GL_ATI_TEXTURE_ENV_COMBINE3
#endif

#ifndef GL_ATI_texture_env_combine3
#define GL_ATI_texture_env_combine3 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_TEXTURE_ENV_COMBINE3
#define GL_MODULATE_ADD_ATI        0x8744     /* 34628 */
#define GL_MODULATE_SIGNED_ADD_ATI 0x8745     /* 34629 */
#define GL_MODULATE_SUBTRACT_ATI   0x8746     /* 34630 */
#endif

/**
 ** GL_ATI_texture_float
 **/

#if (defined(GL_ATI_TEXTURE_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_TEXTURE_FLOAT)) && !defined(REGAL_NO_ENUM_GL_ATI_TEXTURE_FLOAT)
#define REGAL_NO_ENUM_GL_ATI_TEXTURE_FLOAT
#endif

#if (defined(GL_ATI_TEXTURE_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_TEXTURE_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_TEXTURE_FLOAT)
#define REGAL_NO_TYPEDEF_GL_ATI_TEXTURE_FLOAT
#endif

#if (defined(GL_ATI_TEXTURE_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_TEXTURE_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_TEXTURE_FLOAT)
#define REGAL_NO_NAMESPACE_GL_ATI_TEXTURE_FLOAT
#endif

#if (defined(GL_ATI_TEXTURE_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_TEXTURE_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_ATI_TEXTURE_FLOAT)
#define REGAL_NO_PLUGIN_GL_ATI_TEXTURE_FLOAT
#endif

#if (defined(GL_ATI_TEXTURE_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_TEXTURE_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_ATI_TEXTURE_FLOAT)
#define REGAL_NO_DECLARATION_GL_ATI_TEXTURE_FLOAT
#endif

#ifndef GL_ATI_texture_float
#define GL_ATI_texture_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_TEXTURE_FLOAT
#define GL_RGBA_FLOAT32_ATI            0x8814     /* 34836 */
#define GL_RGB_FLOAT32_ATI             0x8815     /* 34837 */
#define GL_ALPHA_FLOAT32_ATI           0x8816     /* 34838 */
#define GL_INTENSITY_FLOAT32_ATI       0x8817     /* 34839 */
#define GL_LUMINANCE_FLOAT32_ATI       0x8818     /* 34840 */
#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819     /* 34841 */
#define GL_RGBA_FLOAT16_ATI            0x881a     /* 34842 */
#define GL_RGB_FLOAT16_ATI             0x881b     /* 34843 */
#define GL_ALPHA_FLOAT16_ATI           0x881c     /* 34844 */
#define GL_INTENSITY_FLOAT16_ATI       0x881d     /* 34845 */
#define GL_LUMINANCE_FLOAT16_ATI       0x881e     /* 34846 */
#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881f     /* 34847 */
#endif

/**
 ** GL_ATI_texture_mirror_once
 **/

#if (defined(GL_ATI_TEXTURE_MIRROR_ONCE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_TEXTURE_MIRROR_ONCE)) && !defined(REGAL_NO_ENUM_GL_ATI_TEXTURE_MIRROR_ONCE)
#define REGAL_NO_ENUM_GL_ATI_TEXTURE_MIRROR_ONCE
#endif

#if (defined(GL_ATI_TEXTURE_MIRROR_ONCE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_TEXTURE_MIRROR_ONCE)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_TEXTURE_MIRROR_ONCE)
#define REGAL_NO_TYPEDEF_GL_ATI_TEXTURE_MIRROR_ONCE
#endif

#if (defined(GL_ATI_TEXTURE_MIRROR_ONCE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_TEXTURE_MIRROR_ONCE)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_TEXTURE_MIRROR_ONCE)
#define REGAL_NO_NAMESPACE_GL_ATI_TEXTURE_MIRROR_ONCE
#endif

#if (defined(GL_ATI_TEXTURE_MIRROR_ONCE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_TEXTURE_MIRROR_ONCE)) && !defined(REGAL_NO_PLUGIN_GL_ATI_TEXTURE_MIRROR_ONCE)
#define REGAL_NO_PLUGIN_GL_ATI_TEXTURE_MIRROR_ONCE
#endif

#if (defined(GL_ATI_TEXTURE_MIRROR_ONCE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_TEXTURE_MIRROR_ONCE)) && !defined(REGAL_NO_DECLARATION_GL_ATI_TEXTURE_MIRROR_ONCE)
#define REGAL_NO_DECLARATION_GL_ATI_TEXTURE_MIRROR_ONCE
#endif

#ifndef GL_ATI_texture_mirror_once
#define GL_ATI_texture_mirror_once 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_TEXTURE_MIRROR_ONCE
#define GL_MIRROR_CLAMP_ATI         0x8742     /* 34626 */
#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743     /* 34627 */
#endif

/**
 ** GL_ATI_vertex_array_object
 **/

#if (defined(GL_ATI_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ATI_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_ENUM_GL_ATI_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_ATI_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ATI_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_ATI_VERTEX_ARRAY_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ATI_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_ATI_VERTEX_ARRAY_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ATI_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_PLUGIN_GL_ATI_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_ATI_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ATI_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_DECLARATION_GL_ATI_VERTEX_ARRAY_OBJECT
#endif

#ifndef GL_ATI_vertex_array_object
#define GL_ATI_vertex_array_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_VERTEX_ARRAY_OBJECT
#define GL_STATIC_ATI              0x8760     /* 34656 */
#define GL_DYNAMIC_ATI             0x8761     /* 34657 */
#define GL_PRESERVE_ATI            0x8762     /* 34658 */
#define GL_DISCARD_ATI             0x8763     /* 34659 */
#define GL_OBJECT_BUFFER_SIZE_ATI  0x8764     /* 34660 */
#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765     /* 34661 */
#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766     /* 34662 */
#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767     /* 34663 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_VERTEX_ARRAY_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer);
typedef GLuint (REGAL_CALL *PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const GLvoid *pointer, GLenum usage);
typedef void (REGAL_CALL *PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
typedef void (REGAL_CALL *PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer);
typedef void (REGAL_CALL *PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
typedef void (REGAL_CALL *PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_VERTEX_ARRAY_OBJECT
#define glArrayObjectATI                    rglArrayObjectATI
#define glFreeObjectBufferATI               rglFreeObjectBufferATI
#define glGetArrayObjectfvATI               rglGetArrayObjectfvATI
#define glGetArrayObjectivATI               rglGetArrayObjectivATI
#define glGetObjectBufferfvATI              rglGetObjectBufferfvATI
#define glGetObjectBufferivATI              rglGetObjectBufferivATI
#define glGetVariantArrayObjectfvATI        rglGetVariantArrayObjectfvATI
#define glGetVariantArrayObjectivATI        rglGetVariantArrayObjectivATI
#define glIsObjectBufferATI                 rglIsObjectBufferATI
#define glNewObjectBufferATI                rglNewObjectBufferATI
#define glUpdateObjectBufferATI             rglUpdateObjectBufferATI
#define glVariantArrayObjectATI             rglVariantArrayObjectATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_VERTEX_ARRAY_OBJECT
REGAL_DECL GLboolean REGAL_CALL glIsObjectBufferATI(GLuint buffer);
REGAL_DECL GLuint REGAL_CALL glNewObjectBufferATI(GLsizei size, const GLvoid *pointer, GLenum usage);
REGAL_DECL void REGAL_CALL glArrayObjectATI(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
REGAL_DECL void REGAL_CALL glFreeObjectBufferATI(GLuint buffer);
REGAL_DECL void REGAL_CALL glGetArrayObjectfvATI(GLenum array, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetArrayObjectivATI(GLenum array, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetObjectBufferfvATI(GLuint buffer, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetObjectBufferivATI(GLuint buffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetVariantArrayObjectfvATI(GLuint id, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetVariantArrayObjectivATI(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glUpdateObjectBufferATI(GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
REGAL_DECL void REGAL_CALL glVariantArrayObjectATI(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_VERTEX_ARRAY_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glIsObjectBufferATI(GLuint buffer);
REGAL_DECL GLuint REGAL_CALL plugin_glNewObjectBufferATI(GLsizei size, const GLvoid *pointer, GLenum usage);
REGAL_DECL void REGAL_CALL plugin_glArrayObjectATI(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
REGAL_DECL void REGAL_CALL plugin_glFreeObjectBufferATI(GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glGetArrayObjectfvATI(GLenum array, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetArrayObjectivATI(GLenum array, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetObjectBufferfvATI(GLuint buffer, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetObjectBufferivATI(GLuint buffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVariantArrayObjectfvATI(GLuint id, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetVariantArrayObjectivATI(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glUpdateObjectBufferATI(GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve);
REGAL_DECL void REGAL_CALL plugin_glVariantArrayObjectATI(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
#endif

/**
 ** GL_ATI_vertex_attrib_array_object
 **/

#if (defined(GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)) && !defined(REGAL_NO_ENUM_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)
#define REGAL_NO_ENUM_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
#endif

#if (defined(GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)
#define REGAL_NO_TYPEDEF_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
#endif

#if (defined(GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)
#define REGAL_NO_NAMESPACE_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
#endif

#if (defined(GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)
#define REGAL_NO_PLUGIN_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
#endif

#if (defined(GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT)
#define REGAL_NO_DECLARATION_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
#endif

#ifndef GL_ATI_vertex_attrib_array_object
#define GL_ATI_vertex_attrib_array_object 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)(GLuint index, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)(GLuint index, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
#define glGetVertexAttribArrayObjectfvATI   rglGetVertexAttribArrayObjectfvATI
#define glGetVertexAttribArrayObjectivATI   rglGetVertexAttribArrayObjectivATI
#define glVertexAttribArrayObjectATI        rglVertexAttribArrayObjectATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
REGAL_DECL void REGAL_CALL glGetVertexAttribArrayObjectfvATI(GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribArrayObjectivATI(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glVertexAttribArrayObjectATI(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_VERTEX_ATTRIB_ARRAY_OBJECT
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribArrayObjectfvATI(GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribArrayObjectivATI(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribArrayObjectATI(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
#endif

/**
 ** GL_ATI_vertex_streams
 **/

#if (defined(GL_ATI_VERTEX_STREAMS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_ATI_VERTEX_STREAMS)) && !defined(REGAL_NO_ENUM_GL_ATI_VERTEX_STREAMS)
#define REGAL_NO_ENUM_GL_ATI_VERTEX_STREAMS
#endif

#if (defined(GL_ATI_VERTEX_STREAMS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_ATI_VERTEX_STREAMS)) && !defined(REGAL_NO_TYPEDEF_GL_ATI_VERTEX_STREAMS)
#define REGAL_NO_TYPEDEF_GL_ATI_VERTEX_STREAMS
#endif

#if (defined(GL_ATI_VERTEX_STREAMS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_ATI_VERTEX_STREAMS)) && !defined(REGAL_NO_NAMESPACE_GL_ATI_VERTEX_STREAMS)
#define REGAL_NO_NAMESPACE_GL_ATI_VERTEX_STREAMS
#endif

#if (defined(GL_ATI_VERTEX_STREAMS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_ATI_VERTEX_STREAMS)) && !defined(REGAL_NO_PLUGIN_GL_ATI_VERTEX_STREAMS)
#define REGAL_NO_PLUGIN_GL_ATI_VERTEX_STREAMS
#endif

#if (defined(GL_ATI_VERTEX_STREAMS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_ATI_VERTEX_STREAMS)) && !defined(REGAL_NO_DECLARATION_GL_ATI_VERTEX_STREAMS)
#define REGAL_NO_DECLARATION_GL_ATI_VERTEX_STREAMS
#endif

#ifndef GL_ATI_vertex_streams
#define GL_ATI_vertex_streams 1
#endif

#ifndef REGAL_NO_ENUM_GL_ATI_VERTEX_STREAMS
#define GL_MAX_VERTEX_STREAMS_ATI 0x876b     /* 34667 */
#define GL_VERTEX_SOURCE_ATI      0x876c     /* 34668 */
#define GL_VERTEX_STREAM0_ATI     0x876d     /* 34669 */
#define GL_VERTEX_STREAM1_ATI     0x876e     /* 34670 */
#define GL_VERTEX_STREAM2_ATI     0x876f     /* 34671 */
#define GL_VERTEX_STREAM3_ATI     0x8770     /* 34672 */
#define GL_VERTEX_STREAM4_ATI     0x8771     /* 34673 */
#define GL_VERTEX_STREAM5_ATI     0x8772     /* 34674 */
#define GL_VERTEX_STREAM6_ATI     0x8773     /* 34675 */
#define GL_VERTEX_STREAM7_ATI     0x8774     /* 34676 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_ATI_VERTEX_STREAMS
typedef void (REGAL_CALL *PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)(GLenum stream);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3BATIPROC)(GLenum stream, GLbyte x, GLbyte y, GLbyte z);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3BVATIPROC)(GLenum stream, const GLbyte *coords);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3DVATIPROC)(GLenum stream, const GLdouble *coords);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3FVATIPROC)(GLenum stream, const GLfloat *coords);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3IATIPROC)(GLenum stream, GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3IVATIPROC)(GLenum stream, const GLint *coords);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLNORMALSTREAM3SVATIPROC)(GLenum stream, const GLshort *coords);
typedef void (REGAL_CALL *PFNGLVERTEXBLENDENVFATIPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLVERTEXBLENDENVIATIPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM1DATIPROC)(GLenum stream, GLdouble x);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM1DVATIPROC)(GLenum stream, const GLdouble *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM1FATIPROC)(GLenum stream, GLfloat x);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM1FVATIPROC)(GLenum stream, const GLfloat *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM1IATIPROC)(GLenum stream, GLint x);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM1IVATIPROC)(GLenum stream, const GLint *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM1SATIPROC)(GLenum stream, GLshort x);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM1SVATIPROC)(GLenum stream, const GLshort *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM2DATIPROC)(GLenum stream, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM2DVATIPROC)(GLenum stream, const GLdouble *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM2FATIPROC)(GLenum stream, GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM2FVATIPROC)(GLenum stream, const GLfloat *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM2IATIPROC)(GLenum stream, GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM2IVATIPROC)(GLenum stream, const GLint *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM2SATIPROC)(GLenum stream, GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM2SVATIPROC)(GLenum stream, const GLshort *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM3DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM3DVATIPROC)(GLenum stream, const GLdouble *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM3FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM3FVATIPROC)(GLenum stream, const GLfloat *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM3IATIPROC)(GLenum stream, GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM3IVATIPROC)(GLenum stream, const GLint *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM3SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM3SVATIPROC)(GLenum stream, const GLshort *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM4DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM4DVATIPROC)(GLenum stream, const GLdouble *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM4FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM4FVATIPROC)(GLenum stream, const GLfloat *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM4IATIPROC)(GLenum stream, GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM4IVATIPROC)(GLenum stream, const GLint *coords);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM4SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (REGAL_CALL *PFNGLVERTEXSTREAM4SVATIPROC)(GLenum stream, const GLshort *coords);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_ATI_VERTEX_STREAMS
#define glClientActiveVertexStreamATI       rglClientActiveVertexStreamATI
#define glNormalStream3bATI                 rglNormalStream3bATI
#define glNormalStream3bvATI                rglNormalStream3bvATI
#define glNormalStream3dATI                 rglNormalStream3dATI
#define glNormalStream3dvATI                rglNormalStream3dvATI
#define glNormalStream3fATI                 rglNormalStream3fATI
#define glNormalStream3fvATI                rglNormalStream3fvATI
#define glNormalStream3iATI                 rglNormalStream3iATI
#define glNormalStream3ivATI                rglNormalStream3ivATI
#define glNormalStream3sATI                 rglNormalStream3sATI
#define glNormalStream3svATI                rglNormalStream3svATI
#define glVertexBlendEnvfATI                rglVertexBlendEnvfATI
#define glVertexBlendEnviATI                rglVertexBlendEnviATI
#define glVertexStream1dATI                 rglVertexStream1dATI
#define glVertexStream1dvATI                rglVertexStream1dvATI
#define glVertexStream1fATI                 rglVertexStream1fATI
#define glVertexStream1fvATI                rglVertexStream1fvATI
#define glVertexStream1iATI                 rglVertexStream1iATI
#define glVertexStream1ivATI                rglVertexStream1ivATI
#define glVertexStream1sATI                 rglVertexStream1sATI
#define glVertexStream1svATI                rglVertexStream1svATI
#define glVertexStream2dATI                 rglVertexStream2dATI
#define glVertexStream2dvATI                rglVertexStream2dvATI
#define glVertexStream2fATI                 rglVertexStream2fATI
#define glVertexStream2fvATI                rglVertexStream2fvATI
#define glVertexStream2iATI                 rglVertexStream2iATI
#define glVertexStream2ivATI                rglVertexStream2ivATI
#define glVertexStream2sATI                 rglVertexStream2sATI
#define glVertexStream2svATI                rglVertexStream2svATI
#define glVertexStream3dATI                 rglVertexStream3dATI
#define glVertexStream3dvATI                rglVertexStream3dvATI
#define glVertexStream3fATI                 rglVertexStream3fATI
#define glVertexStream3fvATI                rglVertexStream3fvATI
#define glVertexStream3iATI                 rglVertexStream3iATI
#define glVertexStream3ivATI                rglVertexStream3ivATI
#define glVertexStream3sATI                 rglVertexStream3sATI
#define glVertexStream3svATI                rglVertexStream3svATI
#define glVertexStream4dATI                 rglVertexStream4dATI
#define glVertexStream4dvATI                rglVertexStream4dvATI
#define glVertexStream4fATI                 rglVertexStream4fATI
#define glVertexStream4fvATI                rglVertexStream4fvATI
#define glVertexStream4iATI                 rglVertexStream4iATI
#define glVertexStream4ivATI                rglVertexStream4ivATI
#define glVertexStream4sATI                 rglVertexStream4sATI
#define glVertexStream4svATI                rglVertexStream4svATI
#endif

#ifndef REGAL_NO_DECLARATION_GL_ATI_VERTEX_STREAMS
REGAL_DECL void REGAL_CALL glClientActiveVertexStreamATI(GLenum stream);
REGAL_DECL void REGAL_CALL glNormalStream3bATI(GLenum stream, GLbyte x, GLbyte y, GLbyte z);
REGAL_DECL void REGAL_CALL glNormalStream3bvATI(GLenum stream, const GLbyte *coords);
REGAL_DECL void REGAL_CALL glNormalStream3dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glNormalStream3dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL glNormalStream3fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glNormalStream3fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL glNormalStream3iATI(GLenum stream, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glNormalStream3ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL glNormalStream3sATI(GLenum stream, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glNormalStream3svATI(GLenum stream, const GLshort *coords);
REGAL_DECL void REGAL_CALL glVertexBlendEnvfATI(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glVertexBlendEnviATI(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glVertexStream1dATI(GLenum stream, GLdouble x);
REGAL_DECL void REGAL_CALL glVertexStream1dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL glVertexStream1fATI(GLenum stream, GLfloat x);
REGAL_DECL void REGAL_CALL glVertexStream1fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL glVertexStream1iATI(GLenum stream, GLint x);
REGAL_DECL void REGAL_CALL glVertexStream1ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL glVertexStream1sATI(GLenum stream, GLshort x);
REGAL_DECL void REGAL_CALL glVertexStream1svATI(GLenum stream, const GLshort *coords);
REGAL_DECL void REGAL_CALL glVertexStream2dATI(GLenum stream, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glVertexStream2dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL glVertexStream2fATI(GLenum stream, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glVertexStream2fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL glVertexStream2iATI(GLenum stream, GLint x, GLint y);
REGAL_DECL void REGAL_CALL glVertexStream2ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL glVertexStream2sATI(GLenum stream, GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glVertexStream2svATI(GLenum stream, const GLshort *coords);
REGAL_DECL void REGAL_CALL glVertexStream3dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glVertexStream3dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL glVertexStream3fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glVertexStream3fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL glVertexStream3iATI(GLenum stream, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glVertexStream3ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL glVertexStream3sATI(GLenum stream, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glVertexStream3svATI(GLenum stream, const GLshort *coords);
REGAL_DECL void REGAL_CALL glVertexStream4dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glVertexStream4dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL glVertexStream4fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glVertexStream4fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL glVertexStream4iATI(GLenum stream, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glVertexStream4ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL glVertexStream4sATI(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL glVertexStream4svATI(GLenum stream, const GLshort *coords);
#endif

#ifndef REGAL_NO_PLUGIN_GL_ATI_VERTEX_STREAMS
REGAL_DECL void REGAL_CALL plugin_glClientActiveVertexStreamATI(GLenum stream);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3bATI(GLenum stream, GLbyte x, GLbyte y, GLbyte z);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3bvATI(GLenum stream, const GLbyte *coords);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3iATI(GLenum stream, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3sATI(GLenum stream, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glNormalStream3svATI(GLenum stream, const GLshort *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexBlendEnvfATI(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glVertexBlendEnviATI(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glVertexStream1dATI(GLenum stream, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glVertexStream1dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream1fATI(GLenum stream, GLfloat x);
REGAL_DECL void REGAL_CALL plugin_glVertexStream1fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream1iATI(GLenum stream, GLint x);
REGAL_DECL void REGAL_CALL plugin_glVertexStream1ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream1sATI(GLenum stream, GLshort x);
REGAL_DECL void REGAL_CALL plugin_glVertexStream1svATI(GLenum stream, const GLshort *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream2dATI(GLenum stream, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glVertexStream2dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream2fATI(GLenum stream, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glVertexStream2fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream2iATI(GLenum stream, GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glVertexStream2ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream2sATI(GLenum stream, GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glVertexStream2svATI(GLenum stream, const GLshort *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream3dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glVertexStream3dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream3fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glVertexStream3fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream3iATI(GLenum stream, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glVertexStream3ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream3sATI(GLenum stream, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glVertexStream3svATI(GLenum stream, const GLshort *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream4dATI(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glVertexStream4dvATI(GLenum stream, const GLdouble *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream4fATI(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glVertexStream4fvATI(GLenum stream, const GLfloat *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream4iATI(GLenum stream, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glVertexStream4ivATI(GLenum stream, const GLint *coords);
REGAL_DECL void REGAL_CALL plugin_glVertexStream4sATI(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL plugin_glVertexStream4svATI(GLenum stream, const GLshort *coords);
#endif

/**
 ** GL_DMP_shader_binary
 **/

#if (defined(GL_DMP_SHADER_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_DMP_SHADER_BINARY)) && !defined(REGAL_NO_ENUM_GL_DMP_SHADER_BINARY)
#define REGAL_NO_ENUM_GL_DMP_SHADER_BINARY
#endif

#if (defined(GL_DMP_SHADER_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_DMP_SHADER_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_DMP_SHADER_BINARY)
#define REGAL_NO_TYPEDEF_GL_DMP_SHADER_BINARY
#endif

#if (defined(GL_DMP_SHADER_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_DMP_SHADER_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_DMP_SHADER_BINARY)
#define REGAL_NO_NAMESPACE_GL_DMP_SHADER_BINARY
#endif

#if (defined(GL_DMP_SHADER_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_DMP_SHADER_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_DMP_SHADER_BINARY)
#define REGAL_NO_PLUGIN_GL_DMP_SHADER_BINARY
#endif

#if (defined(GL_DMP_SHADER_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_DMP_SHADER_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_DMP_SHADER_BINARY)
#define REGAL_NO_DECLARATION_GL_DMP_SHADER_BINARY
#endif

#ifndef GL_DMP_shader_binary
#define GL_DMP_shader_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_DMP_SHADER_BINARY
#define GL_SHADER_BINARY_DMP 0x9250 /* 37456 */
#endif

/**
 ** GL_EXT_422_pixels
 **/

#if (defined(GL_EXT_422_PIXELS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_422_PIXELS)) && !defined(REGAL_NO_ENUM_GL_EXT_422_PIXELS)
#define REGAL_NO_ENUM_GL_EXT_422_PIXELS
#endif

#if (defined(GL_EXT_422_PIXELS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_422_PIXELS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_422_PIXELS)
#define REGAL_NO_TYPEDEF_GL_EXT_422_PIXELS
#endif

#if (defined(GL_EXT_422_PIXELS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_422_PIXELS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_422_PIXELS)
#define REGAL_NO_NAMESPACE_GL_EXT_422_PIXELS
#endif

#if (defined(GL_EXT_422_PIXELS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_422_PIXELS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_422_PIXELS)
#define REGAL_NO_PLUGIN_GL_EXT_422_PIXELS
#endif

#if (defined(GL_EXT_422_PIXELS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_422_PIXELS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_422_PIXELS)
#define REGAL_NO_DECLARATION_GL_EXT_422_PIXELS
#endif

#ifndef GL_EXT_422_pixels
#define GL_EXT_422_pixels 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_422_PIXELS
#define GL_422_EXT             0x80cc     /* 32972 */
#define GL_422_REV_EXT         0x80cd     /* 32973 */
#define GL_422_AVERAGE_EXT     0x80ce     /* 32974 */
#define GL_422_REV_AVERAGE_EXT 0x80cf     /* 32975 */
#endif

/**
 ** GL_EXT_Cg_shader
 **/

#if (defined(GL_EXT_CG_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_CG_SHADER)) && !defined(REGAL_NO_ENUM_GL_EXT_CG_SHADER)
#define REGAL_NO_ENUM_GL_EXT_CG_SHADER
#endif

#if (defined(GL_EXT_CG_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_CG_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_CG_SHADER)
#define REGAL_NO_TYPEDEF_GL_EXT_CG_SHADER
#endif

#if (defined(GL_EXT_CG_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_CG_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_CG_SHADER)
#define REGAL_NO_NAMESPACE_GL_EXT_CG_SHADER
#endif

#if (defined(GL_EXT_CG_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_CG_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_EXT_CG_SHADER)
#define REGAL_NO_PLUGIN_GL_EXT_CG_SHADER
#endif

#if (defined(GL_EXT_CG_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_CG_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_EXT_CG_SHADER)
#define REGAL_NO_DECLARATION_GL_EXT_CG_SHADER
#endif

#ifndef GL_EXT_Cg_shader
#define GL_EXT_Cg_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_CG_SHADER
#define GL_CG_VERTEX_SHADER_EXT   0x890e     /* 35086 */
#define GL_CG_FRAGMENT_SHADER_EXT 0x890f     /* 35087 */
#endif

/**
 ** GL_EXT_abgr
 **/

#if (defined(GL_EXT_ABGR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_ABGR)) && !defined(REGAL_NO_ENUM_GL_EXT_ABGR)
#define REGAL_NO_ENUM_GL_EXT_ABGR
#endif

#if (defined(GL_EXT_ABGR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_ABGR)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_ABGR)
#define REGAL_NO_TYPEDEF_GL_EXT_ABGR
#endif

#if (defined(GL_EXT_ABGR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_ABGR)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_ABGR)
#define REGAL_NO_NAMESPACE_GL_EXT_ABGR
#endif

#if (defined(GL_EXT_ABGR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_ABGR)) && !defined(REGAL_NO_PLUGIN_GL_EXT_ABGR)
#define REGAL_NO_PLUGIN_GL_EXT_ABGR
#endif

#if (defined(GL_EXT_ABGR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_ABGR)) && !defined(REGAL_NO_DECLARATION_GL_EXT_ABGR)
#define REGAL_NO_DECLARATION_GL_EXT_ABGR
#endif

#ifndef GL_EXT_abgr
#define GL_EXT_abgr 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_ABGR
#define GL_ABGR_EXT 0x8000 /* 32768 */
#endif

/**
 ** GL_EXT_bgra
 **/

#if (defined(GL_EXT_BGRA) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_BGRA)) && !defined(REGAL_NO_ENUM_GL_EXT_BGRA)
#define REGAL_NO_ENUM_GL_EXT_BGRA
#endif

#if (defined(GL_EXT_BGRA) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_BGRA)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_BGRA)
#define REGAL_NO_TYPEDEF_GL_EXT_BGRA
#endif

#if (defined(GL_EXT_BGRA) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_BGRA)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_BGRA)
#define REGAL_NO_NAMESPACE_GL_EXT_BGRA
#endif

#if (defined(GL_EXT_BGRA) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_BGRA)) && !defined(REGAL_NO_PLUGIN_GL_EXT_BGRA)
#define REGAL_NO_PLUGIN_GL_EXT_BGRA
#endif

#if (defined(GL_EXT_BGRA) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_BGRA)) && !defined(REGAL_NO_DECLARATION_GL_EXT_BGRA)
#define REGAL_NO_DECLARATION_GL_EXT_BGRA
#endif

#ifndef GL_EXT_bgra
#define GL_EXT_bgra 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_BGRA
#define GL_BGR_EXT  0x80e0     /* 32992 */
#define GL_BGRA_EXT 0x80e1     /* 32993 */
#endif

/**
 ** GL_EXT_bindable_uniform
 **/

#if (defined(GL_EXT_BINDABLE_UNIFORM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_BINDABLE_UNIFORM)) && !defined(REGAL_NO_ENUM_GL_EXT_BINDABLE_UNIFORM)
#define REGAL_NO_ENUM_GL_EXT_BINDABLE_UNIFORM
#endif

#if (defined(GL_EXT_BINDABLE_UNIFORM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_BINDABLE_UNIFORM)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_BINDABLE_UNIFORM)
#define REGAL_NO_TYPEDEF_GL_EXT_BINDABLE_UNIFORM
#endif

#if (defined(GL_EXT_BINDABLE_UNIFORM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_BINDABLE_UNIFORM)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_BINDABLE_UNIFORM)
#define REGAL_NO_NAMESPACE_GL_EXT_BINDABLE_UNIFORM
#endif

#if (defined(GL_EXT_BINDABLE_UNIFORM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_BINDABLE_UNIFORM)) && !defined(REGAL_NO_PLUGIN_GL_EXT_BINDABLE_UNIFORM)
#define REGAL_NO_PLUGIN_GL_EXT_BINDABLE_UNIFORM
#endif

#if (defined(GL_EXT_BINDABLE_UNIFORM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_BINDABLE_UNIFORM)) && !defined(REGAL_NO_DECLARATION_GL_EXT_BINDABLE_UNIFORM)
#define REGAL_NO_DECLARATION_GL_EXT_BINDABLE_UNIFORM
#endif

#ifndef GL_EXT_bindable_uniform
#define GL_EXT_bindable_uniform 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_BINDABLE_UNIFORM
#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT   0x8de2     /* 36322 */
#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8de3     /* 36323 */
#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8de4     /* 36324 */
#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT      0x8ded     /* 36333 */
#define GL_UNIFORM_BUFFER_EXT                 0x8dee     /* 36334 */
#define GL_UNIFORM_BUFFER_BINDING_EXT         0x8def     /* 36335 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_BINDABLE_UNIFORM
typedef GLint (REGAL_CALL *PFNGLGETUNIFORMBUFFERSIZEEXTPROC)(GLuint program, GLint location);
typedef GLintptr (REGAL_CALL *PFNGLGETUNIFORMOFFSETEXTPROC)(GLuint program, GLint location);
typedef void (REGAL_CALL *PFNGLUNIFORMBUFFEREXTPROC)(GLuint program, GLint location, GLuint buffer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_BINDABLE_UNIFORM
#define glGetUniformBufferSizeEXT           rglGetUniformBufferSizeEXT
#define glGetUniformOffsetEXT               rglGetUniformOffsetEXT
#define glUniformBufferEXT                  rglUniformBufferEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_BINDABLE_UNIFORM
REGAL_DECL GLint REGAL_CALL glGetUniformBufferSizeEXT(GLuint program, GLint location);
REGAL_DECL GLintptr REGAL_CALL glGetUniformOffsetEXT(GLuint program, GLint location);
REGAL_DECL void REGAL_CALL glUniformBufferEXT(GLuint program, GLint location, GLuint buffer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_BINDABLE_UNIFORM
REGAL_DECL GLint REGAL_CALL plugin_glGetUniformBufferSizeEXT(GLuint program, GLint location);
REGAL_DECL GLintptr REGAL_CALL plugin_glGetUniformOffsetEXT(GLuint program, GLint location);
REGAL_DECL void REGAL_CALL plugin_glUniformBufferEXT(GLuint program, GLint location, GLuint buffer);
#endif

/**
 ** GL_EXT_blend_color
 **/

#if (defined(GL_EXT_BLEND_COLOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_BLEND_COLOR)) && !defined(REGAL_NO_ENUM_GL_EXT_BLEND_COLOR)
#define REGAL_NO_ENUM_GL_EXT_BLEND_COLOR
#endif

#if (defined(GL_EXT_BLEND_COLOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_BLEND_COLOR)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_BLEND_COLOR)
#define REGAL_NO_TYPEDEF_GL_EXT_BLEND_COLOR
#endif

#if (defined(GL_EXT_BLEND_COLOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_BLEND_COLOR)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_BLEND_COLOR)
#define REGAL_NO_NAMESPACE_GL_EXT_BLEND_COLOR
#endif

#if (defined(GL_EXT_BLEND_COLOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_BLEND_COLOR)) && !defined(REGAL_NO_PLUGIN_GL_EXT_BLEND_COLOR)
#define REGAL_NO_PLUGIN_GL_EXT_BLEND_COLOR
#endif

#if (defined(GL_EXT_BLEND_COLOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_BLEND_COLOR)) && !defined(REGAL_NO_DECLARATION_GL_EXT_BLEND_COLOR)
#define REGAL_NO_DECLARATION_GL_EXT_BLEND_COLOR
#endif

#ifndef GL_EXT_blend_color
#define GL_EXT_blend_color 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_BLEND_COLOR
#define GL_CONSTANT_COLOR_EXT           0x8001     /* 32769 */
#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002     /* 32770 */
#define GL_CONSTANT_ALPHA_EXT           0x8003     /* 32771 */
#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004     /* 32772 */
#define GL_BLEND_COLOR_EXT              0x8005     /* 32773 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_BLEND_COLOR
typedef void (REGAL_CALL *PFNGLBLENDCOLOREXTPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_BLEND_COLOR
#define glBlendColorEXT                     rglBlendColorEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_BLEND_COLOR
REGAL_DECL void REGAL_CALL glBlendColorEXT(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_BLEND_COLOR
REGAL_DECL void REGAL_CALL plugin_glBlendColorEXT(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
#endif

/**
 ** GL_EXT_blend_equation_separate
 **/

#if (defined(GL_EXT_BLEND_EQUATION_SEPARATE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_ENUM_GL_EXT_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_ENUM_GL_EXT_BLEND_EQUATION_SEPARATE
#endif

#if (defined(GL_EXT_BLEND_EQUATION_SEPARATE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_TYPEDEF_GL_EXT_BLEND_EQUATION_SEPARATE
#endif

#if (defined(GL_EXT_BLEND_EQUATION_SEPARATE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_NAMESPACE_GL_EXT_BLEND_EQUATION_SEPARATE
#endif

#if (defined(GL_EXT_BLEND_EQUATION_SEPARATE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_PLUGIN_GL_EXT_BLEND_EQUATION_SEPARATE
#endif

#if (defined(GL_EXT_BLEND_EQUATION_SEPARATE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_DECLARATION_GL_EXT_BLEND_EQUATION_SEPARATE
#endif

#ifndef GL_EXT_blend_equation_separate
#define GL_EXT_blend_equation_separate 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_BLEND_EQUATION_SEPARATE
#define GL_BLEND_EQUATION_RGB_EXT   0x8009     /* 32777 */
#define GL_BLEND_EQUATION_ALPHA_EXT 0x883d     /* 34877 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_BLEND_EQUATION_SEPARATE
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_BLEND_EQUATION_SEPARATE
#define glBlendEquationSeparateEXT          rglBlendEquationSeparateEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_BLEND_EQUATION_SEPARATE
REGAL_DECL void REGAL_CALL glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_BLEND_EQUATION_SEPARATE
REGAL_DECL void REGAL_CALL plugin_glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha);
#endif

/**
 ** GL_EXT_blend_func_separate
 **/

#if (defined(GL_EXT_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_ENUM_GL_EXT_BLEND_FUNC_SEPARATE)
#define REGAL_NO_ENUM_GL_EXT_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_EXT_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_BLEND_FUNC_SEPARATE)
#define REGAL_NO_TYPEDEF_GL_EXT_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_EXT_BLEND_FUNC_SEPARATE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_BLEND_FUNC_SEPARATE)
#define REGAL_NO_NAMESPACE_GL_EXT_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_EXT_BLEND_FUNC_SEPARATE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_BLEND_FUNC_SEPARATE)
#define REGAL_NO_PLUGIN_GL_EXT_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_EXT_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_BLEND_FUNC_SEPARATE)
#define REGAL_NO_DECLARATION_GL_EXT_BLEND_FUNC_SEPARATE
#endif

#ifndef GL_EXT_blend_func_separate
#define GL_EXT_blend_func_separate 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_BLEND_FUNC_SEPARATE
#define GL_BLEND_DST_RGB_EXT   0x80c8     /* 32968 */
#define GL_BLEND_SRC_RGB_EXT   0x80c9     /* 32969 */
#define GL_BLEND_DST_ALPHA_EXT 0x80ca     /* 32970 */
#define GL_BLEND_SRC_ALPHA_EXT 0x80cb     /* 32971 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_BLEND_FUNC_SEPARATE
typedef void (REGAL_CALL *PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_BLEND_FUNC_SEPARATE
#define glBlendFuncSeparateEXT              rglBlendFuncSeparateEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_BLEND_FUNC_SEPARATE
REGAL_DECL void REGAL_CALL glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_BLEND_FUNC_SEPARATE
REGAL_DECL void REGAL_CALL plugin_glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

/**
 ** GL_EXT_blend_minmax
 **/

#if (defined(GL_EXT_BLEND_MINMAX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_BLEND_MINMAX)) && !defined(REGAL_NO_ENUM_GL_EXT_BLEND_MINMAX)
#define REGAL_NO_ENUM_GL_EXT_BLEND_MINMAX
#endif

#if (defined(GL_EXT_BLEND_MINMAX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_BLEND_MINMAX)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_BLEND_MINMAX)
#define REGAL_NO_TYPEDEF_GL_EXT_BLEND_MINMAX
#endif

#if (defined(GL_EXT_BLEND_MINMAX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_BLEND_MINMAX)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_BLEND_MINMAX)
#define REGAL_NO_NAMESPACE_GL_EXT_BLEND_MINMAX
#endif

#if (defined(GL_EXT_BLEND_MINMAX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_BLEND_MINMAX)) && !defined(REGAL_NO_PLUGIN_GL_EXT_BLEND_MINMAX)
#define REGAL_NO_PLUGIN_GL_EXT_BLEND_MINMAX
#endif

#if (defined(GL_EXT_BLEND_MINMAX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_BLEND_MINMAX)) && !defined(REGAL_NO_DECLARATION_GL_EXT_BLEND_MINMAX)
#define REGAL_NO_DECLARATION_GL_EXT_BLEND_MINMAX
#endif

#ifndef GL_EXT_blend_minmax
#define GL_EXT_blend_minmax 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_BLEND_MINMAX
#define GL_FUNC_ADD_EXT       0x8006     /* 32774 */
#define GL_MIN_EXT            0x8007     /* 32775 */
#define GL_MAX_EXT            0x8008     /* 32776 */
#define GL_BLEND_EQUATION_EXT 0x8009     /* 32777 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_BLEND_MINMAX
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONEXTPROC)(GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_BLEND_MINMAX
#define glBlendEquationEXT                  rglBlendEquationEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_BLEND_MINMAX
REGAL_DECL void REGAL_CALL glBlendEquationEXT(GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_BLEND_MINMAX
REGAL_DECL void REGAL_CALL plugin_glBlendEquationEXT(GLenum mode);
#endif

/**
 ** GL_EXT_blend_subtract
 **/

#if (defined(GL_EXT_BLEND_SUBTRACT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_BLEND_SUBTRACT)) && !defined(REGAL_NO_ENUM_GL_EXT_BLEND_SUBTRACT)
#define REGAL_NO_ENUM_GL_EXT_BLEND_SUBTRACT
#endif

#if (defined(GL_EXT_BLEND_SUBTRACT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_BLEND_SUBTRACT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_BLEND_SUBTRACT)
#define REGAL_NO_TYPEDEF_GL_EXT_BLEND_SUBTRACT
#endif

#if (defined(GL_EXT_BLEND_SUBTRACT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_BLEND_SUBTRACT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_BLEND_SUBTRACT)
#define REGAL_NO_NAMESPACE_GL_EXT_BLEND_SUBTRACT
#endif

#if (defined(GL_EXT_BLEND_SUBTRACT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_BLEND_SUBTRACT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_BLEND_SUBTRACT)
#define REGAL_NO_PLUGIN_GL_EXT_BLEND_SUBTRACT
#endif

#if (defined(GL_EXT_BLEND_SUBTRACT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_BLEND_SUBTRACT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_BLEND_SUBTRACT)
#define REGAL_NO_DECLARATION_GL_EXT_BLEND_SUBTRACT
#endif

#ifndef GL_EXT_blend_subtract
#define GL_EXT_blend_subtract 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_BLEND_SUBTRACT
#define GL_FUNC_SUBTRACT_EXT         0x800a     /* 32778 */
#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800b     /* 32779 */
#endif

/**
 ** GL_EXT_clip_volume_hint
 **/

#if (defined(GL_EXT_CLIP_VOLUME_HINT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_CLIP_VOLUME_HINT)) && !defined(REGAL_NO_ENUM_GL_EXT_CLIP_VOLUME_HINT)
#define REGAL_NO_ENUM_GL_EXT_CLIP_VOLUME_HINT
#endif

#if (defined(GL_EXT_CLIP_VOLUME_HINT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_CLIP_VOLUME_HINT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_CLIP_VOLUME_HINT)
#define REGAL_NO_TYPEDEF_GL_EXT_CLIP_VOLUME_HINT
#endif

#if (defined(GL_EXT_CLIP_VOLUME_HINT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_CLIP_VOLUME_HINT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_CLIP_VOLUME_HINT)
#define REGAL_NO_NAMESPACE_GL_EXT_CLIP_VOLUME_HINT
#endif

#if (defined(GL_EXT_CLIP_VOLUME_HINT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_CLIP_VOLUME_HINT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_CLIP_VOLUME_HINT)
#define REGAL_NO_PLUGIN_GL_EXT_CLIP_VOLUME_HINT
#endif

#if (defined(GL_EXT_CLIP_VOLUME_HINT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_CLIP_VOLUME_HINT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_CLIP_VOLUME_HINT)
#define REGAL_NO_DECLARATION_GL_EXT_CLIP_VOLUME_HINT
#endif

#ifndef GL_EXT_clip_volume_hint
#define GL_EXT_clip_volume_hint 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_CLIP_VOLUME_HINT
#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80f0 /* 33008 */
#endif

/**
 ** GL_EXT_cmyka
 **/

#if (defined(GL_EXT_CMYKA) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_CMYKA)) && !defined(REGAL_NO_ENUM_GL_EXT_CMYKA)
#define REGAL_NO_ENUM_GL_EXT_CMYKA
#endif

#if (defined(GL_EXT_CMYKA) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_CMYKA)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_CMYKA)
#define REGAL_NO_TYPEDEF_GL_EXT_CMYKA
#endif

#if (defined(GL_EXT_CMYKA) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_CMYKA)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_CMYKA)
#define REGAL_NO_NAMESPACE_GL_EXT_CMYKA
#endif

#if (defined(GL_EXT_CMYKA) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_CMYKA)) && !defined(REGAL_NO_PLUGIN_GL_EXT_CMYKA)
#define REGAL_NO_PLUGIN_GL_EXT_CMYKA
#endif

#if (defined(GL_EXT_CMYKA) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_CMYKA)) && !defined(REGAL_NO_DECLARATION_GL_EXT_CMYKA)
#define REGAL_NO_DECLARATION_GL_EXT_CMYKA
#endif

#ifndef GL_EXT_cmyka
#define GL_EXT_cmyka 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_CMYKA
#define GL_CMYK_EXT             0x800c     /* 32780 */
#define GL_CMYKA_EXT            0x800d     /* 32781 */
#define GL_PACK_CMYK_HINT_EXT   0x800e     /* 32782 */
#define GL_UNPACK_CMYK_HINT_EXT 0x800f     /* 32783 */
#endif

/**
 ** GL_EXT_color_buffer_half_float
 **/

#if (defined(GL_EXT_COLOR_BUFFER_HALF_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_COLOR_BUFFER_HALF_FLOAT)) && !defined(REGAL_NO_ENUM_GL_EXT_COLOR_BUFFER_HALF_FLOAT)
#define REGAL_NO_ENUM_GL_EXT_COLOR_BUFFER_HALF_FLOAT
#endif

#if (defined(GL_EXT_COLOR_BUFFER_HALF_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_COLOR_BUFFER_HALF_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_COLOR_BUFFER_HALF_FLOAT)
#define REGAL_NO_TYPEDEF_GL_EXT_COLOR_BUFFER_HALF_FLOAT
#endif

#if (defined(GL_EXT_COLOR_BUFFER_HALF_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_COLOR_BUFFER_HALF_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_COLOR_BUFFER_HALF_FLOAT)
#define REGAL_NO_NAMESPACE_GL_EXT_COLOR_BUFFER_HALF_FLOAT
#endif

#if (defined(GL_EXT_COLOR_BUFFER_HALF_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_COLOR_BUFFER_HALF_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_COLOR_BUFFER_HALF_FLOAT)
#define REGAL_NO_PLUGIN_GL_EXT_COLOR_BUFFER_HALF_FLOAT
#endif

#if (defined(GL_EXT_COLOR_BUFFER_HALF_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_COLOR_BUFFER_HALF_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_COLOR_BUFFER_HALF_FLOAT)
#define REGAL_NO_DECLARATION_GL_EXT_COLOR_BUFFER_HALF_FLOAT
#endif

#ifndef GL_EXT_color_buffer_half_float
#define GL_EXT_color_buffer_half_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_COLOR_BUFFER_HALF_FLOAT
#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT 0x8211     /* 33297 */
#define GL_UNSIGNED_NORMALIZED_EXT                   0x8c17     /* 35863 */
#endif

/**
 ** GL_EXT_color_subtable
 **/

#if (defined(GL_EXT_COLOR_SUBTABLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_COLOR_SUBTABLE)) && !defined(REGAL_NO_ENUM_GL_EXT_COLOR_SUBTABLE)
#define REGAL_NO_ENUM_GL_EXT_COLOR_SUBTABLE
#endif

#if (defined(GL_EXT_COLOR_SUBTABLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_COLOR_SUBTABLE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_COLOR_SUBTABLE)
#define REGAL_NO_TYPEDEF_GL_EXT_COLOR_SUBTABLE
#endif

#if (defined(GL_EXT_COLOR_SUBTABLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_COLOR_SUBTABLE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_COLOR_SUBTABLE)
#define REGAL_NO_NAMESPACE_GL_EXT_COLOR_SUBTABLE
#endif

#if (defined(GL_EXT_COLOR_SUBTABLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_COLOR_SUBTABLE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_COLOR_SUBTABLE)
#define REGAL_NO_PLUGIN_GL_EXT_COLOR_SUBTABLE
#endif

#if (defined(GL_EXT_COLOR_SUBTABLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_COLOR_SUBTABLE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_COLOR_SUBTABLE)
#define REGAL_NO_DECLARATION_GL_EXT_COLOR_SUBTABLE
#endif

#ifndef GL_EXT_color_subtable
#define GL_EXT_color_subtable 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_COLOR_SUBTABLE
typedef void (REGAL_CALL *PFNGLCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *table);
typedef void (REGAL_CALL *PFNGLCOPYCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_COLOR_SUBTABLE
#define glColorSubTableEXT                  rglColorSubTableEXT
#define glCopyColorSubTableEXT              rglCopyColorSubTableEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_COLOR_SUBTABLE
REGAL_DECL void REGAL_CALL glColorSubTableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *table);
REGAL_DECL void REGAL_CALL glCopyColorSubTableEXT(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_COLOR_SUBTABLE
REGAL_DECL void REGAL_CALL plugin_glColorSubTableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *table);
REGAL_DECL void REGAL_CALL plugin_glCopyColorSubTableEXT(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
#endif

/**
 ** GL_EXT_compiled_vertex_array
 **/

#if (defined(GL_EXT_COMPILED_VERTEX_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_COMPILED_VERTEX_ARRAY)) && !defined(REGAL_NO_ENUM_GL_EXT_COMPILED_VERTEX_ARRAY)
#define REGAL_NO_ENUM_GL_EXT_COMPILED_VERTEX_ARRAY
#endif

#if (defined(GL_EXT_COMPILED_VERTEX_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_COMPILED_VERTEX_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_COMPILED_VERTEX_ARRAY)
#define REGAL_NO_TYPEDEF_GL_EXT_COMPILED_VERTEX_ARRAY
#endif

#if (defined(GL_EXT_COMPILED_VERTEX_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_COMPILED_VERTEX_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_COMPILED_VERTEX_ARRAY)
#define REGAL_NO_NAMESPACE_GL_EXT_COMPILED_VERTEX_ARRAY
#endif

#if (defined(GL_EXT_COMPILED_VERTEX_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_COMPILED_VERTEX_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_EXT_COMPILED_VERTEX_ARRAY)
#define REGAL_NO_PLUGIN_GL_EXT_COMPILED_VERTEX_ARRAY
#endif

#if (defined(GL_EXT_COMPILED_VERTEX_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_COMPILED_VERTEX_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_EXT_COMPILED_VERTEX_ARRAY)
#define REGAL_NO_DECLARATION_GL_EXT_COMPILED_VERTEX_ARRAY
#endif

#ifndef GL_EXT_compiled_vertex_array
#define GL_EXT_compiled_vertex_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_COMPILED_VERTEX_ARRAY
#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81a8     /* 33192 */
#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81a9     /* 33193 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_COMPILED_VERTEX_ARRAY
typedef void (REGAL_CALL *PFNGLLOCKARRAYSEXTPROC)(GLint first, GLsizei count);
typedef void (REGAL_CALL *PFNGLUNLOCKARRAYSEXTPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_COMPILED_VERTEX_ARRAY
#define glLockArraysEXT                     rglLockArraysEXT
#define glUnlockArraysEXT                   rglUnlockArraysEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_COMPILED_VERTEX_ARRAY
REGAL_DECL void REGAL_CALL glLockArraysEXT(GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL glUnlockArraysEXT(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_COMPILED_VERTEX_ARRAY
REGAL_DECL void REGAL_CALL plugin_glLockArraysEXT(GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL plugin_glUnlockArraysEXT(void);
#endif

/**
 ** GL_EXT_convolution
 **/

#if (defined(GL_EXT_CONVOLUTION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_CONVOLUTION)) && !defined(REGAL_NO_ENUM_GL_EXT_CONVOLUTION)
#define REGAL_NO_ENUM_GL_EXT_CONVOLUTION
#endif

#if (defined(GL_EXT_CONVOLUTION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_CONVOLUTION)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_CONVOLUTION)
#define REGAL_NO_TYPEDEF_GL_EXT_CONVOLUTION
#endif

#if (defined(GL_EXT_CONVOLUTION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_CONVOLUTION)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_CONVOLUTION)
#define REGAL_NO_NAMESPACE_GL_EXT_CONVOLUTION
#endif

#if (defined(GL_EXT_CONVOLUTION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_CONVOLUTION)) && !defined(REGAL_NO_PLUGIN_GL_EXT_CONVOLUTION)
#define REGAL_NO_PLUGIN_GL_EXT_CONVOLUTION
#endif

#if (defined(GL_EXT_CONVOLUTION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_CONVOLUTION)) && !defined(REGAL_NO_DECLARATION_GL_EXT_CONVOLUTION)
#define REGAL_NO_DECLARATION_GL_EXT_CONVOLUTION
#endif

#ifndef GL_EXT_convolution
#define GL_EXT_convolution 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_CONVOLUTION
#define GL_CONVOLUTION_1D_EXT               0x8010     /* 32784 */
#define GL_CONVOLUTION_2D_EXT               0x8011     /* 32785 */
#define GL_SEPARABLE_2D_EXT                 0x8012     /* 32786 */
#define GL_CONVOLUTION_BORDER_MODE_EXT      0x8013     /* 32787 */
#define GL_CONVOLUTION_FILTER_SCALE_EXT     0x8014     /* 32788 */
#define GL_CONVOLUTION_FILTER_BIAS_EXT      0x8015     /* 32789 */
#define GL_REDUCE_EXT                       0x8016     /* 32790 */
#define GL_CONVOLUTION_FORMAT_EXT           0x8017     /* 32791 */
#define GL_CONVOLUTION_WIDTH_EXT            0x8018     /* 32792 */
#define GL_CONVOLUTION_HEIGHT_EXT           0x8019     /* 32793 */
#define GL_MAX_CONVOLUTION_WIDTH_EXT        0x801a     /* 32794 */
#define GL_MAX_CONVOLUTION_HEIGHT_EXT       0x801b     /* 32795 */
#define GL_POST_CONVOLUTION_RED_SCALE_EXT   0x801c     /* 32796 */
#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801d     /* 32797 */
#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT  0x801e     /* 32798 */
#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801f     /* 32799 */
#define GL_POST_CONVOLUTION_RED_BIAS_EXT    0x8020     /* 32800 */
#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT  0x8021     /* 32801 */
#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT   0x8022     /* 32802 */
#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT  0x8023     /* 32803 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_CONVOLUTION
typedef void (REGAL_CALL *PFNGLCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONPARAMETERFEXTPROC)(GLenum target, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONPARAMETERIEXTPROC)(GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLGETCONVOLUTIONFILTEREXTPROC)(GLenum target, GLenum format, GLenum type, GLvoid *image);
typedef void (REGAL_CALL *PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETSEPARABLEFILTEREXTPROC)(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
typedef void (REGAL_CALL *PFNGLSEPARABLEFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_CONVOLUTION
#define glConvolutionFilter1DEXT            rglConvolutionFilter1DEXT
#define glConvolutionFilter2DEXT            rglConvolutionFilter2DEXT
#define glConvolutionParameterfEXT          rglConvolutionParameterfEXT
#define glConvolutionParameterfvEXT         rglConvolutionParameterfvEXT
#define glConvolutionParameteriEXT          rglConvolutionParameteriEXT
#define glConvolutionParameterivEXT         rglConvolutionParameterivEXT
#define glCopyConvolutionFilter1DEXT        rglCopyConvolutionFilter1DEXT
#define glCopyConvolutionFilter2DEXT        rglCopyConvolutionFilter2DEXT
#define glGetConvolutionFilterEXT           rglGetConvolutionFilterEXT
#define glGetConvolutionParameterfvEXT      rglGetConvolutionParameterfvEXT
#define glGetConvolutionParameterivEXT      rglGetConvolutionParameterivEXT
#define glGetSeparableFilterEXT             rglGetSeparableFilterEXT
#define glSeparableFilter2DEXT              rglSeparableFilter2DEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_CONVOLUTION
REGAL_DECL void REGAL_CALL glConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
REGAL_DECL void REGAL_CALL glConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
REGAL_DECL void REGAL_CALL glConvolutionParameterfEXT(GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glConvolutionParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glConvolutionParameteriEXT(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glConvolutionParameterivEXT(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glCopyConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glCopyConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glGetConvolutionFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *image);
REGAL_DECL void REGAL_CALL glGetConvolutionParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetConvolutionParameterivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetSeparableFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
REGAL_DECL void REGAL_CALL glSeparableFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_CONVOLUTION
REGAL_DECL void REGAL_CALL plugin_glConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
REGAL_DECL void REGAL_CALL plugin_glConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
REGAL_DECL void REGAL_CALL plugin_glConvolutionParameterfEXT(GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glConvolutionParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glConvolutionParameteriEXT(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glConvolutionParameterivEXT(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glCopyConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glCopyConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glGetConvolutionFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *image);
REGAL_DECL void REGAL_CALL plugin_glGetConvolutionParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetConvolutionParameterivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetSeparableFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
REGAL_DECL void REGAL_CALL plugin_glSeparableFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
#endif

/**
 ** GL_EXT_coordinate_frame
 **/

#if (defined(GL_EXT_COORDINATE_FRAME) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_COORDINATE_FRAME)) && !defined(REGAL_NO_ENUM_GL_EXT_COORDINATE_FRAME)
#define REGAL_NO_ENUM_GL_EXT_COORDINATE_FRAME
#endif

#if (defined(GL_EXT_COORDINATE_FRAME) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_COORDINATE_FRAME)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_COORDINATE_FRAME)
#define REGAL_NO_TYPEDEF_GL_EXT_COORDINATE_FRAME
#endif

#if (defined(GL_EXT_COORDINATE_FRAME) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_COORDINATE_FRAME)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_COORDINATE_FRAME)
#define REGAL_NO_NAMESPACE_GL_EXT_COORDINATE_FRAME
#endif

#if (defined(GL_EXT_COORDINATE_FRAME) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_COORDINATE_FRAME)) && !defined(REGAL_NO_PLUGIN_GL_EXT_COORDINATE_FRAME)
#define REGAL_NO_PLUGIN_GL_EXT_COORDINATE_FRAME
#endif

#if (defined(GL_EXT_COORDINATE_FRAME) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_COORDINATE_FRAME)) && !defined(REGAL_NO_DECLARATION_GL_EXT_COORDINATE_FRAME)
#define REGAL_NO_DECLARATION_GL_EXT_COORDINATE_FRAME
#endif

#ifndef GL_EXT_coordinate_frame
#define GL_EXT_coordinate_frame 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_COORDINATE_FRAME
#define GL_TANGENT_ARRAY_EXT          0x8439     /* 33849 */
#define GL_BINORMAL_ARRAY_EXT         0x843a     /* 33850 */
#define GL_CURRENT_TANGENT_EXT        0x843b     /* 33851 */
#define GL_CURRENT_BINORMAL_EXT       0x843c     /* 33852 */
#define GL_TANGENT_ARRAY_TYPE_EXT     0x843e     /* 33854 */
#define GL_TANGENT_ARRAY_STRIDE_EXT   0x843f     /* 33855 */
#define GL_BINORMAL_ARRAY_TYPE_EXT    0x8440     /* 33856 */
#define GL_BINORMAL_ARRAY_STRIDE_EXT  0x8441     /* 33857 */
#define GL_TANGENT_ARRAY_POINTER_EXT  0x8442     /* 33858 */
#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443     /* 33859 */
#define GL_MAP1_TANGENT_EXT           0x8444     /* 33860 */
#define GL_MAP2_TANGENT_EXT           0x8445     /* 33861 */
#define GL_MAP1_BINORMAL_EXT          0x8446     /* 33862 */
#define GL_MAP2_BINORMAL_EXT          0x8447     /* 33863 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_COORDINATE_FRAME
typedef void (REGAL_CALL *PFNGLBINORMAL3BEXTPROC)(GLbyte bx, GLbyte by, GLbyte bz);
typedef void (REGAL_CALL *PFNGLBINORMAL3BVEXTPROC)(const GLbyte *v);
typedef void (REGAL_CALL *PFNGLBINORMAL3DEXTPROC)(GLdouble bx, GLdouble by, GLdouble bz);
typedef void (REGAL_CALL *PFNGLBINORMAL3DVEXTPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLBINORMAL3FEXTPROC)(GLfloat bx, GLfloat by, GLfloat bz);
typedef void (REGAL_CALL *PFNGLBINORMAL3FVEXTPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLBINORMAL3IEXTPROC)(GLint bx, GLint by, GLint bz);
typedef void (REGAL_CALL *PFNGLBINORMAL3IVEXTPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLBINORMAL3SEXTPROC)(GLshort bx, GLshort by, GLshort bz);
typedef void (REGAL_CALL *PFNGLBINORMAL3SVEXTPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLBINORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLTANGENT3BEXTPROC)(GLbyte tx, GLbyte ty, GLbyte tz);
typedef void (REGAL_CALL *PFNGLTANGENT3BVEXTPROC)(const GLbyte *v);
typedef void (REGAL_CALL *PFNGLTANGENT3DEXTPROC)(GLdouble tx, GLdouble ty, GLdouble tz);
typedef void (REGAL_CALL *PFNGLTANGENT3DVEXTPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLTANGENT3FEXTPROC)(GLfloat tx, GLfloat ty, GLfloat tz);
typedef void (REGAL_CALL *PFNGLTANGENT3FVEXTPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTANGENT3IEXTPROC)(GLint tx, GLint ty, GLint tz);
typedef void (REGAL_CALL *PFNGLTANGENT3IVEXTPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLTANGENT3SEXTPROC)(GLshort tx, GLshort ty, GLshort tz);
typedef void (REGAL_CALL *PFNGLTANGENT3SVEXTPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLTANGENTPOINTEREXTPROC)(GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_COORDINATE_FRAME
#define glBinormal3bEXT                     rglBinormal3bEXT
#define glBinormal3bvEXT                    rglBinormal3bvEXT
#define glBinormal3dEXT                     rglBinormal3dEXT
#define glBinormal3dvEXT                    rglBinormal3dvEXT
#define glBinormal3fEXT                     rglBinormal3fEXT
#define glBinormal3fvEXT                    rglBinormal3fvEXT
#define glBinormal3iEXT                     rglBinormal3iEXT
#define glBinormal3ivEXT                    rglBinormal3ivEXT
#define glBinormal3sEXT                     rglBinormal3sEXT
#define glBinormal3svEXT                    rglBinormal3svEXT
#define glBinormalPointerEXT                rglBinormalPointerEXT
#define glTangent3bEXT                      rglTangent3bEXT
#define glTangent3bvEXT                     rglTangent3bvEXT
#define glTangent3dEXT                      rglTangent3dEXT
#define glTangent3dvEXT                     rglTangent3dvEXT
#define glTangent3fEXT                      rglTangent3fEXT
#define glTangent3fvEXT                     rglTangent3fvEXT
#define glTangent3iEXT                      rglTangent3iEXT
#define glTangent3ivEXT                     rglTangent3ivEXT
#define glTangent3sEXT                      rglTangent3sEXT
#define glTangent3svEXT                     rglTangent3svEXT
#define glTangentPointerEXT                 rglTangentPointerEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_COORDINATE_FRAME
REGAL_DECL void REGAL_CALL glBinormal3bEXT(GLbyte bx, GLbyte by, GLbyte bz);
REGAL_DECL void REGAL_CALL glBinormal3bvEXT(const GLbyte *v);
REGAL_DECL void REGAL_CALL glBinormal3dEXT(GLdouble bx, GLdouble by, GLdouble bz);
REGAL_DECL void REGAL_CALL glBinormal3dvEXT(const GLdouble *v);
REGAL_DECL void REGAL_CALL glBinormal3fEXT(GLfloat bx, GLfloat by, GLfloat bz);
REGAL_DECL void REGAL_CALL glBinormal3fvEXT(const GLfloat *v);
REGAL_DECL void REGAL_CALL glBinormal3iEXT(GLint bx, GLint by, GLint bz);
REGAL_DECL void REGAL_CALL glBinormal3ivEXT(const GLint *v);
REGAL_DECL void REGAL_CALL glBinormal3sEXT(GLshort bx, GLshort by, GLshort bz);
REGAL_DECL void REGAL_CALL glBinormal3svEXT(const GLshort *v);
REGAL_DECL void REGAL_CALL glBinormalPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glTangent3bEXT(GLbyte tx, GLbyte ty, GLbyte tz);
REGAL_DECL void REGAL_CALL glTangent3bvEXT(const GLbyte *v);
REGAL_DECL void REGAL_CALL glTangent3dEXT(GLdouble tx, GLdouble ty, GLdouble tz);
REGAL_DECL void REGAL_CALL glTangent3dvEXT(const GLdouble *v);
REGAL_DECL void REGAL_CALL glTangent3fEXT(GLfloat tx, GLfloat ty, GLfloat tz);
REGAL_DECL void REGAL_CALL glTangent3fvEXT(const GLfloat *v);
REGAL_DECL void REGAL_CALL glTangent3iEXT(GLint tx, GLint ty, GLint tz);
REGAL_DECL void REGAL_CALL glTangent3ivEXT(const GLint *v);
REGAL_DECL void REGAL_CALL glTangent3sEXT(GLshort tx, GLshort ty, GLshort tz);
REGAL_DECL void REGAL_CALL glTangent3svEXT(const GLshort *v);
REGAL_DECL void REGAL_CALL glTangentPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_COORDINATE_FRAME
REGAL_DECL void REGAL_CALL plugin_glBinormal3bEXT(GLbyte bx, GLbyte by, GLbyte bz);
REGAL_DECL void REGAL_CALL plugin_glBinormal3bvEXT(const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glBinormal3dEXT(GLdouble bx, GLdouble by, GLdouble bz);
REGAL_DECL void REGAL_CALL plugin_glBinormal3dvEXT(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glBinormal3fEXT(GLfloat bx, GLfloat by, GLfloat bz);
REGAL_DECL void REGAL_CALL plugin_glBinormal3fvEXT(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glBinormal3iEXT(GLint bx, GLint by, GLint bz);
REGAL_DECL void REGAL_CALL plugin_glBinormal3ivEXT(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glBinormal3sEXT(GLshort bx, GLshort by, GLshort bz);
REGAL_DECL void REGAL_CALL plugin_glBinormal3svEXT(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glBinormalPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glTangent3bEXT(GLbyte tx, GLbyte ty, GLbyte tz);
REGAL_DECL void REGAL_CALL plugin_glTangent3bvEXT(const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glTangent3dEXT(GLdouble tx, GLdouble ty, GLdouble tz);
REGAL_DECL void REGAL_CALL plugin_glTangent3dvEXT(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glTangent3fEXT(GLfloat tx, GLfloat ty, GLfloat tz);
REGAL_DECL void REGAL_CALL plugin_glTangent3fvEXT(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTangent3iEXT(GLint tx, GLint ty, GLint tz);
REGAL_DECL void REGAL_CALL plugin_glTangent3ivEXT(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glTangent3sEXT(GLshort tx, GLshort ty, GLshort tz);
REGAL_DECL void REGAL_CALL plugin_glTangent3svEXT(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glTangentPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_EXT_copy_texture
 **/

#if (defined(GL_EXT_COPY_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_COPY_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_EXT_COPY_TEXTURE)
#define REGAL_NO_ENUM_GL_EXT_COPY_TEXTURE
#endif

#if (defined(GL_EXT_COPY_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_COPY_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_COPY_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_EXT_COPY_TEXTURE
#endif

#if (defined(GL_EXT_COPY_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_COPY_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_COPY_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_EXT_COPY_TEXTURE
#endif

#if (defined(GL_EXT_COPY_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_COPY_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_COPY_TEXTURE)
#define REGAL_NO_PLUGIN_GL_EXT_COPY_TEXTURE
#endif

#if (defined(GL_EXT_COPY_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_COPY_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_COPY_TEXTURE)
#define REGAL_NO_DECLARATION_GL_EXT_COPY_TEXTURE
#endif

#ifndef GL_EXT_copy_texture
#define GL_EXT_copy_texture 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_COPY_TEXTURE
typedef void (REGAL_CALL *PFNGLCOPYTEXIMAGE1DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
typedef void (REGAL_CALL *PFNGLCOPYTEXIMAGE2DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
typedef void (REGAL_CALL *PFNGLCOPYTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLCOPYTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLCOPYTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_COPY_TEXTURE
#define glCopyTexImage1DEXT                 rglCopyTexImage1DEXT
#define glCopyTexImage2DEXT                 rglCopyTexImage2DEXT
#define glCopyTexSubImage1DEXT              rglCopyTexSubImage1DEXT
#define glCopyTexSubImage2DEXT              rglCopyTexSubImage2DEXT
#define glCopyTexSubImage3DEXT              rglCopyTexSubImage3DEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_COPY_TEXTURE
REGAL_DECL void REGAL_CALL glCopyTexImage1DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
REGAL_DECL void REGAL_CALL glCopyTexImage2DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
REGAL_DECL void REGAL_CALL glCopyTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glCopyTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glCopyTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_COPY_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glCopyTexImage1DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
REGAL_DECL void REGAL_CALL plugin_glCopyTexImage2DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
REGAL_DECL void REGAL_CALL plugin_glCopyTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glCopyTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glCopyTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
#endif

/**
 ** GL_EXT_cull_vertex
 **/

#if (defined(GL_EXT_CULL_VERTEX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_CULL_VERTEX)) && !defined(REGAL_NO_ENUM_GL_EXT_CULL_VERTEX)
#define REGAL_NO_ENUM_GL_EXT_CULL_VERTEX
#endif

#if (defined(GL_EXT_CULL_VERTEX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_CULL_VERTEX)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_CULL_VERTEX)
#define REGAL_NO_TYPEDEF_GL_EXT_CULL_VERTEX
#endif

#if (defined(GL_EXT_CULL_VERTEX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_CULL_VERTEX)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_CULL_VERTEX)
#define REGAL_NO_NAMESPACE_GL_EXT_CULL_VERTEX
#endif

#if (defined(GL_EXT_CULL_VERTEX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_CULL_VERTEX)) && !defined(REGAL_NO_PLUGIN_GL_EXT_CULL_VERTEX)
#define REGAL_NO_PLUGIN_GL_EXT_CULL_VERTEX
#endif

#if (defined(GL_EXT_CULL_VERTEX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_CULL_VERTEX)) && !defined(REGAL_NO_DECLARATION_GL_EXT_CULL_VERTEX)
#define REGAL_NO_DECLARATION_GL_EXT_CULL_VERTEX
#endif

#ifndef GL_EXT_cull_vertex
#define GL_EXT_cull_vertex 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_CULL_VERTEX
#define GL_CULL_VERTEX_EXT                 0x81aa     /* 33194 */
#define GL_CULL_VERTEX_EYE_POSITION_EXT    0x81ab     /* 33195 */
#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81ac     /* 33196 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_CULL_VERTEX
typedef void (REGAL_CALL *PFNGLCULLPARAMETERDVEXTPROC)(GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLCULLPARAMETERFVEXTPROC)(GLenum pname, GLfloat *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_CULL_VERTEX
#define glCullParameterdvEXT                rglCullParameterdvEXT
#define glCullParameterfvEXT                rglCullParameterfvEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_CULL_VERTEX
REGAL_DECL void REGAL_CALL glCullParameterdvEXT(GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glCullParameterfvEXT(GLenum pname, GLfloat *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_CULL_VERTEX
REGAL_DECL void REGAL_CALL plugin_glCullParameterdvEXT(GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glCullParameterfvEXT(GLenum pname, GLfloat *params);
#endif

/**
 ** GL_EXT_debug_label
 **/

#if (defined(GL_EXT_DEBUG_LABEL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DEBUG_LABEL)) && !defined(REGAL_NO_ENUM_GL_EXT_DEBUG_LABEL)
#define REGAL_NO_ENUM_GL_EXT_DEBUG_LABEL
#endif

#if (defined(GL_EXT_DEBUG_LABEL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DEBUG_LABEL)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DEBUG_LABEL)
#define REGAL_NO_TYPEDEF_GL_EXT_DEBUG_LABEL
#endif

#if (defined(GL_EXT_DEBUG_LABEL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DEBUG_LABEL)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DEBUG_LABEL)
#define REGAL_NO_NAMESPACE_GL_EXT_DEBUG_LABEL
#endif

#if (defined(GL_EXT_DEBUG_LABEL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DEBUG_LABEL)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DEBUG_LABEL)
#define REGAL_NO_PLUGIN_GL_EXT_DEBUG_LABEL
#endif

#if (defined(GL_EXT_DEBUG_LABEL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DEBUG_LABEL)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DEBUG_LABEL)
#define REGAL_NO_DECLARATION_GL_EXT_DEBUG_LABEL
#endif

#ifndef GL_EXT_debug_label
#define GL_EXT_debug_label 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_DEBUG_LABEL
#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8a4f     /* 35407 */
#define GL_PROGRAM_OBJECT_EXT          0x8b40     /* 35648 */
#define GL_SHADER_OBJECT_EXT           0x8b48     /* 35656 */
#define GL_BUFFER_OBJECT_EXT           0x9151     /* 37201 */
#define GL_QUERY_OBJECT_EXT            0x9153     /* 37203 */
#define GL_VERTEX_ARRAY_OBJECT_EXT     0x9154     /* 37204 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DEBUG_LABEL
typedef void (REGAL_CALL *PFNGLGETOBJECTLABELEXTPROC)(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
typedef void (REGAL_CALL *PFNGLLABELOBJECTEXTPROC)(GLenum type, GLuint object, GLsizei length, const GLchar *label);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DEBUG_LABEL
#define glGetObjectLabelEXT                 rglGetObjectLabelEXT
#define glLabelObjectEXT                    rglLabelObjectEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DEBUG_LABEL
REGAL_DECL void REGAL_CALL glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
REGAL_DECL void REGAL_CALL glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DEBUG_LABEL
REGAL_DECL void REGAL_CALL plugin_glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label);
REGAL_DECL void REGAL_CALL plugin_glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label);
#endif

/**
 ** GL_EXT_debug_marker
 **/

#if (defined(GL_EXT_DEBUG_MARKER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DEBUG_MARKER)) && !defined(REGAL_NO_ENUM_GL_EXT_DEBUG_MARKER)
#define REGAL_NO_ENUM_GL_EXT_DEBUG_MARKER
#endif

#if (defined(GL_EXT_DEBUG_MARKER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DEBUG_MARKER)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DEBUG_MARKER)
#define REGAL_NO_TYPEDEF_GL_EXT_DEBUG_MARKER
#endif

#if (defined(GL_EXT_DEBUG_MARKER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DEBUG_MARKER)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DEBUG_MARKER)
#define REGAL_NO_NAMESPACE_GL_EXT_DEBUG_MARKER
#endif

#if (defined(GL_EXT_DEBUG_MARKER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DEBUG_MARKER)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DEBUG_MARKER)
#define REGAL_NO_PLUGIN_GL_EXT_DEBUG_MARKER
#endif

#if (defined(GL_EXT_DEBUG_MARKER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DEBUG_MARKER)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DEBUG_MARKER)
#define REGAL_NO_DECLARATION_GL_EXT_DEBUG_MARKER
#endif

#ifndef GL_EXT_debug_marker
#define GL_EXT_debug_marker 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DEBUG_MARKER
typedef void (REGAL_CALL *PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length, const GLchar *marker);
typedef void (REGAL_CALL *PFNGLPOPGROUPMARKEREXTPROC)(void);
typedef void (REGAL_CALL *PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length, const GLchar *marker);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DEBUG_MARKER
#define glInsertEventMarkerEXT              rglInsertEventMarkerEXT
#define glPopGroupMarkerEXT                 rglPopGroupMarkerEXT
#define glPushGroupMarkerEXT                rglPushGroupMarkerEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DEBUG_MARKER
REGAL_DECL void REGAL_CALL glInsertEventMarkerEXT(GLsizei length, const GLchar *marker);
REGAL_DECL void REGAL_CALL glPopGroupMarkerEXT(void);
REGAL_DECL void REGAL_CALL glPushGroupMarkerEXT(GLsizei length, const GLchar *marker);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DEBUG_MARKER
REGAL_DECL void REGAL_CALL plugin_glInsertEventMarkerEXT(GLsizei length, const GLchar *marker);
REGAL_DECL void REGAL_CALL plugin_glPopGroupMarkerEXT(void);
REGAL_DECL void REGAL_CALL plugin_glPushGroupMarkerEXT(GLsizei length, const GLchar *marker);
#endif

/**
 ** GL_EXT_depth_bounds_test
 **/

#if (defined(GL_EXT_DEPTH_BOUNDS_TEST) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DEPTH_BOUNDS_TEST)) && !defined(REGAL_NO_ENUM_GL_EXT_DEPTH_BOUNDS_TEST)
#define REGAL_NO_ENUM_GL_EXT_DEPTH_BOUNDS_TEST
#endif

#if (defined(GL_EXT_DEPTH_BOUNDS_TEST) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DEPTH_BOUNDS_TEST)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DEPTH_BOUNDS_TEST)
#define REGAL_NO_TYPEDEF_GL_EXT_DEPTH_BOUNDS_TEST
#endif

#if (defined(GL_EXT_DEPTH_BOUNDS_TEST) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DEPTH_BOUNDS_TEST)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DEPTH_BOUNDS_TEST)
#define REGAL_NO_NAMESPACE_GL_EXT_DEPTH_BOUNDS_TEST
#endif

#if (defined(GL_EXT_DEPTH_BOUNDS_TEST) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DEPTH_BOUNDS_TEST)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DEPTH_BOUNDS_TEST)
#define REGAL_NO_PLUGIN_GL_EXT_DEPTH_BOUNDS_TEST
#endif

#if (defined(GL_EXT_DEPTH_BOUNDS_TEST) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DEPTH_BOUNDS_TEST)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DEPTH_BOUNDS_TEST)
#define REGAL_NO_DECLARATION_GL_EXT_DEPTH_BOUNDS_TEST
#endif

#ifndef GL_EXT_depth_bounds_test
#define GL_EXT_depth_bounds_test 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_DEPTH_BOUNDS_TEST
#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890     /* 34960 */
#define GL_DEPTH_BOUNDS_EXT      0x8891     /* 34961 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DEPTH_BOUNDS_TEST
typedef void (REGAL_CALL *PFNGLDEPTHBOUNDSEXTPROC)(GLclampd zmin, GLclampd zmax);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DEPTH_BOUNDS_TEST
#define glDepthBoundsEXT                    rglDepthBoundsEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DEPTH_BOUNDS_TEST
REGAL_DECL void REGAL_CALL glDepthBoundsEXT(GLclampd zmin, GLclampd zmax);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DEPTH_BOUNDS_TEST
REGAL_DECL void REGAL_CALL plugin_glDepthBoundsEXT(GLclampd zmin, GLclampd zmax);
#endif

/**
 ** GL_EXT_direct_state_access
 **/

#if (defined(GL_EXT_DIRECT_STATE_ACCESS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DIRECT_STATE_ACCESS)) && !defined(REGAL_NO_ENUM_GL_EXT_DIRECT_STATE_ACCESS)
#define REGAL_NO_ENUM_GL_EXT_DIRECT_STATE_ACCESS
#endif

#if (defined(GL_EXT_DIRECT_STATE_ACCESS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DIRECT_STATE_ACCESS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DIRECT_STATE_ACCESS)
#define REGAL_NO_TYPEDEF_GL_EXT_DIRECT_STATE_ACCESS
#endif

#if (defined(GL_EXT_DIRECT_STATE_ACCESS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DIRECT_STATE_ACCESS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DIRECT_STATE_ACCESS)
#define REGAL_NO_NAMESPACE_GL_EXT_DIRECT_STATE_ACCESS
#endif

#if (defined(GL_EXT_DIRECT_STATE_ACCESS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DIRECT_STATE_ACCESS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DIRECT_STATE_ACCESS)
#define REGAL_NO_PLUGIN_GL_EXT_DIRECT_STATE_ACCESS
#endif

#if (defined(GL_EXT_DIRECT_STATE_ACCESS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DIRECT_STATE_ACCESS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DIRECT_STATE_ACCESS)
#define REGAL_NO_DECLARATION_GL_EXT_DIRECT_STATE_ACCESS
#endif

#ifndef GL_EXT_direct_state_access
#define GL_EXT_direct_state_access 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_DIRECT_STATE_ACCESS
#define GL_PROGRAM_MATRIX_EXT             0x8e2d     /* 36397 */
#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT   0x8e2e     /* 36398 */
#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8e2f     /* 36399 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DIRECT_STATE_ACCESS
typedef GLboolean (REGAL_CALL *PFNGLUNMAPNAMEDBUFFEREXTPROC)(GLuint buffer);
typedef GLenum (REGAL_CALL *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)(GLuint framebuffer, GLenum target);
typedef GLvoid *(REGAL_CALL *PFNGLMAPNAMEDBUFFEREXTPROC)(GLuint buffer, GLenum access);
typedef GLvoid *(REGAL_CALL *PFNGLMAPNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
typedef void (REGAL_CALL *PFNGLBINDMULTITEXTUREEXTPROC)(GLenum texunit, GLenum target, GLuint texture);
typedef void (REGAL_CALL *PFNGLCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
typedef void (REGAL_CALL *PFNGLCOPYMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
typedef void (REGAL_CALL *PFNGLCOPYMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
typedef void (REGAL_CALL *PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLCOPYTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
typedef void (REGAL_CALL *PFNGLCOPYTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
typedef void (REGAL_CALL *PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLDISABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index);
typedef void (REGAL_CALL *PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index);
typedef void (REGAL_CALL *PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLenum array);
typedef void (REGAL_CALL *PFNGLDISABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array);
typedef void (REGAL_CALL *PFNGLENABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index);
typedef void (REGAL_CALL *PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index);
typedef void (REGAL_CALL *PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLenum array);
typedef void (REGAL_CALL *PFNGLENABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array);
typedef void (REGAL_CALL *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)(GLuint framebuffer, GLenum mode);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)(GLuint framebuffer, GLsizei n, const GLenum *bufs);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERREADBUFFEREXTPROC)(GLuint framebuffer, GLenum mode);
typedef void (REGAL_CALL *PFNGLGENERATEMULTITEXMIPMAPEXTPROC)(GLenum texunit, GLenum target);
typedef void (REGAL_CALL *PFNGLGENERATETEXTUREMIPMAPEXTPROC)(GLuint texture, GLenum target);
typedef void (REGAL_CALL *PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint lod, GLvoid *img);
typedef void (REGAL_CALL *PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint lod, GLvoid *img);
typedef void (REGAL_CALL *PFNGLGETDOUBLEINDEXEDVEXTPROC)(GLenum target, GLuint index, GLdouble *data);
typedef void (REGAL_CALL *PFNGLGETDOUBLEI_VEXTPROC)(GLenum target, GLuint index, GLdouble *data);
typedef void (REGAL_CALL *PFNGLGETFLOATINDEXEDVEXTPROC)(GLenum target, GLuint index, GLfloat *data);
typedef void (REGAL_CALL *PFNGLGETFLOATI_VEXTPROC)(GLenum target, GLuint index, GLfloat *data);
typedef void (REGAL_CALL *PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)(GLuint buffer, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)(GLuint buffer, GLenum pname, GLvoid **params);
typedef void (REGAL_CALL *PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data);
typedef void (REGAL_CALL *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDPROGRAMIVEXTPROC)(GLuint program, GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)(GLuint program, GLenum target, GLuint index, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)(GLuint program, GLenum target, GLuint index, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLint *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target, GLenum pname, GLvoid *string);
typedef void (REGAL_CALL *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)(GLuint renderbuffer, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETPOINTERINDEXEDVEXTPROC)(GLenum target, GLuint index, GLvoid **data);
typedef void (REGAL_CALL *PFNGLGETPOINTERI_VEXTPROC)(GLenum pname, GLuint index, GLvoid **params);
typedef void (REGAL_CALL *PFNGLGETTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
typedef void (REGAL_CALL *PFNGLGETVERTEXARRAYINTEGERVEXTPROC)(GLuint vaobj, GLenum pname, GLint *param);
typedef void (REGAL_CALL *PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)(GLuint vaobj, GLuint index, GLenum pname, GLvoid **param);
typedef void (REGAL_CALL *PFNGLGETVERTEXARRAYPOINTERVEXTPROC)(GLuint vaobj, GLenum pname, GLvoid **param);
typedef void (REGAL_CALL *PFNGLMATRIXFRUSTUMEXTPROC)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
typedef void (REGAL_CALL *PFNGLMATRIXLOADDEXTPROC)(GLenum mode, const GLdouble *m);
typedef void (REGAL_CALL *PFNGLMATRIXLOADFEXTPROC)(GLenum mode, const GLfloat *m);
typedef void (REGAL_CALL *PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLMATRIXLOADTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble *m);
typedef void (REGAL_CALL *PFNGLMATRIXLOADTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat *m);
typedef void (REGAL_CALL *PFNGLMATRIXMULTDEXTPROC)(GLenum mode, const GLdouble *m);
typedef void (REGAL_CALL *PFNGLMATRIXMULTFEXTPROC)(GLenum mode, const GLfloat *m);
typedef void (REGAL_CALL *PFNGLMATRIXMULTTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble *m);
typedef void (REGAL_CALL *PFNGLMATRIXMULTTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat *m);
typedef void (REGAL_CALL *PFNGLMATRIXORTHOEXTPROC)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
typedef void (REGAL_CALL *PFNGLMATRIXPOPEXTPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLMATRIXPUSHEXTPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLMATRIXROTATEDEXTPROC)(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLMATRIXROTATEFEXTPROC)(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLMATRIXSCALEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLMATRIXSCALEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLMATRIXTRANSLATEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLMATRIXTRANSLATEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLMULTITEXBUFFEREXTPROC)(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORDPOINTEREXTPROC)(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLMULTITEXENVFEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLMULTITEXENVIEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLMULTITEXGENDEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
typedef void (REGAL_CALL *PFNGLMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
typedef void (REGAL_CALL *PFNGLMULTITEXGENFEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLMULTITEXGENIEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLMULTITEXPARAMETERFEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLfloat *param);
typedef void (REGAL_CALL *PFNGLMULTITEXPARAMETERIEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
typedef void (REGAL_CALL *PFNGLMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint *param);
typedef void (REGAL_CALL *PFNGLMULTITEXRENDERBUFFEREXTPROC)(GLenum texunit, GLenum target, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage);
typedef void (REGAL_CALL *PFNGLNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
typedef void (REGAL_CALL *PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
typedef void (REGAL_CALL *PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
typedef void (REGAL_CALL *PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLdouble *params);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLint *params);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLuint *params);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
typedef void (REGAL_CALL *PFNGLNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string);
typedef void (REGAL_CALL *PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1DEXTPROC)(GLuint program, GLint location, GLdouble x);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1FEXTPROC)(GLuint program, GLint location, GLfloat v0);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1IEXTPROC)(GLuint program, GLint location, GLint v0);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1UIEXTPROC)(GLuint program, GLint location, GLuint v0);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask);
typedef void (REGAL_CALL *PFNGLTEXTUREBUFFEREXTPROC)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
typedef void (REGAL_CALL *PFNGLTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXTUREPARAMETERFEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLfloat *param);
typedef void (REGAL_CALL *PFNGLTEXTUREPARAMETERIEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLuint *params);
typedef void (REGAL_CALL *PFNGLTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLint *param);
typedef void (REGAL_CALL *PFNGLTEXTURERENDERBUFFEREXTPROC)(GLuint texture, GLenum target, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DIRECT_STATE_ACCESS
#define glBindMultiTextureEXT               rglBindMultiTextureEXT
#define glCheckNamedFramebufferStatusEXT    rglCheckNamedFramebufferStatusEXT
#define glClientAttribDefaultEXT            rglClientAttribDefaultEXT
#define glCompressedMultiTexImage1DEXT      rglCompressedMultiTexImage1DEXT
#define glCompressedMultiTexImage2DEXT      rglCompressedMultiTexImage2DEXT
#define glCompressedMultiTexImage3DEXT      rglCompressedMultiTexImage3DEXT
#define glCompressedMultiTexSubImage1DEXT   rglCompressedMultiTexSubImage1DEXT
#define glCompressedMultiTexSubImage2DEXT   rglCompressedMultiTexSubImage2DEXT
#define glCompressedMultiTexSubImage3DEXT   rglCompressedMultiTexSubImage3DEXT
#define glCompressedTextureImage1DEXT       rglCompressedTextureImage1DEXT
#define glCompressedTextureImage2DEXT       rglCompressedTextureImage2DEXT
#define glCompressedTextureImage3DEXT       rglCompressedTextureImage3DEXT
#define glCompressedTextureSubImage1DEXT    rglCompressedTextureSubImage1DEXT
#define glCompressedTextureSubImage2DEXT    rglCompressedTextureSubImage2DEXT
#define glCompressedTextureSubImage3DEXT    rglCompressedTextureSubImage3DEXT
#define glCopyMultiTexImage1DEXT            rglCopyMultiTexImage1DEXT
#define glCopyMultiTexImage2DEXT            rglCopyMultiTexImage2DEXT
#define glCopyMultiTexSubImage1DEXT         rglCopyMultiTexSubImage1DEXT
#define glCopyMultiTexSubImage2DEXT         rglCopyMultiTexSubImage2DEXT
#define glCopyMultiTexSubImage3DEXT         rglCopyMultiTexSubImage3DEXT
#define glCopyTextureImage1DEXT             rglCopyTextureImage1DEXT
#define glCopyTextureImage2DEXT             rglCopyTextureImage2DEXT
#define glCopyTextureSubImage1DEXT          rglCopyTextureSubImage1DEXT
#define glCopyTextureSubImage2DEXT          rglCopyTextureSubImage2DEXT
#define glCopyTextureSubImage3DEXT          rglCopyTextureSubImage3DEXT
#define glDisableClientStateIndexedEXT      rglDisableClientStateIndexedEXT
#define glDisableClientStateiEXT            rglDisableClientStateiEXT
#define glDisableVertexArrayAttribEXT       rglDisableVertexArrayAttribEXT
#define glDisableVertexArrayEXT             rglDisableVertexArrayEXT
#define glEnableClientStateIndexedEXT       rglEnableClientStateIndexedEXT
#define glEnableClientStateiEXT             rglEnableClientStateiEXT
#define glEnableVertexArrayAttribEXT        rglEnableVertexArrayAttribEXT
#define glEnableVertexArrayEXT              rglEnableVertexArrayEXT
#define glFlushMappedNamedBufferRangeEXT    rglFlushMappedNamedBufferRangeEXT
#define glFramebufferDrawBufferEXT          rglFramebufferDrawBufferEXT
#define glFramebufferDrawBuffersEXT         rglFramebufferDrawBuffersEXT
#define glFramebufferReadBufferEXT          rglFramebufferReadBufferEXT
#define glGenerateMultiTexMipmapEXT         rglGenerateMultiTexMipmapEXT
#define glGenerateTextureMipmapEXT          rglGenerateTextureMipmapEXT
#define glGetCompressedMultiTexImageEXT     rglGetCompressedMultiTexImageEXT
#define glGetCompressedTextureImageEXT      rglGetCompressedTextureImageEXT
#define glGetDoubleIndexedvEXT              rglGetDoubleIndexedvEXT
#define glGetDoublei_vEXT                   rglGetDoublei_vEXT
#define glGetFloatIndexedvEXT               rglGetFloatIndexedvEXT
#define glGetFloati_vEXT                    rglGetFloati_vEXT
#define glGetFramebufferParameterivEXT      rglGetFramebufferParameterivEXT
#define glGetMultiTexEnvfvEXT               rglGetMultiTexEnvfvEXT
#define glGetMultiTexEnvivEXT               rglGetMultiTexEnvivEXT
#define glGetMultiTexGendvEXT               rglGetMultiTexGendvEXT
#define glGetMultiTexGenfvEXT               rglGetMultiTexGenfvEXT
#define glGetMultiTexGenivEXT               rglGetMultiTexGenivEXT
#define glGetMultiTexImageEXT               rglGetMultiTexImageEXT
#define glGetMultiTexLevelParameterfvEXT    rglGetMultiTexLevelParameterfvEXT
#define glGetMultiTexLevelParameterivEXT    rglGetMultiTexLevelParameterivEXT
#define glGetMultiTexParameterIivEXT        rglGetMultiTexParameterIivEXT
#define glGetMultiTexParameterIuivEXT       rglGetMultiTexParameterIuivEXT
#define glGetMultiTexParameterfvEXT         rglGetMultiTexParameterfvEXT
#define glGetMultiTexParameterivEXT         rglGetMultiTexParameterivEXT
#define glGetNamedBufferParameterivEXT      rglGetNamedBufferParameterivEXT
#define glGetNamedBufferPointervEXT         rglGetNamedBufferPointervEXT
#define glGetNamedBufferSubDataEXT          rglGetNamedBufferSubDataEXT
#define glGetNamedFramebufferAttachmentParameterivEXT rglGetNamedFramebufferAttachmentParameterivEXT
#define glGetNamedProgramLocalParameterIivEXT rglGetNamedProgramLocalParameterIivEXT
#define glGetNamedProgramLocalParameterIuivEXT rglGetNamedProgramLocalParameterIuivEXT
#define glGetNamedProgramLocalParameterdvEXT rglGetNamedProgramLocalParameterdvEXT
#define glGetNamedProgramLocalParameterfvEXT rglGetNamedProgramLocalParameterfvEXT
#define glGetNamedProgramStringEXT          rglGetNamedProgramStringEXT
#define glGetNamedProgramivEXT              rglGetNamedProgramivEXT
#define glGetNamedRenderbufferParameterivEXT rglGetNamedRenderbufferParameterivEXT
#define glGetPointerIndexedvEXT             rglGetPointerIndexedvEXT
#define glGetPointeri_vEXT                  rglGetPointeri_vEXT
#define glGetTextureImageEXT                rglGetTextureImageEXT
#define glGetTextureLevelParameterfvEXT     rglGetTextureLevelParameterfvEXT
#define glGetTextureLevelParameterivEXT     rglGetTextureLevelParameterivEXT
#define glGetTextureParameterIivEXT         rglGetTextureParameterIivEXT
#define glGetTextureParameterIuivEXT        rglGetTextureParameterIuivEXT
#define glGetTextureParameterfvEXT          rglGetTextureParameterfvEXT
#define glGetTextureParameterivEXT          rglGetTextureParameterivEXT
#define glGetVertexArrayIntegeri_vEXT       rglGetVertexArrayIntegeri_vEXT
#define glGetVertexArrayIntegervEXT         rglGetVertexArrayIntegervEXT
#define glGetVertexArrayPointeri_vEXT       rglGetVertexArrayPointeri_vEXT
#define glGetVertexArrayPointervEXT         rglGetVertexArrayPointervEXT
#define glMapNamedBufferEXT                 rglMapNamedBufferEXT
#define glMapNamedBufferRangeEXT            rglMapNamedBufferRangeEXT
#define glMatrixFrustumEXT                  rglMatrixFrustumEXT
#define glMatrixLoadIdentityEXT             rglMatrixLoadIdentityEXT
#define glMatrixLoadTransposedEXT           rglMatrixLoadTransposedEXT
#define glMatrixLoadTransposefEXT           rglMatrixLoadTransposefEXT
#define glMatrixLoaddEXT                    rglMatrixLoaddEXT
#define glMatrixLoadfEXT                    rglMatrixLoadfEXT
#define glMatrixMultTransposedEXT           rglMatrixMultTransposedEXT
#define glMatrixMultTransposefEXT           rglMatrixMultTransposefEXT
#define glMatrixMultdEXT                    rglMatrixMultdEXT
#define glMatrixMultfEXT                    rglMatrixMultfEXT
#define glMatrixOrthoEXT                    rglMatrixOrthoEXT
#define glMatrixPopEXT                      rglMatrixPopEXT
#define glMatrixPushEXT                     rglMatrixPushEXT
#define glMatrixRotatedEXT                  rglMatrixRotatedEXT
#define glMatrixRotatefEXT                  rglMatrixRotatefEXT
#define glMatrixScaledEXT                   rglMatrixScaledEXT
#define glMatrixScalefEXT                   rglMatrixScalefEXT
#define glMatrixTranslatedEXT               rglMatrixTranslatedEXT
#define glMatrixTranslatefEXT               rglMatrixTranslatefEXT
#define glMultiTexBufferEXT                 rglMultiTexBufferEXT
#define glMultiTexCoordPointerEXT           rglMultiTexCoordPointerEXT
#define glMultiTexEnvfEXT                   rglMultiTexEnvfEXT
#define glMultiTexEnvfvEXT                  rglMultiTexEnvfvEXT
#define glMultiTexEnviEXT                   rglMultiTexEnviEXT
#define glMultiTexEnvivEXT                  rglMultiTexEnvivEXT
#define glMultiTexGendEXT                   rglMultiTexGendEXT
#define glMultiTexGendvEXT                  rglMultiTexGendvEXT
#define glMultiTexGenfEXT                   rglMultiTexGenfEXT
#define glMultiTexGenfvEXT                  rglMultiTexGenfvEXT
#define glMultiTexGeniEXT                   rglMultiTexGeniEXT
#define glMultiTexGenivEXT                  rglMultiTexGenivEXT
#define glMultiTexImage1DEXT                rglMultiTexImage1DEXT
#define glMultiTexImage2DEXT                rglMultiTexImage2DEXT
#define glMultiTexImage3DEXT                rglMultiTexImage3DEXT
#define glMultiTexParameterIivEXT           rglMultiTexParameterIivEXT
#define glMultiTexParameterIuivEXT          rglMultiTexParameterIuivEXT
#define glMultiTexParameterfEXT             rglMultiTexParameterfEXT
#define glMultiTexParameterfvEXT            rglMultiTexParameterfvEXT
#define glMultiTexParameteriEXT             rglMultiTexParameteriEXT
#define glMultiTexParameterivEXT            rglMultiTexParameterivEXT
#define glMultiTexRenderbufferEXT           rglMultiTexRenderbufferEXT
#define glMultiTexSubImage1DEXT             rglMultiTexSubImage1DEXT
#define glMultiTexSubImage2DEXT             rglMultiTexSubImage2DEXT
#define glMultiTexSubImage3DEXT             rglMultiTexSubImage3DEXT
#define glNamedBufferDataEXT                rglNamedBufferDataEXT
#define glNamedBufferSubDataEXT             rglNamedBufferSubDataEXT
#define glNamedCopyBufferSubDataEXT         rglNamedCopyBufferSubDataEXT
#define glNamedFramebufferRenderbufferEXT   rglNamedFramebufferRenderbufferEXT
#define glNamedFramebufferTexture1DEXT      rglNamedFramebufferTexture1DEXT
#define glNamedFramebufferTexture2DEXT      rglNamedFramebufferTexture2DEXT
#define glNamedFramebufferTexture3DEXT      rglNamedFramebufferTexture3DEXT
#define glNamedFramebufferTextureEXT        rglNamedFramebufferTextureEXT
#define glNamedFramebufferTextureFaceEXT    rglNamedFramebufferTextureFaceEXT
#define glNamedFramebufferTextureLayerEXT   rglNamedFramebufferTextureLayerEXT
#define glNamedProgramLocalParameter4dEXT   rglNamedProgramLocalParameter4dEXT
#define glNamedProgramLocalParameter4dvEXT  rglNamedProgramLocalParameter4dvEXT
#define glNamedProgramLocalParameter4fEXT   rglNamedProgramLocalParameter4fEXT
#define glNamedProgramLocalParameter4fvEXT  rglNamedProgramLocalParameter4fvEXT
#define glNamedProgramLocalParameterI4iEXT  rglNamedProgramLocalParameterI4iEXT
#define glNamedProgramLocalParameterI4ivEXT rglNamedProgramLocalParameterI4ivEXT
#define glNamedProgramLocalParameterI4uiEXT rglNamedProgramLocalParameterI4uiEXT
#define glNamedProgramLocalParameterI4uivEXT rglNamedProgramLocalParameterI4uivEXT
#define glNamedProgramLocalParameters4fvEXT rglNamedProgramLocalParameters4fvEXT
#define glNamedProgramLocalParametersI4ivEXT rglNamedProgramLocalParametersI4ivEXT
#define glNamedProgramLocalParametersI4uivEXT rglNamedProgramLocalParametersI4uivEXT
#define glNamedProgramStringEXT             rglNamedProgramStringEXT
#define glNamedRenderbufferStorageEXT       rglNamedRenderbufferStorageEXT
#define glNamedRenderbufferStorageMultisampleCoverageEXT rglNamedRenderbufferStorageMultisampleCoverageEXT
#define glNamedRenderbufferStorageMultisampleEXT rglNamedRenderbufferStorageMultisampleEXT
#define glProgramUniform1dEXT               rglProgramUniform1dEXT
#define glProgramUniform1dvEXT              rglProgramUniform1dvEXT
#define glProgramUniform1fEXT               rglProgramUniform1fEXT
#define glProgramUniform1fvEXT              rglProgramUniform1fvEXT
#define glProgramUniform1iEXT               rglProgramUniform1iEXT
#define glProgramUniform1ivEXT              rglProgramUniform1ivEXT
#define glProgramUniform1uiEXT              rglProgramUniform1uiEXT
#define glProgramUniform1uivEXT             rglProgramUniform1uivEXT
#define glProgramUniform2dEXT               rglProgramUniform2dEXT
#define glProgramUniform2dvEXT              rglProgramUniform2dvEXT
#define glProgramUniform2fEXT               rglProgramUniform2fEXT
#define glProgramUniform2fvEXT              rglProgramUniform2fvEXT
#define glProgramUniform2iEXT               rglProgramUniform2iEXT
#define glProgramUniform2ivEXT              rglProgramUniform2ivEXT
#define glProgramUniform2uiEXT              rglProgramUniform2uiEXT
#define glProgramUniform2uivEXT             rglProgramUniform2uivEXT
#define glProgramUniform3dEXT               rglProgramUniform3dEXT
#define glProgramUniform3dvEXT              rglProgramUniform3dvEXT
#define glProgramUniform3fEXT               rglProgramUniform3fEXT
#define glProgramUniform3fvEXT              rglProgramUniform3fvEXT
#define glProgramUniform3iEXT               rglProgramUniform3iEXT
#define glProgramUniform3ivEXT              rglProgramUniform3ivEXT
#define glProgramUniform3uiEXT              rglProgramUniform3uiEXT
#define glProgramUniform3uivEXT             rglProgramUniform3uivEXT
#define glProgramUniform4dEXT               rglProgramUniform4dEXT
#define glProgramUniform4dvEXT              rglProgramUniform4dvEXT
#define glProgramUniform4fEXT               rglProgramUniform4fEXT
#define glProgramUniform4fvEXT              rglProgramUniform4fvEXT
#define glProgramUniform4iEXT               rglProgramUniform4iEXT
#define glProgramUniform4ivEXT              rglProgramUniform4ivEXT
#define glProgramUniform4uiEXT              rglProgramUniform4uiEXT
#define glProgramUniform4uivEXT             rglProgramUniform4uivEXT
#define glProgramUniformMatrix2dvEXT        rglProgramUniformMatrix2dvEXT
#define glProgramUniformMatrix2fvEXT        rglProgramUniformMatrix2fvEXT
#define glProgramUniformMatrix2x3dvEXT      rglProgramUniformMatrix2x3dvEXT
#define glProgramUniformMatrix2x3fvEXT      rglProgramUniformMatrix2x3fvEXT
#define glProgramUniformMatrix2x4dvEXT      rglProgramUniformMatrix2x4dvEXT
#define glProgramUniformMatrix2x4fvEXT      rglProgramUniformMatrix2x4fvEXT
#define glProgramUniformMatrix3dvEXT        rglProgramUniformMatrix3dvEXT
#define glProgramUniformMatrix3fvEXT        rglProgramUniformMatrix3fvEXT
#define glProgramUniformMatrix3x2dvEXT      rglProgramUniformMatrix3x2dvEXT
#define glProgramUniformMatrix3x2fvEXT      rglProgramUniformMatrix3x2fvEXT
#define glProgramUniformMatrix3x4dvEXT      rglProgramUniformMatrix3x4dvEXT
#define glProgramUniformMatrix3x4fvEXT      rglProgramUniformMatrix3x4fvEXT
#define glProgramUniformMatrix4dvEXT        rglProgramUniformMatrix4dvEXT
#define glProgramUniformMatrix4fvEXT        rglProgramUniformMatrix4fvEXT
#define glProgramUniformMatrix4x2dvEXT      rglProgramUniformMatrix4x2dvEXT
#define glProgramUniformMatrix4x2fvEXT      rglProgramUniformMatrix4x2fvEXT
#define glProgramUniformMatrix4x3dvEXT      rglProgramUniformMatrix4x3dvEXT
#define glProgramUniformMatrix4x3fvEXT      rglProgramUniformMatrix4x3fvEXT
#define glPushClientAttribDefaultEXT        rglPushClientAttribDefaultEXT
#define glTextureBufferEXT                  rglTextureBufferEXT
#define glTextureImage1DEXT                 rglTextureImage1DEXT
#define glTextureImage2DEXT                 rglTextureImage2DEXT
#define glTextureImage3DEXT                 rglTextureImage3DEXT
#define glTextureParameterIivEXT            rglTextureParameterIivEXT
#define glTextureParameterIuivEXT           rglTextureParameterIuivEXT
#define glTextureParameterfEXT              rglTextureParameterfEXT
#define glTextureParameterfvEXT             rglTextureParameterfvEXT
#define glTextureParameteriEXT              rglTextureParameteriEXT
#define glTextureParameterivEXT             rglTextureParameterivEXT
#define glTextureRenderbufferEXT            rglTextureRenderbufferEXT
#define glTextureSubImage1DEXT              rglTextureSubImage1DEXT
#define glTextureSubImage2DEXT              rglTextureSubImage2DEXT
#define glTextureSubImage3DEXT              rglTextureSubImage3DEXT
#define glUnmapNamedBufferEXT               rglUnmapNamedBufferEXT
#define glVertexArrayColorOffsetEXT         rglVertexArrayColorOffsetEXT
#define glVertexArrayEdgeFlagOffsetEXT      rglVertexArrayEdgeFlagOffsetEXT
#define glVertexArrayFogCoordOffsetEXT      rglVertexArrayFogCoordOffsetEXT
#define glVertexArrayIndexOffsetEXT         rglVertexArrayIndexOffsetEXT
#define glVertexArrayMultiTexCoordOffsetEXT rglVertexArrayMultiTexCoordOffsetEXT
#define glVertexArrayNormalOffsetEXT        rglVertexArrayNormalOffsetEXT
#define glVertexArraySecondaryColorOffsetEXT rglVertexArraySecondaryColorOffsetEXT
#define glVertexArrayTexCoordOffsetEXT      rglVertexArrayTexCoordOffsetEXT
#define glVertexArrayVertexAttribIOffsetEXT rglVertexArrayVertexAttribIOffsetEXT
#define glVertexArrayVertexAttribOffsetEXT  rglVertexArrayVertexAttribOffsetEXT
#define glVertexArrayVertexOffsetEXT        rglVertexArrayVertexOffsetEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DIRECT_STATE_ACCESS
REGAL_DECL GLboolean REGAL_CALL glUnmapNamedBufferEXT(GLuint buffer);
REGAL_DECL GLenum REGAL_CALL glCheckNamedFramebufferStatusEXT(GLuint framebuffer, GLenum target);
REGAL_DECL GLvoid *REGAL_CALL glMapNamedBufferEXT(GLuint buffer, GLenum access);
REGAL_DECL GLvoid *REGAL_CALL glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
REGAL_DECL void REGAL_CALL glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture);
REGAL_DECL void REGAL_CALL glClientAttribDefaultEXT(GLbitfield mask);
REGAL_DECL void REGAL_CALL glCompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL glCompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL glCompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL glCompressedTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL glCompressedTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL glCompressedTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL glCompressedTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL glCompressedTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL glCopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
REGAL_DECL void REGAL_CALL glCopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
REGAL_DECL void REGAL_CALL glCopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glCopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glCopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glCopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
REGAL_DECL void REGAL_CALL glCopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
REGAL_DECL void REGAL_CALL glCopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glCopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glCopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glDisableClientStateIndexedEXT(GLenum array, GLuint index);
REGAL_DECL void REGAL_CALL glDisableClientStateiEXT(GLenum array, GLuint index);
REGAL_DECL void REGAL_CALL glDisableVertexArrayAttribEXT(GLuint vaobj, GLenum array);
REGAL_DECL void REGAL_CALL glDisableVertexArrayEXT(GLuint vaobj, GLenum array);
REGAL_DECL void REGAL_CALL glEnableClientStateIndexedEXT(GLenum array, GLuint index);
REGAL_DECL void REGAL_CALL glEnableClientStateiEXT(GLenum array, GLuint index);
REGAL_DECL void REGAL_CALL glEnableVertexArrayAttribEXT(GLuint vaobj, GLenum array);
REGAL_DECL void REGAL_CALL glEnableVertexArrayEXT(GLuint vaobj, GLenum array);
REGAL_DECL void REGAL_CALL glFlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length);
REGAL_DECL void REGAL_CALL glFramebufferDrawBufferEXT(GLuint framebuffer, GLenum mode);
REGAL_DECL void REGAL_CALL glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum *bufs);
REGAL_DECL void REGAL_CALL glFramebufferReadBufferEXT(GLuint framebuffer, GLenum mode);
REGAL_DECL void REGAL_CALL glGenerateMultiTexMipmapEXT(GLenum texunit, GLenum target);
REGAL_DECL void REGAL_CALL glGenerateTextureMipmapEXT(GLuint texture, GLenum target);
REGAL_DECL void REGAL_CALL glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint lod, GLvoid *img);
REGAL_DECL void REGAL_CALL glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint lod, GLvoid *img);
REGAL_DECL void REGAL_CALL glGetDoubleIndexedvEXT(GLenum target, GLuint index, GLdouble *data);
REGAL_DECL void REGAL_CALL glGetDoublei_vEXT(GLenum target, GLuint index, GLdouble *data);
REGAL_DECL void REGAL_CALL glGetFloatIndexedvEXT(GLenum target, GLuint index, GLfloat *data);
REGAL_DECL void REGAL_CALL glGetFloati_vEXT(GLenum target, GLuint index, GLfloat *data);
REGAL_DECL void REGAL_CALL glGetFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
REGAL_DECL void REGAL_CALL glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetNamedBufferPointervEXT(GLuint buffer, GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data);
REGAL_DECL void REGAL_CALL glGetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetNamedProgramLocalParameterIivEXT(GLuint program, GLenum target, GLuint index, GLint *params);
REGAL_DECL void REGAL_CALL glGetNamedProgramLocalParameterIuivEXT(GLuint program, GLenum target, GLuint index, GLuint *params);
REGAL_DECL void REGAL_CALL glGetNamedProgramLocalParameterdvEXT(GLuint program, GLenum target, GLuint index, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetNamedProgramLocalParameterfvEXT(GLuint program, GLenum target, GLuint index, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetNamedProgramStringEXT(GLuint program, GLenum target, GLenum pname, GLvoid *string);
REGAL_DECL void REGAL_CALL glGetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetPointerIndexedvEXT(GLenum target, GLuint index, GLvoid **data);
REGAL_DECL void REGAL_CALL glGetPointeri_vEXT(GLenum pname, GLuint index, GLvoid **params);
REGAL_DECL void REGAL_CALL glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
REGAL_DECL void REGAL_CALL glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetVertexArrayIntegeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
REGAL_DECL void REGAL_CALL glGetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint *param);
REGAL_DECL void REGAL_CALL glGetVertexArrayPointeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLvoid **param);
REGAL_DECL void REGAL_CALL glGetVertexArrayPointervEXT(GLuint vaobj, GLenum pname, GLvoid **param);
REGAL_DECL void REGAL_CALL glMatrixFrustumEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
REGAL_DECL void REGAL_CALL glMatrixLoadIdentityEXT(GLenum mode);
REGAL_DECL void REGAL_CALL glMatrixLoadTransposedEXT(GLenum mode, const GLdouble *m);
REGAL_DECL void REGAL_CALL glMatrixLoadTransposefEXT(GLenum mode, const GLfloat *m);
REGAL_DECL void REGAL_CALL glMatrixLoaddEXT(GLenum mode, const GLdouble *m);
REGAL_DECL void REGAL_CALL glMatrixLoadfEXT(GLenum mode, const GLfloat *m);
REGAL_DECL void REGAL_CALL glMatrixMultTransposedEXT(GLenum mode, const GLdouble *m);
REGAL_DECL void REGAL_CALL glMatrixMultTransposefEXT(GLenum mode, const GLfloat *m);
REGAL_DECL void REGAL_CALL glMatrixMultdEXT(GLenum mode, const GLdouble *m);
REGAL_DECL void REGAL_CALL glMatrixMultfEXT(GLenum mode, const GLfloat *m);
REGAL_DECL void REGAL_CALL glMatrixOrthoEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
REGAL_DECL void REGAL_CALL glMatrixPopEXT(GLenum mode);
REGAL_DECL void REGAL_CALL glMatrixPushEXT(GLenum mode);
REGAL_DECL void REGAL_CALL glMatrixRotatedEXT(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glMatrixRotatefEXT(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glMatrixScaledEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glMatrixScalefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glMatrixTranslatedEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glMatrixTranslatefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glMultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
REGAL_DECL void REGAL_CALL glMultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glMultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glMultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glMultiTexGendEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
REGAL_DECL void REGAL_CALL glMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
REGAL_DECL void REGAL_CALL glMultiTexGenfEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glMultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
REGAL_DECL void REGAL_CALL glMultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *param);
REGAL_DECL void REGAL_CALL glMultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *param);
REGAL_DECL void REGAL_CALL glMultiTexRenderbufferEXT(GLenum texunit, GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage);
REGAL_DECL void REGAL_CALL glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
REGAL_DECL void REGAL_CALL glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL glNamedFramebufferRenderbufferEXT(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glNamedFramebufferTexture1DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glNamedFramebufferTexture3DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
REGAL_DECL void REGAL_CALL glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glNamedFramebufferTextureFaceEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
REGAL_DECL void REGAL_CALL glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameter4dEXT(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameter4dvEXT(GLuint program, GLenum target, GLuint index, const GLdouble *params);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameter4fEXT(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat *params);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameterI4iEXT(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameterI4ivEXT(GLuint program, GLenum target, GLuint index, const GLint *params);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameterI4uiEXT(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameterI4uivEXT(GLuint program, GLenum target, GLuint index, const GLuint *params);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParametersI4ivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
REGAL_DECL void REGAL_CALL glNamedProgramLocalParametersI4uivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
REGAL_DECL void REGAL_CALL glNamedProgramStringEXT(GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string);
REGAL_DECL void REGAL_CALL glNamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glNamedRenderbufferStorageMultisampleCoverageEXT(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glNamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glProgramUniform1dEXT(GLuint program, GLint location, GLdouble x);
REGAL_DECL void REGAL_CALL glProgramUniform1dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniform1fEXT(GLuint program, GLint location, GLfloat v0);
REGAL_DECL void REGAL_CALL glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniform1iEXT(GLuint program, GLint location, GLint v0);
REGAL_DECL void REGAL_CALL glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glProgramUniform1uiEXT(GLuint program, GLint location, GLuint v0);
REGAL_DECL void REGAL_CALL glProgramUniform1uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glProgramUniform2dEXT(GLuint program, GLint location, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glProgramUniform2dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniform2fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1);
REGAL_DECL void REGAL_CALL glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniform2iEXT(GLuint program, GLint location, GLint v0, GLint v1);
REGAL_DECL void REGAL_CALL glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glProgramUniform2uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1);
REGAL_DECL void REGAL_CALL glProgramUniform2uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glProgramUniform3dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glProgramUniform3dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniform3fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
REGAL_DECL void REGAL_CALL glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniform3iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
REGAL_DECL void REGAL_CALL glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glProgramUniform3uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
REGAL_DECL void REGAL_CALL glProgramUniform3uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glProgramUniform4dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glProgramUniform4dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniform4fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
REGAL_DECL void REGAL_CALL glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniform4iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
REGAL_DECL void REGAL_CALL glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glProgramUniform4uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
REGAL_DECL void REGAL_CALL glProgramUniform4uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix2x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix3x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL glProgramUniformMatrix4x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glPushClientAttribDefaultEXT(GLbitfield mask);
REGAL_DECL void REGAL_CALL glTextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
REGAL_DECL void REGAL_CALL glTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, const GLuint *params);
REGAL_DECL void REGAL_CALL glTextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const GLfloat *param);
REGAL_DECL void REGAL_CALL glTextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *param);
REGAL_DECL void REGAL_CALL glTextureRenderbufferEXT(GLuint texture, GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glVertexArrayColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayEdgeFlagOffsetEXT(GLuint vaobj, GLuint buffer, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayFogCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayIndexOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayMultiTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayNormalOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArraySecondaryColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexArrayVertexOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DIRECT_STATE_ACCESS
REGAL_DECL GLboolean REGAL_CALL plugin_glUnmapNamedBufferEXT(GLuint buffer);
REGAL_DECL GLenum REGAL_CALL plugin_glCheckNamedFramebufferStatusEXT(GLuint framebuffer, GLenum target);
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapNamedBufferEXT(GLuint buffer, GLenum access);
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
REGAL_DECL void REGAL_CALL plugin_glBindMultiTextureEXT(GLenum texunit, GLenum target, GLuint texture);
REGAL_DECL void REGAL_CALL plugin_glClientAttribDefaultEXT(GLbitfield mask);
REGAL_DECL void REGAL_CALL plugin_glCompressedMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL plugin_glCompressedMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL plugin_glCompressedMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL plugin_glCompressedTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL plugin_glCompressedTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL plugin_glCompressedTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL plugin_glCompressedTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL plugin_glCompressedTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits);
REGAL_DECL void REGAL_CALL plugin_glCopyMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
REGAL_DECL void REGAL_CALL plugin_glCopyMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
REGAL_DECL void REGAL_CALL plugin_glCopyMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glCopyMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glCopyMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glCopyTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
REGAL_DECL void REGAL_CALL plugin_glCopyTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
REGAL_DECL void REGAL_CALL plugin_glCopyTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glCopyTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glCopyTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glDisableClientStateIndexedEXT(GLenum array, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glDisableClientStateiEXT(GLenum array, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glDisableVertexArrayAttribEXT(GLuint vaobj, GLenum array);
REGAL_DECL void REGAL_CALL plugin_glDisableVertexArrayEXT(GLuint vaobj, GLenum array);
REGAL_DECL void REGAL_CALL plugin_glEnableClientStateIndexedEXT(GLenum array, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glEnableClientStateiEXT(GLenum array, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glEnableVertexArrayAttribEXT(GLuint vaobj, GLenum array);
REGAL_DECL void REGAL_CALL plugin_glEnableVertexArrayEXT(GLuint vaobj, GLenum array);
REGAL_DECL void REGAL_CALL plugin_glFlushMappedNamedBufferRangeEXT(GLuint buffer, GLintptr offset, GLsizeiptr length);
REGAL_DECL void REGAL_CALL plugin_glFramebufferDrawBufferEXT(GLuint framebuffer, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glFramebufferDrawBuffersEXT(GLuint framebuffer, GLsizei n, const GLenum *bufs);
REGAL_DECL void REGAL_CALL plugin_glFramebufferReadBufferEXT(GLuint framebuffer, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glGenerateMultiTexMipmapEXT(GLenum texunit, GLenum target);
REGAL_DECL void REGAL_CALL plugin_glGenerateTextureMipmapEXT(GLuint texture, GLenum target);
REGAL_DECL void REGAL_CALL plugin_glGetCompressedMultiTexImageEXT(GLenum texunit, GLenum target, GLint lod, GLvoid *img);
REGAL_DECL void REGAL_CALL plugin_glGetCompressedTextureImageEXT(GLuint texture, GLenum target, GLint lod, GLvoid *img);
REGAL_DECL void REGAL_CALL plugin_glGetDoubleIndexedvEXT(GLenum target, GLuint index, GLdouble *data);
REGAL_DECL void REGAL_CALL plugin_glGetDoublei_vEXT(GLenum target, GLuint index, GLdouble *data);
REGAL_DECL void REGAL_CALL plugin_glGetFloatIndexedvEXT(GLenum target, GLuint index, GLfloat *data);
REGAL_DECL void REGAL_CALL plugin_glGetFloati_vEXT(GLenum target, GLuint index, GLfloat *data);
REGAL_DECL void REGAL_CALL plugin_glGetFramebufferParameterivEXT(GLuint framebuffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexImageEXT(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexLevelParameterfvEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexLevelParameterivEXT(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedBufferParameterivEXT(GLuint buffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedBufferPointervEXT(GLuint buffer, GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glGetNamedFramebufferAttachmentParameterivEXT(GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedProgramLocalParameterIivEXT(GLuint program, GLenum target, GLuint index, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedProgramLocalParameterIuivEXT(GLuint program, GLenum target, GLuint index, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedProgramLocalParameterdvEXT(GLuint program, GLenum target, GLuint index, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedProgramLocalParameterfvEXT(GLuint program, GLenum target, GLuint index, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedProgramStringEXT(GLuint program, GLenum target, GLenum pname, GLvoid *string);
REGAL_DECL void REGAL_CALL plugin_glGetNamedProgramivEXT(GLuint program, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetNamedRenderbufferParameterivEXT(GLuint renderbuffer, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetPointerIndexedvEXT(GLenum target, GLuint index, GLvoid **data);
REGAL_DECL void REGAL_CALL plugin_glGetPointeri_vEXT(GLenum pname, GLuint index, GLvoid **params);
REGAL_DECL void REGAL_CALL plugin_glGetTextureImageEXT(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glGetTextureLevelParameterfvEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetTextureLevelParameterivEXT(GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexArrayIntegeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLint *param);
REGAL_DECL void REGAL_CALL plugin_glGetVertexArrayIntegervEXT(GLuint vaobj, GLenum pname, GLint *param);
REGAL_DECL void REGAL_CALL plugin_glGetVertexArrayPointeri_vEXT(GLuint vaobj, GLuint index, GLenum pname, GLvoid **param);
REGAL_DECL void REGAL_CALL plugin_glGetVertexArrayPointervEXT(GLuint vaobj, GLenum pname, GLvoid **param);
REGAL_DECL void REGAL_CALL plugin_glMatrixFrustumEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
REGAL_DECL void REGAL_CALL plugin_glMatrixLoadIdentityEXT(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glMatrixLoadTransposedEXT(GLenum mode, const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glMatrixLoadTransposefEXT(GLenum mode, const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glMatrixLoaddEXT(GLenum mode, const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glMatrixLoadfEXT(GLenum mode, const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glMatrixMultTransposedEXT(GLenum mode, const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glMatrixMultTransposefEXT(GLenum mode, const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glMatrixMultdEXT(GLenum mode, const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glMatrixMultfEXT(GLenum mode, const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glMatrixOrthoEXT(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
REGAL_DECL void REGAL_CALL plugin_glMatrixPopEXT(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glMatrixPushEXT(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glMatrixRotatedEXT(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glMatrixRotatefEXT(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glMatrixScaledEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glMatrixScalefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glMatrixTranslatedEXT(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glMatrixTranslatefEXT(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glMultiTexBufferEXT(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoordPointerEXT(GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glMultiTexEnvfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexEnvfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glMultiTexEnviEXT(GLenum texunit, GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexEnvivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glMultiTexGendEXT(GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexGendvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glMultiTexGenfEXT(GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexGenfvEXT(GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glMultiTexGeniEXT(GLenum texunit, GLenum coord, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexGenivEXT(GLenum texunit, GLenum coord, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glMultiTexImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glMultiTexImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glMultiTexImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glMultiTexParameterIivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glMultiTexParameterIuivEXT(GLenum texunit, GLenum target, GLenum pname, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glMultiTexParameterfEXT(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexParameterfvEXT(GLenum texunit, GLenum target, GLenum pname, const GLfloat *param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexParameteriEXT(GLenum texunit, GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexParameterivEXT(GLenum texunit, GLenum target, GLenum pname, const GLint *param);
REGAL_DECL void REGAL_CALL plugin_glMultiTexRenderbufferEXT(GLenum texunit, GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glMultiTexSubImage1DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glMultiTexSubImage2DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glMultiTexSubImage3DEXT(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glNamedBufferDataEXT(GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage);
REGAL_DECL void REGAL_CALL plugin_glNamedBufferSubDataEXT(GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glNamedCopyBufferSubDataEXT(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL plugin_glNamedFramebufferRenderbufferEXT(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glNamedFramebufferTexture1DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glNamedFramebufferTexture2DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glNamedFramebufferTexture3DEXT(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
REGAL_DECL void REGAL_CALL plugin_glNamedFramebufferTextureEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glNamedFramebufferTextureFaceEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
REGAL_DECL void REGAL_CALL plugin_glNamedFramebufferTextureLayerEXT(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameter4dEXT(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameter4dvEXT(GLuint program, GLenum target, GLuint index, const GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameter4fEXT(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameter4fvEXT(GLuint program, GLenum target, GLuint index, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameterI4iEXT(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameterI4ivEXT(GLuint program, GLenum target, GLuint index, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameterI4uiEXT(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameterI4uivEXT(GLuint program, GLenum target, GLuint index, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParameters4fvEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParametersI4ivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramLocalParametersI4uivEXT(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glNamedProgramStringEXT(GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string);
REGAL_DECL void REGAL_CALL plugin_glNamedRenderbufferStorageEXT(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glNamedRenderbufferStorageMultisampleCoverageEXT(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glNamedRenderbufferStorageMultisampleEXT(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1dEXT(GLuint program, GLint location, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1fEXT(GLuint program, GLint location, GLfloat v0);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1iEXT(GLuint program, GLint location, GLint v0);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1uiEXT(GLuint program, GLint location, GLuint v0);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2dEXT(GLuint program, GLint location, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2iEXT(GLuint program, GLint location, GLint v0, GLint v1);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4dEXT(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4dvEXT(GLuint program, GLint location, GLsizei count, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4fEXT(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4iEXT(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4uiEXT(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4uivEXT(GLuint program, GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix2x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3x4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix3x4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4x2dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4x2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4x3dvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformMatrix4x3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glPushClientAttribDefaultEXT(GLbitfield mask);
REGAL_DECL void REGAL_CALL plugin_glTextureBufferEXT(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glTextureImage1DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTextureImage2DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTextureImage3DEXT(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTextureParameterIivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glTextureParameterIuivEXT(GLuint texture, GLenum target, GLenum pname, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glTextureParameterfEXT(GLuint texture, GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glTextureParameterfvEXT(GLuint texture, GLenum target, GLenum pname, const GLfloat *param);
REGAL_DECL void REGAL_CALL plugin_glTextureParameteriEXT(GLuint texture, GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glTextureParameterivEXT(GLuint texture, GLenum target, GLenum pname, const GLint *param);
REGAL_DECL void REGAL_CALL plugin_glTextureRenderbufferEXT(GLuint texture, GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glTextureSubImage1DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTextureSubImage2DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTextureSubImage3DEXT(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayEdgeFlagOffsetEXT(GLuint vaobj, GLuint buffer, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayFogCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayIndexOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayMultiTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayNormalOffsetEXT(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArraySecondaryColorOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayTexCoordOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayVertexAttribIOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayVertexAttribOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayVertexOffsetEXT(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, const GLintptr offset);
#endif

/**
 ** GL_EXT_discard_framebuffer
 **/

#if (defined(GL_EXT_DISCARD_FRAMEBUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DISCARD_FRAMEBUFFER)) && !defined(REGAL_NO_ENUM_GL_EXT_DISCARD_FRAMEBUFFER)
#define REGAL_NO_ENUM_GL_EXT_DISCARD_FRAMEBUFFER
#endif

#if (defined(GL_EXT_DISCARD_FRAMEBUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DISCARD_FRAMEBUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DISCARD_FRAMEBUFFER)
#define REGAL_NO_TYPEDEF_GL_EXT_DISCARD_FRAMEBUFFER
#endif

#if (defined(GL_EXT_DISCARD_FRAMEBUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DISCARD_FRAMEBUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DISCARD_FRAMEBUFFER)
#define REGAL_NO_NAMESPACE_GL_EXT_DISCARD_FRAMEBUFFER
#endif

#if (defined(GL_EXT_DISCARD_FRAMEBUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DISCARD_FRAMEBUFFER)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DISCARD_FRAMEBUFFER)
#define REGAL_NO_PLUGIN_GL_EXT_DISCARD_FRAMEBUFFER
#endif

#if (defined(GL_EXT_DISCARD_FRAMEBUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DISCARD_FRAMEBUFFER)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DISCARD_FRAMEBUFFER)
#define REGAL_NO_DECLARATION_GL_EXT_DISCARD_FRAMEBUFFER
#endif

#ifndef GL_EXT_discard_framebuffer
#define GL_EXT_discard_framebuffer 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_DISCARD_FRAMEBUFFER
#define GL_COLOR_EXT   0x1800     /* 6144 */
#define GL_DEPTH_EXT   0x1801     /* 6145 */
#define GL_STENCIL_EXT 0x1802     /* 6146 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DISCARD_FRAMEBUFFER
typedef void (REGAL_CALL *PFNGLDISCARDFRAMEBUFFEREXTPROC)(GLenum target, GLsizei numAttachments, const GLenum *attachments);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DISCARD_FRAMEBUFFER
#define glDiscardFramebufferEXT             rglDiscardFramebufferEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DISCARD_FRAMEBUFFER
REGAL_DECL void REGAL_CALL glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DISCARD_FRAMEBUFFER
REGAL_DECL void REGAL_CALL plugin_glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments);
#endif

/**
 ** GL_EXT_disjoint_timer_query
 **/

#if (defined(GL_EXT_DISJOINT_TIMER_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DISJOINT_TIMER_QUERY)) && !defined(REGAL_NO_ENUM_GL_EXT_DISJOINT_TIMER_QUERY)
#define REGAL_NO_ENUM_GL_EXT_DISJOINT_TIMER_QUERY
#endif

#if (defined(GL_EXT_DISJOINT_TIMER_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DISJOINT_TIMER_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DISJOINT_TIMER_QUERY)
#define REGAL_NO_TYPEDEF_GL_EXT_DISJOINT_TIMER_QUERY
#endif

#if (defined(GL_EXT_DISJOINT_TIMER_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DISJOINT_TIMER_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DISJOINT_TIMER_QUERY)
#define REGAL_NO_NAMESPACE_GL_EXT_DISJOINT_TIMER_QUERY
#endif

#if (defined(GL_EXT_DISJOINT_TIMER_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DISJOINT_TIMER_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DISJOINT_TIMER_QUERY)
#define REGAL_NO_PLUGIN_GL_EXT_DISJOINT_TIMER_QUERY
#endif

#if (defined(GL_EXT_DISJOINT_TIMER_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DISJOINT_TIMER_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DISJOINT_TIMER_QUERY)
#define REGAL_NO_DECLARATION_GL_EXT_DISJOINT_TIMER_QUERY
#endif

#ifndef GL_EXT_disjoint_timer_query
#define GL_EXT_disjoint_timer_query 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_DISJOINT_TIMER_QUERY
#define GL_QUERY_COUNTER_BITS_EXT 0x8864     /* 34916 */
#define GL_TIMESTAMP_EXT          0x8e28     /* 36392 */
#define GL_GPU_DISJOINT_EXT       0x8fbb     /* 36795 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DISJOINT_TIMER_QUERY
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTIVEXTPROC)(GLuint id, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLQUERYCOUNTEREXTPROC)(GLuint id, GLenum target);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DISJOINT_TIMER_QUERY
#define glGetQueryObjectivEXT               rglGetQueryObjectivEXT
#define glQueryCounterEXT                   rglQueryCounterEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DISJOINT_TIMER_QUERY
REGAL_DECL void REGAL_CALL glGetQueryObjectivEXT(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glQueryCounterEXT(GLuint id, GLenum target);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DISJOINT_TIMER_QUERY
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjectivEXT(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glQueryCounterEXT(GLuint id, GLenum target);
#endif

/**
 ** GL_EXT_draw_buffers2
 **/

#if (defined(GL_EXT_DRAW_BUFFERS2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DRAW_BUFFERS2)) && !defined(REGAL_NO_ENUM_GL_EXT_DRAW_BUFFERS2)
#define REGAL_NO_ENUM_GL_EXT_DRAW_BUFFERS2
#endif

#if (defined(GL_EXT_DRAW_BUFFERS2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DRAW_BUFFERS2)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DRAW_BUFFERS2)
#define REGAL_NO_TYPEDEF_GL_EXT_DRAW_BUFFERS2
#endif

#if (defined(GL_EXT_DRAW_BUFFERS2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DRAW_BUFFERS2)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DRAW_BUFFERS2)
#define REGAL_NO_NAMESPACE_GL_EXT_DRAW_BUFFERS2
#endif

#if (defined(GL_EXT_DRAW_BUFFERS2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DRAW_BUFFERS2)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DRAW_BUFFERS2)
#define REGAL_NO_PLUGIN_GL_EXT_DRAW_BUFFERS2
#endif

#if (defined(GL_EXT_DRAW_BUFFERS2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DRAW_BUFFERS2)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DRAW_BUFFERS2)
#define REGAL_NO_DECLARATION_GL_EXT_DRAW_BUFFERS2
#endif

#ifndef GL_EXT_draw_buffers2
#define GL_EXT_draw_buffers2 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DRAW_BUFFERS2
typedef GLboolean (REGAL_CALL *PFNGLISENABLEDINDEXEDEXTPROC)(GLenum target, GLuint index);
typedef void (REGAL_CALL *PFNGLCOLORMASKINDEXEDEXTPROC)(GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
typedef void (REGAL_CALL *PFNGLDISABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
typedef void (REGAL_CALL *PFNGLENABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
typedef void (REGAL_CALL *PFNGLGETBOOLEANINDEXEDVEXTPROC)(GLenum value, GLuint index, GLboolean *data);
typedef void (REGAL_CALL *PFNGLGETINTEGERINDEXEDVEXTPROC)(GLenum value, GLuint index, GLint *data);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DRAW_BUFFERS2
#define glColorMaskIndexedEXT               rglColorMaskIndexedEXT
#define glDisableIndexedEXT                 rglDisableIndexedEXT
#define glEnableIndexedEXT                  rglEnableIndexedEXT
#define glGetBooleanIndexedvEXT             rglGetBooleanIndexedvEXT
#define glGetIntegerIndexedvEXT             rglGetIntegerIndexedvEXT
#define glIsEnabledIndexedEXT               rglIsEnabledIndexedEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DRAW_BUFFERS2
REGAL_DECL GLboolean REGAL_CALL glIsEnabledIndexedEXT(GLenum target, GLuint index);
REGAL_DECL void REGAL_CALL glColorMaskIndexedEXT(GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
REGAL_DECL void REGAL_CALL glDisableIndexedEXT(GLenum target, GLuint index);
REGAL_DECL void REGAL_CALL glEnableIndexedEXT(GLenum target, GLuint index);
REGAL_DECL void REGAL_CALL glGetBooleanIndexedvEXT(GLenum value, GLuint index, GLboolean *data);
REGAL_DECL void REGAL_CALL glGetIntegerIndexedvEXT(GLenum value, GLuint index, GLint *data);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DRAW_BUFFERS2
REGAL_DECL GLboolean REGAL_CALL plugin_glIsEnabledIndexedEXT(GLenum target, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glColorMaskIndexedEXT(GLuint buf, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
REGAL_DECL void REGAL_CALL plugin_glDisableIndexedEXT(GLenum target, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glEnableIndexedEXT(GLenum target, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glGetBooleanIndexedvEXT(GLenum value, GLuint index, GLboolean *data);
REGAL_DECL void REGAL_CALL plugin_glGetIntegerIndexedvEXT(GLenum value, GLuint index, GLint *data);
#endif

/**
 ** GL_EXT_draw_instanced
 **/

#if (defined(GL_EXT_DRAW_INSTANCED) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DRAW_INSTANCED)) && !defined(REGAL_NO_ENUM_GL_EXT_DRAW_INSTANCED)
#define REGAL_NO_ENUM_GL_EXT_DRAW_INSTANCED
#endif

#if (defined(GL_EXT_DRAW_INSTANCED) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DRAW_INSTANCED)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DRAW_INSTANCED)
#define REGAL_NO_TYPEDEF_GL_EXT_DRAW_INSTANCED
#endif

#if (defined(GL_EXT_DRAW_INSTANCED) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DRAW_INSTANCED)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DRAW_INSTANCED)
#define REGAL_NO_NAMESPACE_GL_EXT_DRAW_INSTANCED
#endif

#if (defined(GL_EXT_DRAW_INSTANCED) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DRAW_INSTANCED)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DRAW_INSTANCED)
#define REGAL_NO_PLUGIN_GL_EXT_DRAW_INSTANCED
#endif

#if (defined(GL_EXT_DRAW_INSTANCED) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DRAW_INSTANCED)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DRAW_INSTANCED)
#define REGAL_NO_DECLARATION_GL_EXT_DRAW_INSTANCED
#endif

#ifndef GL_EXT_draw_instanced
#define GL_EXT_draw_instanced 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DRAW_INSTANCED
typedef void (REGAL_CALL *PFNGLDRAWARRAYSINSTANCEDEXTPROC)(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSINSTANCEDEXTPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DRAW_INSTANCED
#define glDrawArraysInstancedEXT            rglDrawArraysInstancedEXT
#define glDrawElementsInstancedEXT          rglDrawElementsInstancedEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DRAW_INSTANCED
REGAL_DECL void REGAL_CALL glDrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
REGAL_DECL void REGAL_CALL glDrawElementsInstancedEXT(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DRAW_INSTANCED
REGAL_DECL void REGAL_CALL plugin_glDrawArraysInstancedEXT(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glDrawElementsInstancedEXT(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
#endif

/**
 ** GL_EXT_draw_range_elements
 **/

#if (defined(GL_EXT_DRAW_RANGE_ELEMENTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_DRAW_RANGE_ELEMENTS)) && !defined(REGAL_NO_ENUM_GL_EXT_DRAW_RANGE_ELEMENTS)
#define REGAL_NO_ENUM_GL_EXT_DRAW_RANGE_ELEMENTS
#endif

#if (defined(GL_EXT_DRAW_RANGE_ELEMENTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_DRAW_RANGE_ELEMENTS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_DRAW_RANGE_ELEMENTS)
#define REGAL_NO_TYPEDEF_GL_EXT_DRAW_RANGE_ELEMENTS
#endif

#if (defined(GL_EXT_DRAW_RANGE_ELEMENTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_DRAW_RANGE_ELEMENTS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_DRAW_RANGE_ELEMENTS)
#define REGAL_NO_NAMESPACE_GL_EXT_DRAW_RANGE_ELEMENTS
#endif

#if (defined(GL_EXT_DRAW_RANGE_ELEMENTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_DRAW_RANGE_ELEMENTS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_DRAW_RANGE_ELEMENTS)
#define REGAL_NO_PLUGIN_GL_EXT_DRAW_RANGE_ELEMENTS
#endif

#if (defined(GL_EXT_DRAW_RANGE_ELEMENTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_DRAW_RANGE_ELEMENTS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_DRAW_RANGE_ELEMENTS)
#define REGAL_NO_DECLARATION_GL_EXT_DRAW_RANGE_ELEMENTS
#endif

#ifndef GL_EXT_draw_range_elements
#define GL_EXT_draw_range_elements 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_DRAW_RANGE_ELEMENTS
#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80e8     /* 33000 */
#define GL_MAX_ELEMENTS_INDICES_EXT  0x80e9     /* 33001 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_DRAW_RANGE_ELEMENTS
typedef void (REGAL_CALL *PFNGLDRAWRANGEELEMENTSEXTPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_DRAW_RANGE_ELEMENTS
#define glDrawRangeElementsEXT              rglDrawRangeElementsEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_DRAW_RANGE_ELEMENTS
REGAL_DECL void REGAL_CALL glDrawRangeElementsEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_DRAW_RANGE_ELEMENTS
REGAL_DECL void REGAL_CALL plugin_glDrawRangeElementsEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
#endif

/**
 ** GL_EXT_fog_coord
 **/

#if (defined(GL_EXT_FOG_COORD) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_FOG_COORD)) && !defined(REGAL_NO_ENUM_GL_EXT_FOG_COORD)
#define REGAL_NO_ENUM_GL_EXT_FOG_COORD
#endif

#if (defined(GL_EXT_FOG_COORD) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_FOG_COORD)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_FOG_COORD)
#define REGAL_NO_TYPEDEF_GL_EXT_FOG_COORD
#endif

#if (defined(GL_EXT_FOG_COORD) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_FOG_COORD)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_FOG_COORD)
#define REGAL_NO_NAMESPACE_GL_EXT_FOG_COORD
#endif

#if (defined(GL_EXT_FOG_COORD) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_FOG_COORD)) && !defined(REGAL_NO_PLUGIN_GL_EXT_FOG_COORD)
#define REGAL_NO_PLUGIN_GL_EXT_FOG_COORD
#endif

#if (defined(GL_EXT_FOG_COORD) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_FOG_COORD)) && !defined(REGAL_NO_DECLARATION_GL_EXT_FOG_COORD)
#define REGAL_NO_DECLARATION_GL_EXT_FOG_COORD
#endif

#ifndef GL_EXT_fog_coord
#define GL_EXT_fog_coord 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_FOG_COORD
#define GL_FOG_COORDINATE_SOURCE_EXT        0x8450     /* 33872 */
#define GL_FOG_COORDINATE_EXT               0x8451     /* 33873 */
#define GL_FRAGMENT_DEPTH_EXT               0x8452     /* 33874 */
#define GL_CURRENT_FOG_COORDINATE_EXT       0x8453     /* 33875 */
#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT    0x8454     /* 33876 */
#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT  0x8455     /* 33877 */
#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456     /* 33878 */
#define GL_FOG_COORDINATE_ARRAY_EXT         0x8457     /* 33879 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_FOG_COORD
typedef void (REGAL_CALL *PFNGLFOGCOORDDEXTPROC)(GLdouble coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDDVEXTPROC)(const GLdouble *coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDFEXTPROC)(GLfloat coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDFVEXTPROC)(const GLfloat *coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_FOG_COORD
#define glFogCoordPointerEXT                rglFogCoordPointerEXT
#define glFogCoorddEXT                      rglFogCoorddEXT
#define glFogCoorddvEXT                     rglFogCoorddvEXT
#define glFogCoordfEXT                      rglFogCoordfEXT
#define glFogCoordfvEXT                     rglFogCoordfvEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_FOG_COORD
REGAL_DECL void REGAL_CALL glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glFogCoorddEXT(GLdouble coord);
REGAL_DECL void REGAL_CALL glFogCoorddvEXT(const GLdouble *coord);
REGAL_DECL void REGAL_CALL glFogCoordfEXT(GLfloat coord);
REGAL_DECL void REGAL_CALL glFogCoordfvEXT(const GLfloat *coord);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_FOG_COORD
REGAL_DECL void REGAL_CALL plugin_glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glFogCoorddEXT(GLdouble coord);
REGAL_DECL void REGAL_CALL plugin_glFogCoorddvEXT(const GLdouble *coord);
REGAL_DECL void REGAL_CALL plugin_glFogCoordfEXT(GLfloat coord);
REGAL_DECL void REGAL_CALL plugin_glFogCoordfvEXT(const GLfloat *coord);
#endif

/**
 ** GL_EXT_fragment_lighting
 **/

#if (defined(GL_EXT_FRAGMENT_LIGHTING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_ENUM_GL_EXT_FRAGMENT_LIGHTING)
#define REGAL_NO_ENUM_GL_EXT_FRAGMENT_LIGHTING
#endif

#if (defined(GL_EXT_FRAGMENT_LIGHTING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_FRAGMENT_LIGHTING)
#define REGAL_NO_TYPEDEF_GL_EXT_FRAGMENT_LIGHTING
#endif

#if (defined(GL_EXT_FRAGMENT_LIGHTING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_FRAGMENT_LIGHTING)
#define REGAL_NO_NAMESPACE_GL_EXT_FRAGMENT_LIGHTING
#endif

#if (defined(GL_EXT_FRAGMENT_LIGHTING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_PLUGIN_GL_EXT_FRAGMENT_LIGHTING)
#define REGAL_NO_PLUGIN_GL_EXT_FRAGMENT_LIGHTING
#endif

#if (defined(GL_EXT_FRAGMENT_LIGHTING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_DECLARATION_GL_EXT_FRAGMENT_LIGHTING)
#define REGAL_NO_DECLARATION_GL_EXT_FRAGMENT_LIGHTING
#endif

#ifndef GL_EXT_fragment_lighting
#define GL_EXT_fragment_lighting 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_FRAGMENT_LIGHTING
#define GL_FRAGMENT_LIGHTING_EXT                         0x8400     /* 33792 */
#define GL_FRAGMENT_COLOR_MATERIAL_EXT                   0x8401     /* 33793 */
#define GL_FRAGMENT_COLOR_MATERIAL_FACE_EXT              0x8402     /* 33794 */
#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_EXT         0x8403     /* 33795 */
#define GL_MAX_FRAGMENT_LIGHTS_EXT                       0x8404     /* 33796 */
#define GL_MAX_ACTIVE_LIGHTS_EXT                         0x8405     /* 33797 */
#define GL_CURRENT_RASTER_NORMAL_EXT                     0x8406     /* 33798 */
#define GL_LIGHT_ENV_MODE_EXT                            0x8407     /* 33799 */
#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_EXT         0x8408     /* 33800 */
#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_EXT             0x8409     /* 33801 */
#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_EXT              0x840a     /* 33802 */
#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_EXT 0x840b     /* 33803 */
#define GL_FRAGMENT_LIGHT0_EXT                           0x840c     /* 33804 */
#define GL_FRAGMENT_LIGHT1_EXT                           0x840d     /* 33805 */
#define GL_FRAGMENT_LIGHT2_EXT                           0x840e     /* 33806 */
#define GL_FRAGMENT_LIGHT3_EXT                           0x840f     /* 33807 */
#define GL_FRAGMENT_LIGHT4_EXT                           0x8410     /* 33808 */
#define GL_FRAGMENT_LIGHT5_EXT                           0x8411     /* 33809 */
#define GL_FRAGMENT_LIGHT6_EXT                           0x8412     /* 33810 */
#define GL_FRAGMENT_LIGHT7_EXT                           0x8413     /* 33811 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_FRAGMENT_LIGHTING
typedef void (REGAL_CALL *PFNGLFRAGMENTCOLORMATERIALEXTPROC)(GLenum face, GLenum mode);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTFEXTPROC)(GLenum light, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTFVEXTPROC)(GLenum light, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTIEXTPROC)(GLenum light, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTIVEXTPROC)(GLenum light, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTMODELFEXTPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTMODELFVEXTPROC)(GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTMODELIEXTPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTMODELIVEXTPROC)(GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTMATERIALFEXTPROC)(GLenum face, GLenum pname, const GLfloat param);
typedef void (REGAL_CALL *PFNGLFRAGMENTMATERIALFVEXTPROC)(GLenum face, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTMATERIALIEXTPROC)(GLenum face, GLenum pname, const GLint param);
typedef void (REGAL_CALL *PFNGLFRAGMENTMATERIALIVEXTPROC)(GLenum face, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLGETFRAGMENTLIGHTFVEXTPROC)(GLenum light, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETFRAGMENTLIGHTIVEXTPROC)(GLenum light, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETFRAGMENTMATERIALFVEXTPROC)(GLenum face, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETFRAGMENTMATERIALIVEXTPROC)(GLenum face, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLLIGHTENVIEXTPROC)(GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_FRAGMENT_LIGHTING
#define glFragmentColorMaterialEXT          rglFragmentColorMaterialEXT
#define glFragmentLightModelfEXT            rglFragmentLightModelfEXT
#define glFragmentLightModelfvEXT           rglFragmentLightModelfvEXT
#define glFragmentLightModeliEXT            rglFragmentLightModeliEXT
#define glFragmentLightModelivEXT           rglFragmentLightModelivEXT
#define glFragmentLightfEXT                 rglFragmentLightfEXT
#define glFragmentLightfvEXT                rglFragmentLightfvEXT
#define glFragmentLightiEXT                 rglFragmentLightiEXT
#define glFragmentLightivEXT                rglFragmentLightivEXT
#define glFragmentMaterialfEXT              rglFragmentMaterialfEXT
#define glFragmentMaterialfvEXT             rglFragmentMaterialfvEXT
#define glFragmentMaterialiEXT              rglFragmentMaterialiEXT
#define glFragmentMaterialivEXT             rglFragmentMaterialivEXT
#define glGetFragmentLightfvEXT             rglGetFragmentLightfvEXT
#define glGetFragmentLightivEXT             rglGetFragmentLightivEXT
#define glGetFragmentMaterialfvEXT          rglGetFragmentMaterialfvEXT
#define glGetFragmentMaterialivEXT          rglGetFragmentMaterialivEXT
#define glLightEnviEXT                      rglLightEnviEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_FRAGMENT_LIGHTING
REGAL_DECL void REGAL_CALL glFragmentColorMaterialEXT(GLenum face, GLenum mode);
REGAL_DECL void REGAL_CALL glFragmentLightModelfEXT(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glFragmentLightModelfvEXT(GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glFragmentLightModeliEXT(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glFragmentLightModelivEXT(GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glFragmentLightfEXT(GLenum light, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glFragmentLightfvEXT(GLenum light, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glFragmentLightiEXT(GLenum light, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glFragmentLightivEXT(GLenum light, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glFragmentMaterialfEXT(GLenum face, GLenum pname, const GLfloat param);
REGAL_DECL void REGAL_CALL glFragmentMaterialfvEXT(GLenum face, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glFragmentMaterialiEXT(GLenum face, GLenum pname, const GLint param);
REGAL_DECL void REGAL_CALL glFragmentMaterialivEXT(GLenum face, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glGetFragmentLightfvEXT(GLenum light, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetFragmentLightivEXT(GLenum light, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetFragmentMaterialfvEXT(GLenum face, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glGetFragmentMaterialivEXT(GLenum face, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glLightEnviEXT(GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_FRAGMENT_LIGHTING
REGAL_DECL void REGAL_CALL plugin_glFragmentColorMaterialEXT(GLenum face, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightModelfEXT(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightModelfvEXT(GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightModeliEXT(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightModelivEXT(GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightfEXT(GLenum light, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightfvEXT(GLenum light, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightiEXT(GLenum light, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightivEXT(GLenum light, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentMaterialfEXT(GLenum face, GLenum pname, const GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glFragmentMaterialfvEXT(GLenum face, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentMaterialiEXT(GLenum face, GLenum pname, const GLint param);
REGAL_DECL void REGAL_CALL plugin_glFragmentMaterialivEXT(GLenum face, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetFragmentLightfvEXT(GLenum light, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetFragmentLightivEXT(GLenum light, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetFragmentMaterialfvEXT(GLenum face, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetFragmentMaterialivEXT(GLenum face, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glLightEnviEXT(GLenum pname, GLint param);
#endif

/**
 ** GL_EXT_framebuffer_blit
 **/

#if (defined(GL_EXT_FRAMEBUFFER_BLIT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_BLIT)
#define REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_EXT_FRAMEBUFFER_BLIT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_BLIT)
#define REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_EXT_FRAMEBUFFER_BLIT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_BLIT)
#define REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_EXT_FRAMEBUFFER_BLIT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_BLIT)
#define REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_EXT_FRAMEBUFFER_BLIT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_BLIT)
#define REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_BLIT
#endif

#ifndef GL_EXT_framebuffer_blit
#define GL_EXT_framebuffer_blit 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_BLIT
#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8ca6     /* 36006 */
#define GL_READ_FRAMEBUFFER_EXT         0x8ca8     /* 36008 */
#define GL_DRAW_FRAMEBUFFER_EXT         0x8ca9     /* 36009 */
#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8caa     /* 36010 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_BLIT
typedef void (REGAL_CALL *PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_BLIT
#define glBlitFramebufferEXT                rglBlitFramebufferEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_BLIT
REGAL_DECL void REGAL_CALL glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_BLIT
REGAL_DECL void REGAL_CALL plugin_glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

/**
 ** GL_EXT_framebuffer_multisample
 **/

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_MULTISAMPLE
#endif

#ifndef GL_EXT_framebuffer_multisample
#define GL_EXT_framebuffer_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_MULTISAMPLE
#define GL_RENDERBUFFER_SAMPLES_EXT               0x8cab     /* 36011 */
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8d56     /* 36182 */
#define GL_MAX_SAMPLES_EXT                        0x8d57     /* 36183 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_MULTISAMPLE
#define glRenderbufferStorageMultisampleEXT rglRenderbufferStorageMultisampleEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_MULTISAMPLE
REGAL_DECL void REGAL_CALL glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

/**
 ** GL_EXT_framebuffer_multisample_blit_scaled
 **/

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)) && !defined(REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)
#define REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED
#endif

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)
#define REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED
#endif

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)
#define REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED
#endif

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)) && !defined(REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)
#define REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED
#endif

#if (defined(GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)) && !defined(REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED)
#define REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED
#endif

#ifndef GL_EXT_framebuffer_multisample_blit_scaled
#define GL_EXT_framebuffer_multisample_blit_scaled 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_MULTISAMPLE_BLIT_SCALED
#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90ba     /* 37050 */
#define GL_SCALED_RESOLVE_NICEST_EXT  0x90bb     /* 37051 */
#endif

/**
 ** GL_EXT_framebuffer_object
 **/

#if (defined(GL_EXT_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_EXT_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_EXT_FRAMEBUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_EXT_FRAMEBUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_EXT_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_OBJECT
#endif

#ifndef GL_EXT_framebuffer_object
#define GL_EXT_framebuffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_OBJECT
#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT                0x506      /* 1286 */
#define GL_MAX_RENDERBUFFER_SIZE_EXT                        0x84e8     /* 34024 */
#define GL_FRAMEBUFFER_BINDING_EXT                          0x8ca6     /* 36006 */
#define GL_RENDERBUFFER_BINDING_EXT                         0x8ca7     /* 36007 */
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT           0x8cd0     /* 36048 */
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT           0x8cd1     /* 36049 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT         0x8cd2     /* 36050 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8cd3     /* 36051 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT    0x8cd4     /* 36052 */
#define GL_FRAMEBUFFER_COMPLETE_EXT                         0x8cd5     /* 36053 */
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT            0x8cd6     /* 36054 */
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT    0x8cd7     /* 36055 */
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT            0x8cd9     /* 36057 */
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT               0x8cda     /* 36058 */
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT           0x8cdb     /* 36059 */
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT           0x8cdc     /* 36060 */
#define GL_FRAMEBUFFER_UNSUPPORTED_EXT                      0x8cdd     /* 36061 */
#define GL_MAX_COLOR_ATTACHMENTS_EXT                        0x8cdf     /* 36063 */
#define GL_COLOR_ATTACHMENT0_EXT                            0x8ce0     /* 36064 */
#define GL_COLOR_ATTACHMENT1_EXT                            0x8ce1     /* 36065 */
#define GL_COLOR_ATTACHMENT2_EXT                            0x8ce2     /* 36066 */
#define GL_COLOR_ATTACHMENT3_EXT                            0x8ce3     /* 36067 */
#define GL_COLOR_ATTACHMENT4_EXT                            0x8ce4     /* 36068 */
#define GL_COLOR_ATTACHMENT5_EXT                            0x8ce5     /* 36069 */
#define GL_COLOR_ATTACHMENT6_EXT                            0x8ce6     /* 36070 */
#define GL_COLOR_ATTACHMENT7_EXT                            0x8ce7     /* 36071 */
#define GL_COLOR_ATTACHMENT8_EXT                            0x8ce8     /* 36072 */
#define GL_COLOR_ATTACHMENT9_EXT                            0x8ce9     /* 36073 */
#define GL_COLOR_ATTACHMENT10_EXT                           0x8cea     /* 36074 */
#define GL_COLOR_ATTACHMENT11_EXT                           0x8ceb     /* 36075 */
#define GL_COLOR_ATTACHMENT12_EXT                           0x8cec     /* 36076 */
#define GL_COLOR_ATTACHMENT13_EXT                           0x8ced     /* 36077 */
#define GL_COLOR_ATTACHMENT14_EXT                           0x8cee     /* 36078 */
#define GL_COLOR_ATTACHMENT15_EXT                           0x8cef     /* 36079 */
#define GL_DEPTH_ATTACHMENT_EXT                             0x8d00     /* 36096 */
#define GL_STENCIL_ATTACHMENT_EXT                           0x8d20     /* 36128 */
#define GL_FRAMEBUFFER_EXT                                  0x8d40     /* 36160 */
#define GL_RENDERBUFFER_EXT                                 0x8d41     /* 36161 */
#define GL_RENDERBUFFER_WIDTH_EXT                           0x8d42     /* 36162 */
#define GL_RENDERBUFFER_HEIGHT_EXT                          0x8d43     /* 36163 */
#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT                 0x8d44     /* 36164 */
#define GL_STENCIL_INDEX1_EXT                               0x8d46     /* 36166 */
#define GL_STENCIL_INDEX4_EXT                               0x8d47     /* 36167 */
#define GL_STENCIL_INDEX8_EXT                               0x8d48     /* 36168 */
#define GL_STENCIL_INDEX16_EXT                              0x8d49     /* 36169 */
#define GL_RENDERBUFFER_RED_SIZE_EXT                        0x8d50     /* 36176 */
#define GL_RENDERBUFFER_GREEN_SIZE_EXT                      0x8d51     /* 36177 */
#define GL_RENDERBUFFER_BLUE_SIZE_EXT                       0x8d52     /* 36178 */
#define GL_RENDERBUFFER_ALPHA_SIZE_EXT                      0x8d53     /* 36179 */
#define GL_RENDERBUFFER_DEPTH_SIZE_EXT                      0x8d54     /* 36180 */
#define GL_RENDERBUFFER_STENCIL_SIZE_EXT                    0x8d55     /* 36181 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
typedef GLboolean (REGAL_CALL *PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
typedef GLenum (REGAL_CALL *PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
typedef void (REGAL_CALL *PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint *framebuffers);
typedef void (REGAL_CALL *PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint *renderbuffers);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
typedef void (REGAL_CALL *PFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint *framebuffers);
typedef void (REGAL_CALL *PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint *renderbuffers);
typedef void (REGAL_CALL *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_OBJECT
#define glBindFramebufferEXT                rglBindFramebufferEXT
#define glBindRenderbufferEXT               rglBindRenderbufferEXT
#define glCheckFramebufferStatusEXT         rglCheckFramebufferStatusEXT
#define glDeleteFramebuffersEXT             rglDeleteFramebuffersEXT
#define glDeleteRenderbuffersEXT            rglDeleteRenderbuffersEXT
#define glFramebufferRenderbufferEXT        rglFramebufferRenderbufferEXT
#define glFramebufferTexture1DEXT           rglFramebufferTexture1DEXT
#define glFramebufferTexture2DEXT           rglFramebufferTexture2DEXT
#define glFramebufferTexture3DEXT           rglFramebufferTexture3DEXT
#define glGenFramebuffersEXT                rglGenFramebuffersEXT
#define glGenRenderbuffersEXT               rglGenRenderbuffersEXT
#define glGenerateMipmapEXT                 rglGenerateMipmapEXT
#define glGetFramebufferAttachmentParameterivEXT rglGetFramebufferAttachmentParameterivEXT
#define glGetRenderbufferParameterivEXT     rglGetRenderbufferParameterivEXT
#define glIsFramebufferEXT                  rglIsFramebufferEXT
#define glIsRenderbufferEXT                 rglIsRenderbufferEXT
#define glRenderbufferStorageEXT            rglRenderbufferStorageEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_OBJECT
REGAL_DECL GLboolean REGAL_CALL glIsFramebufferEXT(GLuint framebuffer);
REGAL_DECL GLboolean REGAL_CALL glIsRenderbufferEXT(GLuint renderbuffer);
REGAL_DECL GLenum REGAL_CALL glCheckFramebufferStatusEXT(GLenum target);
REGAL_DECL void REGAL_CALL glBindFramebufferEXT(GLenum target, GLuint framebuffer);
REGAL_DECL void REGAL_CALL glBindRenderbufferEXT(GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers);
REGAL_DECL void REGAL_CALL glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
REGAL_DECL void REGAL_CALL glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers);
REGAL_DECL void REGAL_CALL glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL glGenerateMipmapEXT(GLenum target);
REGAL_DECL void REGAL_CALL glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glIsFramebufferEXT(GLuint framebuffer);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsRenderbufferEXT(GLuint renderbuffer);
REGAL_DECL GLenum REGAL_CALL plugin_glCheckFramebufferStatusEXT(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glBindFramebufferEXT(GLenum target, GLuint framebuffer);
REGAL_DECL void REGAL_CALL plugin_glBindRenderbufferEXT(GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers);
REGAL_DECL void REGAL_CALL plugin_glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL plugin_glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
REGAL_DECL void REGAL_CALL plugin_glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers);
REGAL_DECL void REGAL_CALL plugin_glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL plugin_glGenerateMipmapEXT(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
#endif

/**
 ** GL_EXT_framebuffer_sRGB
 **/

#if (defined(GL_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(GL_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_TYPEDEF_GL_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(GL_EXT_FRAMEBUFFER_SRGB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_NAMESPACE_GL_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(GL_EXT_FRAMEBUFFER_SRGB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_PLUGIN_GL_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(GL_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_DECLARATION_GL_EXT_FRAMEBUFFER_SRGB
#endif

#ifndef GL_EXT_framebuffer_sRGB
#define GL_EXT_framebuffer_sRGB 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_FRAMEBUFFER_SRGB
#define GL_FRAMEBUFFER_SRGB_EXT         0x8db9     /* 36281 */
#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8dba     /* 36282 */
#endif

/**
 ** GL_EXT_geometry_shader4
 **/

#if (defined(GL_EXT_GEOMETRY_SHADER4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_GEOMETRY_SHADER4)) && !defined(REGAL_NO_ENUM_GL_EXT_GEOMETRY_SHADER4)
#define REGAL_NO_ENUM_GL_EXT_GEOMETRY_SHADER4
#endif

#if (defined(GL_EXT_GEOMETRY_SHADER4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_GEOMETRY_SHADER4)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_GEOMETRY_SHADER4)
#define REGAL_NO_TYPEDEF_GL_EXT_GEOMETRY_SHADER4
#endif

#if (defined(GL_EXT_GEOMETRY_SHADER4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_GEOMETRY_SHADER4)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_GEOMETRY_SHADER4)
#define REGAL_NO_NAMESPACE_GL_EXT_GEOMETRY_SHADER4
#endif

#if (defined(GL_EXT_GEOMETRY_SHADER4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_GEOMETRY_SHADER4)) && !defined(REGAL_NO_PLUGIN_GL_EXT_GEOMETRY_SHADER4)
#define REGAL_NO_PLUGIN_GL_EXT_GEOMETRY_SHADER4
#endif

#if (defined(GL_EXT_GEOMETRY_SHADER4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_GEOMETRY_SHADER4)) && !defined(REGAL_NO_DECLARATION_GL_EXT_GEOMETRY_SHADER4)
#define REGAL_NO_DECLARATION_GL_EXT_GEOMETRY_SHADER4
#endif

#ifndef GL_EXT_geometry_shader4
#define GL_EXT_geometry_shader4 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_GEOMETRY_SHADER4
#define GL_PROGRAM_POINT_SIZE_EXT                   0x8642     /* 34370 */
#define GL_MAX_VARYING_COMPONENTS_EXT               0x8b4b     /* 35659 */
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT     0x8c29     /* 35881 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8cd4     /* 36052 */
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT       0x8da7     /* 36263 */
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8da8     /* 36264 */
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT   0x8da9     /* 36265 */
#define GL_GEOMETRY_SHADER_EXT                      0x8dd9     /* 36313 */
#define GL_GEOMETRY_VERTICES_OUT_EXT                0x8dda     /* 36314 */
#define GL_GEOMETRY_INPUT_TYPE_EXT                  0x8ddb     /* 36315 */
#define GL_GEOMETRY_OUTPUT_TYPE_EXT                 0x8ddc     /* 36316 */
#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT      0x8ddd     /* 36317 */
#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT        0x8dde     /* 36318 */
#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT      0x8ddf     /* 36319 */
#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT         0x8de0     /* 36320 */
#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8de1     /* 36321 */
#define GL_LINES_ADJACENCY_EXT                      0xa        /* 10 */
#define GL_LINE_STRIP_ADJACENCY_EXT                 0xb        /* 11 */
#define GL_TRIANGLES_ADJACENCY_EXT                  0xc        /* 12 */
#define GL_TRIANGLE_STRIP_ADJACENCY_EXT             0xd        /* 13 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_GEOMETRY_SHADER4
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTUREEXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETERIEXTPROC)(GLuint program, GLenum pname, GLint value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_GEOMETRY_SHADER4
#define glFramebufferTextureEXT             rglFramebufferTextureEXT
#define glFramebufferTextureFaceEXT         rglFramebufferTextureFaceEXT
#define glProgramParameteriEXT              rglProgramParameteriEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_GEOMETRY_SHADER4
REGAL_DECL void REGAL_CALL glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glFramebufferTextureFaceEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
REGAL_DECL void REGAL_CALL glProgramParameteriEXT(GLuint program, GLenum pname, GLint value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_GEOMETRY_SHADER4
REGAL_DECL void REGAL_CALL plugin_glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTextureFaceEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
REGAL_DECL void REGAL_CALL plugin_glProgramParameteriEXT(GLuint program, GLenum pname, GLint value);
#endif

/**
 ** GL_EXT_gpu_program_parameters
 **/

#if (defined(GL_EXT_GPU_PROGRAM_PARAMETERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_GPU_PROGRAM_PARAMETERS)) && !defined(REGAL_NO_ENUM_GL_EXT_GPU_PROGRAM_PARAMETERS)
#define REGAL_NO_ENUM_GL_EXT_GPU_PROGRAM_PARAMETERS
#endif

#if (defined(GL_EXT_GPU_PROGRAM_PARAMETERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_GPU_PROGRAM_PARAMETERS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_GPU_PROGRAM_PARAMETERS)
#define REGAL_NO_TYPEDEF_GL_EXT_GPU_PROGRAM_PARAMETERS
#endif

#if (defined(GL_EXT_GPU_PROGRAM_PARAMETERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_GPU_PROGRAM_PARAMETERS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_GPU_PROGRAM_PARAMETERS)
#define REGAL_NO_NAMESPACE_GL_EXT_GPU_PROGRAM_PARAMETERS
#endif

#if (defined(GL_EXT_GPU_PROGRAM_PARAMETERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_GPU_PROGRAM_PARAMETERS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_GPU_PROGRAM_PARAMETERS)
#define REGAL_NO_PLUGIN_GL_EXT_GPU_PROGRAM_PARAMETERS
#endif

#if (defined(GL_EXT_GPU_PROGRAM_PARAMETERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_GPU_PROGRAM_PARAMETERS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_GPU_PROGRAM_PARAMETERS)
#define REGAL_NO_DECLARATION_GL_EXT_GPU_PROGRAM_PARAMETERS
#endif

#ifndef GL_EXT_gpu_program_parameters
#define GL_EXT_gpu_program_parameters 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_GPU_PROGRAM_PARAMETERS
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_GPU_PROGRAM_PARAMETERS
#define glProgramEnvParameters4fvEXT        rglProgramEnvParameters4fvEXT
#define glProgramLocalParameters4fvEXT      rglProgramLocalParameters4fvEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_GPU_PROGRAM_PARAMETERS
REGAL_DECL void REGAL_CALL glProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params);
REGAL_DECL void REGAL_CALL glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_GPU_PROGRAM_PARAMETERS
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params);
#endif

/**
 ** GL_EXT_gpu_shader4
 **/

#if (defined(GL_EXT_GPU_SHADER4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_GPU_SHADER4)) && !defined(REGAL_NO_ENUM_GL_EXT_GPU_SHADER4)
#define REGAL_NO_ENUM_GL_EXT_GPU_SHADER4
#endif

#if (defined(GL_EXT_GPU_SHADER4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_GPU_SHADER4)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_GPU_SHADER4)
#define REGAL_NO_TYPEDEF_GL_EXT_GPU_SHADER4
#endif

#if (defined(GL_EXT_GPU_SHADER4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_GPU_SHADER4)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_GPU_SHADER4)
#define REGAL_NO_NAMESPACE_GL_EXT_GPU_SHADER4
#endif

#if (defined(GL_EXT_GPU_SHADER4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_GPU_SHADER4)) && !defined(REGAL_NO_PLUGIN_GL_EXT_GPU_SHADER4)
#define REGAL_NO_PLUGIN_GL_EXT_GPU_SHADER4
#endif

#if (defined(GL_EXT_GPU_SHADER4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_GPU_SHADER4)) && !defined(REGAL_NO_DECLARATION_GL_EXT_GPU_SHADER4)
#define REGAL_NO_DECLARATION_GL_EXT_GPU_SHADER4
#endif

#ifndef GL_EXT_gpu_shader4
#define GL_EXT_gpu_shader4 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_GPU_SHADER4
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT   0x88fd     /* 35069 */
#define GL_SAMPLER_1D_ARRAY_EXT              0x8dc0     /* 36288 */
#define GL_SAMPLER_2D_ARRAY_EXT              0x8dc1     /* 36289 */
#define GL_SAMPLER_BUFFER_EXT                0x8dc2     /* 36290 */
#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT       0x8dc3     /* 36291 */
#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT       0x8dc4     /* 36292 */
#define GL_SAMPLER_CUBE_SHADOW_EXT           0x8dc5     /* 36293 */
#define GL_UNSIGNED_INT_VEC2_EXT             0x8dc6     /* 36294 */
#define GL_UNSIGNED_INT_VEC3_EXT             0x8dc7     /* 36295 */
#define GL_UNSIGNED_INT_VEC4_EXT             0x8dc8     /* 36296 */
#define GL_INT_SAMPLER_1D_EXT                0x8dc9     /* 36297 */
#define GL_INT_SAMPLER_2D_EXT                0x8dca     /* 36298 */
#define GL_INT_SAMPLER_3D_EXT                0x8dcb     /* 36299 */
#define GL_INT_SAMPLER_CUBE_EXT              0x8dcc     /* 36300 */
#define GL_INT_SAMPLER_2D_RECT_EXT           0x8dcd     /* 36301 */
#define GL_INT_SAMPLER_1D_ARRAY_EXT          0x8dce     /* 36302 */
#define GL_INT_SAMPLER_2D_ARRAY_EXT          0x8dcf     /* 36303 */
#define GL_INT_SAMPLER_BUFFER_EXT            0x8dd0     /* 36304 */
#define GL_UNSIGNED_INT_SAMPLER_1D_EXT       0x8dd1     /* 36305 */
#define GL_UNSIGNED_INT_SAMPLER_2D_EXT       0x8dd2     /* 36306 */
#define GL_UNSIGNED_INT_SAMPLER_3D_EXT       0x8dd3     /* 36307 */
#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT     0x8dd4     /* 36308 */
#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT  0x8dd5     /* 36309 */
#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8dd6     /* 36310 */
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8dd7     /* 36311 */
#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT   0x8dd8     /* 36312 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_GPU_SHADER4
typedef GLint (REGAL_CALL *PFNGLGETFRAGDATALOCATIONEXTPROC)(GLuint program, const GLchar *name);
typedef void (REGAL_CALL *PFNGLBINDFRAGDATALOCATIONEXTPROC)(GLuint program, GLuint color, const GLchar *name);
typedef void (REGAL_CALL *PFNGLGETUNIFORMUIVEXTPROC)(GLuint program, GLint location, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBIIVEXTPROC)(GLuint index, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBIUIVEXTPROC)(GLuint index, GLenum pname, GLuint *params);
typedef void (REGAL_CALL *PFNGLUNIFORM1UIEXTPROC)(GLint location, GLuint v0);
typedef void (REGAL_CALL *PFNGLUNIFORM1UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2UIEXTPROC)(GLint location, GLuint v0, GLuint v1);
typedef void (REGAL_CALL *PFNGLUNIFORM2UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
typedef void (REGAL_CALL *PFNGLUNIFORM3UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
typedef void (REGAL_CALL *PFNGLUNIFORM4UIVEXTPROC)(GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI1IEXTPROC)(GLuint index, GLint x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI1IVEXTPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI1UIEXTPROC)(GLuint index, GLuint x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI1UIVEXTPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI2IEXTPROC)(GLuint index, GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI2IVEXTPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI2UIEXTPROC)(GLuint index, GLuint x, GLuint y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI2UIVEXTPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI3IEXTPROC)(GLuint index, GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI3IVEXTPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI3UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI3UIVEXTPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4BVEXTPROC)(GLuint index, const GLbyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4IEXTPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4IVEXTPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4SVEXTPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4UBVEXTPROC)(GLuint index, const GLubyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4UIVEXTPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4USVEXTPROC)(GLuint index, const GLushort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBIPOINTEREXTPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_GPU_SHADER4
#define glBindFragDataLocationEXT           rglBindFragDataLocationEXT
#define glGetFragDataLocationEXT            rglGetFragDataLocationEXT
#define glGetUniformuivEXT                  rglGetUniformuivEXT
#define glGetVertexAttribIivEXT             rglGetVertexAttribIivEXT
#define glGetVertexAttribIuivEXT            rglGetVertexAttribIuivEXT
#define glUniform1uiEXT                     rglUniform1uiEXT
#define glUniform1uivEXT                    rglUniform1uivEXT
#define glUniform2uiEXT                     rglUniform2uiEXT
#define glUniform2uivEXT                    rglUniform2uivEXT
#define glUniform3uiEXT                     rglUniform3uiEXT
#define glUniform3uivEXT                    rglUniform3uivEXT
#define glUniform4uiEXT                     rglUniform4uiEXT
#define glUniform4uivEXT                    rglUniform4uivEXT
#define glVertexAttribI1iEXT                rglVertexAttribI1iEXT
#define glVertexAttribI1ivEXT               rglVertexAttribI1ivEXT
#define glVertexAttribI1uiEXT               rglVertexAttribI1uiEXT
#define glVertexAttribI1uivEXT              rglVertexAttribI1uivEXT
#define glVertexAttribI2iEXT                rglVertexAttribI2iEXT
#define glVertexAttribI2ivEXT               rglVertexAttribI2ivEXT
#define glVertexAttribI2uiEXT               rglVertexAttribI2uiEXT
#define glVertexAttribI2uivEXT              rglVertexAttribI2uivEXT
#define glVertexAttribI3iEXT                rglVertexAttribI3iEXT
#define glVertexAttribI3ivEXT               rglVertexAttribI3ivEXT
#define glVertexAttribI3uiEXT               rglVertexAttribI3uiEXT
#define glVertexAttribI3uivEXT              rglVertexAttribI3uivEXT
#define glVertexAttribI4bvEXT               rglVertexAttribI4bvEXT
#define glVertexAttribI4iEXT                rglVertexAttribI4iEXT
#define glVertexAttribI4ivEXT               rglVertexAttribI4ivEXT
#define glVertexAttribI4svEXT               rglVertexAttribI4svEXT
#define glVertexAttribI4ubvEXT              rglVertexAttribI4ubvEXT
#define glVertexAttribI4uiEXT               rglVertexAttribI4uiEXT
#define glVertexAttribI4uivEXT              rglVertexAttribI4uivEXT
#define glVertexAttribI4usvEXT              rglVertexAttribI4usvEXT
#define glVertexAttribIPointerEXT           rglVertexAttribIPointerEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_GPU_SHADER4
REGAL_DECL GLint REGAL_CALL glGetFragDataLocationEXT(GLuint program, const GLchar *name);
REGAL_DECL void REGAL_CALL glBindFragDataLocationEXT(GLuint program, GLuint color, const GLchar *name);
REGAL_DECL void REGAL_CALL glGetUniformuivEXT(GLuint program, GLint location, GLuint *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribIivEXT(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribIuivEXT(GLuint index, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glUniform1uiEXT(GLint location, GLuint v0);
REGAL_DECL void REGAL_CALL glUniform1uivEXT(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glUniform2uiEXT(GLint location, GLuint v0, GLuint v1);
REGAL_DECL void REGAL_CALL glUniform2uivEXT(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glUniform3uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2);
REGAL_DECL void REGAL_CALL glUniform3uivEXT(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glUniform4uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
REGAL_DECL void REGAL_CALL glUniform4uivEXT(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glVertexAttribI1iEXT(GLuint index, GLint x);
REGAL_DECL void REGAL_CALL glVertexAttribI1ivEXT(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI1uiEXT(GLuint index, GLuint x);
REGAL_DECL void REGAL_CALL glVertexAttribI1uivEXT(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI2iEXT(GLuint index, GLint x, GLint y);
REGAL_DECL void REGAL_CALL glVertexAttribI2ivEXT(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y);
REGAL_DECL void REGAL_CALL glVertexAttribI2uivEXT(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glVertexAttribI3ivEXT(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z);
REGAL_DECL void REGAL_CALL glVertexAttribI3uivEXT(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4bvEXT(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glVertexAttribI4ivEXT(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4svEXT(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4ubvEXT(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL glVertexAttribI4uivEXT(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4usvEXT(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL glVertexAttribIPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_GPU_SHADER4
REGAL_DECL GLint REGAL_CALL plugin_glGetFragDataLocationEXT(GLuint program, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glBindFragDataLocationEXT(GLuint program, GLuint color, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetUniformuivEXT(GLuint program, GLint location, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribIivEXT(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribIuivEXT(GLuint index, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glUniform1uiEXT(GLint location, GLuint v0);
REGAL_DECL void REGAL_CALL plugin_glUniform1uivEXT(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2uiEXT(GLint location, GLuint v0, GLuint v1);
REGAL_DECL void REGAL_CALL plugin_glUniform2uivEXT(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2);
REGAL_DECL void REGAL_CALL plugin_glUniform3uivEXT(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
REGAL_DECL void REGAL_CALL plugin_glUniform4uivEXT(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI1iEXT(GLuint index, GLint x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI1ivEXT(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI1uiEXT(GLuint index, GLuint x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI1uivEXT(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI2iEXT(GLuint index, GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI2ivEXT(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI2uivEXT(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI3ivEXT(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI3uivEXT(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4bvEXT(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4ivEXT(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4svEXT(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4ubvEXT(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4uivEXT(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4usvEXT(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribIPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_EXT_histogram
 **/

#if (defined(GL_EXT_HISTOGRAM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_HISTOGRAM)) && !defined(REGAL_NO_ENUM_GL_EXT_HISTOGRAM)
#define REGAL_NO_ENUM_GL_EXT_HISTOGRAM
#endif

#if (defined(GL_EXT_HISTOGRAM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_HISTOGRAM)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_HISTOGRAM)
#define REGAL_NO_TYPEDEF_GL_EXT_HISTOGRAM
#endif

#if (defined(GL_EXT_HISTOGRAM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_HISTOGRAM)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_HISTOGRAM)
#define REGAL_NO_NAMESPACE_GL_EXT_HISTOGRAM
#endif

#if (defined(GL_EXT_HISTOGRAM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_HISTOGRAM)) && !defined(REGAL_NO_PLUGIN_GL_EXT_HISTOGRAM)
#define REGAL_NO_PLUGIN_GL_EXT_HISTOGRAM
#endif

#if (defined(GL_EXT_HISTOGRAM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_HISTOGRAM)) && !defined(REGAL_NO_DECLARATION_GL_EXT_HISTOGRAM)
#define REGAL_NO_DECLARATION_GL_EXT_HISTOGRAM
#endif

#ifndef GL_EXT_histogram
#define GL_EXT_histogram 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_HISTOGRAM
#define GL_HISTOGRAM_EXT                0x8024     /* 32804 */
#define GL_PROXY_HISTOGRAM_EXT          0x8025     /* 32805 */
#define GL_HISTOGRAM_WIDTH_EXT          0x8026     /* 32806 */
#define GL_HISTOGRAM_FORMAT_EXT         0x8027     /* 32807 */
#define GL_HISTOGRAM_RED_SIZE_EXT       0x8028     /* 32808 */
#define GL_HISTOGRAM_GREEN_SIZE_EXT     0x8029     /* 32809 */
#define GL_HISTOGRAM_BLUE_SIZE_EXT      0x802a     /* 32810 */
#define GL_HISTOGRAM_ALPHA_SIZE_EXT     0x802b     /* 32811 */
#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802c     /* 32812 */
#define GL_HISTOGRAM_SINK_EXT           0x802d     /* 32813 */
#define GL_MINMAX_EXT                   0x802e     /* 32814 */
#define GL_MINMAX_FORMAT_EXT            0x802f     /* 32815 */
#define GL_MINMAX_SINK_EXT              0x8030     /* 32816 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_HISTOGRAM
typedef void (REGAL_CALL *PFNGLGETHISTOGRAMEXTPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
typedef void (REGAL_CALL *PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMINMAXEXTPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
typedef void (REGAL_CALL *PFNGLGETMINMAXPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMINMAXPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLHISTOGRAMEXTPROC)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
typedef void (REGAL_CALL *PFNGLMINMAXEXTPROC)(GLenum target, GLenum internalformat, GLboolean sink);
typedef void (REGAL_CALL *PFNGLRESETHISTOGRAMEXTPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLRESETMINMAXEXTPROC)(GLenum target);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_HISTOGRAM
#define glGetHistogramEXT                   rglGetHistogramEXT
#define glGetHistogramParameterfvEXT        rglGetHistogramParameterfvEXT
#define glGetHistogramParameterivEXT        rglGetHistogramParameterivEXT
#define glGetMinmaxEXT                      rglGetMinmaxEXT
#define glGetMinmaxParameterfvEXT           rglGetMinmaxParameterfvEXT
#define glGetMinmaxParameterivEXT           rglGetMinmaxParameterivEXT
#define glHistogramEXT                      rglHistogramEXT
#define glMinmaxEXT                         rglMinmaxEXT
#define glResetHistogramEXT                 rglResetHistogramEXT
#define glResetMinmaxEXT                    rglResetMinmaxEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_HISTOGRAM
REGAL_DECL void REGAL_CALL glGetHistogramEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
REGAL_DECL void REGAL_CALL glGetHistogramParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetHistogramParameterivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMinmaxEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
REGAL_DECL void REGAL_CALL glGetMinmaxParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMinmaxParameterivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glHistogramEXT(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
REGAL_DECL void REGAL_CALL glMinmaxEXT(GLenum target, GLenum internalformat, GLboolean sink);
REGAL_DECL void REGAL_CALL glResetHistogramEXT(GLenum target);
REGAL_DECL void REGAL_CALL glResetMinmaxEXT(GLenum target);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_HISTOGRAM
REGAL_DECL void REGAL_CALL plugin_glGetHistogramEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
REGAL_DECL void REGAL_CALL plugin_glGetHistogramParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetHistogramParameterivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMinmaxEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
REGAL_DECL void REGAL_CALL plugin_glGetMinmaxParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMinmaxParameterivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glHistogramEXT(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
REGAL_DECL void REGAL_CALL plugin_glMinmaxEXT(GLenum target, GLenum internalformat, GLboolean sink);
REGAL_DECL void REGAL_CALL plugin_glResetHistogramEXT(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glResetMinmaxEXT(GLenum target);
#endif

/**
 ** GL_EXT_index_func
 **/

#if (defined(GL_EXT_INDEX_FUNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_INDEX_FUNC)) && !defined(REGAL_NO_ENUM_GL_EXT_INDEX_FUNC)
#define REGAL_NO_ENUM_GL_EXT_INDEX_FUNC
#endif

#if (defined(GL_EXT_INDEX_FUNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_INDEX_FUNC)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_INDEX_FUNC)
#define REGAL_NO_TYPEDEF_GL_EXT_INDEX_FUNC
#endif

#if (defined(GL_EXT_INDEX_FUNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_INDEX_FUNC)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_INDEX_FUNC)
#define REGAL_NO_NAMESPACE_GL_EXT_INDEX_FUNC
#endif

#if (defined(GL_EXT_INDEX_FUNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_INDEX_FUNC)) && !defined(REGAL_NO_PLUGIN_GL_EXT_INDEX_FUNC)
#define REGAL_NO_PLUGIN_GL_EXT_INDEX_FUNC
#endif

#if (defined(GL_EXT_INDEX_FUNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_INDEX_FUNC)) && !defined(REGAL_NO_DECLARATION_GL_EXT_INDEX_FUNC)
#define REGAL_NO_DECLARATION_GL_EXT_INDEX_FUNC
#endif

#ifndef GL_EXT_index_func
#define GL_EXT_index_func 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_INDEX_FUNC
typedef void (REGAL_CALL *PFNGLINDEXFUNCEXTPROC)(GLenum func, GLfloat ref);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_INDEX_FUNC
#define glIndexFuncEXT                      rglIndexFuncEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_INDEX_FUNC
REGAL_DECL void REGAL_CALL glIndexFuncEXT(GLenum func, GLfloat ref);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_INDEX_FUNC
REGAL_DECL void REGAL_CALL plugin_glIndexFuncEXT(GLenum func, GLfloat ref);
#endif

/**
 ** GL_EXT_index_material
 **/

#if (defined(GL_EXT_INDEX_MATERIAL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_INDEX_MATERIAL)) && !defined(REGAL_NO_ENUM_GL_EXT_INDEX_MATERIAL)
#define REGAL_NO_ENUM_GL_EXT_INDEX_MATERIAL
#endif

#if (defined(GL_EXT_INDEX_MATERIAL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_INDEX_MATERIAL)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_INDEX_MATERIAL)
#define REGAL_NO_TYPEDEF_GL_EXT_INDEX_MATERIAL
#endif

#if (defined(GL_EXT_INDEX_MATERIAL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_INDEX_MATERIAL)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_INDEX_MATERIAL)
#define REGAL_NO_NAMESPACE_GL_EXT_INDEX_MATERIAL
#endif

#if (defined(GL_EXT_INDEX_MATERIAL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_INDEX_MATERIAL)) && !defined(REGAL_NO_PLUGIN_GL_EXT_INDEX_MATERIAL)
#define REGAL_NO_PLUGIN_GL_EXT_INDEX_MATERIAL
#endif

#if (defined(GL_EXT_INDEX_MATERIAL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_INDEX_MATERIAL)) && !defined(REGAL_NO_DECLARATION_GL_EXT_INDEX_MATERIAL)
#define REGAL_NO_DECLARATION_GL_EXT_INDEX_MATERIAL
#endif

#ifndef GL_EXT_index_material
#define GL_EXT_index_material 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_INDEX_MATERIAL
typedef void (REGAL_CALL *PFNGLINDEXMATERIALEXTPROC)(GLenum face, GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_INDEX_MATERIAL
#define glIndexMaterialEXT                  rglIndexMaterialEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_INDEX_MATERIAL
REGAL_DECL void REGAL_CALL glIndexMaterialEXT(GLenum face, GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_INDEX_MATERIAL
REGAL_DECL void REGAL_CALL plugin_glIndexMaterialEXT(GLenum face, GLenum mode);
#endif

/**
 ** GL_EXT_light_texture
 **/

#if (defined(GL_EXT_LIGHT_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_LIGHT_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_EXT_LIGHT_TEXTURE)
#define REGAL_NO_ENUM_GL_EXT_LIGHT_TEXTURE
#endif

#if (defined(GL_EXT_LIGHT_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_LIGHT_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_LIGHT_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_EXT_LIGHT_TEXTURE
#endif

#if (defined(GL_EXT_LIGHT_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_LIGHT_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_LIGHT_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_EXT_LIGHT_TEXTURE
#endif

#if (defined(GL_EXT_LIGHT_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_LIGHT_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_LIGHT_TEXTURE)
#define REGAL_NO_PLUGIN_GL_EXT_LIGHT_TEXTURE
#endif

#if (defined(GL_EXT_LIGHT_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_LIGHT_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_LIGHT_TEXTURE)
#define REGAL_NO_DECLARATION_GL_EXT_LIGHT_TEXTURE
#endif

#ifndef GL_EXT_light_texture
#define GL_EXT_light_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_LIGHT_TEXTURE
#define GL_FRAGMENT_MATERIAL_EXT          0x8349     /* 33609 */
#define GL_FRAGMENT_NORMAL_EXT            0x834a     /* 33610 */
#define GL_FRAGMENT_COLOR_EXT             0x834c     /* 33612 */
#define GL_ATTENUATION_EXT                0x834d     /* 33613 */
#define GL_SHADOW_ATTENUATION_EXT         0x834e     /* 33614 */
#define GL_TEXTURE_APPLICATION_MODE_EXT   0x834f     /* 33615 */
#define GL_TEXTURE_LIGHT_EXT              0x8350     /* 33616 */
#define GL_TEXTURE_MATERIAL_FACE_EXT      0x8351     /* 33617 */
#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352     /* 33618 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_LIGHT_TEXTURE
typedef void (REGAL_CALL *PFNGLAPPLYTEXTUREEXTPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLTEXTURELIGHTEXTPROC)(GLenum pname);
typedef void (REGAL_CALL *PFNGLTEXTUREMATERIALEXTPROC)(GLenum face, GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_LIGHT_TEXTURE
#define glApplyTextureEXT                   rglApplyTextureEXT
#define glTextureLightEXT                   rglTextureLightEXT
#define glTextureMaterialEXT                rglTextureMaterialEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_LIGHT_TEXTURE
REGAL_DECL void REGAL_CALL glApplyTextureEXT(GLenum mode);
REGAL_DECL void REGAL_CALL glTextureLightEXT(GLenum pname);
REGAL_DECL void REGAL_CALL glTextureMaterialEXT(GLenum face, GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_LIGHT_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glApplyTextureEXT(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glTextureLightEXT(GLenum pname);
REGAL_DECL void REGAL_CALL plugin_glTextureMaterialEXT(GLenum face, GLenum mode);
#endif

/**
 ** GL_EXT_map_buffer_range
 **/

#if (defined(GL_EXT_MAP_BUFFER_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_ENUM_GL_EXT_MAP_BUFFER_RANGE)
#define REGAL_NO_ENUM_GL_EXT_MAP_BUFFER_RANGE
#endif

#if (defined(GL_EXT_MAP_BUFFER_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_MAP_BUFFER_RANGE)
#define REGAL_NO_TYPEDEF_GL_EXT_MAP_BUFFER_RANGE
#endif

#if (defined(GL_EXT_MAP_BUFFER_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_MAP_BUFFER_RANGE)
#define REGAL_NO_NAMESPACE_GL_EXT_MAP_BUFFER_RANGE
#endif

#if (defined(GL_EXT_MAP_BUFFER_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_MAP_BUFFER_RANGE)
#define REGAL_NO_PLUGIN_GL_EXT_MAP_BUFFER_RANGE
#endif

#if (defined(GL_EXT_MAP_BUFFER_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_MAP_BUFFER_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_MAP_BUFFER_RANGE)
#define REGAL_NO_DECLARATION_GL_EXT_MAP_BUFFER_RANGE
#endif

#ifndef GL_EXT_map_buffer_range
#define GL_EXT_map_buffer_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_MAP_BUFFER_RANGE
#define GL_MAP_READ_BIT_EXT              0x1
#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT    0x10     /* 16 */
#define GL_MAP_WRITE_BIT_EXT             0x2
#define GL_MAP_UNSYNCHRONIZED_BIT_EXT    0x20     /* 32 */
#define GL_MAP_INVALIDATE_RANGE_BIT_EXT  0x4
#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT 0x8
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_MAP_BUFFER_RANGE
typedef GLvoid *(REGAL_CALL *PFNGLMAPBUFFERRANGEEXTPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
typedef void (REGAL_CALL *PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_MAP_BUFFER_RANGE
#define glFlushMappedBufferRangeEXT         rglFlushMappedBufferRangeEXT
#define glMapBufferRangeEXT                 rglMapBufferRangeEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_MAP_BUFFER_RANGE
REGAL_DECL GLvoid *REGAL_CALL glMapBufferRangeEXT(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
REGAL_DECL void REGAL_CALL glFlushMappedBufferRangeEXT(GLenum target, GLintptr offset, GLsizeiptr length);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_MAP_BUFFER_RANGE
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapBufferRangeEXT(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
REGAL_DECL void REGAL_CALL plugin_glFlushMappedBufferRangeEXT(GLenum target, GLintptr offset, GLsizeiptr length);
#endif

/**
 ** GL_EXT_multi_draw_arrays
 **/

#if (defined(GL_EXT_MULTI_DRAW_ARRAYS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_MULTI_DRAW_ARRAYS)) && !defined(REGAL_NO_ENUM_GL_EXT_MULTI_DRAW_ARRAYS)
#define REGAL_NO_ENUM_GL_EXT_MULTI_DRAW_ARRAYS
#endif

#if (defined(GL_EXT_MULTI_DRAW_ARRAYS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_MULTI_DRAW_ARRAYS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_MULTI_DRAW_ARRAYS)
#define REGAL_NO_TYPEDEF_GL_EXT_MULTI_DRAW_ARRAYS
#endif

#if (defined(GL_EXT_MULTI_DRAW_ARRAYS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_MULTI_DRAW_ARRAYS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_MULTI_DRAW_ARRAYS)
#define REGAL_NO_NAMESPACE_GL_EXT_MULTI_DRAW_ARRAYS
#endif

#if (defined(GL_EXT_MULTI_DRAW_ARRAYS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_MULTI_DRAW_ARRAYS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_MULTI_DRAW_ARRAYS)
#define REGAL_NO_PLUGIN_GL_EXT_MULTI_DRAW_ARRAYS
#endif

#if (defined(GL_EXT_MULTI_DRAW_ARRAYS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_MULTI_DRAW_ARRAYS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_MULTI_DRAW_ARRAYS)
#define REGAL_NO_DECLARATION_GL_EXT_MULTI_DRAW_ARRAYS
#endif

#ifndef GL_EXT_multi_draw_arrays
#define GL_EXT_multi_draw_arrays 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_MULTI_DRAW_ARRAYS
typedef void (REGAL_CALL *PFNGLMULTIDRAWARRAYSEXTPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLMULTIDRAWELEMENTSEXTPROC)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_MULTI_DRAW_ARRAYS
#define glMultiDrawArraysEXT                rglMultiDrawArraysEXT
#define glMultiDrawElementsEXT              rglMultiDrawElementsEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_MULTI_DRAW_ARRAYS
REGAL_DECL void REGAL_CALL glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
REGAL_DECL void REGAL_CALL glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_MULTI_DRAW_ARRAYS
REGAL_DECL void REGAL_CALL plugin_glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount);
#endif

/**
 ** GL_EXT_multisample
 **/

#if (defined(GL_EXT_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_EXT_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_EXT_MULTISAMPLE
#endif

#if (defined(GL_EXT_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_EXT_MULTISAMPLE
#endif

#if (defined(GL_EXT_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_EXT_MULTISAMPLE
#endif

#if (defined(GL_EXT_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_EXT_MULTISAMPLE
#endif

#if (defined(GL_EXT_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_EXT_MULTISAMPLE
#endif

#ifndef GL_EXT_multisample
#define GL_EXT_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_MULTISAMPLE
#define GL_MULTISAMPLE_BIT_EXT      0x20000000     /* 536870912 */
#define GL_MULTISAMPLE_EXT          0x809d         /* 32925 */
#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809e         /* 32926 */
#define GL_SAMPLE_ALPHA_TO_ONE_EXT  0x809f         /* 32927 */
#define GL_SAMPLE_MASK_EXT          0x80a0         /* 32928 */
#define GL_1PASS_EXT                0x80a1         /* 32929 */
#define GL_2PASS_0_EXT              0x80a2         /* 32930 */
#define GL_2PASS_1_EXT              0x80a3         /* 32931 */
#define GL_4PASS_0_EXT              0x80a4         /* 32932 */
#define GL_4PASS_1_EXT              0x80a5         /* 32933 */
#define GL_4PASS_2_EXT              0x80a6         /* 32934 */
#define GL_4PASS_3_EXT              0x80a7         /* 32935 */
#define GL_SAMPLE_BUFFERS_EXT       0x80a8         /* 32936 */
#define GL_SAMPLES_EXT              0x80a9         /* 32937 */
#define GL_SAMPLE_MASK_VALUE_EXT    0x80aa         /* 32938 */
#define GL_SAMPLE_MASK_INVERT_EXT   0x80ab         /* 32939 */
#define GL_SAMPLE_PATTERN_EXT       0x80ac         /* 32940 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLSAMPLEMASKEXTPROC)(GLclampf value, GLboolean invert);
typedef void (REGAL_CALL *PFNGLSAMPLEPATTERNEXTPROC)(GLenum pattern);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_MULTISAMPLE
#define glSampleMaskEXT                     rglSampleMaskEXT
#define glSamplePatternEXT                  rglSamplePatternEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_MULTISAMPLE
REGAL_DECL void REGAL_CALL glSampleMaskEXT(GLclampf value, GLboolean invert);
REGAL_DECL void REGAL_CALL glSamplePatternEXT(GLenum pattern);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glSampleMaskEXT(GLclampf value, GLboolean invert);
REGAL_DECL void REGAL_CALL plugin_glSamplePatternEXT(GLenum pattern);
#endif

/**
 ** GL_EXT_multisampled_render_to_texture
 **/

#if (defined(GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_ENUM_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#if (defined(GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#if (defined(GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#if (defined(GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_PLUGIN_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#if (defined(GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_DECLARATION_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#ifndef GL_EXT_multisampled_render_to_texture
#define GL_EXT_multisampled_render_to_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT 0x8d6c /* 36204 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
#define glFramebufferTexture2DMultisampleEXT rglFramebufferTexture2DMultisampleEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
REGAL_DECL void REGAL_CALL glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
#endif

/**
 ** GL_EXT_multiview_draw_buffers
 **/

#if (defined(GL_EXT_MULTIVIEW_DRAW_BUFFERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_MULTIVIEW_DRAW_BUFFERS)) && !defined(REGAL_NO_ENUM_GL_EXT_MULTIVIEW_DRAW_BUFFERS)
#define REGAL_NO_ENUM_GL_EXT_MULTIVIEW_DRAW_BUFFERS
#endif

#if (defined(GL_EXT_MULTIVIEW_DRAW_BUFFERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_MULTIVIEW_DRAW_BUFFERS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_MULTIVIEW_DRAW_BUFFERS)
#define REGAL_NO_TYPEDEF_GL_EXT_MULTIVIEW_DRAW_BUFFERS
#endif

#if (defined(GL_EXT_MULTIVIEW_DRAW_BUFFERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_MULTIVIEW_DRAW_BUFFERS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_MULTIVIEW_DRAW_BUFFERS)
#define REGAL_NO_NAMESPACE_GL_EXT_MULTIVIEW_DRAW_BUFFERS
#endif

#if (defined(GL_EXT_MULTIVIEW_DRAW_BUFFERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_MULTIVIEW_DRAW_BUFFERS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_MULTIVIEW_DRAW_BUFFERS)
#define REGAL_NO_PLUGIN_GL_EXT_MULTIVIEW_DRAW_BUFFERS
#endif

#if (defined(GL_EXT_MULTIVIEW_DRAW_BUFFERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_MULTIVIEW_DRAW_BUFFERS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_MULTIVIEW_DRAW_BUFFERS)
#define REGAL_NO_DECLARATION_GL_EXT_MULTIVIEW_DRAW_BUFFERS
#endif

#ifndef GL_EXT_multiview_draw_buffers
#define GL_EXT_multiview_draw_buffers 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_MULTIVIEW_DRAW_BUFFERS
#define GL_COLOR_ATTACHMENT_EXT      0x90f0     /* 37104 */
#define GL_MULTIVIEW_EXT             0x90f1     /* 37105 */
#define GL_MAX_MULTIVIEW_BUFFERS_EXT 0x90f2     /* 37106 */
#define GL_DRAW_BUFFER_EXT           0xc01      /* 3073 */
#define GL_READ_BUFFER_EXT           0xc02      /* 3074 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_MULTIVIEW_DRAW_BUFFERS
typedef void (REGAL_CALL *PFNGLDRAWBUFFERSINDEXEDEXTPROC)(GLint n, const GLenum *location, const GLint *indices);
typedef void (REGAL_CALL *PFNGLGETINTEGERI_VEXTPROC)(GLenum target, GLuint index, GLint *data);
typedef void (REGAL_CALL *PFNGLREADBUFFERINDEXEDEXTPROC)(GLenum src, GLint index);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_MULTIVIEW_DRAW_BUFFERS
#define glDrawBuffersIndexedEXT             rglDrawBuffersIndexedEXT
#define glGetIntegeri_vEXT                  rglGetIntegeri_vEXT
#define glReadBufferIndexedEXT              rglReadBufferIndexedEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_MULTIVIEW_DRAW_BUFFERS
REGAL_DECL void REGAL_CALL glDrawBuffersIndexedEXT(GLint n, const GLenum *location, const GLint *indices);
REGAL_DECL void REGAL_CALL glGetIntegeri_vEXT(GLenum target, GLuint index, GLint *data);
REGAL_DECL void REGAL_CALL glReadBufferIndexedEXT(GLenum src, GLint index);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_MULTIVIEW_DRAW_BUFFERS
REGAL_DECL void REGAL_CALL plugin_glDrawBuffersIndexedEXT(GLint n, const GLenum *location, const GLint *indices);
REGAL_DECL void REGAL_CALL plugin_glGetIntegeri_vEXT(GLenum target, GLuint index, GLint *data);
REGAL_DECL void REGAL_CALL plugin_glReadBufferIndexedEXT(GLenum src, GLint index);
#endif

/**
 ** GL_EXT_occlusion_query_boolean
 **/

#if (defined(GL_EXT_OCCLUSION_QUERY_BOOLEAN) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_OCCLUSION_QUERY_BOOLEAN)) && !defined(REGAL_NO_ENUM_GL_EXT_OCCLUSION_QUERY_BOOLEAN)
#define REGAL_NO_ENUM_GL_EXT_OCCLUSION_QUERY_BOOLEAN
#endif

#if (defined(GL_EXT_OCCLUSION_QUERY_BOOLEAN) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_OCCLUSION_QUERY_BOOLEAN)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_OCCLUSION_QUERY_BOOLEAN)
#define REGAL_NO_TYPEDEF_GL_EXT_OCCLUSION_QUERY_BOOLEAN
#endif

#if (defined(GL_EXT_OCCLUSION_QUERY_BOOLEAN) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_OCCLUSION_QUERY_BOOLEAN)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_OCCLUSION_QUERY_BOOLEAN)
#define REGAL_NO_NAMESPACE_GL_EXT_OCCLUSION_QUERY_BOOLEAN
#endif

#if (defined(GL_EXT_OCCLUSION_QUERY_BOOLEAN) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_OCCLUSION_QUERY_BOOLEAN)) && !defined(REGAL_NO_PLUGIN_GL_EXT_OCCLUSION_QUERY_BOOLEAN)
#define REGAL_NO_PLUGIN_GL_EXT_OCCLUSION_QUERY_BOOLEAN
#endif

#if (defined(GL_EXT_OCCLUSION_QUERY_BOOLEAN) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_OCCLUSION_QUERY_BOOLEAN)) && !defined(REGAL_NO_DECLARATION_GL_EXT_OCCLUSION_QUERY_BOOLEAN)
#define REGAL_NO_DECLARATION_GL_EXT_OCCLUSION_QUERY_BOOLEAN
#endif

#ifndef GL_EXT_occlusion_query_boolean
#define GL_EXT_occlusion_query_boolean 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_OCCLUSION_QUERY_BOOLEAN
#define GL_CURRENT_QUERY_EXT                   0x8865     /* 34917 */
#define GL_QUERY_RESULT_EXT                    0x8866     /* 34918 */
#define GL_QUERY_RESULT_AVAILABLE_EXT          0x8867     /* 34919 */
#define GL_ANY_SAMPLES_PASSED_EXT              0x8c2f     /* 35887 */
#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT 0x8d6a     /* 36202 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_OCCLUSION_QUERY_BOOLEAN
typedef GLboolean (REGAL_CALL *PFNGLISQUERYEXTPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLBEGINQUERYEXTPROC)(GLenum target, GLuint id);
typedef void (REGAL_CALL *PFNGLDELETEQUERIESEXTPROC)(GLsizei n, const GLuint *ids);
typedef void (REGAL_CALL *PFNGLENDQUERYEXTPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLGENQUERIESEXTPROC)(GLsizei n, GLuint *ids);
typedef void (REGAL_CALL *PFNGLGETQUERYIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTUIVEXTPROC)(GLuint id, GLenum pname, GLuint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_OCCLUSION_QUERY_BOOLEAN
#define glBeginQueryEXT                     rglBeginQueryEXT
#define glDeleteQueriesEXT                  rglDeleteQueriesEXT
#define glEndQueryEXT                       rglEndQueryEXT
#define glGenQueriesEXT                     rglGenQueriesEXT
#define glGetQueryObjectuivEXT              rglGetQueryObjectuivEXT
#define glGetQueryivEXT                     rglGetQueryivEXT
#define glIsQueryEXT                        rglIsQueryEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_OCCLUSION_QUERY_BOOLEAN
REGAL_DECL GLboolean REGAL_CALL glIsQueryEXT(GLuint id);
REGAL_DECL void REGAL_CALL glBeginQueryEXT(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL glDeleteQueriesEXT(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL glEndQueryEXT(GLenum target);
REGAL_DECL void REGAL_CALL glGenQueriesEXT(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glGetQueryivEXT(GLenum target, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_OCCLUSION_QUERY_BOOLEAN
REGAL_DECL GLboolean REGAL_CALL plugin_glIsQueryEXT(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glBeginQueryEXT(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDeleteQueriesEXT(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glEndQueryEXT(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glGenQueriesEXT(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetQueryivEXT(GLenum target, GLenum pname, GLint *params);
#endif

/**
 ** GL_EXT_packed_depth_stencil
 **/

#if (defined(GL_EXT_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_ENUM_GL_EXT_PACKED_DEPTH_STENCIL)
#define REGAL_NO_ENUM_GL_EXT_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_EXT_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_PACKED_DEPTH_STENCIL)
#define REGAL_NO_TYPEDEF_GL_EXT_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_EXT_PACKED_DEPTH_STENCIL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_PACKED_DEPTH_STENCIL)
#define REGAL_NO_NAMESPACE_GL_EXT_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_EXT_PACKED_DEPTH_STENCIL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_PLUGIN_GL_EXT_PACKED_DEPTH_STENCIL)
#define REGAL_NO_PLUGIN_GL_EXT_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_EXT_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_DECLARATION_GL_EXT_PACKED_DEPTH_STENCIL)
#define REGAL_NO_DECLARATION_GL_EXT_PACKED_DEPTH_STENCIL
#endif

#ifndef GL_EXT_packed_depth_stencil
#define GL_EXT_packed_depth_stencil 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_PACKED_DEPTH_STENCIL
#define GL_DEPTH_STENCIL_EXT        0x84f9     /* 34041 */
#define GL_UNSIGNED_INT_24_8_EXT    0x84fa     /* 34042 */
#define GL_DEPTH24_STENCIL8_EXT     0x88f0     /* 35056 */
#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88f1     /* 35057 */
#endif

/**
 ** GL_EXT_packed_float
 **/

#if (defined(GL_EXT_PACKED_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_PACKED_FLOAT)) && !defined(REGAL_NO_ENUM_GL_EXT_PACKED_FLOAT)
#define REGAL_NO_ENUM_GL_EXT_PACKED_FLOAT
#endif

#if (defined(GL_EXT_PACKED_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_PACKED_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_PACKED_FLOAT)
#define REGAL_NO_TYPEDEF_GL_EXT_PACKED_FLOAT
#endif

#if (defined(GL_EXT_PACKED_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_PACKED_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_PACKED_FLOAT)
#define REGAL_NO_NAMESPACE_GL_EXT_PACKED_FLOAT
#endif

#if (defined(GL_EXT_PACKED_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_PACKED_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_PACKED_FLOAT)
#define REGAL_NO_PLUGIN_GL_EXT_PACKED_FLOAT
#endif

#if (defined(GL_EXT_PACKED_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_PACKED_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_PACKED_FLOAT)
#define REGAL_NO_DECLARATION_GL_EXT_PACKED_FLOAT
#endif

#ifndef GL_EXT_packed_float
#define GL_EXT_packed_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_PACKED_FLOAT
#define GL_R11F_G11F_B10F_EXT               0x8c3a     /* 35898 */
#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8c3b     /* 35899 */
#define GL_RGBA_SIGNED_COMPONENTS_EXT       0x8c3c     /* 35900 */
#endif

/**
 ** GL_EXT_packed_pixels
 **/

#if (defined(GL_EXT_PACKED_PIXELS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_PACKED_PIXELS)) && !defined(REGAL_NO_ENUM_GL_EXT_PACKED_PIXELS)
#define REGAL_NO_ENUM_GL_EXT_PACKED_PIXELS
#endif

#if (defined(GL_EXT_PACKED_PIXELS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_PACKED_PIXELS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_PACKED_PIXELS)
#define REGAL_NO_TYPEDEF_GL_EXT_PACKED_PIXELS
#endif

#if (defined(GL_EXT_PACKED_PIXELS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_PACKED_PIXELS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_PACKED_PIXELS)
#define REGAL_NO_NAMESPACE_GL_EXT_PACKED_PIXELS
#endif

#if (defined(GL_EXT_PACKED_PIXELS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_PACKED_PIXELS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_PACKED_PIXELS)
#define REGAL_NO_PLUGIN_GL_EXT_PACKED_PIXELS
#endif

#if (defined(GL_EXT_PACKED_PIXELS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_PACKED_PIXELS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_PACKED_PIXELS)
#define REGAL_NO_DECLARATION_GL_EXT_PACKED_PIXELS
#endif

#ifndef GL_EXT_packed_pixels
#define GL_EXT_packed_pixels 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_PACKED_PIXELS
#define GL_UNSIGNED_BYTE_3_3_2_EXT     0x8032     /* 32818 */
#define GL_UNSIGNED_SHORT_4_4_4_4_EXT  0x8033     /* 32819 */
#define GL_UNSIGNED_SHORT_5_5_5_1_EXT  0x8034     /* 32820 */
#define GL_UNSIGNED_INT_8_8_8_8_EXT    0x8035     /* 32821 */
#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036     /* 32822 */
#endif

/**
 ** GL_EXT_paletted_texture
 **/

#if (defined(GL_EXT_PALETTED_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_PALETTED_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_EXT_PALETTED_TEXTURE)
#define REGAL_NO_ENUM_GL_EXT_PALETTED_TEXTURE
#endif

#if (defined(GL_EXT_PALETTED_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_PALETTED_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_PALETTED_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_EXT_PALETTED_TEXTURE
#endif

#if (defined(GL_EXT_PALETTED_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_PALETTED_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_PALETTED_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_EXT_PALETTED_TEXTURE
#endif

#if (defined(GL_EXT_PALETTED_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_PALETTED_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_PALETTED_TEXTURE)
#define REGAL_NO_PLUGIN_GL_EXT_PALETTED_TEXTURE
#endif

#if (defined(GL_EXT_PALETTED_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_PALETTED_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_PALETTED_TEXTURE)
#define REGAL_NO_DECLARATION_GL_EXT_PALETTED_TEXTURE
#endif

#ifndef GL_EXT_paletted_texture
#define GL_EXT_paletted_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_PALETTED_TEXTURE
#define GL_COLOR_TABLE_FORMAT_EXT         0x80d8     /* 32984 */
#define GL_COLOR_TABLE_WIDTH_EXT          0x80d9     /* 32985 */
#define GL_COLOR_TABLE_RED_SIZE_EXT       0x80da     /* 32986 */
#define GL_COLOR_TABLE_GREEN_SIZE_EXT     0x80db     /* 32987 */
#define GL_COLOR_TABLE_BLUE_SIZE_EXT      0x80dc     /* 32988 */
#define GL_COLOR_TABLE_ALPHA_SIZE_EXT     0x80dd     /* 32989 */
#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80de     /* 32990 */
#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80df     /* 32991 */
#define GL_COLOR_INDEX1_EXT               0x80e2     /* 32994 */
#define GL_COLOR_INDEX2_EXT               0x80e3     /* 32995 */
#define GL_COLOR_INDEX4_EXT               0x80e4     /* 32996 */
#define GL_COLOR_INDEX8_EXT               0x80e5     /* 32997 */
#define GL_COLOR_INDEX12_EXT              0x80e6     /* 32998 */
#define GL_COLOR_INDEX16_EXT              0x80e7     /* 32999 */
#define GL_TEXTURE_INDEX_SIZE_EXT         0x80ed     /* 33005 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_PALETTED_TEXTURE
typedef void (REGAL_CALL *PFNGLCOLORTABLEEXTPROC)(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLEEXTPROC)(GLenum target, GLenum format, GLenum type, GLvoid *data);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_PALETTED_TEXTURE
#define glColorTableEXT                     rglColorTableEXT
#define glGetColorTableEXT                  rglGetColorTableEXT
#define glGetColorTableParameterfvEXT       rglGetColorTableParameterfvEXT
#define glGetColorTableParameterivEXT       rglGetColorTableParameterivEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_PALETTED_TEXTURE
REGAL_DECL void REGAL_CALL glColorTableEXT(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
REGAL_DECL void REGAL_CALL glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *data);
REGAL_DECL void REGAL_CALL glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_PALETTED_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glColorTableEXT(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
REGAL_DECL void REGAL_CALL plugin_glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint *params);
#endif

/**
 ** GL_EXT_pixel_buffer_object
 **/

#if (defined(GL_EXT_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_EXT_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_EXT_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_EXT_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_EXT_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_EXT_PIXEL_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_EXT_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_EXT_PIXEL_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_EXT_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_EXT_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_EXT_PIXEL_BUFFER_OBJECT
#endif

#ifndef GL_EXT_pixel_buffer_object
#define GL_EXT_pixel_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_PIXEL_BUFFER_OBJECT
#define GL_PIXEL_PACK_BUFFER_EXT           0x88eb     /* 35051 */
#define GL_PIXEL_UNPACK_BUFFER_EXT         0x88ec     /* 35052 */
#define GL_PIXEL_PACK_BUFFER_BINDING_EXT   0x88ed     /* 35053 */
#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88ef     /* 35055 */
#endif

/**
 ** GL_EXT_pixel_transform
 **/

#if (defined(GL_EXT_PIXEL_TRANSFORM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_PIXEL_TRANSFORM)) && !defined(REGAL_NO_ENUM_GL_EXT_PIXEL_TRANSFORM)
#define REGAL_NO_ENUM_GL_EXT_PIXEL_TRANSFORM
#endif

#if (defined(GL_EXT_PIXEL_TRANSFORM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_PIXEL_TRANSFORM)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_PIXEL_TRANSFORM)
#define REGAL_NO_TYPEDEF_GL_EXT_PIXEL_TRANSFORM
#endif

#if (defined(GL_EXT_PIXEL_TRANSFORM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_PIXEL_TRANSFORM)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_PIXEL_TRANSFORM)
#define REGAL_NO_NAMESPACE_GL_EXT_PIXEL_TRANSFORM
#endif

#if (defined(GL_EXT_PIXEL_TRANSFORM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_PIXEL_TRANSFORM)) && !defined(REGAL_NO_PLUGIN_GL_EXT_PIXEL_TRANSFORM)
#define REGAL_NO_PLUGIN_GL_EXT_PIXEL_TRANSFORM
#endif

#if (defined(GL_EXT_PIXEL_TRANSFORM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_PIXEL_TRANSFORM)) && !defined(REGAL_NO_DECLARATION_GL_EXT_PIXEL_TRANSFORM)
#define REGAL_NO_DECLARATION_GL_EXT_PIXEL_TRANSFORM
#endif

#ifndef GL_EXT_pixel_transform
#define GL_EXT_pixel_transform 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_PIXEL_TRANSFORM
#define GL_PIXEL_TRANSFORM_2D_EXT                 0x8330     /* 33584 */
#define GL_PIXEL_MAG_FILTER_EXT                   0x8331     /* 33585 */
#define GL_PIXEL_MIN_FILTER_EXT                   0x8332     /* 33586 */
#define GL_PIXEL_CUBIC_WEIGHT_EXT                 0x8333     /* 33587 */
#define GL_CUBIC_EXT                              0x8334     /* 33588 */
#define GL_AVERAGE_EXT                            0x8335     /* 33589 */
#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT     0x8336     /* 33590 */
#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337     /* 33591 */
#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT          0x8338     /* 33592 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_PIXEL_TRANSFORM
typedef void (REGAL_CALL *PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)(GLenum target, GLenum pname, const GLfloat param);
typedef void (REGAL_CALL *PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)(GLenum target, GLenum pname, const GLint param);
typedef void (REGAL_CALL *PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_PIXEL_TRANSFORM
#define glGetPixelTransformParameterfvEXT   rglGetPixelTransformParameterfvEXT
#define glGetPixelTransformParameterivEXT   rglGetPixelTransformParameterivEXT
#define glPixelTransformParameterfEXT       rglPixelTransformParameterfEXT
#define glPixelTransformParameterfvEXT      rglPixelTransformParameterfvEXT
#define glPixelTransformParameteriEXT       rglPixelTransformParameteriEXT
#define glPixelTransformParameterivEXT      rglPixelTransformParameterivEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_PIXEL_TRANSFORM
REGAL_DECL void REGAL_CALL glGetPixelTransformParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glGetPixelTransformParameterivEXT(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glPixelTransformParameterfEXT(GLenum target, GLenum pname, const GLfloat param);
REGAL_DECL void REGAL_CALL glPixelTransformParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glPixelTransformParameteriEXT(GLenum target, GLenum pname, const GLint param);
REGAL_DECL void REGAL_CALL glPixelTransformParameterivEXT(GLenum target, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_PIXEL_TRANSFORM
REGAL_DECL void REGAL_CALL plugin_glGetPixelTransformParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetPixelTransformParameterivEXT(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glPixelTransformParameterfEXT(GLenum target, GLenum pname, const GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPixelTransformParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glPixelTransformParameteriEXT(GLenum target, GLenum pname, const GLint param);
REGAL_DECL void REGAL_CALL plugin_glPixelTransformParameterivEXT(GLenum target, GLenum pname, const GLint *params);
#endif

/**
 ** GL_EXT_point_parameters
 **/

#if (defined(GL_EXT_POINT_PARAMETERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_POINT_PARAMETERS)) && !defined(REGAL_NO_ENUM_GL_EXT_POINT_PARAMETERS)
#define REGAL_NO_ENUM_GL_EXT_POINT_PARAMETERS
#endif

#if (defined(GL_EXT_POINT_PARAMETERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_POINT_PARAMETERS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_POINT_PARAMETERS)
#define REGAL_NO_TYPEDEF_GL_EXT_POINT_PARAMETERS
#endif

#if (defined(GL_EXT_POINT_PARAMETERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_POINT_PARAMETERS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_POINT_PARAMETERS)
#define REGAL_NO_NAMESPACE_GL_EXT_POINT_PARAMETERS
#endif

#if (defined(GL_EXT_POINT_PARAMETERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_POINT_PARAMETERS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_POINT_PARAMETERS)
#define REGAL_NO_PLUGIN_GL_EXT_POINT_PARAMETERS
#endif

#if (defined(GL_EXT_POINT_PARAMETERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_POINT_PARAMETERS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_POINT_PARAMETERS)
#define REGAL_NO_DECLARATION_GL_EXT_POINT_PARAMETERS
#endif

#ifndef GL_EXT_point_parameters
#define GL_EXT_point_parameters 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_POINT_PARAMETERS
#define GL_POINT_SIZE_MIN_EXT            0x8126     /* 33062 */
#define GL_POINT_SIZE_MAX_EXT            0x8127     /* 33063 */
#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128     /* 33064 */
#define GL_DISTANCE_ATTENUATION_EXT      0x8129     /* 33065 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_POINT_PARAMETERS
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERFEXTPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERFVEXTPROC)(GLenum pname, const GLfloat *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_POINT_PARAMETERS
#define glPointParameterfEXT                rglPointParameterfEXT
#define glPointParameterfvEXT               rglPointParameterfvEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_POINT_PARAMETERS
REGAL_DECL void REGAL_CALL glPointParameterfEXT(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glPointParameterfvEXT(GLenum pname, const GLfloat *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_POINT_PARAMETERS
REGAL_DECL void REGAL_CALL plugin_glPointParameterfEXT(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPointParameterfvEXT(GLenum pname, const GLfloat *params);
#endif

/**
 ** GL_EXT_polygon_offset
 **/

#if (defined(GL_EXT_POLYGON_OFFSET) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_POLYGON_OFFSET)) && !defined(REGAL_NO_ENUM_GL_EXT_POLYGON_OFFSET)
#define REGAL_NO_ENUM_GL_EXT_POLYGON_OFFSET
#endif

#if (defined(GL_EXT_POLYGON_OFFSET) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_POLYGON_OFFSET)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_POLYGON_OFFSET)
#define REGAL_NO_TYPEDEF_GL_EXT_POLYGON_OFFSET
#endif

#if (defined(GL_EXT_POLYGON_OFFSET) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_POLYGON_OFFSET)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_POLYGON_OFFSET)
#define REGAL_NO_NAMESPACE_GL_EXT_POLYGON_OFFSET
#endif

#if (defined(GL_EXT_POLYGON_OFFSET) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_POLYGON_OFFSET)) && !defined(REGAL_NO_PLUGIN_GL_EXT_POLYGON_OFFSET)
#define REGAL_NO_PLUGIN_GL_EXT_POLYGON_OFFSET
#endif

#if (defined(GL_EXT_POLYGON_OFFSET) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_POLYGON_OFFSET)) && !defined(REGAL_NO_DECLARATION_GL_EXT_POLYGON_OFFSET)
#define REGAL_NO_DECLARATION_GL_EXT_POLYGON_OFFSET
#endif

#ifndef GL_EXT_polygon_offset
#define GL_EXT_polygon_offset 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_POLYGON_OFFSET
#define GL_POLYGON_OFFSET_EXT        0x8037     /* 32823 */
#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038     /* 32824 */
#define GL_POLYGON_OFFSET_BIAS_EXT   0x8039     /* 32825 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_POLYGON_OFFSET
typedef void (REGAL_CALL *PFNGLPOLYGONOFFSETEXTPROC)(GLfloat factor, GLfloat bias);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_POLYGON_OFFSET
#define glPolygonOffsetEXT                  rglPolygonOffsetEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_POLYGON_OFFSET
REGAL_DECL void REGAL_CALL glPolygonOffsetEXT(GLfloat factor, GLfloat bias);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_POLYGON_OFFSET
REGAL_DECL void REGAL_CALL plugin_glPolygonOffsetEXT(GLfloat factor, GLfloat bias);
#endif

/**
 ** GL_EXT_provoking_vertex
 **/

#if (defined(GL_EXT_PROVOKING_VERTEX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_PROVOKING_VERTEX)) && !defined(REGAL_NO_ENUM_GL_EXT_PROVOKING_VERTEX)
#define REGAL_NO_ENUM_GL_EXT_PROVOKING_VERTEX
#endif

#if (defined(GL_EXT_PROVOKING_VERTEX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_PROVOKING_VERTEX)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_PROVOKING_VERTEX)
#define REGAL_NO_TYPEDEF_GL_EXT_PROVOKING_VERTEX
#endif

#if (defined(GL_EXT_PROVOKING_VERTEX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_PROVOKING_VERTEX)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_PROVOKING_VERTEX)
#define REGAL_NO_NAMESPACE_GL_EXT_PROVOKING_VERTEX
#endif

#if (defined(GL_EXT_PROVOKING_VERTEX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_PROVOKING_VERTEX)) && !defined(REGAL_NO_PLUGIN_GL_EXT_PROVOKING_VERTEX)
#define REGAL_NO_PLUGIN_GL_EXT_PROVOKING_VERTEX
#endif

#if (defined(GL_EXT_PROVOKING_VERTEX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_PROVOKING_VERTEX)) && !defined(REGAL_NO_DECLARATION_GL_EXT_PROVOKING_VERTEX)
#define REGAL_NO_DECLARATION_GL_EXT_PROVOKING_VERTEX
#endif

#ifndef GL_EXT_provoking_vertex
#define GL_EXT_provoking_vertex 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_PROVOKING_VERTEX
#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8e4c     /* 36428 */
#define GL_FIRST_VERTEX_CONVENTION_EXT                  0x8e4d     /* 36429 */
#define GL_LAST_VERTEX_CONVENTION_EXT                   0x8e4e     /* 36430 */
#define GL_PROVOKING_VERTEX_EXT                         0x8e4f     /* 36431 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_PROVOKING_VERTEX
typedef void (REGAL_CALL *PFNGLPROVOKINGVERTEXEXTPROC)(GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_PROVOKING_VERTEX
#define glProvokingVertexEXT                rglProvokingVertexEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_PROVOKING_VERTEX
REGAL_DECL void REGAL_CALL glProvokingVertexEXT(GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_PROVOKING_VERTEX
REGAL_DECL void REGAL_CALL plugin_glProvokingVertexEXT(GLenum mode);
#endif

/**
 ** GL_EXT_read_format_bgra
 **/

#if (defined(GL_EXT_READ_FORMAT_BGRA) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_READ_FORMAT_BGRA)) && !defined(REGAL_NO_ENUM_GL_EXT_READ_FORMAT_BGRA)
#define REGAL_NO_ENUM_GL_EXT_READ_FORMAT_BGRA
#endif

#if (defined(GL_EXT_READ_FORMAT_BGRA) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_READ_FORMAT_BGRA)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_READ_FORMAT_BGRA)
#define REGAL_NO_TYPEDEF_GL_EXT_READ_FORMAT_BGRA
#endif

#if (defined(GL_EXT_READ_FORMAT_BGRA) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_READ_FORMAT_BGRA)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_READ_FORMAT_BGRA)
#define REGAL_NO_NAMESPACE_GL_EXT_READ_FORMAT_BGRA
#endif

#if (defined(GL_EXT_READ_FORMAT_BGRA) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_READ_FORMAT_BGRA)) && !defined(REGAL_NO_PLUGIN_GL_EXT_READ_FORMAT_BGRA)
#define REGAL_NO_PLUGIN_GL_EXT_READ_FORMAT_BGRA
#endif

#if (defined(GL_EXT_READ_FORMAT_BGRA) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_READ_FORMAT_BGRA)) && !defined(REGAL_NO_DECLARATION_GL_EXT_READ_FORMAT_BGRA)
#define REGAL_NO_DECLARATION_GL_EXT_READ_FORMAT_BGRA
#endif

#ifndef GL_EXT_read_format_bgra
#define GL_EXT_read_format_bgra 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_READ_FORMAT_BGRA
#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT 0x8365     /* 33637 */
#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT 0x8366     /* 33638 */
#endif

/**
 ** GL_EXT_rescale_normal
 **/

#if (defined(GL_EXT_RESCALE_NORMAL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_RESCALE_NORMAL)) && !defined(REGAL_NO_ENUM_GL_EXT_RESCALE_NORMAL)
#define REGAL_NO_ENUM_GL_EXT_RESCALE_NORMAL
#endif

#if (defined(GL_EXT_RESCALE_NORMAL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_RESCALE_NORMAL)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_RESCALE_NORMAL)
#define REGAL_NO_TYPEDEF_GL_EXT_RESCALE_NORMAL
#endif

#if (defined(GL_EXT_RESCALE_NORMAL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_RESCALE_NORMAL)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_RESCALE_NORMAL)
#define REGAL_NO_NAMESPACE_GL_EXT_RESCALE_NORMAL
#endif

#if (defined(GL_EXT_RESCALE_NORMAL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_RESCALE_NORMAL)) && !defined(REGAL_NO_PLUGIN_GL_EXT_RESCALE_NORMAL)
#define REGAL_NO_PLUGIN_GL_EXT_RESCALE_NORMAL
#endif

#if (defined(GL_EXT_RESCALE_NORMAL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_RESCALE_NORMAL)) && !defined(REGAL_NO_DECLARATION_GL_EXT_RESCALE_NORMAL)
#define REGAL_NO_DECLARATION_GL_EXT_RESCALE_NORMAL
#endif

#ifndef GL_EXT_rescale_normal
#define GL_EXT_rescale_normal 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_RESCALE_NORMAL
#define GL_RESCALE_NORMAL_EXT 0x803a /* 32826 */
#endif

/**
 ** GL_EXT_robustness
 **/

#if (defined(GL_EXT_ROBUSTNESS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_ROBUSTNESS)) && !defined(REGAL_NO_ENUM_GL_EXT_ROBUSTNESS)
#define REGAL_NO_ENUM_GL_EXT_ROBUSTNESS
#endif

#if (defined(GL_EXT_ROBUSTNESS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_ROBUSTNESS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_ROBUSTNESS)
#define REGAL_NO_TYPEDEF_GL_EXT_ROBUSTNESS
#endif

#if (defined(GL_EXT_ROBUSTNESS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_ROBUSTNESS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_ROBUSTNESS)
#define REGAL_NO_NAMESPACE_GL_EXT_ROBUSTNESS
#endif

#if (defined(GL_EXT_ROBUSTNESS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_ROBUSTNESS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_ROBUSTNESS)
#define REGAL_NO_PLUGIN_GL_EXT_ROBUSTNESS
#endif

#if (defined(GL_EXT_ROBUSTNESS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_ROBUSTNESS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_ROBUSTNESS)
#define REGAL_NO_DECLARATION_GL_EXT_ROBUSTNESS
#endif

#ifndef GL_EXT_robustness
#define GL_EXT_robustness 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_ROBUSTNESS
#define GL_LOSE_CONTEXT_ON_RESET_EXT       0x8252     /* 33362 */
#define GL_GUILTY_CONTEXT_RESET_EXT        0x8253     /* 33363 */
#define GL_INNOCENT_CONTEXT_RESET_EXT      0x8254     /* 33364 */
#define GL_UNKNOWN_CONTEXT_RESET_EXT       0x8255     /* 33365 */
#define GL_RESET_NOTIFICATION_STRATEGY_EXT 0x8256     /* 33366 */
#define GL_NO_RESET_NOTIFICATION_EXT       0x8261     /* 33377 */
#define GL_CONTEXT_ROBUST_ACCESS_EXT       0x90f3     /* 37107 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_ROBUSTNESS
typedef void (REGAL_CALL *PFNGLGETNUNIFORMFVEXTPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETNUNIFORMIVEXTPROC)(GLuint program, GLint location, GLsizei bufSize, GLint *params);
typedef void (REGAL_CALL *PFNGLREADNPIXELSEXTPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_ROBUSTNESS
#define glGetnUniformfvEXT                  rglGetnUniformfvEXT
#define glGetnUniformivEXT                  rglGetnUniformivEXT
#define glReadnPixelsEXT                    rglReadnPixelsEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_ROBUSTNESS
REGAL_DECL void REGAL_CALL glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint *params);
REGAL_DECL void REGAL_CALL glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_ROBUSTNESS
REGAL_DECL void REGAL_CALL plugin_glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data);
#endif

/**
 ** GL_EXT_sRGB
 **/

#if (defined(GL_EXT_SRGB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SRGB)) && !defined(REGAL_NO_ENUM_GL_EXT_SRGB)
#define REGAL_NO_ENUM_GL_EXT_SRGB
#endif

#if (defined(GL_EXT_SRGB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SRGB)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SRGB)
#define REGAL_NO_TYPEDEF_GL_EXT_SRGB
#endif

#if (defined(GL_EXT_SRGB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SRGB)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SRGB)
#define REGAL_NO_NAMESPACE_GL_EXT_SRGB
#endif

#if (defined(GL_EXT_SRGB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SRGB)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SRGB)
#define REGAL_NO_PLUGIN_GL_EXT_SRGB
#endif

#if (defined(GL_EXT_SRGB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SRGB)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SRGB)
#define REGAL_NO_DECLARATION_GL_EXT_SRGB
#endif

#ifndef GL_EXT_sRGB
#define GL_EXT_sRGB 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_SRGB
#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT 0x8210 /* 33296 */
#endif

/**
 ** GL_EXT_scene_marker
 **/

#if (defined(GL_EXT_SCENE_MARKER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SCENE_MARKER)) && !defined(REGAL_NO_ENUM_GL_EXT_SCENE_MARKER)
#define REGAL_NO_ENUM_GL_EXT_SCENE_MARKER
#endif

#if (defined(GL_EXT_SCENE_MARKER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SCENE_MARKER)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SCENE_MARKER)
#define REGAL_NO_TYPEDEF_GL_EXT_SCENE_MARKER
#endif

#if (defined(GL_EXT_SCENE_MARKER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SCENE_MARKER)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SCENE_MARKER)
#define REGAL_NO_NAMESPACE_GL_EXT_SCENE_MARKER
#endif

#if (defined(GL_EXT_SCENE_MARKER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SCENE_MARKER)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SCENE_MARKER)
#define REGAL_NO_PLUGIN_GL_EXT_SCENE_MARKER
#endif

#if (defined(GL_EXT_SCENE_MARKER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SCENE_MARKER)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SCENE_MARKER)
#define REGAL_NO_DECLARATION_GL_EXT_SCENE_MARKER
#endif

#ifndef GL_EXT_scene_marker
#define GL_EXT_scene_marker 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_SCENE_MARKER
typedef void (REGAL_CALL *PFNGLBEGINSCENEEXTPROC)(void);
typedef void (REGAL_CALL *PFNGLENDSCENEEXTPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_SCENE_MARKER
#define glBeginSceneEXT                     rglBeginSceneEXT
#define glEndSceneEXT                       rglEndSceneEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_SCENE_MARKER
REGAL_DECL void REGAL_CALL glBeginSceneEXT(void);
REGAL_DECL void REGAL_CALL glEndSceneEXT(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_SCENE_MARKER
REGAL_DECL void REGAL_CALL plugin_glBeginSceneEXT(void);
REGAL_DECL void REGAL_CALL plugin_glEndSceneEXT(void);
#endif

/**
 ** GL_EXT_secondary_color
 **/

#if (defined(GL_EXT_SECONDARY_COLOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SECONDARY_COLOR)) && !defined(REGAL_NO_ENUM_GL_EXT_SECONDARY_COLOR)
#define REGAL_NO_ENUM_GL_EXT_SECONDARY_COLOR
#endif

#if (defined(GL_EXT_SECONDARY_COLOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SECONDARY_COLOR)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SECONDARY_COLOR)
#define REGAL_NO_TYPEDEF_GL_EXT_SECONDARY_COLOR
#endif

#if (defined(GL_EXT_SECONDARY_COLOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SECONDARY_COLOR)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SECONDARY_COLOR)
#define REGAL_NO_NAMESPACE_GL_EXT_SECONDARY_COLOR
#endif

#if (defined(GL_EXT_SECONDARY_COLOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SECONDARY_COLOR)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SECONDARY_COLOR)
#define REGAL_NO_PLUGIN_GL_EXT_SECONDARY_COLOR
#endif

#if (defined(GL_EXT_SECONDARY_COLOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SECONDARY_COLOR)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SECONDARY_COLOR)
#define REGAL_NO_DECLARATION_GL_EXT_SECONDARY_COLOR
#endif

#ifndef GL_EXT_secondary_color
#define GL_EXT_secondary_color 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_SECONDARY_COLOR
#define GL_COLOR_SUM_EXT                     0x8458     /* 33880 */
#define GL_CURRENT_SECONDARY_COLOR_EXT       0x8459     /* 33881 */
#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT    0x845a     /* 33882 */
#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT    0x845b     /* 33883 */
#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT  0x845c     /* 33884 */
#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845d     /* 33885 */
#define GL_SECONDARY_COLOR_ARRAY_EXT         0x845e     /* 33886 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_SECONDARY_COLOR
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3BEXTPROC)(GLbyte red, GLbyte green, GLbyte blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3BVEXTPROC)(const GLbyte *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3DEXTPROC)(GLdouble red, GLdouble green, GLdouble blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3DVEXTPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3FEXTPROC)(GLfloat red, GLfloat green, GLfloat blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3FVEXTPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3IEXTPROC)(GLint red, GLint green, GLint blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3IVEXTPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3SEXTPROC)(GLshort red, GLshort green, GLshort blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3SVEXTPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3UBEXTPROC)(GLubyte red, GLubyte green, GLubyte blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3UBVEXTPROC)(const GLubyte *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3UIEXTPROC)(GLuint red, GLuint green, GLuint blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3UIVEXTPROC)(const GLuint *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3USEXTPROC)(GLushort red, GLushort green, GLushort blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3USVEXTPROC)(const GLushort *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_SECONDARY_COLOR
#define glSecondaryColor3bEXT               rglSecondaryColor3bEXT
#define glSecondaryColor3bvEXT              rglSecondaryColor3bvEXT
#define glSecondaryColor3dEXT               rglSecondaryColor3dEXT
#define glSecondaryColor3dvEXT              rglSecondaryColor3dvEXT
#define glSecondaryColor3fEXT               rglSecondaryColor3fEXT
#define glSecondaryColor3fvEXT              rglSecondaryColor3fvEXT
#define glSecondaryColor3iEXT               rglSecondaryColor3iEXT
#define glSecondaryColor3ivEXT              rglSecondaryColor3ivEXT
#define glSecondaryColor3sEXT               rglSecondaryColor3sEXT
#define glSecondaryColor3svEXT              rglSecondaryColor3svEXT
#define glSecondaryColor3ubEXT              rglSecondaryColor3ubEXT
#define glSecondaryColor3ubvEXT             rglSecondaryColor3ubvEXT
#define glSecondaryColor3uiEXT              rglSecondaryColor3uiEXT
#define glSecondaryColor3uivEXT             rglSecondaryColor3uivEXT
#define glSecondaryColor3usEXT              rglSecondaryColor3usEXT
#define glSecondaryColor3usvEXT             rglSecondaryColor3usvEXT
#define glSecondaryColorPointerEXT          rglSecondaryColorPointerEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_SECONDARY_COLOR
REGAL_DECL void REGAL_CALL glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3bvEXT(const GLbyte *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3dvEXT(const GLdouble *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3fvEXT(const GLfloat *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3iEXT(GLint red, GLint green, GLint blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3ivEXT(const GLint *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3svEXT(const GLshort *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3ubvEXT(const GLubyte *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3uivEXT(const GLuint *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3usvEXT(const GLushort *v);
REGAL_DECL void REGAL_CALL glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_SECONDARY_COLOR
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3bvEXT(const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3dvEXT(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3fvEXT(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3iEXT(GLint red, GLint green, GLint blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3ivEXT(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3svEXT(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3ubvEXT(const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3uivEXT(const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3usvEXT(const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_EXT_separate_shader_objects
 **/

#if (defined(GL_EXT_SEPARATE_SHADER_OBJECTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_ENUM_GL_EXT_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_ENUM_GL_EXT_SEPARATE_SHADER_OBJECTS
#endif

#if (defined(GL_EXT_SEPARATE_SHADER_OBJECTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_TYPEDEF_GL_EXT_SEPARATE_SHADER_OBJECTS
#endif

#if (defined(GL_EXT_SEPARATE_SHADER_OBJECTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_NAMESPACE_GL_EXT_SEPARATE_SHADER_OBJECTS
#endif

#if (defined(GL_EXT_SEPARATE_SHADER_OBJECTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_PLUGIN_GL_EXT_SEPARATE_SHADER_OBJECTS
#endif

#if (defined(GL_EXT_SEPARATE_SHADER_OBJECTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SEPARATE_SHADER_OBJECTS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SEPARATE_SHADER_OBJECTS)
#define REGAL_NO_DECLARATION_GL_EXT_SEPARATE_SHADER_OBJECTS
#endif

#ifndef GL_EXT_separate_shader_objects
#define GL_EXT_separate_shader_objects 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_SEPARATE_SHADER_OBJECTS
#define GL_ACTIVE_PROGRAM_EXT 0x8b8d /* 35725 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_SEPARATE_SHADER_OBJECTS
typedef GLuint (REGAL_CALL *PFNGLCREATESHADERPROGRAMEXTPROC)(GLenum type, const GLchar *string);
typedef void (REGAL_CALL *PFNGLACTIVEPROGRAMEXTPROC)(GLuint program);
typedef void (REGAL_CALL *PFNGLUSESHADERPROGRAMEXTPROC)(GLenum type, GLuint program);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_SEPARATE_SHADER_OBJECTS
#define glActiveProgramEXT                  rglActiveProgramEXT
#define glCreateShaderProgramEXT            rglCreateShaderProgramEXT
#define glUseShaderProgramEXT               rglUseShaderProgramEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_SEPARATE_SHADER_OBJECTS
REGAL_DECL GLuint REGAL_CALL glCreateShaderProgramEXT(GLenum type, const GLchar *string);
REGAL_DECL void REGAL_CALL glActiveProgramEXT(GLuint program);
REGAL_DECL void REGAL_CALL glUseShaderProgramEXT(GLenum type, GLuint program);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_SEPARATE_SHADER_OBJECTS
REGAL_DECL GLuint REGAL_CALL plugin_glCreateShaderProgramEXT(GLenum type, const GLchar *string);
REGAL_DECL void REGAL_CALL plugin_glActiveProgramEXT(GLuint program);
REGAL_DECL void REGAL_CALL plugin_glUseShaderProgramEXT(GLenum type, GLuint program);
#endif

/**
 ** GL_EXT_separate_specular_color
 **/

#if (defined(GL_EXT_SEPARATE_SPECULAR_COLOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SEPARATE_SPECULAR_COLOR)) && !defined(REGAL_NO_ENUM_GL_EXT_SEPARATE_SPECULAR_COLOR)
#define REGAL_NO_ENUM_GL_EXT_SEPARATE_SPECULAR_COLOR
#endif

#if (defined(GL_EXT_SEPARATE_SPECULAR_COLOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SEPARATE_SPECULAR_COLOR)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SEPARATE_SPECULAR_COLOR)
#define REGAL_NO_TYPEDEF_GL_EXT_SEPARATE_SPECULAR_COLOR
#endif

#if (defined(GL_EXT_SEPARATE_SPECULAR_COLOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SEPARATE_SPECULAR_COLOR)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SEPARATE_SPECULAR_COLOR)
#define REGAL_NO_NAMESPACE_GL_EXT_SEPARATE_SPECULAR_COLOR
#endif

#if (defined(GL_EXT_SEPARATE_SPECULAR_COLOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SEPARATE_SPECULAR_COLOR)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SEPARATE_SPECULAR_COLOR)
#define REGAL_NO_PLUGIN_GL_EXT_SEPARATE_SPECULAR_COLOR
#endif

#if (defined(GL_EXT_SEPARATE_SPECULAR_COLOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SEPARATE_SPECULAR_COLOR)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SEPARATE_SPECULAR_COLOR)
#define REGAL_NO_DECLARATION_GL_EXT_SEPARATE_SPECULAR_COLOR
#endif

#ifndef GL_EXT_separate_specular_color
#define GL_EXT_separate_specular_color 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_SEPARATE_SPECULAR_COLOR
#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81f8     /* 33272 */
#define GL_SINGLE_COLOR_EXT              0x81f9     /* 33273 */
#define GL_SEPARATE_SPECULAR_COLOR_EXT   0x81fa     /* 33274 */
#endif

/**
 ** GL_EXT_shader_framebuffer_fetch
 **/

#if (defined(GL_EXT_SHADER_FRAMEBUFFER_FETCH) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SHADER_FRAMEBUFFER_FETCH)) && !defined(REGAL_NO_ENUM_GL_EXT_SHADER_FRAMEBUFFER_FETCH)
#define REGAL_NO_ENUM_GL_EXT_SHADER_FRAMEBUFFER_FETCH
#endif

#if (defined(GL_EXT_SHADER_FRAMEBUFFER_FETCH) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SHADER_FRAMEBUFFER_FETCH)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SHADER_FRAMEBUFFER_FETCH)
#define REGAL_NO_TYPEDEF_GL_EXT_SHADER_FRAMEBUFFER_FETCH
#endif

#if (defined(GL_EXT_SHADER_FRAMEBUFFER_FETCH) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SHADER_FRAMEBUFFER_FETCH)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SHADER_FRAMEBUFFER_FETCH)
#define REGAL_NO_NAMESPACE_GL_EXT_SHADER_FRAMEBUFFER_FETCH
#endif

#if (defined(GL_EXT_SHADER_FRAMEBUFFER_FETCH) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SHADER_FRAMEBUFFER_FETCH)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SHADER_FRAMEBUFFER_FETCH)
#define REGAL_NO_PLUGIN_GL_EXT_SHADER_FRAMEBUFFER_FETCH
#endif

#if (defined(GL_EXT_SHADER_FRAMEBUFFER_FETCH) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SHADER_FRAMEBUFFER_FETCH)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SHADER_FRAMEBUFFER_FETCH)
#define REGAL_NO_DECLARATION_GL_EXT_SHADER_FRAMEBUFFER_FETCH
#endif

#ifndef GL_EXT_shader_framebuffer_fetch
#define GL_EXT_shader_framebuffer_fetch 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_SHADER_FRAMEBUFFER_FETCH
#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT 0x8a52 /* 35410 */
#endif

/**
 ** GL_EXT_shader_image_load_store
 **/

#if (defined(GL_EXT_SHADER_IMAGE_LOAD_STORE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_ENUM_GL_EXT_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_ENUM_GL_EXT_SHADER_IMAGE_LOAD_STORE
#endif

#if (defined(GL_EXT_SHADER_IMAGE_LOAD_STORE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_TYPEDEF_GL_EXT_SHADER_IMAGE_LOAD_STORE
#endif

#if (defined(GL_EXT_SHADER_IMAGE_LOAD_STORE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_NAMESPACE_GL_EXT_SHADER_IMAGE_LOAD_STORE
#endif

#if (defined(GL_EXT_SHADER_IMAGE_LOAD_STORE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_PLUGIN_GL_EXT_SHADER_IMAGE_LOAD_STORE
#endif

#if (defined(GL_EXT_SHADER_IMAGE_LOAD_STORE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SHADER_IMAGE_LOAD_STORE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SHADER_IMAGE_LOAD_STORE)
#define REGAL_NO_DECLARATION_GL_EXT_SHADER_IMAGE_LOAD_STORE
#endif

#ifndef GL_EXT_shader_image_load_store
#define GL_EXT_shader_image_load_store 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_SHADER_IMAGE_LOAD_STORE
#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT               0x1
#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT                    0x100          /* 256 */
#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT                    0x1000         /* 4096 */
#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT                     0x2
#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT               0x20           /* 32 */
#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT                     0x200          /* 512 */
#define GL_UNIFORM_BARRIER_BIT_EXT                           0x4
#define GL_COMMAND_BARRIER_BIT_EXT                           0x40           /* 64 */
#define GL_FRAMEBUFFER_BARRIER_BIT_EXT                       0x400          /* 1024 */
#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT                     0x8
#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT                      0x80           /* 128 */
#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT                0x800          /* 2048 */
#define GL_MAX_IMAGE_UNITS_EXT                               0x8f38         /* 36664 */
#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8f39         /* 36665 */
#define GL_IMAGE_BINDING_NAME_EXT                            0x8f3a         /* 36666 */
#define GL_IMAGE_BINDING_LEVEL_EXT                           0x8f3b         /* 36667 */
#define GL_IMAGE_BINDING_LAYERED_EXT                         0x8f3c         /* 36668 */
#define GL_IMAGE_BINDING_LAYER_EXT                           0x8f3d         /* 36669 */
#define GL_IMAGE_BINDING_ACCESS_EXT                          0x8f3e         /* 36670 */
#define GL_IMAGE_1D_EXT                                      0x904c         /* 36940 */
#define GL_IMAGE_2D_EXT                                      0x904d         /* 36941 */
#define GL_IMAGE_3D_EXT                                      0x904e         /* 36942 */
#define GL_IMAGE_2D_RECT_EXT                                 0x904f         /* 36943 */
#define GL_IMAGE_CUBE_EXT                                    0x9050         /* 36944 */
#define GL_IMAGE_BUFFER_EXT                                  0x9051         /* 36945 */
#define GL_IMAGE_1D_ARRAY_EXT                                0x9052         /* 36946 */
#define GL_IMAGE_2D_ARRAY_EXT                                0x9053         /* 36947 */
#define GL_IMAGE_CUBE_MAP_ARRAY_EXT                          0x9054         /* 36948 */
#define GL_IMAGE_2D_MULTISAMPLE_EXT                          0x9055         /* 36949 */
#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT                    0x9056         /* 36950 */
#define GL_INT_IMAGE_1D_EXT                                  0x9057         /* 36951 */
#define GL_INT_IMAGE_2D_EXT                                  0x9058         /* 36952 */
#define GL_INT_IMAGE_3D_EXT                                  0x9059         /* 36953 */
#define GL_INT_IMAGE_2D_RECT_EXT                             0x905a         /* 36954 */
#define GL_INT_IMAGE_CUBE_EXT                                0x905b         /* 36955 */
#define GL_INT_IMAGE_BUFFER_EXT                              0x905c         /* 36956 */
#define GL_INT_IMAGE_1D_ARRAY_EXT                            0x905d         /* 36957 */
#define GL_INT_IMAGE_2D_ARRAY_EXT                            0x905e         /* 36958 */
#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT                      0x905f         /* 36959 */
#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT                      0x9060         /* 36960 */
#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT                0x9061         /* 36961 */
#define GL_UNSIGNED_INT_IMAGE_1D_EXT                         0x9062         /* 36962 */
#define GL_UNSIGNED_INT_IMAGE_2D_EXT                         0x9063         /* 36963 */
#define GL_UNSIGNED_INT_IMAGE_3D_EXT                         0x9064         /* 36964 */
#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT                    0x9065         /* 36965 */
#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT                       0x9066         /* 36966 */
#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT                     0x9067         /* 36967 */
#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT                   0x9068         /* 36968 */
#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT                   0x9069         /* 36969 */
#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT             0x906a         /* 36970 */
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT             0x906b         /* 36971 */
#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT       0x906c         /* 36972 */
#define GL_MAX_IMAGE_SAMPLES_EXT                             0x906d         /* 36973 */
#define GL_IMAGE_BINDING_FORMAT_EXT                          0x906e         /* 36974 */
#define GL_ALL_BARRIER_BITS_EXT                              0xffffffff     /* 4294967295 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_SHADER_IMAGE_LOAD_STORE
typedef void (REGAL_CALL *PFNGLBINDIMAGETEXTUREEXTPROC)(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
typedef void (REGAL_CALL *PFNGLMEMORYBARRIEREXTPROC)(GLbitfield barriers);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_SHADER_IMAGE_LOAD_STORE
#define glBindImageTextureEXT               rglBindImageTextureEXT
#define glMemoryBarrierEXT                  rglMemoryBarrierEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_SHADER_IMAGE_LOAD_STORE
REGAL_DECL void REGAL_CALL glBindImageTextureEXT(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
REGAL_DECL void REGAL_CALL glMemoryBarrierEXT(GLbitfield barriers);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_SHADER_IMAGE_LOAD_STORE
REGAL_DECL void REGAL_CALL plugin_glBindImageTextureEXT(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
REGAL_DECL void REGAL_CALL plugin_glMemoryBarrierEXT(GLbitfield barriers);
#endif

/**
 ** GL_EXT_shadow_samplers
 **/

#if (defined(GL_EXT_SHADOW_SAMPLERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SHADOW_SAMPLERS)) && !defined(REGAL_NO_ENUM_GL_EXT_SHADOW_SAMPLERS)
#define REGAL_NO_ENUM_GL_EXT_SHADOW_SAMPLERS
#endif

#if (defined(GL_EXT_SHADOW_SAMPLERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SHADOW_SAMPLERS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SHADOW_SAMPLERS)
#define REGAL_NO_TYPEDEF_GL_EXT_SHADOW_SAMPLERS
#endif

#if (defined(GL_EXT_SHADOW_SAMPLERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SHADOW_SAMPLERS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SHADOW_SAMPLERS)
#define REGAL_NO_NAMESPACE_GL_EXT_SHADOW_SAMPLERS
#endif

#if (defined(GL_EXT_SHADOW_SAMPLERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SHADOW_SAMPLERS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SHADOW_SAMPLERS)
#define REGAL_NO_PLUGIN_GL_EXT_SHADOW_SAMPLERS
#endif

#if (defined(GL_EXT_SHADOW_SAMPLERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SHADOW_SAMPLERS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SHADOW_SAMPLERS)
#define REGAL_NO_DECLARATION_GL_EXT_SHADOW_SAMPLERS
#endif

#ifndef GL_EXT_shadow_samplers
#define GL_EXT_shadow_samplers 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_SHADOW_SAMPLERS
#define GL_TEXTURE_COMPARE_MODE_EXT   0x884c     /* 34892 */
#define GL_TEXTURE_COMPARE_FUNC_EXT   0x884d     /* 34893 */
#define GL_COMPARE_REF_TO_TEXTURE_EXT 0x884e     /* 34894 */
#define GL_SAMPLER_2D_SHADOW_EXT      0x8b62     /* 35682 */
#endif

/**
 ** GL_EXT_shared_texture_palette
 **/

#if (defined(GL_EXT_SHARED_TEXTURE_PALETTE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SHARED_TEXTURE_PALETTE)) && !defined(REGAL_NO_ENUM_GL_EXT_SHARED_TEXTURE_PALETTE)
#define REGAL_NO_ENUM_GL_EXT_SHARED_TEXTURE_PALETTE
#endif

#if (defined(GL_EXT_SHARED_TEXTURE_PALETTE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SHARED_TEXTURE_PALETTE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SHARED_TEXTURE_PALETTE)
#define REGAL_NO_TYPEDEF_GL_EXT_SHARED_TEXTURE_PALETTE
#endif

#if (defined(GL_EXT_SHARED_TEXTURE_PALETTE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SHARED_TEXTURE_PALETTE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SHARED_TEXTURE_PALETTE)
#define REGAL_NO_NAMESPACE_GL_EXT_SHARED_TEXTURE_PALETTE
#endif

#if (defined(GL_EXT_SHARED_TEXTURE_PALETTE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SHARED_TEXTURE_PALETTE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SHARED_TEXTURE_PALETTE)
#define REGAL_NO_PLUGIN_GL_EXT_SHARED_TEXTURE_PALETTE
#endif

#if (defined(GL_EXT_SHARED_TEXTURE_PALETTE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SHARED_TEXTURE_PALETTE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SHARED_TEXTURE_PALETTE)
#define REGAL_NO_DECLARATION_GL_EXT_SHARED_TEXTURE_PALETTE
#endif

#ifndef GL_EXT_shared_texture_palette
#define GL_EXT_shared_texture_palette 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_SHARED_TEXTURE_PALETTE
#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81fb /* 33275 */
#endif

/**
 ** GL_EXT_stencil_clear_tag
 **/

#if (defined(GL_EXT_STENCIL_CLEAR_TAG) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_STENCIL_CLEAR_TAG)) && !defined(REGAL_NO_ENUM_GL_EXT_STENCIL_CLEAR_TAG)
#define REGAL_NO_ENUM_GL_EXT_STENCIL_CLEAR_TAG
#endif

#if (defined(GL_EXT_STENCIL_CLEAR_TAG) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_STENCIL_CLEAR_TAG)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_STENCIL_CLEAR_TAG)
#define REGAL_NO_TYPEDEF_GL_EXT_STENCIL_CLEAR_TAG
#endif

#if (defined(GL_EXT_STENCIL_CLEAR_TAG) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_STENCIL_CLEAR_TAG)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_STENCIL_CLEAR_TAG)
#define REGAL_NO_NAMESPACE_GL_EXT_STENCIL_CLEAR_TAG
#endif

#if (defined(GL_EXT_STENCIL_CLEAR_TAG) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_STENCIL_CLEAR_TAG)) && !defined(REGAL_NO_PLUGIN_GL_EXT_STENCIL_CLEAR_TAG)
#define REGAL_NO_PLUGIN_GL_EXT_STENCIL_CLEAR_TAG
#endif

#if (defined(GL_EXT_STENCIL_CLEAR_TAG) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_STENCIL_CLEAR_TAG)) && !defined(REGAL_NO_DECLARATION_GL_EXT_STENCIL_CLEAR_TAG)
#define REGAL_NO_DECLARATION_GL_EXT_STENCIL_CLEAR_TAG
#endif

#ifndef GL_EXT_stencil_clear_tag
#define GL_EXT_stencil_clear_tag 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_STENCIL_CLEAR_TAG
#define GL_STENCIL_TAG_BITS_EXT        0x88f2     /* 35058 */
#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88f3     /* 35059 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_STENCIL_CLEAR_TAG
typedef void (REGAL_CALL *PFNGLSTENCILCLEARTAGEXTPROC)(GLsizei stencilTagBits, GLuint stencilClearTag);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_STENCIL_CLEAR_TAG
#define glStencilClearTagEXT                rglStencilClearTagEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_STENCIL_CLEAR_TAG
REGAL_DECL void REGAL_CALL glStencilClearTagEXT(GLsizei stencilTagBits, GLuint stencilClearTag);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_STENCIL_CLEAR_TAG
REGAL_DECL void REGAL_CALL plugin_glStencilClearTagEXT(GLsizei stencilTagBits, GLuint stencilClearTag);
#endif

/**
 ** GL_EXT_stencil_two_side
 **/

#if (defined(GL_EXT_STENCIL_TWO_SIDE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_STENCIL_TWO_SIDE)) && !defined(REGAL_NO_ENUM_GL_EXT_STENCIL_TWO_SIDE)
#define REGAL_NO_ENUM_GL_EXT_STENCIL_TWO_SIDE
#endif

#if (defined(GL_EXT_STENCIL_TWO_SIDE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_STENCIL_TWO_SIDE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_STENCIL_TWO_SIDE)
#define REGAL_NO_TYPEDEF_GL_EXT_STENCIL_TWO_SIDE
#endif

#if (defined(GL_EXT_STENCIL_TWO_SIDE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_STENCIL_TWO_SIDE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_STENCIL_TWO_SIDE)
#define REGAL_NO_NAMESPACE_GL_EXT_STENCIL_TWO_SIDE
#endif

#if (defined(GL_EXT_STENCIL_TWO_SIDE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_STENCIL_TWO_SIDE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_STENCIL_TWO_SIDE)
#define REGAL_NO_PLUGIN_GL_EXT_STENCIL_TWO_SIDE
#endif

#if (defined(GL_EXT_STENCIL_TWO_SIDE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_STENCIL_TWO_SIDE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_STENCIL_TWO_SIDE)
#define REGAL_NO_DECLARATION_GL_EXT_STENCIL_TWO_SIDE
#endif

#ifndef GL_EXT_stencil_two_side
#define GL_EXT_stencil_two_side 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_STENCIL_TWO_SIDE
#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910     /* 35088 */
#define GL_ACTIVE_STENCIL_FACE_EXT   0x8911     /* 35089 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_STENCIL_TWO_SIDE
typedef void (REGAL_CALL *PFNGLACTIVESTENCILFACEEXTPROC)(GLenum face);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_STENCIL_TWO_SIDE
#define glActiveStencilFaceEXT              rglActiveStencilFaceEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_STENCIL_TWO_SIDE
REGAL_DECL void REGAL_CALL glActiveStencilFaceEXT(GLenum face);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_STENCIL_TWO_SIDE
REGAL_DECL void REGAL_CALL plugin_glActiveStencilFaceEXT(GLenum face);
#endif

/**
 ** GL_EXT_stencil_wrap
 **/

#if (defined(GL_EXT_STENCIL_WRAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_STENCIL_WRAP)) && !defined(REGAL_NO_ENUM_GL_EXT_STENCIL_WRAP)
#define REGAL_NO_ENUM_GL_EXT_STENCIL_WRAP
#endif

#if (defined(GL_EXT_STENCIL_WRAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_STENCIL_WRAP)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_STENCIL_WRAP)
#define REGAL_NO_TYPEDEF_GL_EXT_STENCIL_WRAP
#endif

#if (defined(GL_EXT_STENCIL_WRAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_STENCIL_WRAP)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_STENCIL_WRAP)
#define REGAL_NO_NAMESPACE_GL_EXT_STENCIL_WRAP
#endif

#if (defined(GL_EXT_STENCIL_WRAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_STENCIL_WRAP)) && !defined(REGAL_NO_PLUGIN_GL_EXT_STENCIL_WRAP)
#define REGAL_NO_PLUGIN_GL_EXT_STENCIL_WRAP
#endif

#if (defined(GL_EXT_STENCIL_WRAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_STENCIL_WRAP)) && !defined(REGAL_NO_DECLARATION_GL_EXT_STENCIL_WRAP)
#define REGAL_NO_DECLARATION_GL_EXT_STENCIL_WRAP
#endif

#ifndef GL_EXT_stencil_wrap
#define GL_EXT_stencil_wrap 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_STENCIL_WRAP
#define GL_INCR_WRAP_EXT 0x8507     /* 34055 */
#define GL_DECR_WRAP_EXT 0x8508     /* 34056 */
#endif

/**
 ** GL_EXT_subtexture
 **/

#if (defined(GL_EXT_SUBTEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_SUBTEXTURE)) && !defined(REGAL_NO_ENUM_GL_EXT_SUBTEXTURE)
#define REGAL_NO_ENUM_GL_EXT_SUBTEXTURE
#endif

#if (defined(GL_EXT_SUBTEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_SUBTEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_SUBTEXTURE)
#define REGAL_NO_TYPEDEF_GL_EXT_SUBTEXTURE
#endif

#if (defined(GL_EXT_SUBTEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_SUBTEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_SUBTEXTURE)
#define REGAL_NO_NAMESPACE_GL_EXT_SUBTEXTURE
#endif

#if (defined(GL_EXT_SUBTEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_SUBTEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_SUBTEXTURE)
#define REGAL_NO_PLUGIN_GL_EXT_SUBTEXTURE
#endif

#if (defined(GL_EXT_SUBTEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_SUBTEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_SUBTEXTURE)
#define REGAL_NO_DECLARATION_GL_EXT_SUBTEXTURE
#endif

#ifndef GL_EXT_subtexture
#define GL_EXT_subtexture 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_SUBTEXTURE
typedef void (REGAL_CALL *PFNGLTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_SUBTEXTURE
#define glTexSubImage1DEXT                  rglTexSubImage1DEXT
#define glTexSubImage2DEXT                  rglTexSubImage2DEXT
#define glTexSubImage3DEXT                  rglTexSubImage3DEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_SUBTEXTURE
REGAL_DECL void REGAL_CALL glTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_SUBTEXTURE
REGAL_DECL void REGAL_CALL plugin_glTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

/**
 ** GL_EXT_texture
 **/

#if (defined(GL_EXT_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE
#endif

#if (defined(GL_EXT_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE
#endif

#if (defined(GL_EXT_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE
#endif

#if (defined(GL_EXT_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE
#endif

#if (defined(GL_EXT_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE
#endif

#ifndef GL_EXT_texture
#define GL_EXT_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE
#define GL_ALPHA4_EXT                 0x803b     /* 32827 */
#define GL_ALPHA8_EXT                 0x803c     /* 32828 */
#define GL_ALPHA12_EXT                0x803d     /* 32829 */
#define GL_ALPHA16_EXT                0x803e     /* 32830 */
#define GL_LUMINANCE4_EXT             0x803f     /* 32831 */
#define GL_LUMINANCE8_EXT             0x8040     /* 32832 */
#define GL_LUMINANCE12_EXT            0x8041     /* 32833 */
#define GL_LUMINANCE16_EXT            0x8042     /* 32834 */
#define GL_LUMINANCE4_ALPHA4_EXT      0x8043     /* 32835 */
#define GL_LUMINANCE6_ALPHA2_EXT      0x8044     /* 32836 */
#define GL_LUMINANCE8_ALPHA8_EXT      0x8045     /* 32837 */
#define GL_LUMINANCE12_ALPHA4_EXT     0x8046     /* 32838 */
#define GL_LUMINANCE12_ALPHA12_EXT    0x8047     /* 32839 */
#define GL_LUMINANCE16_ALPHA16_EXT    0x8048     /* 32840 */
#define GL_INTENSITY_EXT              0x8049     /* 32841 */
#define GL_INTENSITY4_EXT             0x804a     /* 32842 */
#define GL_INTENSITY8_EXT             0x804b     /* 32843 */
#define GL_INTENSITY12_EXT            0x804c     /* 32844 */
#define GL_INTENSITY16_EXT            0x804d     /* 32845 */
#define GL_RGB2_EXT                   0x804e     /* 32846 */
#define GL_RGB4_EXT                   0x804f     /* 32847 */
#define GL_RGB5_EXT                   0x8050     /* 32848 */
#define GL_RGB8_EXT                   0x8051     /* 32849 */
#define GL_RGB10_EXT                  0x8052     /* 32850 */
#define GL_RGB12_EXT                  0x8053     /* 32851 */
#define GL_RGB16_EXT                  0x8054     /* 32852 */
#define GL_RGBA2_EXT                  0x8055     /* 32853 */
#define GL_RGBA4_EXT                  0x8056     /* 32854 */
#define GL_RGB5_A1_EXT                0x8057     /* 32855 */
#define GL_RGBA8_EXT                  0x8058     /* 32856 */
#define GL_RGB10_A2_EXT               0x8059     /* 32857 */
#define GL_RGBA12_EXT                 0x805a     /* 32858 */
#define GL_RGBA16_EXT                 0x805b     /* 32859 */
#define GL_TEXTURE_RED_SIZE_EXT       0x805c     /* 32860 */
#define GL_TEXTURE_GREEN_SIZE_EXT     0x805d     /* 32861 */
#define GL_TEXTURE_BLUE_SIZE_EXT      0x805e     /* 32862 */
#define GL_TEXTURE_ALPHA_SIZE_EXT     0x805f     /* 32863 */
#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060     /* 32864 */
#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061     /* 32865 */
#define GL_REPLACE_EXT                0x8062     /* 32866 */
#define GL_PROXY_TEXTURE_1D_EXT       0x8063     /* 32867 */
#define GL_PROXY_TEXTURE_2D_EXT       0x8064     /* 32868 */
#endif

/**
 ** GL_EXT_texture3D
 **/

#if (defined(GL_EXT_TEXTURE3D) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE3D)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE3D)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE3D
#endif

#if (defined(GL_EXT_TEXTURE3D) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE3D)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE3D)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE3D
#endif

#if (defined(GL_EXT_TEXTURE3D) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE3D)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE3D)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE3D
#endif

#if (defined(GL_EXT_TEXTURE3D) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE3D)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE3D)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE3D
#endif

#if (defined(GL_EXT_TEXTURE3D) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE3D)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE3D)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE3D
#endif

#ifndef GL_EXT_texture3D
#define GL_EXT_texture3D 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE3D
#define GL_PACK_SKIP_IMAGES_EXT    0x806b     /* 32875 */
#define GL_PACK_IMAGE_HEIGHT_EXT   0x806c     /* 32876 */
#define GL_UNPACK_SKIP_IMAGES_EXT  0x806d     /* 32877 */
#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806e     /* 32878 */
#define GL_TEXTURE_3D_EXT          0x806f     /* 32879 */
#define GL_PROXY_TEXTURE_3D_EXT    0x8070     /* 32880 */
#define GL_TEXTURE_DEPTH_EXT       0x8071     /* 32881 */
#define GL_TEXTURE_WRAP_R_EXT      0x8072     /* 32882 */
#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073     /* 32883 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TEXTURE3D
typedef void (REGAL_CALL *PFNGLTEXIMAGE3DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TEXTURE3D
#define glTexImage3DEXT                     rglTexImage3DEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TEXTURE3D
REGAL_DECL void REGAL_CALL glTexImage3DEXT(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TEXTURE3D
REGAL_DECL void REGAL_CALL plugin_glTexImage3DEXT(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
#endif

/**
 ** GL_EXT_texture_array
 **/

#if (defined(GL_EXT_TEXTURE_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_ARRAY)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_ARRAY)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_ARRAY
#endif

#if (defined(GL_EXT_TEXTURE_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_ARRAY)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_ARRAY
#endif

#if (defined(GL_EXT_TEXTURE_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_ARRAY)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_ARRAY
#endif

#if (defined(GL_EXT_TEXTURE_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_ARRAY)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_ARRAY
#endif

#if (defined(GL_EXT_TEXTURE_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_ARRAY)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_ARRAY
#endif

#ifndef GL_EXT_texture_array
#define GL_EXT_texture_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_ARRAY
#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884e     /* 34894 */
#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT     0x88ff     /* 35071 */
#define GL_TEXTURE_1D_ARRAY_EXT             0x8c18     /* 35864 */
#define GL_PROXY_TEXTURE_1D_ARRAY_EXT       0x8c19     /* 35865 */
#define GL_TEXTURE_2D_ARRAY_EXT             0x8c1a     /* 35866 */
#define GL_PROXY_TEXTURE_2D_ARRAY_EXT       0x8c1b     /* 35867 */
#define GL_TEXTURE_BINDING_1D_ARRAY_EXT     0x8c1c     /* 35868 */
#define GL_TEXTURE_BINDING_2D_ARRAY_EXT     0x8c1d     /* 35869 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_ARRAY
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_ARRAY
#define glFramebufferTextureLayerEXT        rglFramebufferTextureLayerEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TEXTURE_ARRAY
REGAL_DECL void REGAL_CALL glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TEXTURE_ARRAY
REGAL_DECL void REGAL_CALL plugin_glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
#endif

/**
 ** GL_EXT_texture_buffer_object
 **/

#if (defined(GL_EXT_TEXTURE_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_BUFFER_OBJECT
#endif

#if (defined(GL_EXT_TEXTURE_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_BUFFER_OBJECT
#endif

#if (defined(GL_EXT_TEXTURE_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_BUFFER_OBJECT
#endif

#if (defined(GL_EXT_TEXTURE_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_BUFFER_OBJECT
#endif

#if (defined(GL_EXT_TEXTURE_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_BUFFER_OBJECT
#endif

#ifndef GL_EXT_texture_buffer_object
#define GL_EXT_texture_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_BUFFER_OBJECT
#define GL_TEXTURE_BUFFER_EXT                    0x8c2a     /* 35882 */
#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT           0x8c2b     /* 35883 */
#define GL_TEXTURE_BINDING_BUFFER_EXT            0x8c2c     /* 35884 */
#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8c2d     /* 35885 */
#define GL_TEXTURE_BUFFER_FORMAT_EXT             0x8c2e     /* 35886 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_BUFFER_OBJECT
typedef void (REGAL_CALL *PFNGLTEXBUFFEREXTPROC)(GLenum target, GLenum internalformat, GLuint buffer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_BUFFER_OBJECT
#define glTexBufferEXT                      rglTexBufferEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TEXTURE_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL glTexBufferEXT(GLenum target, GLenum internalformat, GLuint buffer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TEXTURE_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL plugin_glTexBufferEXT(GLenum target, GLenum internalformat, GLuint buffer);
#endif

/**
 ** GL_EXT_texture_compression_latc
 **/

#if (defined(GL_EXT_TEXTURE_COMPRESSION_LATC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_LATC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_LATC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_COMPRESSION_LATC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_LATC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_COMPRESSION_LATC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_LATC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_COMPRESSION_LATC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_LATC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_COMPRESSION_LATC
#endif

#ifndef GL_EXT_texture_compression_latc
#define GL_EXT_texture_compression_latc 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_LATC
#define GL_COMPRESSED_LUMINANCE_LATC1_EXT              0x8c70     /* 35952 */
#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT       0x8c71     /* 35953 */
#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT        0x8c72     /* 35954 */
#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8c73     /* 35955 */
#endif

/**
 ** GL_EXT_texture_compression_rgtc
 **/

#if (defined(GL_EXT_TEXTURE_COMPRESSION_RGTC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_RGTC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_RGTC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_COMPRESSION_RGTC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_RGTC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_COMPRESSION_RGTC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_RGTC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_COMPRESSION_RGTC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_RGTC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_RGTC)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_COMPRESSION_RGTC)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_COMPRESSION_RGTC
#endif

#ifndef GL_EXT_texture_compression_rgtc
#define GL_EXT_texture_compression_rgtc 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_RGTC
#define GL_COMPRESSED_RED_RGTC1_EXT              0x8dbb     /* 36283 */
#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT       0x8dbc     /* 36284 */
#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT        0x8dbd     /* 36285 */
#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8dbe     /* 36286 */
#endif

/**
 ** GL_EXT_texture_compression_s3tc
 **/

#if (defined(GL_EXT_TEXTURE_COMPRESSION_S3TC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_S3TC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_S3TC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_COMPRESSION_S3TC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_S3TC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_COMPRESSION_S3TC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_S3TC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_COMPRESSION_S3TC
#endif

#if (defined(GL_EXT_TEXTURE_COMPRESSION_S3TC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_COMPRESSION_S3TC
#endif

#ifndef GL_EXT_texture_compression_s3tc
#define GL_EXT_texture_compression_s3tc 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_COMPRESSION_S3TC
#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT  0x83f0     /* 33776 */
#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83f1     /* 33777 */
#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83f2     /* 33778 */
#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83f3     /* 33779 */
#endif

/**
 ** GL_EXT_texture_cube_map
 **/

#if (defined(GL_EXT_TEXTURE_CUBE_MAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_CUBE_MAP)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_EXT_TEXTURE_CUBE_MAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_CUBE_MAP)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_EXT_TEXTURE_CUBE_MAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_CUBE_MAP)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_EXT_TEXTURE_CUBE_MAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_CUBE_MAP)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_EXT_TEXTURE_CUBE_MAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_CUBE_MAP)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_CUBE_MAP
#endif

#ifndef GL_EXT_texture_cube_map
#define GL_EXT_texture_cube_map 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_CUBE_MAP
#define GL_NORMAL_MAP_EXT                  0x8511     /* 34065 */
#define GL_REFLECTION_MAP_EXT              0x8512     /* 34066 */
#define GL_TEXTURE_CUBE_MAP_EXT            0x8513     /* 34067 */
#define GL_TEXTURE_BINDING_CUBE_MAP_EXT    0x8514     /* 34068 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515     /* 34069 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516     /* 34070 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517     /* 34071 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518     /* 34072 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519     /* 34073 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851a     /* 34074 */
#define GL_PROXY_TEXTURE_CUBE_MAP_EXT      0x851b     /* 34075 */
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT   0x851c     /* 34076 */
#endif

/**
 ** GL_EXT_texture_edge_clamp
 **/

#if (defined(GL_EXT_TEXTURE_EDGE_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_EDGE_CLAMP
#endif

#if (defined(GL_EXT_TEXTURE_EDGE_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_EDGE_CLAMP
#endif

#if (defined(GL_EXT_TEXTURE_EDGE_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_EDGE_CLAMP
#endif

#if (defined(GL_EXT_TEXTURE_EDGE_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_EDGE_CLAMP
#endif

#if (defined(GL_EXT_TEXTURE_EDGE_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_EDGE_CLAMP
#endif

#ifndef GL_EXT_texture_edge_clamp
#define GL_EXT_texture_edge_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_EDGE_CLAMP
#define GL_CLAMP_TO_EDGE_EXT 0x812f /* 33071 */
#endif

/**
 ** GL_EXT_texture_env_combine
 **/

#if (defined(GL_EXT_TEXTURE_ENV_COMBINE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_ENV_COMBINE)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_ENV_COMBINE
#endif

#if (defined(GL_EXT_TEXTURE_ENV_COMBINE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_ENV_COMBINE)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_ENV_COMBINE
#endif

#if (defined(GL_EXT_TEXTURE_ENV_COMBINE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_ENV_COMBINE)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_ENV_COMBINE
#endif

#if (defined(GL_EXT_TEXTURE_ENV_COMBINE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_ENV_COMBINE)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_ENV_COMBINE
#endif

#if (defined(GL_EXT_TEXTURE_ENV_COMBINE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_COMBINE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_ENV_COMBINE)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_ENV_COMBINE
#endif

#ifndef GL_EXT_texture_env_combine
#define GL_EXT_texture_env_combine 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_ENV_COMBINE
#define GL_COMBINE_EXT        0x8570     /* 34160 */
#define GL_COMBINE_RGB_EXT    0x8571     /* 34161 */
#define GL_COMBINE_ALPHA_EXT  0x8572     /* 34162 */
#define GL_RGB_SCALE_EXT      0x8573     /* 34163 */
#define GL_ADD_SIGNED_EXT     0x8574     /* 34164 */
#define GL_INTERPOLATE_EXT    0x8575     /* 34165 */
#define GL_CONSTANT_EXT       0x8576     /* 34166 */
#define GL_PRIMARY_COLOR_EXT  0x8577     /* 34167 */
#define GL_PREVIOUS_EXT       0x8578     /* 34168 */
#define GL_SOURCE0_RGB_EXT    0x8580     /* 34176 */
#define GL_SOURCE1_RGB_EXT    0x8581     /* 34177 */
#define GL_SOURCE2_RGB_EXT    0x8582     /* 34178 */
#define GL_SOURCE0_ALPHA_EXT  0x8588     /* 34184 */
#define GL_SOURCE1_ALPHA_EXT  0x8589     /* 34185 */
#define GL_SOURCE2_ALPHA_EXT  0x858a     /* 34186 */
#define GL_OPERAND0_RGB_EXT   0x8590     /* 34192 */
#define GL_OPERAND1_RGB_EXT   0x8591     /* 34193 */
#define GL_OPERAND2_RGB_EXT   0x8592     /* 34194 */
#define GL_OPERAND0_ALPHA_EXT 0x8598     /* 34200 */
#define GL_OPERAND1_ALPHA_EXT 0x8599     /* 34201 */
#define GL_OPERAND2_ALPHA_EXT 0x859a     /* 34202 */
#endif

/**
 ** GL_EXT_texture_env_dot3
 **/

#if (defined(GL_EXT_TEXTURE_ENV_DOT3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_ENV_DOT3)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_ENV_DOT3
#endif

#if (defined(GL_EXT_TEXTURE_ENV_DOT3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_ENV_DOT3)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_ENV_DOT3
#endif

#if (defined(GL_EXT_TEXTURE_ENV_DOT3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_ENV_DOT3)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_ENV_DOT3
#endif

#if (defined(GL_EXT_TEXTURE_ENV_DOT3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_ENV_DOT3)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_ENV_DOT3
#endif

#if (defined(GL_EXT_TEXTURE_ENV_DOT3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_ENV_DOT3)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_ENV_DOT3)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_ENV_DOT3
#endif

#ifndef GL_EXT_texture_env_dot3
#define GL_EXT_texture_env_dot3 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_ENV_DOT3
#define GL_DOT3_RGB_EXT  0x8740     /* 34624 */
#define GL_DOT3_RGBA_EXT 0x8741     /* 34625 */
#endif

/**
 ** GL_EXT_texture_filter_anisotropic
 **/

#if (defined(GL_EXT_TEXTURE_FILTER_ANISOTROPIC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_FILTER_ANISOTROPIC
#endif

#if (defined(GL_EXT_TEXTURE_FILTER_ANISOTROPIC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_FILTER_ANISOTROPIC
#endif

#if (defined(GL_EXT_TEXTURE_FILTER_ANISOTROPIC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_FILTER_ANISOTROPIC
#endif

#if (defined(GL_EXT_TEXTURE_FILTER_ANISOTROPIC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_FILTER_ANISOTROPIC
#endif

#if (defined(GL_EXT_TEXTURE_FILTER_ANISOTROPIC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_FILTER_ANISOTROPIC)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_FILTER_ANISOTROPIC
#endif

#ifndef GL_EXT_texture_filter_anisotropic
#define GL_EXT_texture_filter_anisotropic 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_FILTER_ANISOTROPIC
#define GL_TEXTURE_MAX_ANISOTROPY_EXT     0x84fe     /* 34046 */
#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84ff     /* 34047 */
#endif

/**
 ** GL_EXT_texture_integer
 **/

#if (defined(GL_EXT_TEXTURE_INTEGER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_INTEGER)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_INTEGER)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_INTEGER
#endif

#if (defined(GL_EXT_TEXTURE_INTEGER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_INTEGER)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_INTEGER)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_INTEGER
#endif

#if (defined(GL_EXT_TEXTURE_INTEGER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_INTEGER)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_INTEGER)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_INTEGER
#endif

#if (defined(GL_EXT_TEXTURE_INTEGER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_INTEGER)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_INTEGER)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_INTEGER
#endif

#if (defined(GL_EXT_TEXTURE_INTEGER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_INTEGER)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_INTEGER)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_INTEGER
#endif

#ifndef GL_EXT_texture_integer
#define GL_EXT_texture_integer 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_INTEGER
#define GL_RGBA32UI_EXT                0x8d70     /* 36208 */
#define GL_RGB32UI_EXT                 0x8d71     /* 36209 */
#define GL_ALPHA32UI_EXT               0x8d72     /* 36210 */
#define GL_INTENSITY32UI_EXT           0x8d73     /* 36211 */
#define GL_LUMINANCE32UI_EXT           0x8d74     /* 36212 */
#define GL_LUMINANCE_ALPHA32UI_EXT     0x8d75     /* 36213 */
#define GL_RGBA16UI_EXT                0x8d76     /* 36214 */
#define GL_RGB16UI_EXT                 0x8d77     /* 36215 */
#define GL_ALPHA16UI_EXT               0x8d78     /* 36216 */
#define GL_INTENSITY16UI_EXT           0x8d79     /* 36217 */
#define GL_LUMINANCE16UI_EXT           0x8d7a     /* 36218 */
#define GL_LUMINANCE_ALPHA16UI_EXT     0x8d7b     /* 36219 */
#define GL_RGBA8UI_EXT                 0x8d7c     /* 36220 */
#define GL_RGB8UI_EXT                  0x8d7d     /* 36221 */
#define GL_ALPHA8UI_EXT                0x8d7e     /* 36222 */
#define GL_INTENSITY8UI_EXT            0x8d7f     /* 36223 */
#define GL_LUMINANCE8UI_EXT            0x8d80     /* 36224 */
#define GL_LUMINANCE_ALPHA8UI_EXT      0x8d81     /* 36225 */
#define GL_RGBA32I_EXT                 0x8d82     /* 36226 */
#define GL_RGB32I_EXT                  0x8d83     /* 36227 */
#define GL_ALPHA32I_EXT                0x8d84     /* 36228 */
#define GL_INTENSITY32I_EXT            0x8d85     /* 36229 */
#define GL_LUMINANCE32I_EXT            0x8d86     /* 36230 */
#define GL_LUMINANCE_ALPHA32I_EXT      0x8d87     /* 36231 */
#define GL_RGBA16I_EXT                 0x8d88     /* 36232 */
#define GL_RGB16I_EXT                  0x8d89     /* 36233 */
#define GL_ALPHA16I_EXT                0x8d8a     /* 36234 */
#define GL_INTENSITY16I_EXT            0x8d8b     /* 36235 */
#define GL_LUMINANCE16I_EXT            0x8d8c     /* 36236 */
#define GL_LUMINANCE_ALPHA16I_EXT      0x8d8d     /* 36237 */
#define GL_RGBA8I_EXT                  0x8d8e     /* 36238 */
#define GL_RGB8I_EXT                   0x8d8f     /* 36239 */
#define GL_ALPHA8I_EXT                 0x8d90     /* 36240 */
#define GL_INTENSITY8I_EXT             0x8d91     /* 36241 */
#define GL_LUMINANCE8I_EXT             0x8d92     /* 36242 */
#define GL_LUMINANCE_ALPHA8I_EXT       0x8d93     /* 36243 */
#define GL_RED_INTEGER_EXT             0x8d94     /* 36244 */
#define GL_GREEN_INTEGER_EXT           0x8d95     /* 36245 */
#define GL_BLUE_INTEGER_EXT            0x8d96     /* 36246 */
#define GL_ALPHA_INTEGER_EXT           0x8d97     /* 36247 */
#define GL_RGB_INTEGER_EXT             0x8d98     /* 36248 */
#define GL_RGBA_INTEGER_EXT            0x8d99     /* 36249 */
#define GL_BGR_INTEGER_EXT             0x8d9a     /* 36250 */
#define GL_BGRA_INTEGER_EXT            0x8d9b     /* 36251 */
#define GL_LUMINANCE_INTEGER_EXT       0x8d9c     /* 36252 */
#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8d9d     /* 36253 */
#define GL_RGBA_INTEGER_MODE_EXT       0x8d9e     /* 36254 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_INTEGER
typedef void (REGAL_CALL *PFNGLCLEARCOLORIIEXTPROC)(GLint red, GLint green, GLint blue, GLint alpha);
typedef void (REGAL_CALL *PFNGLCLEARCOLORIUIEXTPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
typedef void (REGAL_CALL *PFNGLGETTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname, GLuint *params);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname, const GLuint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_INTEGER
#define glClearColorIiEXT                   rglClearColorIiEXT
#define glClearColorIuiEXT                  rglClearColorIuiEXT
#define glGetTexParameterIivEXT             rglGetTexParameterIivEXT
#define glGetTexParameterIuivEXT            rglGetTexParameterIuivEXT
#define glTexParameterIivEXT                rglTexParameterIivEXT
#define glTexParameterIuivEXT               rglTexParameterIuivEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TEXTURE_INTEGER
REGAL_DECL void REGAL_CALL glClearColorIiEXT(GLint red, GLint green, GLint blue, GLint alpha);
REGAL_DECL void REGAL_CALL glClearColorIuiEXT(GLuint red, GLuint green, GLuint blue, GLuint alpha);
REGAL_DECL void REGAL_CALL glGetTexParameterIivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTexParameterIuivEXT(GLenum target, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glTexParameterIivEXT(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glTexParameterIuivEXT(GLenum target, GLenum pname, const GLuint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TEXTURE_INTEGER
REGAL_DECL void REGAL_CALL plugin_glClearColorIiEXT(GLint red, GLint green, GLint blue, GLint alpha);
REGAL_DECL void REGAL_CALL plugin_glClearColorIuiEXT(GLuint red, GLuint green, GLuint blue, GLuint alpha);
REGAL_DECL void REGAL_CALL plugin_glGetTexParameterIivEXT(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexParameterIuivEXT(GLenum target, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glTexParameterIivEXT(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glTexParameterIuivEXT(GLenum target, GLenum pname, const GLuint *params);
#endif

/**
 ** GL_EXT_texture_lod_bias
 **/

#if (defined(GL_EXT_TEXTURE_LOD_BIAS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_LOD_BIAS)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_LOD_BIAS)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_LOD_BIAS
#endif

#if (defined(GL_EXT_TEXTURE_LOD_BIAS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_LOD_BIAS)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_LOD_BIAS)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_LOD_BIAS
#endif

#if (defined(GL_EXT_TEXTURE_LOD_BIAS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_LOD_BIAS)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_LOD_BIAS)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_LOD_BIAS
#endif

#if (defined(GL_EXT_TEXTURE_LOD_BIAS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_LOD_BIAS)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_LOD_BIAS)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_LOD_BIAS
#endif

#if (defined(GL_EXT_TEXTURE_LOD_BIAS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_LOD_BIAS)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_LOD_BIAS)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_LOD_BIAS
#endif

#ifndef GL_EXT_texture_lod_bias
#define GL_EXT_texture_lod_bias 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_LOD_BIAS
#define GL_MAX_TEXTURE_LOD_BIAS_EXT   0x84fd     /* 34045 */
#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500     /* 34048 */
#define GL_TEXTURE_LOD_BIAS_EXT       0x8501     /* 34049 */
#endif

/**
 ** GL_EXT_texture_mirror_clamp
 **/

#if (defined(GL_EXT_TEXTURE_MIRROR_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_MIRROR_CLAMP)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_MIRROR_CLAMP)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_MIRROR_CLAMP
#endif

#if (defined(GL_EXT_TEXTURE_MIRROR_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_MIRROR_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_MIRROR_CLAMP)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_MIRROR_CLAMP
#endif

#if (defined(GL_EXT_TEXTURE_MIRROR_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_MIRROR_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_MIRROR_CLAMP)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_MIRROR_CLAMP
#endif

#if (defined(GL_EXT_TEXTURE_MIRROR_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_MIRROR_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_MIRROR_CLAMP)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_MIRROR_CLAMP
#endif

#if (defined(GL_EXT_TEXTURE_MIRROR_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_MIRROR_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_MIRROR_CLAMP)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_MIRROR_CLAMP
#endif

#ifndef GL_EXT_texture_mirror_clamp
#define GL_EXT_texture_mirror_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_MIRROR_CLAMP
#define GL_MIRROR_CLAMP_EXT           0x8742     /* 34626 */
#define GL_MIRROR_CLAMP_TO_EDGE_EXT   0x8743     /* 34627 */
#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912     /* 35090 */
#endif

/**
 ** GL_EXT_texture_object
 **/

#if (defined(GL_EXT_TEXTURE_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_OBJECT)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_OBJECT)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_OBJECT
#endif

#if (defined(GL_EXT_TEXTURE_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_OBJECT)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_OBJECT
#endif

#if (defined(GL_EXT_TEXTURE_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_OBJECT)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_OBJECT
#endif

#if (defined(GL_EXT_TEXTURE_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_OBJECT)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_OBJECT
#endif

#if (defined(GL_EXT_TEXTURE_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_OBJECT)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_OBJECT
#endif

#ifndef GL_EXT_texture_object
#define GL_EXT_texture_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_OBJECT
#define GL_TEXTURE_PRIORITY_EXT   0x8066     /* 32870 */
#define GL_TEXTURE_RESIDENT_EXT   0x8067     /* 32871 */
#define GL_TEXTURE_1D_BINDING_EXT 0x8068     /* 32872 */
#define GL_TEXTURE_2D_BINDING_EXT 0x8069     /* 32873 */
#define GL_TEXTURE_3D_BINDING_EXT 0x806a     /* 32874 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLARETEXTURESRESIDENTEXTPROC)(GLsizei n, const GLuint *textures, GLboolean *residences);
typedef GLboolean (REGAL_CALL *PFNGLISTEXTUREEXTPROC)(GLuint texture);
typedef void (REGAL_CALL *PFNGLBINDTEXTUREEXTPROC)(GLenum target, GLuint texture);
typedef void (REGAL_CALL *PFNGLDELETETEXTURESEXTPROC)(GLsizei n, const GLuint *textures);
typedef void (REGAL_CALL *PFNGLGENTEXTURESEXTPROC)(GLsizei n, GLuint *textures);
typedef void (REGAL_CALL *PFNGLPRIORITIZETEXTURESEXTPROC)(GLsizei n, const GLuint *textures, const GLclampf *priorities);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_OBJECT
#define glAreTexturesResidentEXT            rglAreTexturesResidentEXT
#define glBindTextureEXT                    rglBindTextureEXT
#define glDeleteTexturesEXT                 rglDeleteTexturesEXT
#define glGenTexturesEXT                    rglGenTexturesEXT
#define glIsTextureEXT                      rglIsTextureEXT
#define glPrioritizeTexturesEXT             rglPrioritizeTexturesEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TEXTURE_OBJECT
REGAL_DECL GLboolean REGAL_CALL glAreTexturesResidentEXT(GLsizei n, const GLuint *textures, GLboolean *residences);
REGAL_DECL GLboolean REGAL_CALL glIsTextureEXT(GLuint texture);
REGAL_DECL void REGAL_CALL glBindTextureEXT(GLenum target, GLuint texture);
REGAL_DECL void REGAL_CALL glDeleteTexturesEXT(GLsizei n, const GLuint *textures);
REGAL_DECL void REGAL_CALL glGenTexturesEXT(GLsizei n, GLuint *textures);
REGAL_DECL void REGAL_CALL glPrioritizeTexturesEXT(GLsizei n, const GLuint *textures, const GLclampf *priorities);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TEXTURE_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glAreTexturesResidentEXT(GLsizei n, const GLuint *textures, GLboolean *residences);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsTextureEXT(GLuint texture);
REGAL_DECL void REGAL_CALL plugin_glBindTextureEXT(GLenum target, GLuint texture);
REGAL_DECL void REGAL_CALL plugin_glDeleteTexturesEXT(GLsizei n, const GLuint *textures);
REGAL_DECL void REGAL_CALL plugin_glGenTexturesEXT(GLsizei n, GLuint *textures);
REGAL_DECL void REGAL_CALL plugin_glPrioritizeTexturesEXT(GLsizei n, const GLuint *textures, const GLclampf *priorities);
#endif

/**
 ** GL_EXT_texture_perturb_normal
 **/

#if (defined(GL_EXT_TEXTURE_PERTURB_NORMAL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_PERTURB_NORMAL)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_PERTURB_NORMAL)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_PERTURB_NORMAL
#endif

#if (defined(GL_EXT_TEXTURE_PERTURB_NORMAL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_PERTURB_NORMAL)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_PERTURB_NORMAL)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_PERTURB_NORMAL
#endif

#if (defined(GL_EXT_TEXTURE_PERTURB_NORMAL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_PERTURB_NORMAL)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_PERTURB_NORMAL)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_PERTURB_NORMAL
#endif

#if (defined(GL_EXT_TEXTURE_PERTURB_NORMAL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_PERTURB_NORMAL)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_PERTURB_NORMAL)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_PERTURB_NORMAL
#endif

#if (defined(GL_EXT_TEXTURE_PERTURB_NORMAL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_PERTURB_NORMAL)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_PERTURB_NORMAL)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_PERTURB_NORMAL
#endif

#ifndef GL_EXT_texture_perturb_normal
#define GL_EXT_texture_perturb_normal 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_PERTURB_NORMAL
#define GL_PERTURB_EXT        0x85ae     /* 34222 */
#define GL_TEXTURE_NORMAL_EXT 0x85af     /* 34223 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_PERTURB_NORMAL
typedef void (REGAL_CALL *PFNGLTEXTURENORMALEXTPROC)(GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_PERTURB_NORMAL
#define glTextureNormalEXT                  rglTextureNormalEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TEXTURE_PERTURB_NORMAL
REGAL_DECL void REGAL_CALL glTextureNormalEXT(GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TEXTURE_PERTURB_NORMAL
REGAL_DECL void REGAL_CALL plugin_glTextureNormalEXT(GLenum mode);
#endif

/**
 ** GL_EXT_texture_rectangle
 **/

#if (defined(GL_EXT_TEXTURE_RECTANGLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_RECTANGLE)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_RECTANGLE
#endif

#if (defined(GL_EXT_TEXTURE_RECTANGLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_RECTANGLE)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_RECTANGLE
#endif

#if (defined(GL_EXT_TEXTURE_RECTANGLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_RECTANGLE)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_RECTANGLE
#endif

#if (defined(GL_EXT_TEXTURE_RECTANGLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_RECTANGLE)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_RECTANGLE
#endif

#if (defined(GL_EXT_TEXTURE_RECTANGLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_RECTANGLE)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_RECTANGLE
#endif

#ifndef GL_EXT_texture_rectangle
#define GL_EXT_texture_rectangle 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_RECTANGLE
#define GL_TEXTURE_RECTANGLE_EXT          0x84f5     /* 34037 */
#define GL_TEXTURE_BINDING_RECTANGLE_EXT  0x84f6     /* 34038 */
#define GL_PROXY_TEXTURE_RECTANGLE_EXT    0x84f7     /* 34039 */
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84f8     /* 34040 */
#endif

/**
 ** GL_EXT_texture_rg
 **/

#if (defined(GL_EXT_TEXTURE_RG) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_RG)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_RG)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_RG
#endif

#if (defined(GL_EXT_TEXTURE_RG) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_RG)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_RG)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_RG
#endif

#if (defined(GL_EXT_TEXTURE_RG) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_RG)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_RG)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_RG
#endif

#if (defined(GL_EXT_TEXTURE_RG) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_RG)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_RG)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_RG
#endif

#if (defined(GL_EXT_TEXTURE_RG) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_RG)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_RG)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_RG
#endif

#ifndef GL_EXT_texture_rg
#define GL_EXT_texture_rg 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_RG
#define GL_RED_EXT 0x1903     /* 6403 */
#define GL_RG_EXT  0x8227     /* 33319 */
#endif

/**
 ** GL_EXT_texture_sRGB
 **/

#if (defined(GL_EXT_TEXTURE_SRGB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_SRGB)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_SRGB
#endif

#if (defined(GL_EXT_TEXTURE_SRGB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SRGB)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SRGB
#endif

#if (defined(GL_EXT_TEXTURE_SRGB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SRGB)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SRGB
#endif

#if (defined(GL_EXT_TEXTURE_SRGB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SRGB)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SRGB
#endif

#if (defined(GL_EXT_TEXTURE_SRGB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SRGB)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SRGB
#endif

#ifndef GL_EXT_texture_sRGB
#define GL_EXT_texture_sRGB 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_SRGB
#define GL_SRGB_EXT                            0x8c40     /* 35904 */
#define GL_SRGB8_EXT                           0x8c41     /* 35905 */
#define GL_SRGB_ALPHA_EXT                      0x8c42     /* 35906 */
#define GL_SRGB8_ALPHA8_EXT                    0x8c43     /* 35907 */
#define GL_SLUMINANCE_ALPHA_EXT                0x8c44     /* 35908 */
#define GL_SLUMINANCE8_ALPHA8_EXT              0x8c45     /* 35909 */
#define GL_SLUMINANCE_EXT                      0x8c46     /* 35910 */
#define GL_SLUMINANCE8_EXT                     0x8c47     /* 35911 */
#define GL_COMPRESSED_SRGB_EXT                 0x8c48     /* 35912 */
#define GL_COMPRESSED_SRGB_ALPHA_EXT           0x8c49     /* 35913 */
#define GL_COMPRESSED_SLUMINANCE_EXT           0x8c4a     /* 35914 */
#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT     0x8c4b     /* 35915 */
#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT       0x8c4c     /* 35916 */
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8c4d     /* 35917 */
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8c4e     /* 35918 */
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8c4f     /* 35919 */
#endif

/**
 ** GL_EXT_texture_sRGB_decode
 **/

#if (defined(GL_EXT_TEXTURE_SRGB_DECODE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB_DECODE)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_SRGB_DECODE)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_SRGB_DECODE
#endif

#if (defined(GL_EXT_TEXTURE_SRGB_DECODE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB_DECODE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SRGB_DECODE)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SRGB_DECODE
#endif

#if (defined(GL_EXT_TEXTURE_SRGB_DECODE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB_DECODE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SRGB_DECODE)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SRGB_DECODE
#endif

#if (defined(GL_EXT_TEXTURE_SRGB_DECODE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB_DECODE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SRGB_DECODE)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SRGB_DECODE
#endif

#if (defined(GL_EXT_TEXTURE_SRGB_DECODE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_SRGB_DECODE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SRGB_DECODE)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SRGB_DECODE
#endif

#ifndef GL_EXT_texture_sRGB_decode
#define GL_EXT_texture_sRGB_decode 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_SRGB_DECODE
#define GL_TEXTURE_SRGB_DECODE_EXT 0x8a48     /* 35400 */
#define GL_DECODE_EXT              0x8a49     /* 35401 */
#define GL_SKIP_DECODE_EXT         0x8a4a     /* 35402 */
#endif

/**
 ** GL_EXT_texture_shared_exponent
 **/

#if (defined(GL_EXT_TEXTURE_SHARED_EXPONENT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_SHARED_EXPONENT)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_SHARED_EXPONENT)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_SHARED_EXPONENT
#endif

#if (defined(GL_EXT_TEXTURE_SHARED_EXPONENT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_SHARED_EXPONENT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SHARED_EXPONENT)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SHARED_EXPONENT
#endif

#if (defined(GL_EXT_TEXTURE_SHARED_EXPONENT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_SHARED_EXPONENT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SHARED_EXPONENT)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SHARED_EXPONENT
#endif

#if (defined(GL_EXT_TEXTURE_SHARED_EXPONENT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_SHARED_EXPONENT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SHARED_EXPONENT)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SHARED_EXPONENT
#endif

#if (defined(GL_EXT_TEXTURE_SHARED_EXPONENT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_SHARED_EXPONENT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SHARED_EXPONENT)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SHARED_EXPONENT
#endif

#ifndef GL_EXT_texture_shared_exponent
#define GL_EXT_texture_shared_exponent 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_SHARED_EXPONENT
#define GL_RGB9_E5_EXT                  0x8c3d     /* 35901 */
#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8c3e     /* 35902 */
#define GL_TEXTURE_SHARED_SIZE_EXT      0x8c3f     /* 35903 */
#endif

/**
 ** GL_EXT_texture_snorm
 **/

#if (defined(GL_EXT_TEXTURE_SNORM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_SNORM)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_SNORM)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_SNORM
#endif

#if (defined(GL_EXT_TEXTURE_SNORM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_SNORM)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SNORM)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SNORM
#endif

#if (defined(GL_EXT_TEXTURE_SNORM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_SNORM)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SNORM)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SNORM
#endif

#if (defined(GL_EXT_TEXTURE_SNORM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_SNORM)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SNORM)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SNORM
#endif

#if (defined(GL_EXT_TEXTURE_SNORM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_SNORM)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SNORM)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SNORM
#endif

#ifndef GL_EXT_texture_snorm
#define GL_EXT_texture_snorm 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_SNORM
#define GL_RED_SNORM                 0x8f90     /* 36752 */
#define GL_RG_SNORM                  0x8f91     /* 36753 */
#define GL_RGB_SNORM                 0x8f92     /* 36754 */
#define GL_RGBA_SNORM                0x8f93     /* 36755 */
#define GL_R8_SNORM                  0x8f94     /* 36756 */
#define GL_RG8_SNORM                 0x8f95     /* 36757 */
#define GL_RGB8_SNORM                0x8f96     /* 36758 */
#define GL_RGBA8_SNORM               0x8f97     /* 36759 */
#define GL_R16_SNORM                 0x8f98     /* 36760 */
#define GL_RG16_SNORM                0x8f99     /* 36761 */
#define GL_RGB16_SNORM               0x8f9a     /* 36762 */
#define GL_RGBA16_SNORM              0x8f9b     /* 36763 */
#define GL_SIGNED_NORMALIZED         0x8f9c     /* 36764 */
#define GL_ALPHA_SNORM               0x9010     /* 36880 */
#define GL_LUMINANCE_SNORM           0x9011     /* 36881 */
#define GL_LUMINANCE_ALPHA_SNORM     0x9012     /* 36882 */
#define GL_INTENSITY_SNORM           0x9013     /* 36883 */
#define GL_ALPHA8_SNORM              0x9014     /* 36884 */
#define GL_LUMINANCE8_SNORM          0x9015     /* 36885 */
#define GL_LUMINANCE8_ALPHA8_SNORM   0x9016     /* 36886 */
#define GL_INTENSITY8_SNORM          0x9017     /* 36887 */
#define GL_ALPHA16_SNORM             0x9018     /* 36888 */
#define GL_LUMINANCE16_SNORM         0x9019     /* 36889 */
#define GL_LUMINANCE16_ALPHA16_SNORM 0x901a     /* 36890 */
#define GL_INTENSITY16_SNORM         0x901b     /* 36891 */
#endif

/**
 ** GL_EXT_texture_storage
 **/

#if (defined(GL_EXT_TEXTURE_STORAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_STORAGE)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_STORAGE)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_STORAGE
#endif

#if (defined(GL_EXT_TEXTURE_STORAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_STORAGE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_STORAGE)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_STORAGE
#endif

#if (defined(GL_EXT_TEXTURE_STORAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_STORAGE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_STORAGE)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_STORAGE
#endif

#if (defined(GL_EXT_TEXTURE_STORAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_STORAGE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_STORAGE)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_STORAGE
#endif

#if (defined(GL_EXT_TEXTURE_STORAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_STORAGE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_STORAGE)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_STORAGE
#endif

#ifndef GL_EXT_texture_storage
#define GL_EXT_texture_storage 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_STORAGE
#define GL_R8_EXT                       0x8229     /* 33321 */
#define GL_RG8_EXT                      0x822b     /* 33323 */
#define GL_R16F_EXT                     0x822d     /* 33325 */
#define GL_R32F_EXT                     0x822e     /* 33326 */
#define GL_RG16F_EXT                    0x822f     /* 33327 */
#define GL_RG32F_EXT                    0x8230     /* 33328 */
#define GL_RGBA32F_EXT                  0x8814     /* 34836 */
#define GL_RGB32F_EXT                   0x8815     /* 34837 */
#define GL_ALPHA32F_EXT                 0x8816     /* 34838 */
#define GL_LUMINANCE32F_EXT             0x8818     /* 34840 */
#define GL_LUMINANCE_ALPHA32F_EXT       0x8819     /* 34841 */
#define GL_RGBA16F_EXT                  0x881a     /* 34842 */
#define GL_RGB16F_EXT                   0x881b     /* 34843 */
#define GL_ALPHA16F_EXT                 0x881c     /* 34844 */
#define GL_LUMINANCE16F_EXT             0x881e     /* 34846 */
#define GL_LUMINANCE_ALPHA16F_EXT       0x881f     /* 34847 */
#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT 0x912f     /* 37167 */
#define GL_BGRA8_EXT                    0x93a1     /* 37793 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_STORAGE
typedef void (REGAL_CALL *PFNGLTEXSTORAGE1DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
typedef void (REGAL_CALL *PFNGLTEXSTORAGE2DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLTEXSTORAGE3DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_STORAGE
#define glTexStorage1DEXT                   rglTexStorage1DEXT
#define glTexStorage2DEXT                   rglTexStorage2DEXT
#define glTexStorage3DEXT                   rglTexStorage3DEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TEXTURE_STORAGE
REGAL_DECL void REGAL_CALL glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
REGAL_DECL void REGAL_CALL glTexStorage2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glTexStorage3DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TEXTURE_STORAGE
REGAL_DECL void REGAL_CALL plugin_glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glTexStorage2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glTexStorage3DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
#endif

/**
 ** GL_EXT_texture_swizzle
 **/

#if (defined(GL_EXT_TEXTURE_SWIZZLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_SWIZZLE)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_SWIZZLE
#endif

#if (defined(GL_EXT_TEXTURE_SWIZZLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SWIZZLE)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_SWIZZLE
#endif

#if (defined(GL_EXT_TEXTURE_SWIZZLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SWIZZLE)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_SWIZZLE
#endif

#if (defined(GL_EXT_TEXTURE_SWIZZLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SWIZZLE)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_SWIZZLE
#endif

#if (defined(GL_EXT_TEXTURE_SWIZZLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_SWIZZLE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SWIZZLE)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_SWIZZLE
#endif

#ifndef GL_EXT_texture_swizzle
#define GL_EXT_texture_swizzle 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_SWIZZLE
#define GL_TEXTURE_SWIZZLE_R_EXT    0x8e42     /* 36418 */
#define GL_TEXTURE_SWIZZLE_G_EXT    0x8e43     /* 36419 */
#define GL_TEXTURE_SWIZZLE_B_EXT    0x8e44     /* 36420 */
#define GL_TEXTURE_SWIZZLE_A_EXT    0x8e45     /* 36421 */
#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8e46     /* 36422 */
#endif

/**
 ** GL_EXT_texture_type_2_10_10_10_REV
 **/

#if (defined(GL_EXT_TEXTURE_TYPE_2_10_10_10_REV) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_ENUM_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)
#define REGAL_NO_ENUM_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV
#endif

#if (defined(GL_EXT_TEXTURE_TYPE_2_10_10_10_REV) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)
#define REGAL_NO_TYPEDEF_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV
#endif

#if (defined(GL_EXT_TEXTURE_TYPE_2_10_10_10_REV) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)
#define REGAL_NO_NAMESPACE_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV
#endif

#if (defined(GL_EXT_TEXTURE_TYPE_2_10_10_10_REV) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)
#define REGAL_NO_PLUGIN_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV
#endif

#if (defined(GL_EXT_TEXTURE_TYPE_2_10_10_10_REV) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV)
#define REGAL_NO_DECLARATION_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV
#endif

#ifndef GL_EXT_texture_type_2_10_10_10_REV
#define GL_EXT_texture_type_2_10_10_10_REV 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TEXTURE_TYPE_2_10_10_10_REV
#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 /* 33640 */
#endif

/**
 ** GL_EXT_timer_query
 **/

#if (defined(GL_EXT_TIMER_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TIMER_QUERY)) && !defined(REGAL_NO_ENUM_GL_EXT_TIMER_QUERY)
#define REGAL_NO_ENUM_GL_EXT_TIMER_QUERY
#endif

#if (defined(GL_EXT_TIMER_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TIMER_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TIMER_QUERY)
#define REGAL_NO_TYPEDEF_GL_EXT_TIMER_QUERY
#endif

#if (defined(GL_EXT_TIMER_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TIMER_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TIMER_QUERY)
#define REGAL_NO_NAMESPACE_GL_EXT_TIMER_QUERY
#endif

#if (defined(GL_EXT_TIMER_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TIMER_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TIMER_QUERY)
#define REGAL_NO_PLUGIN_GL_EXT_TIMER_QUERY
#endif

#if (defined(GL_EXT_TIMER_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TIMER_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TIMER_QUERY)
#define REGAL_NO_DECLARATION_GL_EXT_TIMER_QUERY
#endif

#ifndef GL_EXT_timer_query
#define GL_EXT_timer_query 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TIMER_QUERY
#define GL_TIME_ELAPSED_EXT 0x88bf /* 35007 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TIMER_QUERY
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTI64VEXTPROC)(GLuint id, GLenum pname, GLint64EXT *params);
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTUI64VEXTPROC)(GLuint id, GLenum pname, GLuint64EXT *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TIMER_QUERY
#define glGetQueryObjecti64vEXT             rglGetQueryObjecti64vEXT
#define glGetQueryObjectui64vEXT            rglGetQueryObjectui64vEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TIMER_QUERY
REGAL_DECL void REGAL_CALL glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params);
REGAL_DECL void REGAL_CALL glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TIMER_QUERY
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params);
#endif

/**
 ** GL_EXT_transform_feedback
 **/

#if (defined(GL_EXT_TRANSFORM_FEEDBACK) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_ENUM_GL_EXT_TRANSFORM_FEEDBACK)
#define REGAL_NO_ENUM_GL_EXT_TRANSFORM_FEEDBACK
#endif

#if (defined(GL_EXT_TRANSFORM_FEEDBACK) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_TRANSFORM_FEEDBACK)
#define REGAL_NO_TYPEDEF_GL_EXT_TRANSFORM_FEEDBACK
#endif

#if (defined(GL_EXT_TRANSFORM_FEEDBACK) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_TRANSFORM_FEEDBACK)
#define REGAL_NO_NAMESPACE_GL_EXT_TRANSFORM_FEEDBACK
#endif

#if (defined(GL_EXT_TRANSFORM_FEEDBACK) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_PLUGIN_GL_EXT_TRANSFORM_FEEDBACK)
#define REGAL_NO_PLUGIN_GL_EXT_TRANSFORM_FEEDBACK
#endif

#if (defined(GL_EXT_TRANSFORM_FEEDBACK) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_DECLARATION_GL_EXT_TRANSFORM_FEEDBACK)
#define REGAL_NO_DECLARATION_GL_EXT_TRANSFORM_FEEDBACK
#endif

#ifndef GL_EXT_transform_feedback
#define GL_EXT_transform_feedback 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_TRANSFORM_FEEDBACK
#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT         0x8c76     /* 35958 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT                0x8c7f     /* 35967 */
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT    0x8c80     /* 35968 */
#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT                   0x8c83     /* 35971 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT               0x8c84     /* 35972 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT                0x8c85     /* 35973 */
#define GL_PRIMITIVES_GENERATED_EXT                          0x8c87     /* 35975 */
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT         0x8c88     /* 35976 */
#define GL_RASTERIZER_DISCARD_EXT                            0x8c89     /* 35977 */
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8c8a     /* 35978 */
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT       0x8c8b     /* 35979 */
#define GL_INTERLEAVED_ATTRIBS_EXT                           0x8c8c     /* 35980 */
#define GL_SEPARATE_ATTRIBS_EXT                              0x8c8d     /* 35981 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT                     0x8c8e     /* 35982 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT             0x8c8f     /* 35983 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_TRANSFORM_FEEDBACK
typedef void (REGAL_CALL *PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)(GLenum primitiveMode);
typedef void (REGAL_CALL *PFNGLBINDBUFFERBASEEXTPROC)(GLenum target, GLuint index, GLuint buffer);
typedef void (REGAL_CALL *PFNGLBINDBUFFEROFFSETEXTPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
typedef void (REGAL_CALL *PFNGLBINDBUFFERRANGEEXTPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (REGAL_CALL *PFNGLENDTRANSFORMFEEDBACKEXTPROC)(void);
typedef void (REGAL_CALL *PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
typedef void (REGAL_CALL *PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)(GLuint program, GLsizei count, const GLchar ** const varyings, GLenum bufferMode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_TRANSFORM_FEEDBACK
#define glBeginTransformFeedbackEXT         rglBeginTransformFeedbackEXT
#define glBindBufferBaseEXT                 rglBindBufferBaseEXT
#define glBindBufferOffsetEXT               rglBindBufferOffsetEXT
#define glBindBufferRangeEXT                rglBindBufferRangeEXT
#define glEndTransformFeedbackEXT           rglEndTransformFeedbackEXT
#define glGetTransformFeedbackVaryingEXT    rglGetTransformFeedbackVaryingEXT
#define glTransformFeedbackVaryingsEXT      rglTransformFeedbackVaryingsEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_TRANSFORM_FEEDBACK
REGAL_DECL void REGAL_CALL glBeginTransformFeedbackEXT(GLenum primitiveMode);
REGAL_DECL void REGAL_CALL glBindBufferBaseEXT(GLenum target, GLuint index, GLuint buffer);
REGAL_DECL void REGAL_CALL glBindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
REGAL_DECL void REGAL_CALL glBindBufferRangeEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL glEndTransformFeedbackEXT(void);
REGAL_DECL void REGAL_CALL glGetTransformFeedbackVaryingEXT(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL glTransformFeedbackVaryingsEXT(GLuint program, GLsizei count, const GLchar ** const varyings, GLenum bufferMode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_TRANSFORM_FEEDBACK
REGAL_DECL void REGAL_CALL plugin_glBeginTransformFeedbackEXT(GLenum primitiveMode);
REGAL_DECL void REGAL_CALL plugin_glBindBufferBaseEXT(GLenum target, GLuint index, GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glBindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glBindBufferRangeEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL plugin_glEndTransformFeedbackEXT(void);
REGAL_DECL void REGAL_CALL plugin_glGetTransformFeedbackVaryingEXT(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glTransformFeedbackVaryingsEXT(GLuint program, GLsizei count, const GLchar ** const varyings, GLenum bufferMode);
#endif

/**
 ** GL_EXT_unpack_subimage
 **/

#if (defined(GL_EXT_UNPACK_SUBIMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_UNPACK_SUBIMAGE)) && !defined(REGAL_NO_ENUM_GL_EXT_UNPACK_SUBIMAGE)
#define REGAL_NO_ENUM_GL_EXT_UNPACK_SUBIMAGE
#endif

#if (defined(GL_EXT_UNPACK_SUBIMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_UNPACK_SUBIMAGE)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_UNPACK_SUBIMAGE)
#define REGAL_NO_TYPEDEF_GL_EXT_UNPACK_SUBIMAGE
#endif

#if (defined(GL_EXT_UNPACK_SUBIMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_UNPACK_SUBIMAGE)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_UNPACK_SUBIMAGE)
#define REGAL_NO_NAMESPACE_GL_EXT_UNPACK_SUBIMAGE
#endif

#if (defined(GL_EXT_UNPACK_SUBIMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_UNPACK_SUBIMAGE)) && !defined(REGAL_NO_PLUGIN_GL_EXT_UNPACK_SUBIMAGE)
#define REGAL_NO_PLUGIN_GL_EXT_UNPACK_SUBIMAGE
#endif

#if (defined(GL_EXT_UNPACK_SUBIMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_UNPACK_SUBIMAGE)) && !defined(REGAL_NO_DECLARATION_GL_EXT_UNPACK_SUBIMAGE)
#define REGAL_NO_DECLARATION_GL_EXT_UNPACK_SUBIMAGE
#endif

#ifndef GL_EXT_unpack_subimage
#define GL_EXT_unpack_subimage 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_UNPACK_SUBIMAGE
#define GL_UNPACK_ROW_LENGTH_EXT  0xcf2     /* 3314 */
#define GL_UNPACK_SKIP_ROWS_EXT   0xcf3     /* 3315 */
#define GL_UNPACK_SKIP_PIXELS_EXT 0xcf4     /* 3316 */
#endif

/**
 ** GL_EXT_vertex_array
 **/

#if (defined(GL_EXT_VERTEX_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_VERTEX_ARRAY)) && !defined(REGAL_NO_ENUM_GL_EXT_VERTEX_ARRAY)
#define REGAL_NO_ENUM_GL_EXT_VERTEX_ARRAY
#endif

#if (defined(GL_EXT_VERTEX_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_VERTEX_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_VERTEX_ARRAY)
#define REGAL_NO_TYPEDEF_GL_EXT_VERTEX_ARRAY
#endif

#if (defined(GL_EXT_VERTEX_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_VERTEX_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_VERTEX_ARRAY)
#define REGAL_NO_NAMESPACE_GL_EXT_VERTEX_ARRAY
#endif

#if (defined(GL_EXT_VERTEX_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_VERTEX_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_EXT_VERTEX_ARRAY)
#define REGAL_NO_PLUGIN_GL_EXT_VERTEX_ARRAY
#endif

#if (defined(GL_EXT_VERTEX_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_VERTEX_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_EXT_VERTEX_ARRAY)
#define REGAL_NO_DECLARATION_GL_EXT_VERTEX_ARRAY
#endif

#ifndef GL_EXT_vertex_array
#define GL_EXT_vertex_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_VERTEX_ARRAY
#define GL_DOUBLE_EXT                      0x140a     /* 5130 */
#define GL_VERTEX_ARRAY_EXT                0x8074     /* 32884 */
#define GL_NORMAL_ARRAY_EXT                0x8075     /* 32885 */
#define GL_COLOR_ARRAY_EXT                 0x8076     /* 32886 */
#define GL_INDEX_ARRAY_EXT                 0x8077     /* 32887 */
#define GL_TEXTURE_COORD_ARRAY_EXT         0x8078     /* 32888 */
#define GL_EDGE_FLAG_ARRAY_EXT             0x8079     /* 32889 */
#define GL_VERTEX_ARRAY_SIZE_EXT           0x807a     /* 32890 */
#define GL_VERTEX_ARRAY_TYPE_EXT           0x807b     /* 32891 */
#define GL_VERTEX_ARRAY_STRIDE_EXT         0x807c     /* 32892 */
#define GL_VERTEX_ARRAY_COUNT_EXT          0x807d     /* 32893 */
#define GL_NORMAL_ARRAY_TYPE_EXT           0x807e     /* 32894 */
#define GL_NORMAL_ARRAY_STRIDE_EXT         0x807f     /* 32895 */
#define GL_NORMAL_ARRAY_COUNT_EXT          0x8080     /* 32896 */
#define GL_COLOR_ARRAY_SIZE_EXT            0x8081     /* 32897 */
#define GL_COLOR_ARRAY_TYPE_EXT            0x8082     /* 32898 */
#define GL_COLOR_ARRAY_STRIDE_EXT          0x8083     /* 32899 */
#define GL_COLOR_ARRAY_COUNT_EXT           0x8084     /* 32900 */
#define GL_INDEX_ARRAY_TYPE_EXT            0x8085     /* 32901 */
#define GL_INDEX_ARRAY_STRIDE_EXT          0x8086     /* 32902 */
#define GL_INDEX_ARRAY_COUNT_EXT           0x8087     /* 32903 */
#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT    0x8088     /* 32904 */
#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT    0x8089     /* 32905 */
#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT  0x808a     /* 32906 */
#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT   0x808b     /* 32907 */
#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT      0x808c     /* 32908 */
#define GL_EDGE_FLAG_ARRAY_COUNT_EXT       0x808d     /* 32909 */
#define GL_VERTEX_ARRAY_POINTER_EXT        0x808e     /* 32910 */
#define GL_NORMAL_ARRAY_POINTER_EXT        0x808f     /* 32911 */
#define GL_COLOR_ARRAY_POINTER_EXT         0x8090     /* 32912 */
#define GL_INDEX_ARRAY_POINTER_EXT         0x8091     /* 32913 */
#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092     /* 32914 */
#define GL_EDGE_FLAG_ARRAY_POINTER_EXT     0x8093     /* 32915 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_VERTEX_ARRAY
typedef void (REGAL_CALL *PFNGLARRAYELEMENTEXTPROC)(GLint i);
typedef void (REGAL_CALL *PFNGLCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLDRAWARRAYSEXTPROC)(GLenum mode, GLint first, GLsizei count);
typedef void (REGAL_CALL *PFNGLEDGEFLAGPOINTEREXTPROC)(GLsizei stride, GLsizei count, const GLboolean *pointer);
typedef void (REGAL_CALL *PFNGLGETPOINTERVEXTPROC)(GLenum pname, GLvoid **params);
typedef void (REGAL_CALL *PFNGLINDEXPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLNORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLTEXCOORDPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLVERTEXPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_VERTEX_ARRAY
#define glArrayElementEXT                   rglArrayElementEXT
#define glColorPointerEXT                   rglColorPointerEXT
#define glDrawArraysEXT                     rglDrawArraysEXT
#define glEdgeFlagPointerEXT                rglEdgeFlagPointerEXT
#define glGetPointervEXT                    rglGetPointervEXT
#define glIndexPointerEXT                   rglIndexPointerEXT
#define glNormalPointerEXT                  rglNormalPointerEXT
#define glTexCoordPointerEXT                rglTexCoordPointerEXT
#define glVertexPointerEXT                  rglVertexPointerEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_VERTEX_ARRAY
REGAL_DECL void REGAL_CALL glArrayElementEXT(GLint i);
REGAL_DECL void REGAL_CALL glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glDrawArraysEXT(GLenum mode, GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer);
REGAL_DECL void REGAL_CALL glGetPointervEXT(GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_VERTEX_ARRAY
REGAL_DECL void REGAL_CALL plugin_glArrayElementEXT(GLint i);
REGAL_DECL void REGAL_CALL plugin_glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glDrawArraysEXT(GLenum mode, GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL plugin_glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *pointer);
REGAL_DECL void REGAL_CALL plugin_glGetPointervEXT(GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL plugin_glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
#endif

/**
 ** GL_EXT_vertex_attrib_64bit
 **/

#if (defined(GL_EXT_VERTEX_ATTRIB_64BIT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_ENUM_GL_EXT_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_ENUM_GL_EXT_VERTEX_ATTRIB_64BIT
#endif

#if (defined(GL_EXT_VERTEX_ATTRIB_64BIT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_TYPEDEF_GL_EXT_VERTEX_ATTRIB_64BIT
#endif

#if (defined(GL_EXT_VERTEX_ATTRIB_64BIT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_NAMESPACE_GL_EXT_VERTEX_ATTRIB_64BIT
#endif

#if (defined(GL_EXT_VERTEX_ATTRIB_64BIT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_PLUGIN_GL_EXT_VERTEX_ATTRIB_64BIT
#endif

#if (defined(GL_EXT_VERTEX_ATTRIB_64BIT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_VERTEX_ATTRIB_64BIT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_VERTEX_ATTRIB_64BIT)
#define REGAL_NO_DECLARATION_GL_EXT_VERTEX_ATTRIB_64BIT
#endif

#ifndef GL_EXT_vertex_attrib_64bit
#define GL_EXT_vertex_attrib_64bit 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_VERTEX_ATTRIB_64BIT
#define GL_DOUBLE_MAT2_EXT   0x8f46     /* 36678 */
#define GL_DOUBLE_MAT3_EXT   0x8f47     /* 36679 */
#define GL_DOUBLE_MAT4_EXT   0x8f48     /* 36680 */
#define GL_DOUBLE_MAT2x3_EXT 0x8f49     /* 36681 */
#define GL_DOUBLE_MAT2x4_EXT 0x8f4a     /* 36682 */
#define GL_DOUBLE_MAT3x2_EXT 0x8f4b     /* 36683 */
#define GL_DOUBLE_MAT3x4_EXT 0x8f4c     /* 36684 */
#define GL_DOUBLE_MAT4x2_EXT 0x8f4d     /* 36685 */
#define GL_DOUBLE_MAT4x3_EXT 0x8f4e     /* 36686 */
#define GL_DOUBLE_VEC2_EXT   0x8ffc     /* 36860 */
#define GL_DOUBLE_VEC3_EXT   0x8ffd     /* 36861 */
#define GL_DOUBLE_VEC4_EXT   0x8ffe     /* 36862 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_VERTEX_ATTRIB_64BIT
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBLDVEXTPROC)(GLuint index, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1DEXTPROC)(GLuint index, GLdouble x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1DVEXTPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL2DEXTPROC)(GLuint index, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL2DVEXTPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL3DEXTPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL3DVEXTPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL4DEXTPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL4DVEXTPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBLPOINTEREXTPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_VERTEX_ATTRIB_64BIT
#define glGetVertexAttribLdvEXT             rglGetVertexAttribLdvEXT
#define glVertexArrayVertexAttribLOffsetEXT rglVertexArrayVertexAttribLOffsetEXT
#define glVertexAttribL1dEXT                rglVertexAttribL1dEXT
#define glVertexAttribL1dvEXT               rglVertexAttribL1dvEXT
#define glVertexAttribL2dEXT                rglVertexAttribL2dEXT
#define glVertexAttribL2dvEXT               rglVertexAttribL2dvEXT
#define glVertexAttribL3dEXT                rglVertexAttribL3dEXT
#define glVertexAttribL3dvEXT               rglVertexAttribL3dvEXT
#define glVertexAttribL4dEXT                rglVertexAttribL4dEXT
#define glVertexAttribL4dvEXT               rglVertexAttribL4dvEXT
#define glVertexAttribLPointerEXT           rglVertexAttribLPointerEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_VERTEX_ATTRIB_64BIT
REGAL_DECL void REGAL_CALL glGetVertexAttribLdvEXT(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
REGAL_DECL void REGAL_CALL glVertexAttribL1dEXT(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL glVertexAttribL1dvEXT(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribL2dEXT(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glVertexAttribL2dvEXT(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribL3dEXT(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glVertexAttribL3dvEXT(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribL4dEXT(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glVertexAttribL4dvEXT(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribLPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_VERTEX_ATTRIB_64BIT
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribLdvEXT(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayVertexAttribLOffsetEXT(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1dEXT(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1dvEXT(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL2dEXT(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL2dvEXT(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL3dEXT(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL3dvEXT(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL4dEXT(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL4dvEXT(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribLPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_EXT_vertex_shader
 **/

#if (defined(GL_EXT_VERTEX_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_VERTEX_SHADER)) && !defined(REGAL_NO_ENUM_GL_EXT_VERTEX_SHADER)
#define REGAL_NO_ENUM_GL_EXT_VERTEX_SHADER
#endif

#if (defined(GL_EXT_VERTEX_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_VERTEX_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_VERTEX_SHADER)
#define REGAL_NO_TYPEDEF_GL_EXT_VERTEX_SHADER
#endif

#if (defined(GL_EXT_VERTEX_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_VERTEX_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_VERTEX_SHADER)
#define REGAL_NO_NAMESPACE_GL_EXT_VERTEX_SHADER
#endif

#if (defined(GL_EXT_VERTEX_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_VERTEX_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_EXT_VERTEX_SHADER)
#define REGAL_NO_PLUGIN_GL_EXT_VERTEX_SHADER
#endif

#if (defined(GL_EXT_VERTEX_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_VERTEX_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_EXT_VERTEX_SHADER)
#define REGAL_NO_DECLARATION_GL_EXT_VERTEX_SHADER
#endif

#ifndef GL_EXT_vertex_shader
#define GL_EXT_vertex_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_VERTEX_SHADER
#define GL_VERTEX_SHADER_EXT                               0x8780     /* 34688 */
#define GL_VERTEX_SHADER_BINDING_EXT                       0x8781     /* 34689 */
#define GL_OP_INDEX_EXT                                    0x8782     /* 34690 */
#define GL_OP_NEGATE_EXT                                   0x8783     /* 34691 */
#define GL_OP_DOT3_EXT                                     0x8784     /* 34692 */
#define GL_OP_DOT4_EXT                                     0x8785     /* 34693 */
#define GL_OP_MUL_EXT                                      0x8786     /* 34694 */
#define GL_OP_ADD_EXT                                      0x8787     /* 34695 */
#define GL_OP_MADD_EXT                                     0x8788     /* 34696 */
#define GL_OP_FRAC_EXT                                     0x8789     /* 34697 */
#define GL_OP_MAX_EXT                                      0x878a     /* 34698 */
#define GL_OP_MIN_EXT                                      0x878b     /* 34699 */
#define GL_OP_SET_GE_EXT                                   0x878c     /* 34700 */
#define GL_OP_SET_LT_EXT                                   0x878d     /* 34701 */
#define GL_OP_CLAMP_EXT                                    0x878e     /* 34702 */
#define GL_OP_FLOOR_EXT                                    0x878f     /* 34703 */
#define GL_OP_ROUND_EXT                                    0x8790     /* 34704 */
#define GL_OP_EXP_BASE_2_EXT                               0x8791     /* 34705 */
#define GL_OP_LOG_BASE_2_EXT                               0x8792     /* 34706 */
#define GL_OP_POWER_EXT                                    0x8793     /* 34707 */
#define GL_OP_RECIP_EXT                                    0x8794     /* 34708 */
#define GL_OP_RECIP_SQRT_EXT                               0x8795     /* 34709 */
#define GL_OP_SUB_EXT                                      0x8796     /* 34710 */
#define GL_OP_CROSS_PRODUCT_EXT                            0x8797     /* 34711 */
#define GL_OP_MULTIPLY_MATRIX_EXT                          0x8798     /* 34712 */
#define GL_OP_MOV_EXT                                      0x8799     /* 34713 */
#define GL_OUTPUT_VERTEX_EXT                               0x879a     /* 34714 */
#define GL_OUTPUT_COLOR0_EXT                               0x879b     /* 34715 */
#define GL_OUTPUT_COLOR1_EXT                               0x879c     /* 34716 */
#define GL_OUTPUT_TEXTURE_COORD0_EXT                       0x879d     /* 34717 */
#define GL_OUTPUT_TEXTURE_COORD1_EXT                       0x879e     /* 34718 */
#define GL_OUTPUT_TEXTURE_COORD2_EXT                       0x879f     /* 34719 */
#define GL_OUTPUT_TEXTURE_COORD3_EXT                       0x87a0     /* 34720 */
#define GL_OUTPUT_TEXTURE_COORD4_EXT                       0x87a1     /* 34721 */
#define GL_OUTPUT_TEXTURE_COORD5_EXT                       0x87a2     /* 34722 */
#define GL_OUTPUT_TEXTURE_COORD6_EXT                       0x87a3     /* 34723 */
#define GL_OUTPUT_TEXTURE_COORD7_EXT                       0x87a4     /* 34724 */
#define GL_OUTPUT_TEXTURE_COORD8_EXT                       0x87a5     /* 34725 */
#define GL_OUTPUT_TEXTURE_COORD9_EXT                       0x87a6     /* 34726 */
#define GL_OUTPUT_TEXTURE_COORD10_EXT                      0x87a7     /* 34727 */
#define GL_OUTPUT_TEXTURE_COORD11_EXT                      0x87a8     /* 34728 */
#define GL_OUTPUT_TEXTURE_COORD12_EXT                      0x87a9     /* 34729 */
#define GL_OUTPUT_TEXTURE_COORD13_EXT                      0x87aa     /* 34730 */
#define GL_OUTPUT_TEXTURE_COORD14_EXT                      0x87ab     /* 34731 */
#define GL_OUTPUT_TEXTURE_COORD15_EXT                      0x87ac     /* 34732 */
#define GL_OUTPUT_TEXTURE_COORD16_EXT                      0x87ad     /* 34733 */
#define GL_OUTPUT_TEXTURE_COORD17_EXT                      0x87ae     /* 34734 */
#define GL_OUTPUT_TEXTURE_COORD18_EXT                      0x87af     /* 34735 */
#define GL_OUTPUT_TEXTURE_COORD19_EXT                      0x87b0     /* 34736 */
#define GL_OUTPUT_TEXTURE_COORD20_EXT                      0x87b1     /* 34737 */
#define GL_OUTPUT_TEXTURE_COORD21_EXT                      0x87b2     /* 34738 */
#define GL_OUTPUT_TEXTURE_COORD22_EXT                      0x87b3     /* 34739 */
#define GL_OUTPUT_TEXTURE_COORD23_EXT                      0x87b4     /* 34740 */
#define GL_OUTPUT_TEXTURE_COORD24_EXT                      0x87b5     /* 34741 */
#define GL_OUTPUT_TEXTURE_COORD25_EXT                      0x87b6     /* 34742 */
#define GL_OUTPUT_TEXTURE_COORD26_EXT                      0x87b7     /* 34743 */
#define GL_OUTPUT_TEXTURE_COORD27_EXT                      0x87b8     /* 34744 */
#define GL_OUTPUT_TEXTURE_COORD28_EXT                      0x87b9     /* 34745 */
#define GL_OUTPUT_TEXTURE_COORD29_EXT                      0x87ba     /* 34746 */
#define GL_OUTPUT_TEXTURE_COORD30_EXT                      0x87bb     /* 34747 */
#define GL_OUTPUT_TEXTURE_COORD31_EXT                      0x87bc     /* 34748 */
#define GL_OUTPUT_FOG_EXT                                  0x87bd     /* 34749 */
#define GL_SCALAR_EXT                                      0x87be     /* 34750 */
#define GL_VECTOR_EXT                                      0x87bf     /* 34751 */
#define GL_MATRIX_EXT                                      0x87c0     /* 34752 */
#define GL_VARIANT_EXT                                     0x87c1     /* 34753 */
#define GL_INVARIANT_EXT                                   0x87c2     /* 34754 */
#define GL_LOCAL_CONSTANT_EXT                              0x87c3     /* 34755 */
#define GL_LOCAL_EXT                                       0x87c4     /* 34756 */
#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT              0x87c5     /* 34757 */
#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT                  0x87c6     /* 34758 */
#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT                0x87c7     /* 34759 */
#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT           0x87c8     /* 34760 */
#define GL_MAX_VERTEX_SHADER_LOCALS_EXT                    0x87c9     /* 34761 */
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT    0x87ca     /* 34762 */
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT        0x87cb     /* 34763 */
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT      0x87cc     /* 34764 */
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87cd     /* 34765 */
#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT          0x87ce     /* 34766 */
#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT                  0x87cf     /* 34767 */
#define GL_VERTEX_SHADER_VARIANTS_EXT                      0x87d0     /* 34768 */
#define GL_VERTEX_SHADER_INVARIANTS_EXT                    0x87d1     /* 34769 */
#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT               0x87d2     /* 34770 */
#define GL_VERTEX_SHADER_LOCALS_EXT                        0x87d3     /* 34771 */
#define GL_VERTEX_SHADER_OPTIMIZED_EXT                     0x87d4     /* 34772 */
#define GL_X_EXT                                           0x87d5     /* 34773 */
#define GL_Y_EXT                                           0x87d6     /* 34774 */
#define GL_Z_EXT                                           0x87d7     /* 34775 */
#define GL_W_EXT                                           0x87d8     /* 34776 */
#define GL_NEGATIVE_X_EXT                                  0x87d9     /* 34777 */
#define GL_NEGATIVE_Y_EXT                                  0x87da     /* 34778 */
#define GL_NEGATIVE_Z_EXT                                  0x87db     /* 34779 */
#define GL_NEGATIVE_W_EXT                                  0x87dc     /* 34780 */
#define GL_ZERO_EXT                                        0x87dd     /* 34781 */
#define GL_ONE_EXT                                         0x87de     /* 34782 */
#define GL_NEGATIVE_ONE_EXT                                0x87df     /* 34783 */
#define GL_NORMALIZED_RANGE_EXT                            0x87e0     /* 34784 */
#define GL_FULL_RANGE_EXT                                  0x87e1     /* 34785 */
#define GL_CURRENT_VERTEX_EXT                              0x87e2     /* 34786 */
#define GL_MVP_MATRIX_EXT                                  0x87e3     /* 34787 */
#define GL_VARIANT_VALUE_EXT                               0x87e4     /* 34788 */
#define GL_VARIANT_DATATYPE_EXT                            0x87e5     /* 34789 */
#define GL_VARIANT_ARRAY_STRIDE_EXT                        0x87e6     /* 34790 */
#define GL_VARIANT_ARRAY_TYPE_EXT                          0x87e7     /* 34791 */
#define GL_VARIANT_ARRAY_EXT                               0x87e8     /* 34792 */
#define GL_VARIANT_ARRAY_POINTER_EXT                       0x87e9     /* 34793 */
#define GL_INVARIANT_VALUE_EXT                             0x87ea     /* 34794 */
#define GL_INVARIANT_DATATYPE_EXT                          0x87eb     /* 34795 */
#define GL_LOCAL_CONSTANT_VALUE_EXT                        0x87ec     /* 34796 */
#define GL_LOCAL_CONSTANT_DATATYPE_EXT                     0x87ed     /* 34797 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_VERTEX_SHADER
typedef GLboolean (REGAL_CALL *PFNGLISVARIANTENABLEDEXTPROC)(GLuint id, GLenum cap);
typedef GLuint (REGAL_CALL *PFNGLBINDLIGHTPARAMETEREXTPROC)(GLenum light, GLenum value);
typedef GLuint (REGAL_CALL *PFNGLBINDMATERIALPARAMETEREXTPROC)(GLenum face, GLenum value);
typedef GLuint (REGAL_CALL *PFNGLBINDPARAMETEREXTPROC)(GLenum value);
typedef GLuint (REGAL_CALL *PFNGLBINDTEXGENPARAMETEREXTPROC)(GLenum unit, GLenum coord, GLenum value);
typedef GLuint (REGAL_CALL *PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)(GLenum unit, GLenum value);
typedef GLuint (REGAL_CALL *PFNGLGENSYMBOLSEXTPROC)(GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
typedef GLuint (REGAL_CALL *PFNGLGENVERTEXSHADERSEXTPROC)(GLuint range);
typedef void (REGAL_CALL *PFNGLBEGINVERTEXSHADEREXTPROC)(void);
typedef void (REGAL_CALL *PFNGLBINDVERTEXSHADEREXTPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLDELETEVERTEXSHADEREXTPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLENDVERTEXSHADEREXTPROC)(void);
typedef void (REGAL_CALL *PFNGLEXTRACTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
typedef void (REGAL_CALL *PFNGLGETINVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean *data);
typedef void (REGAL_CALL *PFNGLGETINVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data);
typedef void (REGAL_CALL *PFNGLGETINVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data);
typedef void (REGAL_CALL *PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean *data);
typedef void (REGAL_CALL *PFNGLGETLOCALCONSTANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data);
typedef void (REGAL_CALL *PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data);
typedef void (REGAL_CALL *PFNGLGETVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean *data);
typedef void (REGAL_CALL *PFNGLGETVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat *data);
typedef void (REGAL_CALL *PFNGLGETVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint *data);
typedef void (REGAL_CALL *PFNGLGETVARIANTPOINTERVEXTPROC)(GLuint id, GLenum value, GLvoid **data);
typedef void (REGAL_CALL *PFNGLINSERTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
typedef void (REGAL_CALL *PFNGLSETINVARIANTEXTPROC)(GLuint id, GLenum type, const GLvoid *addr);
typedef void (REGAL_CALL *PFNGLSETLOCALCONSTANTEXTPROC)(GLuint id, GLenum type, const GLvoid *addr);
typedef void (REGAL_CALL *PFNGLSHADEROP1EXTPROC)(GLenum op, GLuint res, GLuint arg1);
typedef void (REGAL_CALL *PFNGLSHADEROP2EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2);
typedef void (REGAL_CALL *PFNGLSHADEROP3EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
typedef void (REGAL_CALL *PFNGLSWIZZLEEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
typedef void (REGAL_CALL *PFNGLVARIANTBVEXTPROC)(GLuint id, const GLbyte *addr);
typedef void (REGAL_CALL *PFNGLVARIANTDVEXTPROC)(GLuint id, const GLdouble *addr);
typedef void (REGAL_CALL *PFNGLVARIANTFVEXTPROC)(GLuint id, const GLfloat *addr);
typedef void (REGAL_CALL *PFNGLVARIANTIVEXTPROC)(GLuint id, const GLint *addr);
typedef void (REGAL_CALL *PFNGLVARIANTPOINTEREXTPROC)(GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
typedef void (REGAL_CALL *PFNGLVARIANTSVEXTPROC)(GLuint id, const GLshort *addr);
typedef void (REGAL_CALL *PFNGLVARIANTUBVEXTPROC)(GLuint id, const GLubyte *addr);
typedef void (REGAL_CALL *PFNGLVARIANTUIVEXTPROC)(GLuint id, const GLuint *addr);
typedef void (REGAL_CALL *PFNGLVARIANTUSVEXTPROC)(GLuint id, const GLushort *addr);
typedef void (REGAL_CALL *PFNGLWRITEMASKEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_VERTEX_SHADER
#define glBeginVertexShaderEXT              rglBeginVertexShaderEXT
#define glBindLightParameterEXT             rglBindLightParameterEXT
#define glBindMaterialParameterEXT          rglBindMaterialParameterEXT
#define glBindParameterEXT                  rglBindParameterEXT
#define glBindTexGenParameterEXT            rglBindTexGenParameterEXT
#define glBindTextureUnitParameterEXT       rglBindTextureUnitParameterEXT
#define glBindVertexShaderEXT               rglBindVertexShaderEXT
#define glDeleteVertexShaderEXT             rglDeleteVertexShaderEXT
#define glDisableVariantClientStateEXT      rglDisableVariantClientStateEXT
#define glEnableVariantClientStateEXT       rglEnableVariantClientStateEXT
#define glEndVertexShaderEXT                rglEndVertexShaderEXT
#define glExtractComponentEXT               rglExtractComponentEXT
#define glGenSymbolsEXT                     rglGenSymbolsEXT
#define glGenVertexShadersEXT               rglGenVertexShadersEXT
#define glGetInvariantBooleanvEXT           rglGetInvariantBooleanvEXT
#define glGetInvariantFloatvEXT             rglGetInvariantFloatvEXT
#define glGetInvariantIntegervEXT           rglGetInvariantIntegervEXT
#define glGetLocalConstantBooleanvEXT       rglGetLocalConstantBooleanvEXT
#define glGetLocalConstantFloatvEXT         rglGetLocalConstantFloatvEXT
#define glGetLocalConstantIntegervEXT       rglGetLocalConstantIntegervEXT
#define glGetVariantBooleanvEXT             rglGetVariantBooleanvEXT
#define glGetVariantFloatvEXT               rglGetVariantFloatvEXT
#define glGetVariantIntegervEXT             rglGetVariantIntegervEXT
#define glGetVariantPointervEXT             rglGetVariantPointervEXT
#define glInsertComponentEXT                rglInsertComponentEXT
#define glIsVariantEnabledEXT               rglIsVariantEnabledEXT
#define glSetInvariantEXT                   rglSetInvariantEXT
#define glSetLocalConstantEXT               rglSetLocalConstantEXT
#define glShaderOp1EXT                      rglShaderOp1EXT
#define glShaderOp2EXT                      rglShaderOp2EXT
#define glShaderOp3EXT                      rglShaderOp3EXT
#define glSwizzleEXT                        rglSwizzleEXT
#define glVariantPointerEXT                 rglVariantPointerEXT
#define glVariantbvEXT                      rglVariantbvEXT
#define glVariantdvEXT                      rglVariantdvEXT
#define glVariantfvEXT                      rglVariantfvEXT
#define glVariantivEXT                      rglVariantivEXT
#define glVariantsvEXT                      rglVariantsvEXT
#define glVariantubvEXT                     rglVariantubvEXT
#define glVariantuivEXT                     rglVariantuivEXT
#define glVariantusvEXT                     rglVariantusvEXT
#define glWriteMaskEXT                      rglWriteMaskEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_VERTEX_SHADER
REGAL_DECL GLboolean REGAL_CALL glIsVariantEnabledEXT(GLuint id, GLenum cap);
REGAL_DECL GLuint REGAL_CALL glBindLightParameterEXT(GLenum light, GLenum value);
REGAL_DECL GLuint REGAL_CALL glBindMaterialParameterEXT(GLenum face, GLenum value);
REGAL_DECL GLuint REGAL_CALL glBindParameterEXT(GLenum value);
REGAL_DECL GLuint REGAL_CALL glBindTexGenParameterEXT(GLenum unit, GLenum coord, GLenum value);
REGAL_DECL GLuint REGAL_CALL glBindTextureUnitParameterEXT(GLenum unit, GLenum value);
REGAL_DECL GLuint REGAL_CALL glGenSymbolsEXT(GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
REGAL_DECL GLuint REGAL_CALL glGenVertexShadersEXT(GLuint range);
REGAL_DECL void REGAL_CALL glBeginVertexShaderEXT(void);
REGAL_DECL void REGAL_CALL glBindVertexShaderEXT(GLuint id);
REGAL_DECL void REGAL_CALL glDeleteVertexShaderEXT(GLuint id);
REGAL_DECL void REGAL_CALL glDisableVariantClientStateEXT(GLuint id);
REGAL_DECL void REGAL_CALL glEnableVariantClientStateEXT(GLuint id);
REGAL_DECL void REGAL_CALL glEndVertexShaderEXT(void);
REGAL_DECL void REGAL_CALL glExtractComponentEXT(GLuint res, GLuint src, GLuint num);
REGAL_DECL void REGAL_CALL glGetInvariantBooleanvEXT(GLuint id, GLenum value, GLboolean *data);
REGAL_DECL void REGAL_CALL glGetInvariantFloatvEXT(GLuint id, GLenum value, GLfloat *data);
REGAL_DECL void REGAL_CALL glGetInvariantIntegervEXT(GLuint id, GLenum value, GLint *data);
REGAL_DECL void REGAL_CALL glGetLocalConstantBooleanvEXT(GLuint id, GLenum value, GLboolean *data);
REGAL_DECL void REGAL_CALL glGetLocalConstantFloatvEXT(GLuint id, GLenum value, GLfloat *data);
REGAL_DECL void REGAL_CALL glGetLocalConstantIntegervEXT(GLuint id, GLenum value, GLint *data);
REGAL_DECL void REGAL_CALL glGetVariantBooleanvEXT(GLuint id, GLenum value, GLboolean *data);
REGAL_DECL void REGAL_CALL glGetVariantFloatvEXT(GLuint id, GLenum value, GLfloat *data);
REGAL_DECL void REGAL_CALL glGetVariantIntegervEXT(GLuint id, GLenum value, GLint *data);
REGAL_DECL void REGAL_CALL glGetVariantPointervEXT(GLuint id, GLenum value, GLvoid **data);
REGAL_DECL void REGAL_CALL glInsertComponentEXT(GLuint res, GLuint src, GLuint num);
REGAL_DECL void REGAL_CALL glSetInvariantEXT(GLuint id, GLenum type, const GLvoid *addr);
REGAL_DECL void REGAL_CALL glSetLocalConstantEXT(GLuint id, GLenum type, const GLvoid *addr);
REGAL_DECL void REGAL_CALL glShaderOp1EXT(GLenum op, GLuint res, GLuint arg1);
REGAL_DECL void REGAL_CALL glShaderOp2EXT(GLenum op, GLuint res, GLuint arg1, GLuint arg2);
REGAL_DECL void REGAL_CALL glShaderOp3EXT(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
REGAL_DECL void REGAL_CALL glSwizzleEXT(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
REGAL_DECL void REGAL_CALL glVariantPointerEXT(GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
REGAL_DECL void REGAL_CALL glVariantbvEXT(GLuint id, const GLbyte *addr);
REGAL_DECL void REGAL_CALL glVariantdvEXT(GLuint id, const GLdouble *addr);
REGAL_DECL void REGAL_CALL glVariantfvEXT(GLuint id, const GLfloat *addr);
REGAL_DECL void REGAL_CALL glVariantivEXT(GLuint id, const GLint *addr);
REGAL_DECL void REGAL_CALL glVariantsvEXT(GLuint id, const GLshort *addr);
REGAL_DECL void REGAL_CALL glVariantubvEXT(GLuint id, const GLubyte *addr);
REGAL_DECL void REGAL_CALL glVariantuivEXT(GLuint id, const GLuint *addr);
REGAL_DECL void REGAL_CALL glVariantusvEXT(GLuint id, const GLushort *addr);
REGAL_DECL void REGAL_CALL glWriteMaskEXT(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_VERTEX_SHADER
REGAL_DECL GLboolean REGAL_CALL plugin_glIsVariantEnabledEXT(GLuint id, GLenum cap);
REGAL_DECL GLuint REGAL_CALL plugin_glBindLightParameterEXT(GLenum light, GLenum value);
REGAL_DECL GLuint REGAL_CALL plugin_glBindMaterialParameterEXT(GLenum face, GLenum value);
REGAL_DECL GLuint REGAL_CALL plugin_glBindParameterEXT(GLenum value);
REGAL_DECL GLuint REGAL_CALL plugin_glBindTexGenParameterEXT(GLenum unit, GLenum coord, GLenum value);
REGAL_DECL GLuint REGAL_CALL plugin_glBindTextureUnitParameterEXT(GLenum unit, GLenum value);
REGAL_DECL GLuint REGAL_CALL plugin_glGenSymbolsEXT(GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
REGAL_DECL GLuint REGAL_CALL plugin_glGenVertexShadersEXT(GLuint range);
REGAL_DECL void REGAL_CALL plugin_glBeginVertexShaderEXT(void);
REGAL_DECL void REGAL_CALL plugin_glBindVertexShaderEXT(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDeleteVertexShaderEXT(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDisableVariantClientStateEXT(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glEnableVariantClientStateEXT(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glEndVertexShaderEXT(void);
REGAL_DECL void REGAL_CALL plugin_glExtractComponentEXT(GLuint res, GLuint src, GLuint num);
REGAL_DECL void REGAL_CALL plugin_glGetInvariantBooleanvEXT(GLuint id, GLenum value, GLboolean *data);
REGAL_DECL void REGAL_CALL plugin_glGetInvariantFloatvEXT(GLuint id, GLenum value, GLfloat *data);
REGAL_DECL void REGAL_CALL plugin_glGetInvariantIntegervEXT(GLuint id, GLenum value, GLint *data);
REGAL_DECL void REGAL_CALL plugin_glGetLocalConstantBooleanvEXT(GLuint id, GLenum value, GLboolean *data);
REGAL_DECL void REGAL_CALL plugin_glGetLocalConstantFloatvEXT(GLuint id, GLenum value, GLfloat *data);
REGAL_DECL void REGAL_CALL plugin_glGetLocalConstantIntegervEXT(GLuint id, GLenum value, GLint *data);
REGAL_DECL void REGAL_CALL plugin_glGetVariantBooleanvEXT(GLuint id, GLenum value, GLboolean *data);
REGAL_DECL void REGAL_CALL plugin_glGetVariantFloatvEXT(GLuint id, GLenum value, GLfloat *data);
REGAL_DECL void REGAL_CALL plugin_glGetVariantIntegervEXT(GLuint id, GLenum value, GLint *data);
REGAL_DECL void REGAL_CALL plugin_glGetVariantPointervEXT(GLuint id, GLenum value, GLvoid **data);
REGAL_DECL void REGAL_CALL plugin_glInsertComponentEXT(GLuint res, GLuint src, GLuint num);
REGAL_DECL void REGAL_CALL plugin_glSetInvariantEXT(GLuint id, GLenum type, const GLvoid *addr);
REGAL_DECL void REGAL_CALL plugin_glSetLocalConstantEXT(GLuint id, GLenum type, const GLvoid *addr);
REGAL_DECL void REGAL_CALL plugin_glShaderOp1EXT(GLenum op, GLuint res, GLuint arg1);
REGAL_DECL void REGAL_CALL plugin_glShaderOp2EXT(GLenum op, GLuint res, GLuint arg1, GLuint arg2);
REGAL_DECL void REGAL_CALL plugin_glShaderOp3EXT(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
REGAL_DECL void REGAL_CALL plugin_glSwizzleEXT(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
REGAL_DECL void REGAL_CALL plugin_glVariantPointerEXT(GLuint id, GLenum type, GLuint stride, const GLvoid *addr);
REGAL_DECL void REGAL_CALL plugin_glVariantbvEXT(GLuint id, const GLbyte *addr);
REGAL_DECL void REGAL_CALL plugin_glVariantdvEXT(GLuint id, const GLdouble *addr);
REGAL_DECL void REGAL_CALL plugin_glVariantfvEXT(GLuint id, const GLfloat *addr);
REGAL_DECL void REGAL_CALL plugin_glVariantivEXT(GLuint id, const GLint *addr);
REGAL_DECL void REGAL_CALL plugin_glVariantsvEXT(GLuint id, const GLshort *addr);
REGAL_DECL void REGAL_CALL plugin_glVariantubvEXT(GLuint id, const GLubyte *addr);
REGAL_DECL void REGAL_CALL plugin_glVariantuivEXT(GLuint id, const GLuint *addr);
REGAL_DECL void REGAL_CALL plugin_glVariantusvEXT(GLuint id, const GLushort *addr);
REGAL_DECL void REGAL_CALL plugin_glWriteMaskEXT(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
#endif

/**
 ** GL_EXT_vertex_weighting
 **/

#if (defined(GL_EXT_VERTEX_WEIGHTING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_VERTEX_WEIGHTING)) && !defined(REGAL_NO_ENUM_GL_EXT_VERTEX_WEIGHTING)
#define REGAL_NO_ENUM_GL_EXT_VERTEX_WEIGHTING
#endif

#if (defined(GL_EXT_VERTEX_WEIGHTING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_VERTEX_WEIGHTING)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_VERTEX_WEIGHTING)
#define REGAL_NO_TYPEDEF_GL_EXT_VERTEX_WEIGHTING
#endif

#if (defined(GL_EXT_VERTEX_WEIGHTING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_VERTEX_WEIGHTING)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_VERTEX_WEIGHTING)
#define REGAL_NO_NAMESPACE_GL_EXT_VERTEX_WEIGHTING
#endif

#if (defined(GL_EXT_VERTEX_WEIGHTING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_VERTEX_WEIGHTING)) && !defined(REGAL_NO_PLUGIN_GL_EXT_VERTEX_WEIGHTING)
#define REGAL_NO_PLUGIN_GL_EXT_VERTEX_WEIGHTING
#endif

#if (defined(GL_EXT_VERTEX_WEIGHTING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_VERTEX_WEIGHTING)) && !defined(REGAL_NO_DECLARATION_GL_EXT_VERTEX_WEIGHTING)
#define REGAL_NO_DECLARATION_GL_EXT_VERTEX_WEIGHTING
#endif

#ifndef GL_EXT_vertex_weighting
#define GL_EXT_vertex_weighting 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_VERTEX_WEIGHTING
#define GL_MODELVIEW0_EXT                  0x1700     /* 5888 */
#define GL_MODELVIEW1_STACK_DEPTH_EXT      0x8502     /* 34050 */
#define GL_MODELVIEW1_MATRIX_EXT           0x8506     /* 34054 */
#define GL_VERTEX_WEIGHTING_EXT            0x8509     /* 34057 */
#define GL_MODELVIEW1_EXT                  0x850a     /* 34058 */
#define GL_CURRENT_VERTEX_WEIGHT_EXT       0x850b     /* 34059 */
#define GL_VERTEX_WEIGHT_ARRAY_EXT         0x850c     /* 34060 */
#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT    0x850d     /* 34061 */
#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT    0x850e     /* 34062 */
#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT  0x850f     /* 34063 */
#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510     /* 34064 */
#define GL_MODELVIEW0_STACK_DEPTH_EXT      0xba3      /* 2979 */
#define GL_MODELVIEW0_MATRIX_EXT           0xba6      /* 2982 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_VERTEX_WEIGHTING
typedef void (REGAL_CALL *PFNGLVERTEXWEIGHTFEXTPROC)(GLfloat weight);
typedef void (REGAL_CALL *PFNGLVERTEXWEIGHTFVEXTPROC)(const GLfloat *weight);
typedef void (REGAL_CALL *PFNGLVERTEXWEIGHTPOINTEREXTPROC)(GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_VERTEX_WEIGHTING
#define glVertexWeightPointerEXT            rglVertexWeightPointerEXT
#define glVertexWeightfEXT                  rglVertexWeightfEXT
#define glVertexWeightfvEXT                 rglVertexWeightfvEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_VERTEX_WEIGHTING
REGAL_DECL void REGAL_CALL glVertexWeightPointerEXT(GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glVertexWeightfEXT(GLfloat weight);
REGAL_DECL void REGAL_CALL glVertexWeightfvEXT(const GLfloat *weight);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_VERTEX_WEIGHTING
REGAL_DECL void REGAL_CALL plugin_glVertexWeightPointerEXT(GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glVertexWeightfEXT(GLfloat weight);
REGAL_DECL void REGAL_CALL plugin_glVertexWeightfvEXT(const GLfloat *weight);
#endif

/**
 ** GL_EXT_x11_sync_object
 **/

#if (defined(GL_EXT_X11_SYNC_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_EXT_X11_SYNC_OBJECT)) && !defined(REGAL_NO_ENUM_GL_EXT_X11_SYNC_OBJECT)
#define REGAL_NO_ENUM_GL_EXT_X11_SYNC_OBJECT
#endif

#if (defined(GL_EXT_X11_SYNC_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_EXT_X11_SYNC_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_EXT_X11_SYNC_OBJECT)
#define REGAL_NO_TYPEDEF_GL_EXT_X11_SYNC_OBJECT
#endif

#if (defined(GL_EXT_X11_SYNC_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_EXT_X11_SYNC_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_EXT_X11_SYNC_OBJECT)
#define REGAL_NO_NAMESPACE_GL_EXT_X11_SYNC_OBJECT
#endif

#if (defined(GL_EXT_X11_SYNC_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_EXT_X11_SYNC_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_EXT_X11_SYNC_OBJECT)
#define REGAL_NO_PLUGIN_GL_EXT_X11_SYNC_OBJECT
#endif

#if (defined(GL_EXT_X11_SYNC_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_EXT_X11_SYNC_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_EXT_X11_SYNC_OBJECT)
#define REGAL_NO_DECLARATION_GL_EXT_X11_SYNC_OBJECT
#endif

#ifndef GL_EXT_x11_sync_object
#define GL_EXT_x11_sync_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_EXT_X11_SYNC_OBJECT
#define GL_SYNC_X11_FENCE_EXT 0x90e1 /* 37089 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_EXT_X11_SYNC_OBJECT
typedef GLsync (REGAL_CALL *PFNGLIMPORTSYNCEXTPROC)(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_EXT_X11_SYNC_OBJECT
#define glImportSyncEXT                     rglImportSyncEXT
#endif

#ifndef REGAL_NO_DECLARATION_GL_EXT_X11_SYNC_OBJECT
REGAL_DECL GLsync REGAL_CALL glImportSyncEXT(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
#endif

#ifndef REGAL_NO_PLUGIN_GL_EXT_X11_SYNC_OBJECT
REGAL_DECL GLsync REGAL_CALL plugin_glImportSyncEXT(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
#endif

/**
 ** GL_FJ_shader_binary_GCCSO
 **/

#if (defined(GL_FJ_SHADER_BINARY_GCCSO) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_FJ_SHADER_BINARY_GCCSO)) && !defined(REGAL_NO_ENUM_GL_FJ_SHADER_BINARY_GCCSO)
#define REGAL_NO_ENUM_GL_FJ_SHADER_BINARY_GCCSO
#endif

#if (defined(GL_FJ_SHADER_BINARY_GCCSO) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_FJ_SHADER_BINARY_GCCSO)) && !defined(REGAL_NO_TYPEDEF_GL_FJ_SHADER_BINARY_GCCSO)
#define REGAL_NO_TYPEDEF_GL_FJ_SHADER_BINARY_GCCSO
#endif

#if (defined(GL_FJ_SHADER_BINARY_GCCSO) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_FJ_SHADER_BINARY_GCCSO)) && !defined(REGAL_NO_NAMESPACE_GL_FJ_SHADER_BINARY_GCCSO)
#define REGAL_NO_NAMESPACE_GL_FJ_SHADER_BINARY_GCCSO
#endif

#if (defined(GL_FJ_SHADER_BINARY_GCCSO) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_FJ_SHADER_BINARY_GCCSO)) && !defined(REGAL_NO_PLUGIN_GL_FJ_SHADER_BINARY_GCCSO)
#define REGAL_NO_PLUGIN_GL_FJ_SHADER_BINARY_GCCSO
#endif

#if (defined(GL_FJ_SHADER_BINARY_GCCSO) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_FJ_SHADER_BINARY_GCCSO)) && !defined(REGAL_NO_DECLARATION_GL_FJ_SHADER_BINARY_GCCSO)
#define REGAL_NO_DECLARATION_GL_FJ_SHADER_BINARY_GCCSO
#endif

#ifndef GL_FJ_shader_binary_GCCSO
#define GL_FJ_shader_binary_GCCSO 1
#endif

#ifndef REGAL_NO_ENUM_GL_FJ_SHADER_BINARY_GCCSO
#define GL_GCCSO_SHADER_BINARY_FJ 0x9260 /* 37472 */
#endif

/**
 ** GL_GREMEDY_frame_terminator
 **/

#if (defined(GL_GREMEDY_FRAME_TERMINATOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_GREMEDY_FRAME_TERMINATOR)) && !defined(REGAL_NO_ENUM_GL_GREMEDY_FRAME_TERMINATOR)
#define REGAL_NO_ENUM_GL_GREMEDY_FRAME_TERMINATOR
#endif

#if (defined(GL_GREMEDY_FRAME_TERMINATOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_GREMEDY_FRAME_TERMINATOR)) && !defined(REGAL_NO_TYPEDEF_GL_GREMEDY_FRAME_TERMINATOR)
#define REGAL_NO_TYPEDEF_GL_GREMEDY_FRAME_TERMINATOR
#endif

#if (defined(GL_GREMEDY_FRAME_TERMINATOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_GREMEDY_FRAME_TERMINATOR)) && !defined(REGAL_NO_NAMESPACE_GL_GREMEDY_FRAME_TERMINATOR)
#define REGAL_NO_NAMESPACE_GL_GREMEDY_FRAME_TERMINATOR
#endif

#if (defined(GL_GREMEDY_FRAME_TERMINATOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_GREMEDY_FRAME_TERMINATOR)) && !defined(REGAL_NO_PLUGIN_GL_GREMEDY_FRAME_TERMINATOR)
#define REGAL_NO_PLUGIN_GL_GREMEDY_FRAME_TERMINATOR
#endif

#if (defined(GL_GREMEDY_FRAME_TERMINATOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_GREMEDY_FRAME_TERMINATOR)) && !defined(REGAL_NO_DECLARATION_GL_GREMEDY_FRAME_TERMINATOR)
#define REGAL_NO_DECLARATION_GL_GREMEDY_FRAME_TERMINATOR
#endif

#ifndef GL_GREMEDY_frame_terminator
#define GL_GREMEDY_frame_terminator 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_GREMEDY_FRAME_TERMINATOR
typedef void (REGAL_CALL *PFNGLFRAMETERMINATORGREMEDYPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_GREMEDY_FRAME_TERMINATOR
#define glFrameTerminatorGREMEDY            rglFrameTerminatorGREMEDY
#endif

#ifndef REGAL_NO_DECLARATION_GL_GREMEDY_FRAME_TERMINATOR
REGAL_DECL void REGAL_CALL glFrameTerminatorGREMEDY(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_GREMEDY_FRAME_TERMINATOR
REGAL_DECL void REGAL_CALL plugin_glFrameTerminatorGREMEDY(void);
#endif

/**
 ** GL_GREMEDY_string_marker
 **/

#if (defined(GL_GREMEDY_STRING_MARKER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_GREMEDY_STRING_MARKER)) && !defined(REGAL_NO_ENUM_GL_GREMEDY_STRING_MARKER)
#define REGAL_NO_ENUM_GL_GREMEDY_STRING_MARKER
#endif

#if (defined(GL_GREMEDY_STRING_MARKER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_GREMEDY_STRING_MARKER)) && !defined(REGAL_NO_TYPEDEF_GL_GREMEDY_STRING_MARKER)
#define REGAL_NO_TYPEDEF_GL_GREMEDY_STRING_MARKER
#endif

#if (defined(GL_GREMEDY_STRING_MARKER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_GREMEDY_STRING_MARKER)) && !defined(REGAL_NO_NAMESPACE_GL_GREMEDY_STRING_MARKER)
#define REGAL_NO_NAMESPACE_GL_GREMEDY_STRING_MARKER
#endif

#if (defined(GL_GREMEDY_STRING_MARKER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_GREMEDY_STRING_MARKER)) && !defined(REGAL_NO_PLUGIN_GL_GREMEDY_STRING_MARKER)
#define REGAL_NO_PLUGIN_GL_GREMEDY_STRING_MARKER
#endif

#if (defined(GL_GREMEDY_STRING_MARKER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_GREMEDY_STRING_MARKER)) && !defined(REGAL_NO_DECLARATION_GL_GREMEDY_STRING_MARKER)
#define REGAL_NO_DECLARATION_GL_GREMEDY_STRING_MARKER
#endif

#ifndef GL_GREMEDY_string_marker
#define GL_GREMEDY_string_marker 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_GREMEDY_STRING_MARKER
typedef void (REGAL_CALL *PFNGLSTRINGMARKERGREMEDYPROC)(GLsizei len, const GLvoid *string);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_GREMEDY_STRING_MARKER
#define glStringMarkerGREMEDY               rglStringMarkerGREMEDY
#endif

#ifndef REGAL_NO_DECLARATION_GL_GREMEDY_STRING_MARKER
REGAL_DECL void REGAL_CALL glStringMarkerGREMEDY(GLsizei len, const GLvoid *string);
#endif

#ifndef REGAL_NO_PLUGIN_GL_GREMEDY_STRING_MARKER
REGAL_DECL void REGAL_CALL plugin_glStringMarkerGREMEDY(GLsizei len, const GLvoid *string);
#endif

/**
 ** GL_HP_image_transform
 **/

#if (defined(GL_HP_IMAGE_TRANSFORM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_HP_IMAGE_TRANSFORM)) && !defined(REGAL_NO_ENUM_GL_HP_IMAGE_TRANSFORM)
#define REGAL_NO_ENUM_GL_HP_IMAGE_TRANSFORM
#endif

#if (defined(GL_HP_IMAGE_TRANSFORM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_HP_IMAGE_TRANSFORM)) && !defined(REGAL_NO_TYPEDEF_GL_HP_IMAGE_TRANSFORM)
#define REGAL_NO_TYPEDEF_GL_HP_IMAGE_TRANSFORM
#endif

#if (defined(GL_HP_IMAGE_TRANSFORM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_HP_IMAGE_TRANSFORM)) && !defined(REGAL_NO_NAMESPACE_GL_HP_IMAGE_TRANSFORM)
#define REGAL_NO_NAMESPACE_GL_HP_IMAGE_TRANSFORM
#endif

#if (defined(GL_HP_IMAGE_TRANSFORM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_HP_IMAGE_TRANSFORM)) && !defined(REGAL_NO_PLUGIN_GL_HP_IMAGE_TRANSFORM)
#define REGAL_NO_PLUGIN_GL_HP_IMAGE_TRANSFORM
#endif

#if (defined(GL_HP_IMAGE_TRANSFORM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_HP_IMAGE_TRANSFORM)) && !defined(REGAL_NO_DECLARATION_GL_HP_IMAGE_TRANSFORM)
#define REGAL_NO_DECLARATION_GL_HP_IMAGE_TRANSFORM
#endif

#ifndef GL_HP_image_transform
#define GL_HP_image_transform 1
#endif

#ifndef REGAL_NO_ENUM_GL_HP_IMAGE_TRANSFORM
#define GL_IMAGE_SCALE_X_HP                          0x8155     /* 33109 */
#define GL_IMAGE_SCALE_Y_HP                          0x8156     /* 33110 */
#define GL_IMAGE_TRANSLATE_X_HP                      0x8157     /* 33111 */
#define GL_IMAGE_TRANSLATE_Y_HP                      0x8158     /* 33112 */
#define GL_IMAGE_ROTATE_ANGLE_HP                     0x8159     /* 33113 */
#define GL_IMAGE_ROTATE_ORIGIN_X_HP                  0x815a     /* 33114 */
#define GL_IMAGE_ROTATE_ORIGIN_Y_HP                  0x815b     /* 33115 */
#define GL_IMAGE_MAG_FILTER_HP                       0x815c     /* 33116 */
#define GL_IMAGE_MIN_FILTER_HP                       0x815d     /* 33117 */
#define GL_IMAGE_CUBIC_WEIGHT_HP                     0x815e     /* 33118 */
#define GL_CUBIC_HP                                  0x815f     /* 33119 */
#define GL_AVERAGE_HP                                0x8160     /* 33120 */
#define GL_IMAGE_TRANSFORM_2D_HP                     0x8161     /* 33121 */
#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP       0x8162     /* 33122 */
#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163     /* 33123 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_HP_IMAGE_TRANSFORM
typedef void (REGAL_CALL *PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLIMAGETRANSFORMPARAMETERFHPPROC)(GLenum target, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLIMAGETRANSFORMPARAMETERIHPPROC)(GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_HP_IMAGE_TRANSFORM
#define glGetImageTransformParameterfvHP    rglGetImageTransformParameterfvHP
#define glGetImageTransformParameterivHP    rglGetImageTransformParameterivHP
#define glImageTransformParameterfHP        rglImageTransformParameterfHP
#define glImageTransformParameterfvHP       rglImageTransformParameterfvHP
#define glImageTransformParameteriHP        rglImageTransformParameteriHP
#define glImageTransformParameterivHP       rglImageTransformParameterivHP
#endif

#ifndef REGAL_NO_DECLARATION_GL_HP_IMAGE_TRANSFORM
REGAL_DECL void REGAL_CALL glGetImageTransformParameterfvHP(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetImageTransformParameterivHP(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glImageTransformParameterfHP(GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glImageTransformParameterfvHP(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glImageTransformParameteriHP(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glImageTransformParameterivHP(GLenum target, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_HP_IMAGE_TRANSFORM
REGAL_DECL void REGAL_CALL plugin_glGetImageTransformParameterfvHP(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetImageTransformParameterivHP(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glImageTransformParameterfHP(GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glImageTransformParameterfvHP(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glImageTransformParameteriHP(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glImageTransformParameterivHP(GLenum target, GLenum pname, const GLint *params);
#endif

/**
 ** GL_HP_occlusion_test
 **/

#if (defined(GL_HP_OCCLUSION_TEST) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_HP_OCCLUSION_TEST)) && !defined(REGAL_NO_ENUM_GL_HP_OCCLUSION_TEST)
#define REGAL_NO_ENUM_GL_HP_OCCLUSION_TEST
#endif

#if (defined(GL_HP_OCCLUSION_TEST) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_HP_OCCLUSION_TEST)) && !defined(REGAL_NO_TYPEDEF_GL_HP_OCCLUSION_TEST)
#define REGAL_NO_TYPEDEF_GL_HP_OCCLUSION_TEST
#endif

#if (defined(GL_HP_OCCLUSION_TEST) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_HP_OCCLUSION_TEST)) && !defined(REGAL_NO_NAMESPACE_GL_HP_OCCLUSION_TEST)
#define REGAL_NO_NAMESPACE_GL_HP_OCCLUSION_TEST
#endif

#if (defined(GL_HP_OCCLUSION_TEST) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_HP_OCCLUSION_TEST)) && !defined(REGAL_NO_PLUGIN_GL_HP_OCCLUSION_TEST)
#define REGAL_NO_PLUGIN_GL_HP_OCCLUSION_TEST
#endif

#if (defined(GL_HP_OCCLUSION_TEST) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_HP_OCCLUSION_TEST)) && !defined(REGAL_NO_DECLARATION_GL_HP_OCCLUSION_TEST)
#define REGAL_NO_DECLARATION_GL_HP_OCCLUSION_TEST
#endif

#ifndef GL_HP_occlusion_test
#define GL_HP_occlusion_test 1
#endif

#ifndef REGAL_NO_ENUM_GL_HP_OCCLUSION_TEST
#define GL_OCCLUSION_TEST_HP        0x8165     /* 33125 */
#define GL_OCCLUSION_TEST_RESULT_HP 0x8166     /* 33126 */
#endif

/**
 ** GL_IBM_cull_vertex
 **/

#if (defined(GL_IBM_CULL_VERTEX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IBM_CULL_VERTEX)) && !defined(REGAL_NO_ENUM_GL_IBM_CULL_VERTEX)
#define REGAL_NO_ENUM_GL_IBM_CULL_VERTEX
#endif

#if (defined(GL_IBM_CULL_VERTEX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IBM_CULL_VERTEX)) && !defined(REGAL_NO_TYPEDEF_GL_IBM_CULL_VERTEX)
#define REGAL_NO_TYPEDEF_GL_IBM_CULL_VERTEX
#endif

#if (defined(GL_IBM_CULL_VERTEX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IBM_CULL_VERTEX)) && !defined(REGAL_NO_NAMESPACE_GL_IBM_CULL_VERTEX)
#define REGAL_NO_NAMESPACE_GL_IBM_CULL_VERTEX
#endif

#if (defined(GL_IBM_CULL_VERTEX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IBM_CULL_VERTEX)) && !defined(REGAL_NO_PLUGIN_GL_IBM_CULL_VERTEX)
#define REGAL_NO_PLUGIN_GL_IBM_CULL_VERTEX
#endif

#if (defined(GL_IBM_CULL_VERTEX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IBM_CULL_VERTEX)) && !defined(REGAL_NO_DECLARATION_GL_IBM_CULL_VERTEX)
#define REGAL_NO_DECLARATION_GL_IBM_CULL_VERTEX
#endif

#ifndef GL_IBM_cull_vertex
#define GL_IBM_cull_vertex 1
#endif

#ifndef REGAL_NO_ENUM_GL_IBM_CULL_VERTEX
#define GL_CULL_VERTEX_IBM 0x1928a /* 103050 */
#endif

/**
 ** GL_IBM_multimode_draw_arrays
 **/

#if (defined(GL_IBM_MULTIMODE_DRAW_ARRAYS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IBM_MULTIMODE_DRAW_ARRAYS)) && !defined(REGAL_NO_ENUM_GL_IBM_MULTIMODE_DRAW_ARRAYS)
#define REGAL_NO_ENUM_GL_IBM_MULTIMODE_DRAW_ARRAYS
#endif

#if (defined(GL_IBM_MULTIMODE_DRAW_ARRAYS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IBM_MULTIMODE_DRAW_ARRAYS)) && !defined(REGAL_NO_TYPEDEF_GL_IBM_MULTIMODE_DRAW_ARRAYS)
#define REGAL_NO_TYPEDEF_GL_IBM_MULTIMODE_DRAW_ARRAYS
#endif

#if (defined(GL_IBM_MULTIMODE_DRAW_ARRAYS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IBM_MULTIMODE_DRAW_ARRAYS)) && !defined(REGAL_NO_NAMESPACE_GL_IBM_MULTIMODE_DRAW_ARRAYS)
#define REGAL_NO_NAMESPACE_GL_IBM_MULTIMODE_DRAW_ARRAYS
#endif

#if (defined(GL_IBM_MULTIMODE_DRAW_ARRAYS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IBM_MULTIMODE_DRAW_ARRAYS)) && !defined(REGAL_NO_PLUGIN_GL_IBM_MULTIMODE_DRAW_ARRAYS)
#define REGAL_NO_PLUGIN_GL_IBM_MULTIMODE_DRAW_ARRAYS
#endif

#if (defined(GL_IBM_MULTIMODE_DRAW_ARRAYS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IBM_MULTIMODE_DRAW_ARRAYS)) && !defined(REGAL_NO_DECLARATION_GL_IBM_MULTIMODE_DRAW_ARRAYS)
#define REGAL_NO_DECLARATION_GL_IBM_MULTIMODE_DRAW_ARRAYS
#endif

#ifndef GL_IBM_multimode_draw_arrays
#define GL_IBM_multimode_draw_arrays 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_IBM_MULTIMODE_DRAW_ARRAYS
typedef void (REGAL_CALL *PFNGLMULTIMODEDRAWARRAYSIBMPROC)(const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
typedef void (REGAL_CALL *PFNGLMULTIMODEDRAWELEMENTSIBMPROC)(const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_IBM_MULTIMODE_DRAW_ARRAYS
#define glMultiModeDrawArraysIBM            rglMultiModeDrawArraysIBM
#define glMultiModeDrawElementsIBM          rglMultiModeDrawElementsIBM
#endif

#ifndef REGAL_NO_DECLARATION_GL_IBM_MULTIMODE_DRAW_ARRAYS
REGAL_DECL void REGAL_CALL glMultiModeDrawArraysIBM(const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
REGAL_DECL void REGAL_CALL glMultiModeDrawElementsIBM(const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride);
#endif

#ifndef REGAL_NO_PLUGIN_GL_IBM_MULTIMODE_DRAW_ARRAYS
REGAL_DECL void REGAL_CALL plugin_glMultiModeDrawArraysIBM(const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride);
REGAL_DECL void REGAL_CALL plugin_glMultiModeDrawElementsIBM(const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount, GLint modestride);
#endif

/**
 ** GL_IBM_rasterpos_clip
 **/

#if (defined(GL_IBM_RASTERPOS_CLIP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IBM_RASTERPOS_CLIP)) && !defined(REGAL_NO_ENUM_GL_IBM_RASTERPOS_CLIP)
#define REGAL_NO_ENUM_GL_IBM_RASTERPOS_CLIP
#endif

#if (defined(GL_IBM_RASTERPOS_CLIP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IBM_RASTERPOS_CLIP)) && !defined(REGAL_NO_TYPEDEF_GL_IBM_RASTERPOS_CLIP)
#define REGAL_NO_TYPEDEF_GL_IBM_RASTERPOS_CLIP
#endif

#if (defined(GL_IBM_RASTERPOS_CLIP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IBM_RASTERPOS_CLIP)) && !defined(REGAL_NO_NAMESPACE_GL_IBM_RASTERPOS_CLIP)
#define REGAL_NO_NAMESPACE_GL_IBM_RASTERPOS_CLIP
#endif

#if (defined(GL_IBM_RASTERPOS_CLIP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IBM_RASTERPOS_CLIP)) && !defined(REGAL_NO_PLUGIN_GL_IBM_RASTERPOS_CLIP)
#define REGAL_NO_PLUGIN_GL_IBM_RASTERPOS_CLIP
#endif

#if (defined(GL_IBM_RASTERPOS_CLIP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IBM_RASTERPOS_CLIP)) && !defined(REGAL_NO_DECLARATION_GL_IBM_RASTERPOS_CLIP)
#define REGAL_NO_DECLARATION_GL_IBM_RASTERPOS_CLIP
#endif

#ifndef GL_IBM_rasterpos_clip
#define GL_IBM_rasterpos_clip 1
#endif

#ifndef REGAL_NO_ENUM_GL_IBM_RASTERPOS_CLIP
#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 /* 103010 */
#endif

/**
 ** GL_IBM_static_data
 **/

#if (defined(GL_IBM_STATIC_DATA) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IBM_STATIC_DATA)) && !defined(REGAL_NO_ENUM_GL_IBM_STATIC_DATA)
#define REGAL_NO_ENUM_GL_IBM_STATIC_DATA
#endif

#if (defined(GL_IBM_STATIC_DATA) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IBM_STATIC_DATA)) && !defined(REGAL_NO_TYPEDEF_GL_IBM_STATIC_DATA)
#define REGAL_NO_TYPEDEF_GL_IBM_STATIC_DATA
#endif

#if (defined(GL_IBM_STATIC_DATA) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IBM_STATIC_DATA)) && !defined(REGAL_NO_NAMESPACE_GL_IBM_STATIC_DATA)
#define REGAL_NO_NAMESPACE_GL_IBM_STATIC_DATA
#endif

#if (defined(GL_IBM_STATIC_DATA) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IBM_STATIC_DATA)) && !defined(REGAL_NO_PLUGIN_GL_IBM_STATIC_DATA)
#define REGAL_NO_PLUGIN_GL_IBM_STATIC_DATA
#endif

#if (defined(GL_IBM_STATIC_DATA) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IBM_STATIC_DATA)) && !defined(REGAL_NO_DECLARATION_GL_IBM_STATIC_DATA)
#define REGAL_NO_DECLARATION_GL_IBM_STATIC_DATA
#endif

#ifndef GL_IBM_static_data
#define GL_IBM_static_data 1
#endif

#ifndef REGAL_NO_ENUM_GL_IBM_STATIC_DATA
#define GL_ALL_STATIC_DATA_IBM     0x19294     /* 103060 */
#define GL_STATIC_VERTEX_ARRAY_IBM 0x19295     /* 103061 */
#endif

/**
 ** GL_IBM_texture_mirrored_repeat
 **/

#if (defined(GL_IBM_TEXTURE_MIRRORED_REPEAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IBM_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_ENUM_GL_IBM_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_ENUM_GL_IBM_TEXTURE_MIRRORED_REPEAT
#endif

#if (defined(GL_IBM_TEXTURE_MIRRORED_REPEAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IBM_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_TYPEDEF_GL_IBM_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_TYPEDEF_GL_IBM_TEXTURE_MIRRORED_REPEAT
#endif

#if (defined(GL_IBM_TEXTURE_MIRRORED_REPEAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IBM_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_NAMESPACE_GL_IBM_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_NAMESPACE_GL_IBM_TEXTURE_MIRRORED_REPEAT
#endif

#if (defined(GL_IBM_TEXTURE_MIRRORED_REPEAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IBM_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_PLUGIN_GL_IBM_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_PLUGIN_GL_IBM_TEXTURE_MIRRORED_REPEAT
#endif

#if (defined(GL_IBM_TEXTURE_MIRRORED_REPEAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IBM_TEXTURE_MIRRORED_REPEAT)) && !defined(REGAL_NO_DECLARATION_GL_IBM_TEXTURE_MIRRORED_REPEAT)
#define REGAL_NO_DECLARATION_GL_IBM_TEXTURE_MIRRORED_REPEAT
#endif

#ifndef GL_IBM_texture_mirrored_repeat
#define GL_IBM_texture_mirrored_repeat 1
#endif

#ifndef REGAL_NO_ENUM_GL_IBM_TEXTURE_MIRRORED_REPEAT
#define GL_MIRRORED_REPEAT_IBM 0x8370 /* 33648 */
#endif

/**
 ** GL_IBM_vertex_array_lists
 **/

#if (defined(GL_IBM_VERTEX_ARRAY_LISTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IBM_VERTEX_ARRAY_LISTS)) && !defined(REGAL_NO_ENUM_GL_IBM_VERTEX_ARRAY_LISTS)
#define REGAL_NO_ENUM_GL_IBM_VERTEX_ARRAY_LISTS
#endif

#if (defined(GL_IBM_VERTEX_ARRAY_LISTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IBM_VERTEX_ARRAY_LISTS)) && !defined(REGAL_NO_TYPEDEF_GL_IBM_VERTEX_ARRAY_LISTS)
#define REGAL_NO_TYPEDEF_GL_IBM_VERTEX_ARRAY_LISTS
#endif

#if (defined(GL_IBM_VERTEX_ARRAY_LISTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IBM_VERTEX_ARRAY_LISTS)) && !defined(REGAL_NO_NAMESPACE_GL_IBM_VERTEX_ARRAY_LISTS)
#define REGAL_NO_NAMESPACE_GL_IBM_VERTEX_ARRAY_LISTS
#endif

#if (defined(GL_IBM_VERTEX_ARRAY_LISTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IBM_VERTEX_ARRAY_LISTS)) && !defined(REGAL_NO_PLUGIN_GL_IBM_VERTEX_ARRAY_LISTS)
#define REGAL_NO_PLUGIN_GL_IBM_VERTEX_ARRAY_LISTS
#endif

#if (defined(GL_IBM_VERTEX_ARRAY_LISTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IBM_VERTEX_ARRAY_LISTS)) && !defined(REGAL_NO_DECLARATION_GL_IBM_VERTEX_ARRAY_LISTS)
#define REGAL_NO_DECLARATION_GL_IBM_VERTEX_ARRAY_LISTS
#endif

#ifndef GL_IBM_vertex_array_lists
#define GL_IBM_vertex_array_lists 1
#endif

#ifndef REGAL_NO_ENUM_GL_IBM_VERTEX_ARRAY_LISTS
#define GL_VERTEX_ARRAY_LIST_IBM                 0x1929e     /* 103070 */
#define GL_NORMAL_ARRAY_LIST_IBM                 0x1929f     /* 103071 */
#define GL_COLOR_ARRAY_LIST_IBM                  0x192a0     /* 103072 */
#define GL_INDEX_ARRAY_LIST_IBM                  0x192a1     /* 103073 */
#define GL_TEXTURE_COORD_ARRAY_LIST_IBM          0x192a2     /* 103074 */
#define GL_EDGE_FLAG_ARRAY_LIST_IBM              0x192a3     /* 103075 */
#define GL_FOG_COORDINATE_ARRAY_LIST_IBM         0x192a4     /* 103076 */
#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM        0x192a5     /* 103077 */
#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM          0x192a8     /* 103080 */
#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM          0x192a9     /* 103081 */
#define GL_COLOR_ARRAY_LIST_STRIDE_IBM           0x192aa     /* 103082 */
#define GL_INDEX_ARRAY_LIST_STRIDE_IBM           0x192ab     /* 103083 */
#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM   0x192ac     /* 103084 */
#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM       0x192ad     /* 103085 */
#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM  0x192ae     /* 103086 */
#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 0x192af     /* 103087 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_IBM_VERTEX_ARRAY_LISTS
typedef void (REGAL_CALL *PFNGLCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
typedef void (REGAL_CALL *PFNGLEDGEFLAGPOINTERLISTIBMPROC)(GLint stride, const GLboolean **pointer, GLint ptrstride);
typedef void (REGAL_CALL *PFNGLFOGCOORDPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
typedef void (REGAL_CALL *PFNGLINDEXPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
typedef void (REGAL_CALL *PFNGLNORMALPOINTERLISTIBMPROC)(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
typedef void (REGAL_CALL *PFNGLTEXCOORDPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
typedef void (REGAL_CALL *PFNGLVERTEXPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_IBM_VERTEX_ARRAY_LISTS
#define glColorPointerListIBM               rglColorPointerListIBM
#define glEdgeFlagPointerListIBM            rglEdgeFlagPointerListIBM
#define glFogCoordPointerListIBM            rglFogCoordPointerListIBM
#define glIndexPointerListIBM               rglIndexPointerListIBM
#define glNormalPointerListIBM              rglNormalPointerListIBM
#define glSecondaryColorPointerListIBM      rglSecondaryColorPointerListIBM
#define glTexCoordPointerListIBM            rglTexCoordPointerListIBM
#define glVertexPointerListIBM              rglVertexPointerListIBM
#endif

#ifndef REGAL_NO_DECLARATION_GL_IBM_VERTEX_ARRAY_LISTS
REGAL_DECL void REGAL_CALL glColorPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL glEdgeFlagPointerListIBM(GLint stride, const GLboolean **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL glFogCoordPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL glIndexPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL glNormalPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL glSecondaryColorPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL glTexCoordPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL glVertexPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
#endif

#ifndef REGAL_NO_PLUGIN_GL_IBM_VERTEX_ARRAY_LISTS
REGAL_DECL void REGAL_CALL plugin_glColorPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL plugin_glEdgeFlagPointerListIBM(GLint stride, const GLboolean **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL plugin_glFogCoordPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL plugin_glIndexPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL plugin_glNormalPointerListIBM(GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColorPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL plugin_glTexCoordPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
REGAL_DECL void REGAL_CALL plugin_glVertexPointerListIBM(GLint size, GLenum type, GLint stride, const GLvoid **pointer, GLint ptrstride);
#endif

/**
 ** GL_IMG_multisampled_render_to_texture
 **/

#if (defined(GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_ENUM_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#if (defined(GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#if (defined(GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#if (defined(GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_PLUGIN_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#if (defined(GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE)
#define REGAL_NO_DECLARATION_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
#endif

#ifndef GL_IMG_multisampled_render_to_texture
#define GL_IMG_multisampled_render_to_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
#define GL_RENDERBUFFER_SAMPLES_IMG               0x9133     /* 37171 */
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG 0x9134     /* 37172 */
#define GL_MAX_SAMPLES_IMG                        0x9135     /* 37173 */
#define GL_TEXTURE_SAMPLES_IMG                    0x9136     /* 37174 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
#define glFramebufferTexture2DMultisampleIMG rglFramebufferTexture2DMultisampleIMG
#define glRenderbufferStorageMultisampleIMG rglRenderbufferStorageMultisampleIMG
#endif

#ifndef REGAL_NO_DECLARATION_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
REGAL_DECL void REGAL_CALL glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
REGAL_DECL void REGAL_CALL glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_IMG_MULTISAMPLED_RENDER_TO_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

/**
 ** GL_IMG_program_binary
 **/

#if (defined(GL_IMG_PROGRAM_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IMG_PROGRAM_BINARY)) && !defined(REGAL_NO_ENUM_GL_IMG_PROGRAM_BINARY)
#define REGAL_NO_ENUM_GL_IMG_PROGRAM_BINARY
#endif

#if (defined(GL_IMG_PROGRAM_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IMG_PROGRAM_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_IMG_PROGRAM_BINARY)
#define REGAL_NO_TYPEDEF_GL_IMG_PROGRAM_BINARY
#endif

#if (defined(GL_IMG_PROGRAM_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IMG_PROGRAM_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_IMG_PROGRAM_BINARY)
#define REGAL_NO_NAMESPACE_GL_IMG_PROGRAM_BINARY
#endif

#if (defined(GL_IMG_PROGRAM_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IMG_PROGRAM_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_IMG_PROGRAM_BINARY)
#define REGAL_NO_PLUGIN_GL_IMG_PROGRAM_BINARY
#endif

#if (defined(GL_IMG_PROGRAM_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IMG_PROGRAM_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_IMG_PROGRAM_BINARY)
#define REGAL_NO_DECLARATION_GL_IMG_PROGRAM_BINARY
#endif

#ifndef GL_IMG_program_binary
#define GL_IMG_program_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_IMG_PROGRAM_BINARY
#define GL_SGX_PROGRAM_BINARY_IMG 0x9130 /* 37168 */
#endif

/**
 ** GL_IMG_read_format
 **/

#if (defined(GL_IMG_READ_FORMAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IMG_READ_FORMAT)) && !defined(REGAL_NO_ENUM_GL_IMG_READ_FORMAT)
#define REGAL_NO_ENUM_GL_IMG_READ_FORMAT
#endif

#if (defined(GL_IMG_READ_FORMAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IMG_READ_FORMAT)) && !defined(REGAL_NO_TYPEDEF_GL_IMG_READ_FORMAT)
#define REGAL_NO_TYPEDEF_GL_IMG_READ_FORMAT
#endif

#if (defined(GL_IMG_READ_FORMAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IMG_READ_FORMAT)) && !defined(REGAL_NO_NAMESPACE_GL_IMG_READ_FORMAT)
#define REGAL_NO_NAMESPACE_GL_IMG_READ_FORMAT
#endif

#if (defined(GL_IMG_READ_FORMAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IMG_READ_FORMAT)) && !defined(REGAL_NO_PLUGIN_GL_IMG_READ_FORMAT)
#define REGAL_NO_PLUGIN_GL_IMG_READ_FORMAT
#endif

#if (defined(GL_IMG_READ_FORMAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IMG_READ_FORMAT)) && !defined(REGAL_NO_DECLARATION_GL_IMG_READ_FORMAT)
#define REGAL_NO_DECLARATION_GL_IMG_READ_FORMAT
#endif

#ifndef GL_IMG_read_format
#define GL_IMG_read_format 1
#endif

#ifndef REGAL_NO_ENUM_GL_IMG_READ_FORMAT
#define GL_BGRA_IMG                       0x80e1     /* 32993 */
#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG 0x8365     /* 33637 */
#endif

/**
 ** GL_IMG_shader_binary
 **/

#if (defined(GL_IMG_SHADER_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IMG_SHADER_BINARY)) && !defined(REGAL_NO_ENUM_GL_IMG_SHADER_BINARY)
#define REGAL_NO_ENUM_GL_IMG_SHADER_BINARY
#endif

#if (defined(GL_IMG_SHADER_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IMG_SHADER_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_IMG_SHADER_BINARY)
#define REGAL_NO_TYPEDEF_GL_IMG_SHADER_BINARY
#endif

#if (defined(GL_IMG_SHADER_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IMG_SHADER_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_IMG_SHADER_BINARY)
#define REGAL_NO_NAMESPACE_GL_IMG_SHADER_BINARY
#endif

#if (defined(GL_IMG_SHADER_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IMG_SHADER_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_IMG_SHADER_BINARY)
#define REGAL_NO_PLUGIN_GL_IMG_SHADER_BINARY
#endif

#if (defined(GL_IMG_SHADER_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IMG_SHADER_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_IMG_SHADER_BINARY)
#define REGAL_NO_DECLARATION_GL_IMG_SHADER_BINARY
#endif

#ifndef GL_IMG_shader_binary
#define GL_IMG_shader_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_IMG_SHADER_BINARY
#define GL_SGX_BINARY_IMG 0x8c0a /* 35850 */
#endif

/**
 ** GL_IMG_texture_compression_pvrtc
 **/

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC)) && !defined(REGAL_NO_ENUM_GL_IMG_TEXTURE_COMPRESSION_PVRTC)
#define REGAL_NO_ENUM_GL_IMG_TEXTURE_COMPRESSION_PVRTC
#endif

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC)) && !defined(REGAL_NO_TYPEDEF_GL_IMG_TEXTURE_COMPRESSION_PVRTC)
#define REGAL_NO_TYPEDEF_GL_IMG_TEXTURE_COMPRESSION_PVRTC
#endif

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC)) && !defined(REGAL_NO_NAMESPACE_GL_IMG_TEXTURE_COMPRESSION_PVRTC)
#define REGAL_NO_NAMESPACE_GL_IMG_TEXTURE_COMPRESSION_PVRTC
#endif

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC)) && !defined(REGAL_NO_PLUGIN_GL_IMG_TEXTURE_COMPRESSION_PVRTC)
#define REGAL_NO_PLUGIN_GL_IMG_TEXTURE_COMPRESSION_PVRTC
#endif

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC)) && !defined(REGAL_NO_DECLARATION_GL_IMG_TEXTURE_COMPRESSION_PVRTC)
#define REGAL_NO_DECLARATION_GL_IMG_TEXTURE_COMPRESSION_PVRTC
#endif

#ifndef GL_IMG_texture_compression_pvrtc
#define GL_IMG_texture_compression_pvrtc 1
#endif

#ifndef REGAL_NO_ENUM_GL_IMG_TEXTURE_COMPRESSION_PVRTC
#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG  0x8c00     /* 35840 */
#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG  0x8c01     /* 35841 */
#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG 0x8c02     /* 35842 */
#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG 0x8c03     /* 35843 */
#endif

/**
 ** GL_IMG_texture_compression_pvrtc2
 **/

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)) && !defined(REGAL_NO_ENUM_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)
#define REGAL_NO_ENUM_GL_IMG_TEXTURE_COMPRESSION_PVRTC2
#endif

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)) && !defined(REGAL_NO_TYPEDEF_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)
#define REGAL_NO_TYPEDEF_GL_IMG_TEXTURE_COMPRESSION_PVRTC2
#endif

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)) && !defined(REGAL_NO_NAMESPACE_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)
#define REGAL_NO_NAMESPACE_GL_IMG_TEXTURE_COMPRESSION_PVRTC2
#endif

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)) && !defined(REGAL_NO_PLUGIN_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)
#define REGAL_NO_PLUGIN_GL_IMG_TEXTURE_COMPRESSION_PVRTC2
#endif

#if (defined(GL_IMG_TEXTURE_COMPRESSION_PVRTC2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)) && !defined(REGAL_NO_DECLARATION_GL_IMG_TEXTURE_COMPRESSION_PVRTC2)
#define REGAL_NO_DECLARATION_GL_IMG_TEXTURE_COMPRESSION_PVRTC2
#endif

#ifndef GL_IMG_texture_compression_pvrtc2
#define GL_IMG_texture_compression_pvrtc2 1
#endif

#ifndef REGAL_NO_ENUM_GL_IMG_TEXTURE_COMPRESSION_PVRTC2
#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG 0x9137     /* 37175 */
#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG 0x9138     /* 37176 */
#endif

/**
 ** GL_IMG_texture_env_enhanced_fixed_function
 **/

#if (defined(GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)) && !defined(REGAL_NO_ENUM_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)
#define REGAL_NO_ENUM_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION
#endif

#if (defined(GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)) && !defined(REGAL_NO_TYPEDEF_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)
#define REGAL_NO_TYPEDEF_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION
#endif

#if (defined(GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)) && !defined(REGAL_NO_NAMESPACE_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)
#define REGAL_NO_NAMESPACE_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION
#endif

#if (defined(GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)) && !defined(REGAL_NO_PLUGIN_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)
#define REGAL_NO_PLUGIN_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION
#endif

#if (defined(GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)) && !defined(REGAL_NO_DECLARATION_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION)
#define REGAL_NO_DECLARATION_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION
#endif

#ifndef GL_IMG_texture_env_enhanced_fixed_function
#define GL_IMG_texture_env_enhanced_fixed_function 1
#endif

#ifndef REGAL_NO_ENUM_GL_IMG_TEXTURE_ENV_ENHANCED_FIXED_FUNCTION
#define GL_DOT3_RGBA_IMG               0x86af     /* 34479 */
#define GL_MODULATE_COLOR_IMG          0x8c04     /* 35844 */
#define GL_RECIP_ADD_SIGNED_ALPHA_IMG  0x8c05     /* 35845 */
#define GL_TEXTURE_ALPHA_MODULATE_IMG  0x8c06     /* 35846 */
#define GL_FACTOR_ALPHA_MODULATE_IMG   0x8c07     /* 35847 */
#define GL_FRAGMENT_ALPHA_MODULATE_IMG 0x8c08     /* 35848 */
#define GL_ADD_BLEND_IMG               0x8c09     /* 35849 */
#endif

/**
 ** GL_IMG_user_clip_plane
 **/

#if (defined(GL_IMG_USER_CLIP_PLANE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_IMG_USER_CLIP_PLANE)) && !defined(REGAL_NO_ENUM_GL_IMG_USER_CLIP_PLANE)
#define REGAL_NO_ENUM_GL_IMG_USER_CLIP_PLANE
#endif

#if (defined(GL_IMG_USER_CLIP_PLANE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_IMG_USER_CLIP_PLANE)) && !defined(REGAL_NO_TYPEDEF_GL_IMG_USER_CLIP_PLANE)
#define REGAL_NO_TYPEDEF_GL_IMG_USER_CLIP_PLANE
#endif

#if (defined(GL_IMG_USER_CLIP_PLANE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_IMG_USER_CLIP_PLANE)) && !defined(REGAL_NO_NAMESPACE_GL_IMG_USER_CLIP_PLANE)
#define REGAL_NO_NAMESPACE_GL_IMG_USER_CLIP_PLANE
#endif

#if (defined(GL_IMG_USER_CLIP_PLANE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_IMG_USER_CLIP_PLANE)) && !defined(REGAL_NO_PLUGIN_GL_IMG_USER_CLIP_PLANE)
#define REGAL_NO_PLUGIN_GL_IMG_USER_CLIP_PLANE
#endif

#if (defined(GL_IMG_USER_CLIP_PLANE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_IMG_USER_CLIP_PLANE)) && !defined(REGAL_NO_DECLARATION_GL_IMG_USER_CLIP_PLANE)
#define REGAL_NO_DECLARATION_GL_IMG_USER_CLIP_PLANE
#endif

#ifndef GL_IMG_user_clip_plane
#define GL_IMG_user_clip_plane 1
#endif

#ifndef REGAL_NO_ENUM_GL_IMG_USER_CLIP_PLANE
#define GL_CLIP_PLANE0_IMG     0x3000     /* 12288 */
#define GL_CLIP_PLANE1_IMG     0x3001     /* 12289 */
#define GL_CLIP_PLANE2_IMG     0x3002     /* 12290 */
#define GL_CLIP_PLANE3_IMG     0x3003     /* 12291 */
#define GL_CLIP_PLANE4_IMG     0x3004     /* 12292 */
#define GL_CLIP_PLANE5_IMG     0x3005     /* 12293 */
#define GL_MAX_CLIP_PLANES_IMG 0xd32      /* 3378 */
#endif

/**
 ** GL_INGR_blend_func_separate
 **/

#if (defined(GL_INGR_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_INGR_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_ENUM_GL_INGR_BLEND_FUNC_SEPARATE)
#define REGAL_NO_ENUM_GL_INGR_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_INGR_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_INGR_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_TYPEDEF_GL_INGR_BLEND_FUNC_SEPARATE)
#define REGAL_NO_TYPEDEF_GL_INGR_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_INGR_BLEND_FUNC_SEPARATE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_INGR_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_NAMESPACE_GL_INGR_BLEND_FUNC_SEPARATE)
#define REGAL_NO_NAMESPACE_GL_INGR_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_INGR_BLEND_FUNC_SEPARATE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_INGR_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_PLUGIN_GL_INGR_BLEND_FUNC_SEPARATE)
#define REGAL_NO_PLUGIN_GL_INGR_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_INGR_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_INGR_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_DECLARATION_GL_INGR_BLEND_FUNC_SEPARATE)
#define REGAL_NO_DECLARATION_GL_INGR_BLEND_FUNC_SEPARATE
#endif

#ifndef GL_INGR_blend_func_separate
#define GL_INGR_blend_func_separate 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_INGR_BLEND_FUNC_SEPARATE
typedef void (REGAL_CALL *PFNGLBLENDFUNCSEPARATEINGRPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_INGR_BLEND_FUNC_SEPARATE
#define glBlendFuncSeparateINGR             rglBlendFuncSeparateINGR
#endif

#ifndef REGAL_NO_DECLARATION_GL_INGR_BLEND_FUNC_SEPARATE
REGAL_DECL void REGAL_CALL glBlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

#ifndef REGAL_NO_PLUGIN_GL_INGR_BLEND_FUNC_SEPARATE
REGAL_DECL void REGAL_CALL plugin_glBlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

/**
 ** GL_INGR_color_clamp
 **/

#if (defined(GL_INGR_COLOR_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_INGR_COLOR_CLAMP)) && !defined(REGAL_NO_ENUM_GL_INGR_COLOR_CLAMP)
#define REGAL_NO_ENUM_GL_INGR_COLOR_CLAMP
#endif

#if (defined(GL_INGR_COLOR_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_INGR_COLOR_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_INGR_COLOR_CLAMP)
#define REGAL_NO_TYPEDEF_GL_INGR_COLOR_CLAMP
#endif

#if (defined(GL_INGR_COLOR_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_INGR_COLOR_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_INGR_COLOR_CLAMP)
#define REGAL_NO_NAMESPACE_GL_INGR_COLOR_CLAMP
#endif

#if (defined(GL_INGR_COLOR_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_INGR_COLOR_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_INGR_COLOR_CLAMP)
#define REGAL_NO_PLUGIN_GL_INGR_COLOR_CLAMP
#endif

#if (defined(GL_INGR_COLOR_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_INGR_COLOR_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_INGR_COLOR_CLAMP)
#define REGAL_NO_DECLARATION_GL_INGR_COLOR_CLAMP
#endif

#ifndef GL_INGR_color_clamp
#define GL_INGR_color_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_INGR_COLOR_CLAMP
#define GL_RED_MIN_CLAMP_INGR   0x8560     /* 34144 */
#define GL_GREEN_MIN_CLAMP_INGR 0x8561     /* 34145 */
#define GL_BLUE_MIN_CLAMP_INGR  0x8562     /* 34146 */
#define GL_ALPHA_MIN_CLAMP_INGR 0x8563     /* 34147 */
#define GL_RED_MAX_CLAMP_INGR   0x8564     /* 34148 */
#define GL_GREEN_MAX_CLAMP_INGR 0x8565     /* 34149 */
#define GL_BLUE_MAX_CLAMP_INGR  0x8566     /* 34150 */
#define GL_ALPHA_MAX_CLAMP_INGR 0x8567     /* 34151 */
#endif

/**
 ** GL_INGR_interlace_read
 **/

#if (defined(GL_INGR_INTERLACE_READ) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_INGR_INTERLACE_READ)) && !defined(REGAL_NO_ENUM_GL_INGR_INTERLACE_READ)
#define REGAL_NO_ENUM_GL_INGR_INTERLACE_READ
#endif

#if (defined(GL_INGR_INTERLACE_READ) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_INGR_INTERLACE_READ)) && !defined(REGAL_NO_TYPEDEF_GL_INGR_INTERLACE_READ)
#define REGAL_NO_TYPEDEF_GL_INGR_INTERLACE_READ
#endif

#if (defined(GL_INGR_INTERLACE_READ) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_INGR_INTERLACE_READ)) && !defined(REGAL_NO_NAMESPACE_GL_INGR_INTERLACE_READ)
#define REGAL_NO_NAMESPACE_GL_INGR_INTERLACE_READ
#endif

#if (defined(GL_INGR_INTERLACE_READ) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_INGR_INTERLACE_READ)) && !defined(REGAL_NO_PLUGIN_GL_INGR_INTERLACE_READ)
#define REGAL_NO_PLUGIN_GL_INGR_INTERLACE_READ
#endif

#if (defined(GL_INGR_INTERLACE_READ) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_INGR_INTERLACE_READ)) && !defined(REGAL_NO_DECLARATION_GL_INGR_INTERLACE_READ)
#define REGAL_NO_DECLARATION_GL_INGR_INTERLACE_READ
#endif

#ifndef GL_INGR_interlace_read
#define GL_INGR_interlace_read 1
#endif

#ifndef REGAL_NO_ENUM_GL_INGR_INTERLACE_READ
#define GL_INTERLACE_READ_INGR 0x8568 /* 34152 */
#endif

/**
 ** GL_INTEL_map_texture
 **/

#if (defined(GL_INTEL_MAP_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_INTEL_MAP_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_INTEL_MAP_TEXTURE)
#define REGAL_NO_ENUM_GL_INTEL_MAP_TEXTURE
#endif

#if (defined(GL_INTEL_MAP_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_INTEL_MAP_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_INTEL_MAP_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_INTEL_MAP_TEXTURE
#endif

#if (defined(GL_INTEL_MAP_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_INTEL_MAP_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_INTEL_MAP_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_INTEL_MAP_TEXTURE
#endif

#if (defined(GL_INTEL_MAP_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_INTEL_MAP_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_INTEL_MAP_TEXTURE)
#define REGAL_NO_PLUGIN_GL_INTEL_MAP_TEXTURE
#endif

#if (defined(GL_INTEL_MAP_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_INTEL_MAP_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_INTEL_MAP_TEXTURE)
#define REGAL_NO_DECLARATION_GL_INTEL_MAP_TEXTURE
#endif

#ifndef GL_INTEL_map_texture
#define GL_INTEL_map_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_INTEL_MAP_TEXTURE
#define GL_LAYOUT_DEFAULT_INTEL           0x0
#define GL_LAYOUT_LINEAR_INTEL            0x1
#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL 0x2
#define GL_TEXTURE_MEMORY_LAYOUT_INTEL    0x83ff     /* 33791 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_INTEL_MAP_TEXTURE
typedef GLvoid *(REGAL_CALL *PFNGLMAPTEXTURE2DINTELPROC)(GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout);
typedef void (REGAL_CALL *PFNGLSYNCTEXTUREINTELPROC)(GLuint texture);
typedef void (REGAL_CALL *PFNGLUNMAPTEXTURE2DINTELPROC)(GLuint texture, GLint level);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_INTEL_MAP_TEXTURE
#define glMapTexture2DINTEL                 rglMapTexture2DINTEL
#define glSyncTextureINTEL                  rglSyncTextureINTEL
#define glUnmapTexture2DINTEL               rglUnmapTexture2DINTEL
#endif

#ifndef REGAL_NO_DECLARATION_GL_INTEL_MAP_TEXTURE
REGAL_DECL GLvoid *REGAL_CALL glMapTexture2DINTEL(GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout);
REGAL_DECL void REGAL_CALL glSyncTextureINTEL(GLuint texture);
REGAL_DECL void REGAL_CALL glUnmapTexture2DINTEL(GLuint texture, GLint level);
#endif

#ifndef REGAL_NO_PLUGIN_GL_INTEL_MAP_TEXTURE
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapTexture2DINTEL(GLuint texture, GLint level, GLbitfield access, GLint *stride, GLenum *layout);
REGAL_DECL void REGAL_CALL plugin_glSyncTextureINTEL(GLuint texture);
REGAL_DECL void REGAL_CALL plugin_glUnmapTexture2DINTEL(GLuint texture, GLint level);
#endif

/**
 ** GL_INTEL_parallel_arrays
 **/

#if (defined(GL_INTEL_PARALLEL_ARRAYS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_INTEL_PARALLEL_ARRAYS)) && !defined(REGAL_NO_ENUM_GL_INTEL_PARALLEL_ARRAYS)
#define REGAL_NO_ENUM_GL_INTEL_PARALLEL_ARRAYS
#endif

#if (defined(GL_INTEL_PARALLEL_ARRAYS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_INTEL_PARALLEL_ARRAYS)) && !defined(REGAL_NO_TYPEDEF_GL_INTEL_PARALLEL_ARRAYS)
#define REGAL_NO_TYPEDEF_GL_INTEL_PARALLEL_ARRAYS
#endif

#if (defined(GL_INTEL_PARALLEL_ARRAYS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_INTEL_PARALLEL_ARRAYS)) && !defined(REGAL_NO_NAMESPACE_GL_INTEL_PARALLEL_ARRAYS)
#define REGAL_NO_NAMESPACE_GL_INTEL_PARALLEL_ARRAYS
#endif

#if (defined(GL_INTEL_PARALLEL_ARRAYS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_INTEL_PARALLEL_ARRAYS)) && !defined(REGAL_NO_PLUGIN_GL_INTEL_PARALLEL_ARRAYS)
#define REGAL_NO_PLUGIN_GL_INTEL_PARALLEL_ARRAYS
#endif

#if (defined(GL_INTEL_PARALLEL_ARRAYS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_INTEL_PARALLEL_ARRAYS)) && !defined(REGAL_NO_DECLARATION_GL_INTEL_PARALLEL_ARRAYS)
#define REGAL_NO_DECLARATION_GL_INTEL_PARALLEL_ARRAYS
#endif

#ifndef GL_INTEL_parallel_arrays
#define GL_INTEL_parallel_arrays 1
#endif

#ifndef REGAL_NO_ENUM_GL_INTEL_PARALLEL_ARRAYS
#define GL_PARALLEL_ARRAYS_INTEL                       0x83f4     /* 33780 */
#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL        0x83f5     /* 33781 */
#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL        0x83f6     /* 33782 */
#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL         0x83f7     /* 33783 */
#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83f8     /* 33784 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_INTEL_PARALLEL_ARRAYS
typedef void (REGAL_CALL *PFNGLCOLORPOINTERVINTELPROC)(GLint size, GLenum type, const GLvoid **pointer);
typedef void (REGAL_CALL *PFNGLNORMALPOINTERVINTELPROC)(GLenum type, const GLvoid **pointer);
typedef void (REGAL_CALL *PFNGLTEXCOORDPOINTERVINTELPROC)(GLint size, GLenum type, const GLvoid **pointer);
typedef void (REGAL_CALL *PFNGLVERTEXPOINTERVINTELPROC)(GLint size, GLenum type, const GLvoid **pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_INTEL_PARALLEL_ARRAYS
#define glColorPointervINTEL                rglColorPointervINTEL
#define glNormalPointervINTEL               rglNormalPointervINTEL
#define glTexCoordPointervINTEL             rglTexCoordPointervINTEL
#define glVertexPointervINTEL               rglVertexPointervINTEL
#endif

#ifndef REGAL_NO_DECLARATION_GL_INTEL_PARALLEL_ARRAYS
REGAL_DECL void REGAL_CALL glColorPointervINTEL(GLint size, GLenum type, const GLvoid **pointer);
REGAL_DECL void REGAL_CALL glNormalPointervINTEL(GLenum type, const GLvoid **pointer);
REGAL_DECL void REGAL_CALL glTexCoordPointervINTEL(GLint size, GLenum type, const GLvoid **pointer);
REGAL_DECL void REGAL_CALL glVertexPointervINTEL(GLint size, GLenum type, const GLvoid **pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_INTEL_PARALLEL_ARRAYS
REGAL_DECL void REGAL_CALL plugin_glColorPointervINTEL(GLint size, GLenum type, const GLvoid **pointer);
REGAL_DECL void REGAL_CALL plugin_glNormalPointervINTEL(GLenum type, const GLvoid **pointer);
REGAL_DECL void REGAL_CALL plugin_glTexCoordPointervINTEL(GLint size, GLenum type, const GLvoid **pointer);
REGAL_DECL void REGAL_CALL plugin_glVertexPointervINTEL(GLint size, GLenum type, const GLvoid **pointer);
#endif

/**
 ** GL_INTEL_texture_scissor
 **/

#if (defined(GL_INTEL_TEXTURE_SCISSOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_INTEL_TEXTURE_SCISSOR)) && !defined(REGAL_NO_ENUM_GL_INTEL_TEXTURE_SCISSOR)
#define REGAL_NO_ENUM_GL_INTEL_TEXTURE_SCISSOR
#endif

#if (defined(GL_INTEL_TEXTURE_SCISSOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_INTEL_TEXTURE_SCISSOR)) && !defined(REGAL_NO_TYPEDEF_GL_INTEL_TEXTURE_SCISSOR)
#define REGAL_NO_TYPEDEF_GL_INTEL_TEXTURE_SCISSOR
#endif

#if (defined(GL_INTEL_TEXTURE_SCISSOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_INTEL_TEXTURE_SCISSOR)) && !defined(REGAL_NO_NAMESPACE_GL_INTEL_TEXTURE_SCISSOR)
#define REGAL_NO_NAMESPACE_GL_INTEL_TEXTURE_SCISSOR
#endif

#if (defined(GL_INTEL_TEXTURE_SCISSOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_INTEL_TEXTURE_SCISSOR)) && !defined(REGAL_NO_PLUGIN_GL_INTEL_TEXTURE_SCISSOR)
#define REGAL_NO_PLUGIN_GL_INTEL_TEXTURE_SCISSOR
#endif

#if (defined(GL_INTEL_TEXTURE_SCISSOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_INTEL_TEXTURE_SCISSOR)) && !defined(REGAL_NO_DECLARATION_GL_INTEL_TEXTURE_SCISSOR)
#define REGAL_NO_DECLARATION_GL_INTEL_TEXTURE_SCISSOR
#endif

#ifndef GL_INTEL_texture_scissor
#define GL_INTEL_texture_scissor 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_INTEL_TEXTURE_SCISSOR
typedef void (REGAL_CALL *PFNGLTEXSCISSORFUNCINTELPROC)(GLenum target, GLenum lfunc, GLenum hfunc);
typedef void (REGAL_CALL *PFNGLTEXSCISSORINTELPROC)(GLenum target, GLclampf tlow, GLclampf thigh);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_INTEL_TEXTURE_SCISSOR
#define glTexScissorFuncINTEL               rglTexScissorFuncINTEL
#define glTexScissorINTEL                   rglTexScissorINTEL
#endif

#ifndef REGAL_NO_DECLARATION_GL_INTEL_TEXTURE_SCISSOR
REGAL_DECL void REGAL_CALL glTexScissorFuncINTEL(GLenum target, GLenum lfunc, GLenum hfunc);
REGAL_DECL void REGAL_CALL glTexScissorINTEL(GLenum target, GLclampf tlow, GLclampf thigh);
#endif

#ifndef REGAL_NO_PLUGIN_GL_INTEL_TEXTURE_SCISSOR
REGAL_DECL void REGAL_CALL plugin_glTexScissorFuncINTEL(GLenum target, GLenum lfunc, GLenum hfunc);
REGAL_DECL void REGAL_CALL plugin_glTexScissorINTEL(GLenum target, GLclampf tlow, GLclampf thigh);
#endif

/**
 ** GL_KHR_debug
 **/

#if (defined(GL_KHR_DEBUG) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_KHR_DEBUG)) && !defined(REGAL_NO_ENUM_GL_KHR_DEBUG)
#define REGAL_NO_ENUM_GL_KHR_DEBUG
#endif

#if (defined(GL_KHR_DEBUG) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_KHR_DEBUG)) && !defined(REGAL_NO_TYPEDEF_GL_KHR_DEBUG)
#define REGAL_NO_TYPEDEF_GL_KHR_DEBUG
#endif

#if (defined(GL_KHR_DEBUG) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_KHR_DEBUG)) && !defined(REGAL_NO_NAMESPACE_GL_KHR_DEBUG)
#define REGAL_NO_NAMESPACE_GL_KHR_DEBUG
#endif

#if (defined(GL_KHR_DEBUG) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_KHR_DEBUG)) && !defined(REGAL_NO_PLUGIN_GL_KHR_DEBUG)
#define REGAL_NO_PLUGIN_GL_KHR_DEBUG
#endif

#if (defined(GL_KHR_DEBUG) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_KHR_DEBUG)) && !defined(REGAL_NO_DECLARATION_GL_KHR_DEBUG)
#define REGAL_NO_DECLARATION_GL_KHR_DEBUG
#endif

#ifndef GL_KHR_debug
#define GL_KHR_debug 1
#endif

#ifndef REGAL_NO_ENUM_GL_KHR_DEBUG
#define GL_CONTEXT_FLAG_DEBUG_BIT           0x2
#define GL_DEBUG_OUTPUT_SYNCHRONOUS         0x8242     /* 33346 */
#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH 0x8243     /* 33347 */
#define GL_DEBUG_CALLBACK_FUNCTION          0x8244     /* 33348 */
#define GL_DEBUG_CALLBACK_USER_PARAM        0x8245     /* 33349 */
#define GL_DEBUG_SOURCE_API                 0x8246     /* 33350 */
#define GL_DEBUG_SOURCE_WINDOW_SYSTEM       0x8247     /* 33351 */
#define GL_DEBUG_SOURCE_SHADER_COMPILER     0x8248     /* 33352 */
#define GL_DEBUG_SOURCE_THIRD_PARTY         0x8249     /* 33353 */
#define GL_DEBUG_SOURCE_APPLICATION         0x824a     /* 33354 */
#define GL_DEBUG_SOURCE_OTHER               0x824b     /* 33355 */
#define GL_DEBUG_TYPE_ERROR                 0x824c     /* 33356 */
#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR   0x824d     /* 33357 */
#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR    0x824e     /* 33358 */
#define GL_DEBUG_TYPE_PORTABILITY           0x824f     /* 33359 */
#define GL_DEBUG_TYPE_PERFORMANCE           0x8250     /* 33360 */
#define GL_DEBUG_TYPE_OTHER                 0x8251     /* 33361 */
#define GL_DEBUG_TYPE_MARKER                0x8268     /* 33384 */
#define GL_DEBUG_TYPE_PUSH_GROUP            0x8269     /* 33385 */
#define GL_DEBUG_TYPE_POP_GROUP             0x826a     /* 33386 */
#define GL_DEBUG_SEVERITY_NOTIFICATION      0x826b     /* 33387 */
#define GL_MAX_DEBUG_GROUP_STACK_DEPTH      0x826c     /* 33388 */
#define GL_DEBUG_GROUP_STACK_DEPTH          0x826d     /* 33389 */
#define GL_BUFFER                           0x82e0     /* 33504 */
#define GL_SHADER                           0x82e1     /* 33505 */
#define GL_PROGRAM                          0x82e2     /* 33506 */
#define GL_QUERY                            0x82e3     /* 33507 */
#define GL_PROGRAM_PIPELINE                 0x82e4     /* 33508 */
#define GL_SAMPLER                          0x82e6     /* 33510 */
#define GL_DISPLAY_LIST                     0x82e7     /* 33511 */
#define GL_MAX_LABEL_LENGTH                 0x82e8     /* 33512 */
#define GL_MAX_DEBUG_MESSAGE_LENGTH         0x9143     /* 37187 */
#define GL_MAX_DEBUG_LOGGED_MESSAGES        0x9144     /* 37188 */
#define GL_DEBUG_LOGGED_MESSAGES            0x9145     /* 37189 */
#define GL_DEBUG_SEVERITY_HIGH              0x9146     /* 37190 */
#define GL_DEBUG_SEVERITY_MEDIUM            0x9147     /* 37191 */
#define GL_DEBUG_SEVERITY_LOW               0x9148     /* 37192 */
#define GL_DEBUG_OUTPUT                     0x92e0     /* 37600 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_KHR_DEBUG
typedef GLuint (REGAL_CALL *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, const GLvoid *userParam);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
typedef void (REGAL_CALL *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
typedef void (REGAL_CALL *PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
typedef void (REGAL_CALL *PFNGLGETOBJECTPTRLABELPROC)(const GLvoid *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
typedef void (REGAL_CALL *PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
typedef void (REGAL_CALL *PFNGLOBJECTPTRLABELPROC)(const GLvoid *ptr, GLsizei length, const GLchar *label);
typedef void (REGAL_CALL *PFNGLPOPDEBUGGROUPPROC)(void);
typedef void (REGAL_CALL *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar *message);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_KHR_DEBUG
#define glDebugMessageCallback              rglDebugMessageCallback
#define glDebugMessageControl               rglDebugMessageControl
#define glDebugMessageInsert                rglDebugMessageInsert
#define glGetDebugMessageLog                rglGetDebugMessageLog
#define glGetObjectLabel                    rglGetObjectLabel
#define glGetObjectPtrLabel                 rglGetObjectPtrLabel
#define glObjectLabel                       rglObjectLabel
#define glObjectPtrLabel                    rglObjectPtrLabel
#define glPopDebugGroup                     rglPopDebugGroup
#define glPushDebugGroup                    rglPushDebugGroup
#endif

#ifndef REGAL_NO_DECLARATION_GL_KHR_DEBUG
REGAL_DECL GLuint REGAL_CALL glGetDebugMessageLog(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
REGAL_DECL void REGAL_CALL glDebugMessageCallback(GLDEBUGPROC callback, const GLvoid *userParam);
REGAL_DECL void REGAL_CALL glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
REGAL_DECL void REGAL_CALL glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
REGAL_DECL void REGAL_CALL glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
REGAL_DECL void REGAL_CALL glGetObjectPtrLabel(const GLvoid *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
REGAL_DECL void REGAL_CALL glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
REGAL_DECL void REGAL_CALL glObjectPtrLabel(const GLvoid *ptr, GLsizei length, const GLchar *label);
REGAL_DECL void REGAL_CALL glPopDebugGroup(void);
REGAL_DECL void REGAL_CALL glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message);
#endif

#ifndef REGAL_NO_PLUGIN_GL_KHR_DEBUG
REGAL_DECL GLuint REGAL_CALL plugin_glGetDebugMessageLog(GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageCallback(GLDEBUGPROC callback, const GLvoid *userParam);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageControl(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled);
REGAL_DECL void REGAL_CALL plugin_glDebugMessageInsert(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf);
REGAL_DECL void REGAL_CALL plugin_glGetObjectLabel(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei *length, GLchar *label);
REGAL_DECL void REGAL_CALL plugin_glGetObjectPtrLabel(const GLvoid *ptr, GLsizei bufSize, GLsizei *length, GLchar *label);
REGAL_DECL void REGAL_CALL plugin_glObjectLabel(GLenum identifier, GLuint name, GLsizei length, const GLchar *label);
REGAL_DECL void REGAL_CALL plugin_glObjectPtrLabel(const GLvoid *ptr, GLsizei length, const GLchar *label);
REGAL_DECL void REGAL_CALL plugin_glPopDebugGroup(void);
REGAL_DECL void REGAL_CALL plugin_glPushDebugGroup(GLenum source, GLuint id, GLsizei length, const GLchar *message);
#endif

/**
 ** GL_KHR_texture_compression_astc_ldr
 **/

#if (defined(GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)) && !defined(REGAL_NO_ENUM_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)
#define REGAL_NO_ENUM_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR
#endif

#if (defined(GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)) && !defined(REGAL_NO_TYPEDEF_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)
#define REGAL_NO_TYPEDEF_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR
#endif

#if (defined(GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)) && !defined(REGAL_NO_NAMESPACE_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)
#define REGAL_NO_NAMESPACE_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR
#endif

#if (defined(GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)) && !defined(REGAL_NO_PLUGIN_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)
#define REGAL_NO_PLUGIN_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR
#endif

#if (defined(GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)) && !defined(REGAL_NO_DECLARATION_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR)
#define REGAL_NO_DECLARATION_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR
#endif

#ifndef GL_KHR_texture_compression_astc_ldr
#define GL_KHR_texture_compression_astc_ldr 1
#endif

#ifndef REGAL_NO_ENUM_GL_KHR_TEXTURE_COMPRESSION_ASTC_LDR
#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR           0x93b0     /* 37808 */
#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR           0x93b1     /* 37809 */
#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR           0x93b2     /* 37810 */
#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR           0x93b3     /* 37811 */
#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR           0x93b4     /* 37812 */
#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR           0x93b5     /* 37813 */
#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR           0x93b6     /* 37814 */
#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR           0x93b7     /* 37815 */
#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR          0x93b8     /* 37816 */
#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR          0x93b9     /* 37817 */
#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR          0x93ba     /* 37818 */
#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR         0x93bb     /* 37819 */
#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR         0x93bc     /* 37820 */
#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR         0x93bd     /* 37821 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR   0x93d0     /* 37840 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR   0x93d1     /* 37841 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR   0x93d2     /* 37842 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR   0x93d3     /* 37843 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR   0x93d4     /* 37844 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR   0x93d5     /* 37845 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR   0x93d6     /* 37846 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR   0x93d7     /* 37847 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR  0x93d8     /* 37848 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR  0x93d9     /* 37849 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR  0x93da     /* 37850 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR 0x93db     /* 37851 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR 0x93dc     /* 37852 */
#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR 0x93dd     /* 37853 */
#endif

/**
 ** GL_KTX_buffer_region
 **/

#if (defined(GL_KTX_BUFFER_REGION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_KTX_BUFFER_REGION)) && !defined(REGAL_NO_ENUM_GL_KTX_BUFFER_REGION)
#define REGAL_NO_ENUM_GL_KTX_BUFFER_REGION
#endif

#if (defined(GL_KTX_BUFFER_REGION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_KTX_BUFFER_REGION)) && !defined(REGAL_NO_TYPEDEF_GL_KTX_BUFFER_REGION)
#define REGAL_NO_TYPEDEF_GL_KTX_BUFFER_REGION
#endif

#if (defined(GL_KTX_BUFFER_REGION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_KTX_BUFFER_REGION)) && !defined(REGAL_NO_NAMESPACE_GL_KTX_BUFFER_REGION)
#define REGAL_NO_NAMESPACE_GL_KTX_BUFFER_REGION
#endif

#if (defined(GL_KTX_BUFFER_REGION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_KTX_BUFFER_REGION)) && !defined(REGAL_NO_PLUGIN_GL_KTX_BUFFER_REGION)
#define REGAL_NO_PLUGIN_GL_KTX_BUFFER_REGION
#endif

#if (defined(GL_KTX_BUFFER_REGION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_KTX_BUFFER_REGION)) && !defined(REGAL_NO_DECLARATION_GL_KTX_BUFFER_REGION)
#define REGAL_NO_DECLARATION_GL_KTX_BUFFER_REGION
#endif

#ifndef GL_KTX_buffer_region
#define GL_KTX_buffer_region 1
#endif

#ifndef REGAL_NO_ENUM_GL_KTX_BUFFER_REGION
#define GL_KTX_FRONT_REGION   0x0
#define GL_KTX_BACK_REGION    0x1
#define GL_KTX_Z_REGION       0x2
#define GL_KTX_STENCIL_REGION 0x3
#endif

#ifndef REGAL_NO_TYPEDEF_GL_KTX_BUFFER_REGION
typedef GLuint (REGAL_CALL *PFNGLBUFFERREGIONENABLEDPROC)(void);
typedef GLuint (REGAL_CALL *PFNGLNEWBUFFERREGIONPROC)(GLenum region);
typedef void (REGAL_CALL *PFNGLDELETEBUFFERREGIONPROC)(GLenum region);
typedef void (REGAL_CALL *PFNGLDRAWBUFFERREGIONPROC)(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest);
typedef void (REGAL_CALL *PFNGLREADBUFFERREGIONPROC)(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_KTX_BUFFER_REGION
#define glBufferRegionEnabled               rglBufferRegionEnabled
#define glDeleteBufferRegion                rglDeleteBufferRegion
#define glDrawBufferRegion                  rglDrawBufferRegion
#define glNewBufferRegion                   rglNewBufferRegion
#define glReadBufferRegion                  rglReadBufferRegion
#endif

#ifndef REGAL_NO_DECLARATION_GL_KTX_BUFFER_REGION
REGAL_DECL GLuint REGAL_CALL glBufferRegionEnabled(void);
REGAL_DECL GLuint REGAL_CALL glNewBufferRegion(GLenum region);
REGAL_DECL void REGAL_CALL glDeleteBufferRegion(GLenum region);
REGAL_DECL void REGAL_CALL glDrawBufferRegion(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest);
REGAL_DECL void REGAL_CALL glReadBufferRegion(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_KTX_BUFFER_REGION
REGAL_DECL GLuint REGAL_CALL plugin_glBufferRegionEnabled(void);
REGAL_DECL GLuint REGAL_CALL plugin_glNewBufferRegion(GLenum region);
REGAL_DECL void REGAL_CALL plugin_glDeleteBufferRegion(GLenum region);
REGAL_DECL void REGAL_CALL plugin_glDrawBufferRegion(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height, GLint xDest, GLint yDest);
REGAL_DECL void REGAL_CALL plugin_glReadBufferRegion(GLuint region, GLint x, GLint y, GLsizei width, GLsizei height);
#endif

/**
 ** GL_MESAX_texture_stack
 **/

#if (defined(GL_MESAX_TEXTURE_STACK) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_MESAX_TEXTURE_STACK)) && !defined(REGAL_NO_ENUM_GL_MESAX_TEXTURE_STACK)
#define REGAL_NO_ENUM_GL_MESAX_TEXTURE_STACK
#endif

#if (defined(GL_MESAX_TEXTURE_STACK) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_MESAX_TEXTURE_STACK)) && !defined(REGAL_NO_TYPEDEF_GL_MESAX_TEXTURE_STACK)
#define REGAL_NO_TYPEDEF_GL_MESAX_TEXTURE_STACK
#endif

#if (defined(GL_MESAX_TEXTURE_STACK) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_MESAX_TEXTURE_STACK)) && !defined(REGAL_NO_NAMESPACE_GL_MESAX_TEXTURE_STACK)
#define REGAL_NO_NAMESPACE_GL_MESAX_TEXTURE_STACK
#endif

#if (defined(GL_MESAX_TEXTURE_STACK) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_MESAX_TEXTURE_STACK)) && !defined(REGAL_NO_PLUGIN_GL_MESAX_TEXTURE_STACK)
#define REGAL_NO_PLUGIN_GL_MESAX_TEXTURE_STACK
#endif

#if (defined(GL_MESAX_TEXTURE_STACK) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_MESAX_TEXTURE_STACK)) && !defined(REGAL_NO_DECLARATION_GL_MESAX_TEXTURE_STACK)
#define REGAL_NO_DECLARATION_GL_MESAX_TEXTURE_STACK
#endif

#ifndef GL_MESAX_texture_stack
#define GL_MESAX_texture_stack 1
#endif

#ifndef REGAL_NO_ENUM_GL_MESAX_TEXTURE_STACK
#define GL_TEXTURE_1D_STACK_MESAX         0x8759     /* 34649 */
#define GL_TEXTURE_2D_STACK_MESAX         0x875a     /* 34650 */
#define GL_PROXY_TEXTURE_1D_STACK_MESAX   0x875b     /* 34651 */
#define GL_PROXY_TEXTURE_2D_STACK_MESAX   0x875c     /* 34652 */
#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875d     /* 34653 */
#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875e     /* 34654 */
#endif

/**
 ** GL_MESA_pack_invert
 **/

#if (defined(GL_MESA_PACK_INVERT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_MESA_PACK_INVERT)) && !defined(REGAL_NO_ENUM_GL_MESA_PACK_INVERT)
#define REGAL_NO_ENUM_GL_MESA_PACK_INVERT
#endif

#if (defined(GL_MESA_PACK_INVERT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_MESA_PACK_INVERT)) && !defined(REGAL_NO_TYPEDEF_GL_MESA_PACK_INVERT)
#define REGAL_NO_TYPEDEF_GL_MESA_PACK_INVERT
#endif

#if (defined(GL_MESA_PACK_INVERT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_MESA_PACK_INVERT)) && !defined(REGAL_NO_NAMESPACE_GL_MESA_PACK_INVERT)
#define REGAL_NO_NAMESPACE_GL_MESA_PACK_INVERT
#endif

#if (defined(GL_MESA_PACK_INVERT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_MESA_PACK_INVERT)) && !defined(REGAL_NO_PLUGIN_GL_MESA_PACK_INVERT)
#define REGAL_NO_PLUGIN_GL_MESA_PACK_INVERT
#endif

#if (defined(GL_MESA_PACK_INVERT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_MESA_PACK_INVERT)) && !defined(REGAL_NO_DECLARATION_GL_MESA_PACK_INVERT)
#define REGAL_NO_DECLARATION_GL_MESA_PACK_INVERT
#endif

#ifndef GL_MESA_pack_invert
#define GL_MESA_pack_invert 1
#endif

#ifndef REGAL_NO_ENUM_GL_MESA_PACK_INVERT
#define GL_PACK_INVERT_MESA 0x8758 /* 34648 */
#endif

/**
 ** GL_MESA_resize_buffers
 **/

#if (defined(GL_MESA_RESIZE_BUFFERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_MESA_RESIZE_BUFFERS)) && !defined(REGAL_NO_ENUM_GL_MESA_RESIZE_BUFFERS)
#define REGAL_NO_ENUM_GL_MESA_RESIZE_BUFFERS
#endif

#if (defined(GL_MESA_RESIZE_BUFFERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_MESA_RESIZE_BUFFERS)) && !defined(REGAL_NO_TYPEDEF_GL_MESA_RESIZE_BUFFERS)
#define REGAL_NO_TYPEDEF_GL_MESA_RESIZE_BUFFERS
#endif

#if (defined(GL_MESA_RESIZE_BUFFERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_MESA_RESIZE_BUFFERS)) && !defined(REGAL_NO_NAMESPACE_GL_MESA_RESIZE_BUFFERS)
#define REGAL_NO_NAMESPACE_GL_MESA_RESIZE_BUFFERS
#endif

#if (defined(GL_MESA_RESIZE_BUFFERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_MESA_RESIZE_BUFFERS)) && !defined(REGAL_NO_PLUGIN_GL_MESA_RESIZE_BUFFERS)
#define REGAL_NO_PLUGIN_GL_MESA_RESIZE_BUFFERS
#endif

#if (defined(GL_MESA_RESIZE_BUFFERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_MESA_RESIZE_BUFFERS)) && !defined(REGAL_NO_DECLARATION_GL_MESA_RESIZE_BUFFERS)
#define REGAL_NO_DECLARATION_GL_MESA_RESIZE_BUFFERS
#endif

#ifndef GL_MESA_resize_buffers
#define GL_MESA_resize_buffers 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_MESA_RESIZE_BUFFERS
typedef void (REGAL_CALL *PFNGLRESIZEBUFFERSMESAPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_MESA_RESIZE_BUFFERS
#define glResizeBuffersMESA                 rglResizeBuffersMESA
#endif

#ifndef REGAL_NO_DECLARATION_GL_MESA_RESIZE_BUFFERS
REGAL_DECL void REGAL_CALL glResizeBuffersMESA(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_MESA_RESIZE_BUFFERS
REGAL_DECL void REGAL_CALL plugin_glResizeBuffersMESA(void);
#endif

/**
 ** GL_MESA_window_pos
 **/

#if (defined(GL_MESA_WINDOW_POS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_MESA_WINDOW_POS)) && !defined(REGAL_NO_ENUM_GL_MESA_WINDOW_POS)
#define REGAL_NO_ENUM_GL_MESA_WINDOW_POS
#endif

#if (defined(GL_MESA_WINDOW_POS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_MESA_WINDOW_POS)) && !defined(REGAL_NO_TYPEDEF_GL_MESA_WINDOW_POS)
#define REGAL_NO_TYPEDEF_GL_MESA_WINDOW_POS
#endif

#if (defined(GL_MESA_WINDOW_POS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_MESA_WINDOW_POS)) && !defined(REGAL_NO_NAMESPACE_GL_MESA_WINDOW_POS)
#define REGAL_NO_NAMESPACE_GL_MESA_WINDOW_POS
#endif

#if (defined(GL_MESA_WINDOW_POS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_MESA_WINDOW_POS)) && !defined(REGAL_NO_PLUGIN_GL_MESA_WINDOW_POS)
#define REGAL_NO_PLUGIN_GL_MESA_WINDOW_POS
#endif

#if (defined(GL_MESA_WINDOW_POS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_MESA_WINDOW_POS)) && !defined(REGAL_NO_DECLARATION_GL_MESA_WINDOW_POS)
#define REGAL_NO_DECLARATION_GL_MESA_WINDOW_POS
#endif

#ifndef GL_MESA_window_pos
#define GL_MESA_window_pos 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_MESA_WINDOW_POS
typedef void (REGAL_CALL *PFNGLWINDOWPOS2DMESAPROC)(GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2DVMESAPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2FMESAPROC)(GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2FVMESAPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2IMESAPROC)(GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2IVMESAPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2SMESAPROC)(GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2SVMESAPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3DMESAPROC)(GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3DVMESAPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3FMESAPROC)(GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3FVMESAPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3IMESAPROC)(GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3IVMESAPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3SMESAPROC)(GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3SVMESAPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS4DMESAPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLWINDOWPOS4DVMESAPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS4FMESAPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLWINDOWPOS4FVMESAPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS4IMESAPROC)(GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLWINDOWPOS4IVMESAPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLWINDOWPOS4SMESAPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (REGAL_CALL *PFNGLWINDOWPOS4SVMESAPROC)(const GLshort *v);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_MESA_WINDOW_POS
#define glWindowPos2dMESA                   rglWindowPos2dMESA
#define glWindowPos2dvMESA                  rglWindowPos2dvMESA
#define glWindowPos2fMESA                   rglWindowPos2fMESA
#define glWindowPos2fvMESA                  rglWindowPos2fvMESA
#define glWindowPos2iMESA                   rglWindowPos2iMESA
#define glWindowPos2ivMESA                  rglWindowPos2ivMESA
#define glWindowPos2sMESA                   rglWindowPos2sMESA
#define glWindowPos2svMESA                  rglWindowPos2svMESA
#define glWindowPos3dMESA                   rglWindowPos3dMESA
#define glWindowPos3dvMESA                  rglWindowPos3dvMESA
#define glWindowPos3fMESA                   rglWindowPos3fMESA
#define glWindowPos3fvMESA                  rglWindowPos3fvMESA
#define glWindowPos3iMESA                   rglWindowPos3iMESA
#define glWindowPos3ivMESA                  rglWindowPos3ivMESA
#define glWindowPos3sMESA                   rglWindowPos3sMESA
#define glWindowPos3svMESA                  rglWindowPos3svMESA
#define glWindowPos4dMESA                   rglWindowPos4dMESA
#define glWindowPos4dvMESA                  rglWindowPos4dvMESA
#define glWindowPos4fMESA                   rglWindowPos4fMESA
#define glWindowPos4fvMESA                  rglWindowPos4fvMESA
#define glWindowPos4iMESA                   rglWindowPos4iMESA
#define glWindowPos4ivMESA                  rglWindowPos4ivMESA
#define glWindowPos4sMESA                   rglWindowPos4sMESA
#define glWindowPos4svMESA                  rglWindowPos4svMESA
#endif

#ifndef REGAL_NO_DECLARATION_GL_MESA_WINDOW_POS
REGAL_DECL void REGAL_CALL glWindowPos2dMESA(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glWindowPos2dvMESA(const GLdouble *v);
REGAL_DECL void REGAL_CALL glWindowPos2fMESA(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glWindowPos2fvMESA(const GLfloat *v);
REGAL_DECL void REGAL_CALL glWindowPos2iMESA(GLint x, GLint y);
REGAL_DECL void REGAL_CALL glWindowPos2ivMESA(const GLint *v);
REGAL_DECL void REGAL_CALL glWindowPos2sMESA(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glWindowPos2svMESA(const GLshort *v);
REGAL_DECL void REGAL_CALL glWindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glWindowPos3dvMESA(const GLdouble *v);
REGAL_DECL void REGAL_CALL glWindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glWindowPos3fvMESA(const GLfloat *v);
REGAL_DECL void REGAL_CALL glWindowPos3iMESA(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glWindowPos3ivMESA(const GLint *v);
REGAL_DECL void REGAL_CALL glWindowPos3sMESA(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glWindowPos3svMESA(const GLshort *v);
REGAL_DECL void REGAL_CALL glWindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glWindowPos4dvMESA(const GLdouble *v);
REGAL_DECL void REGAL_CALL glWindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glWindowPos4fvMESA(const GLfloat *v);
REGAL_DECL void REGAL_CALL glWindowPos4iMESA(GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glWindowPos4ivMESA(const GLint *v);
REGAL_DECL void REGAL_CALL glWindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL glWindowPos4svMESA(const GLshort *v);
#endif

#ifndef REGAL_NO_PLUGIN_GL_MESA_WINDOW_POS
REGAL_DECL void REGAL_CALL plugin_glWindowPos2dMESA(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2dvMESA(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2fMESA(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2fvMESA(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2iMESA(GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2ivMESA(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2sMESA(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2svMESA(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3dvMESA(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3fvMESA(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3iMESA(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3ivMESA(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3sMESA(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3svMESA(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glWindowPos4dvMESA(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glWindowPos4fvMESA(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos4iMESA(GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glWindowPos4ivMESA(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glWindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL plugin_glWindowPos4svMESA(const GLshort *v);
#endif

/**
 ** GL_MESA_ycbcr_texture
 **/

#if (defined(GL_MESA_YCBCR_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_MESA_YCBCR_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_MESA_YCBCR_TEXTURE)
#define REGAL_NO_ENUM_GL_MESA_YCBCR_TEXTURE
#endif

#if (defined(GL_MESA_YCBCR_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_MESA_YCBCR_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_MESA_YCBCR_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_MESA_YCBCR_TEXTURE
#endif

#if (defined(GL_MESA_YCBCR_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_MESA_YCBCR_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_MESA_YCBCR_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_MESA_YCBCR_TEXTURE
#endif

#if (defined(GL_MESA_YCBCR_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_MESA_YCBCR_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_MESA_YCBCR_TEXTURE)
#define REGAL_NO_PLUGIN_GL_MESA_YCBCR_TEXTURE
#endif

#if (defined(GL_MESA_YCBCR_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_MESA_YCBCR_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_MESA_YCBCR_TEXTURE)
#define REGAL_NO_DECLARATION_GL_MESA_YCBCR_TEXTURE
#endif

#ifndef GL_MESA_ycbcr_texture
#define GL_MESA_ycbcr_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_MESA_YCBCR_TEXTURE
#define GL_UNSIGNED_SHORT_8_8_MESA     0x85ba     /* 34234 */
#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85bb     /* 34235 */
#define GL_YCBCR_MESA                  0x8757     /* 34647 */
#endif

/**
 ** GL_NVX_conditional_render
 **/

#if (defined(GL_NVX_CONDITIONAL_RENDER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NVX_CONDITIONAL_RENDER)) && !defined(REGAL_NO_ENUM_GL_NVX_CONDITIONAL_RENDER)
#define REGAL_NO_ENUM_GL_NVX_CONDITIONAL_RENDER
#endif

#if (defined(GL_NVX_CONDITIONAL_RENDER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NVX_CONDITIONAL_RENDER)) && !defined(REGAL_NO_TYPEDEF_GL_NVX_CONDITIONAL_RENDER)
#define REGAL_NO_TYPEDEF_GL_NVX_CONDITIONAL_RENDER
#endif

#if (defined(GL_NVX_CONDITIONAL_RENDER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NVX_CONDITIONAL_RENDER)) && !defined(REGAL_NO_NAMESPACE_GL_NVX_CONDITIONAL_RENDER)
#define REGAL_NO_NAMESPACE_GL_NVX_CONDITIONAL_RENDER
#endif

#if (defined(GL_NVX_CONDITIONAL_RENDER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NVX_CONDITIONAL_RENDER)) && !defined(REGAL_NO_PLUGIN_GL_NVX_CONDITIONAL_RENDER)
#define REGAL_NO_PLUGIN_GL_NVX_CONDITIONAL_RENDER
#endif

#if (defined(GL_NVX_CONDITIONAL_RENDER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NVX_CONDITIONAL_RENDER)) && !defined(REGAL_NO_DECLARATION_GL_NVX_CONDITIONAL_RENDER)
#define REGAL_NO_DECLARATION_GL_NVX_CONDITIONAL_RENDER
#endif

#ifndef GL_NVX_conditional_render
#define GL_NVX_conditional_render 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NVX_CONDITIONAL_RENDER
typedef void (REGAL_CALL *PFNGLBEGINCONDITIONALRENDERNVXPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLENDCONDITIONALRENDERNVXPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NVX_CONDITIONAL_RENDER
#define glBeginConditionalRenderNVX         rglBeginConditionalRenderNVX
#define glEndConditionalRenderNVX           rglEndConditionalRenderNVX
#endif

#ifndef REGAL_NO_DECLARATION_GL_NVX_CONDITIONAL_RENDER
REGAL_DECL void REGAL_CALL glBeginConditionalRenderNVX(GLuint id);
REGAL_DECL void REGAL_CALL glEndConditionalRenderNVX(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NVX_CONDITIONAL_RENDER
REGAL_DECL void REGAL_CALL plugin_glBeginConditionalRenderNVX(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glEndConditionalRenderNVX(void);
#endif

/**
 ** GL_NVX_gpu_memory_info
 **/

#if (defined(GL_NVX_GPU_MEMORY_INFO) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NVX_GPU_MEMORY_INFO)) && !defined(REGAL_NO_ENUM_GL_NVX_GPU_MEMORY_INFO)
#define REGAL_NO_ENUM_GL_NVX_GPU_MEMORY_INFO
#endif

#if (defined(GL_NVX_GPU_MEMORY_INFO) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NVX_GPU_MEMORY_INFO)) && !defined(REGAL_NO_TYPEDEF_GL_NVX_GPU_MEMORY_INFO)
#define REGAL_NO_TYPEDEF_GL_NVX_GPU_MEMORY_INFO
#endif

#if (defined(GL_NVX_GPU_MEMORY_INFO) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NVX_GPU_MEMORY_INFO)) && !defined(REGAL_NO_NAMESPACE_GL_NVX_GPU_MEMORY_INFO)
#define REGAL_NO_NAMESPACE_GL_NVX_GPU_MEMORY_INFO
#endif

#if (defined(GL_NVX_GPU_MEMORY_INFO) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NVX_GPU_MEMORY_INFO)) && !defined(REGAL_NO_PLUGIN_GL_NVX_GPU_MEMORY_INFO)
#define REGAL_NO_PLUGIN_GL_NVX_GPU_MEMORY_INFO
#endif

#if (defined(GL_NVX_GPU_MEMORY_INFO) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NVX_GPU_MEMORY_INFO)) && !defined(REGAL_NO_DECLARATION_GL_NVX_GPU_MEMORY_INFO)
#define REGAL_NO_DECLARATION_GL_NVX_GPU_MEMORY_INFO
#endif

#ifndef GL_NVX_gpu_memory_info
#define GL_NVX_gpu_memory_info 1
#endif

#ifndef REGAL_NO_ENUM_GL_NVX_GPU_MEMORY_INFO
#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX         0x9047     /* 36935 */
#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX   0x9048     /* 36936 */
#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX 0x9049     /* 36937 */
#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX           0x904a     /* 36938 */
#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX           0x904b     /* 36939 */
#endif

/**
 ** GL_NV_3dvision_settings
 **/

#if (defined(GL_NV_3DVISION_SETTINGS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_3DVISION_SETTINGS)) && !defined(REGAL_NO_ENUM_GL_NV_3DVISION_SETTINGS)
#define REGAL_NO_ENUM_GL_NV_3DVISION_SETTINGS
#endif

#if (defined(GL_NV_3DVISION_SETTINGS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_3DVISION_SETTINGS)) && !defined(REGAL_NO_TYPEDEF_GL_NV_3DVISION_SETTINGS)
#define REGAL_NO_TYPEDEF_GL_NV_3DVISION_SETTINGS
#endif

#if (defined(GL_NV_3DVISION_SETTINGS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_3DVISION_SETTINGS)) && !defined(REGAL_NO_NAMESPACE_GL_NV_3DVISION_SETTINGS)
#define REGAL_NO_NAMESPACE_GL_NV_3DVISION_SETTINGS
#endif

#if (defined(GL_NV_3DVISION_SETTINGS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_3DVISION_SETTINGS)) && !defined(REGAL_NO_PLUGIN_GL_NV_3DVISION_SETTINGS)
#define REGAL_NO_PLUGIN_GL_NV_3DVISION_SETTINGS
#endif

#if (defined(GL_NV_3DVISION_SETTINGS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_3DVISION_SETTINGS)) && !defined(REGAL_NO_DECLARATION_GL_NV_3DVISION_SETTINGS)
#define REGAL_NO_DECLARATION_GL_NV_3DVISION_SETTINGS
#endif

#ifndef GL_NV_3dvision_settings
#define GL_NV_3dvision_settings 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_3DVISION_SETTINGS
#define GL_3DVISION_STEREO_NV               0x90f4     /* 37108 */
#define GL_STEREO_SEPARATION_NV             0x90f5     /* 37109 */
#define GL_STEREO_CONVERGENCE_NV            0x90f6     /* 37110 */
#define GL_STEREO_CUTOFF_NV                 0x90f7     /* 37111 */
#define GL_STEREO_PROJECTION_NV             0x90f8     /* 37112 */
#define GL_STEREO_PROJECTION_PERSPECTIVE_NV 0x90f9     /* 37113 */
#define GL_STEREO_PROJECTION_ORTHO_NV       0x90fa     /* 37114 */
#endif

/**
 ** GL_NV_bgr
 **/

#if (defined(GL_NV_BGR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_BGR)) && !defined(REGAL_NO_ENUM_GL_NV_BGR)
#define REGAL_NO_ENUM_GL_NV_BGR
#endif

#if (defined(GL_NV_BGR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_BGR)) && !defined(REGAL_NO_TYPEDEF_GL_NV_BGR)
#define REGAL_NO_TYPEDEF_GL_NV_BGR
#endif

#if (defined(GL_NV_BGR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_BGR)) && !defined(REGAL_NO_NAMESPACE_GL_NV_BGR)
#define REGAL_NO_NAMESPACE_GL_NV_BGR
#endif

#if (defined(GL_NV_BGR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_BGR)) && !defined(REGAL_NO_PLUGIN_GL_NV_BGR)
#define REGAL_NO_PLUGIN_GL_NV_BGR
#endif

#if (defined(GL_NV_BGR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_BGR)) && !defined(REGAL_NO_DECLARATION_GL_NV_BGR)
#define REGAL_NO_DECLARATION_GL_NV_BGR
#endif

#ifndef GL_NV_bgr
#define GL_NV_bgr 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_BGR
#define GL_BGR_NV 0x80e0 /* 32992 */
#endif

/**
 ** GL_NV_bindless_texture
 **/

#if (defined(GL_NV_BINDLESS_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_BINDLESS_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_NV_BINDLESS_TEXTURE)
#define REGAL_NO_ENUM_GL_NV_BINDLESS_TEXTURE
#endif

#if (defined(GL_NV_BINDLESS_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_BINDLESS_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_BINDLESS_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_NV_BINDLESS_TEXTURE
#endif

#if (defined(GL_NV_BINDLESS_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_BINDLESS_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_BINDLESS_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_NV_BINDLESS_TEXTURE
#endif

#if (defined(GL_NV_BINDLESS_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_BINDLESS_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_NV_BINDLESS_TEXTURE)
#define REGAL_NO_PLUGIN_GL_NV_BINDLESS_TEXTURE
#endif

#if (defined(GL_NV_BINDLESS_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_BINDLESS_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_NV_BINDLESS_TEXTURE)
#define REGAL_NO_DECLARATION_GL_NV_BINDLESS_TEXTURE
#endif

#ifndef GL_NV_bindless_texture
#define GL_NV_bindless_texture 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_BINDLESS_TEXTURE
typedef GLboolean (REGAL_CALL *PFNGLISIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle);
typedef GLboolean (REGAL_CALL *PFNGLISTEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle);
typedef GLuint64 (REGAL_CALL *PFNGLGETIMAGEHANDLENVPROC)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
typedef GLuint64 (REGAL_CALL *PFNGLGETTEXTUREHANDLENVPROC)(GLuint texture);
typedef GLuint64 (REGAL_CALL *PFNGLGETTEXTURESAMPLERHANDLENVPROC)(GLuint texture, GLuint sampler);
typedef void (REGAL_CALL *PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)(GLuint64 handle);
typedef void (REGAL_CALL *PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle, GLenum access);
typedef void (REGAL_CALL *PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)(GLuint64 handle);
typedef void (REGAL_CALL *PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)(GLuint program, GLint location, GLuint64 value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 *values);
typedef void (REGAL_CALL *PFNGLUNIFORMHANDLEUI64NVPROC)(GLint location, GLuint64 value);
typedef void (REGAL_CALL *PFNGLUNIFORMHANDLEUI64VNVPROC)(GLint location, GLsizei count, const GLuint64 *value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_BINDLESS_TEXTURE
#define glGetImageHandleNV                  rglGetImageHandleNV
#define glGetTextureHandleNV                rglGetTextureHandleNV
#define glGetTextureSamplerHandleNV         rglGetTextureSamplerHandleNV
#define glIsImageHandleResidentNV           rglIsImageHandleResidentNV
#define glIsTextureHandleResidentNV         rglIsTextureHandleResidentNV
#define glMakeImageHandleNonResidentNV      rglMakeImageHandleNonResidentNV
#define glMakeImageHandleResidentNV         rglMakeImageHandleResidentNV
#define glMakeTextureHandleNonResidentNV    rglMakeTextureHandleNonResidentNV
#define glMakeTextureHandleResidentNV       rglMakeTextureHandleResidentNV
#define glProgramUniformHandleui64NV        rglProgramUniformHandleui64NV
#define glProgramUniformHandleui64vNV       rglProgramUniformHandleui64vNV
#define glUniformHandleui64NV               rglUniformHandleui64NV
#define glUniformHandleui64vNV              rglUniformHandleui64vNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_BINDLESS_TEXTURE
REGAL_DECL GLboolean REGAL_CALL glIsImageHandleResidentNV(GLuint64 handle);
REGAL_DECL GLboolean REGAL_CALL glIsTextureHandleResidentNV(GLuint64 handle);
REGAL_DECL GLuint64 REGAL_CALL glGetImageHandleNV(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
REGAL_DECL GLuint64 REGAL_CALL glGetTextureHandleNV(GLuint texture);
REGAL_DECL GLuint64 REGAL_CALL glGetTextureSamplerHandleNV(GLuint texture, GLuint sampler);
REGAL_DECL void REGAL_CALL glMakeImageHandleNonResidentNV(GLuint64 handle);
REGAL_DECL void REGAL_CALL glMakeImageHandleResidentNV(GLuint64 handle, GLenum access);
REGAL_DECL void REGAL_CALL glMakeTextureHandleNonResidentNV(GLuint64 handle);
REGAL_DECL void REGAL_CALL glMakeTextureHandleResidentNV(GLuint64 handle);
REGAL_DECL void REGAL_CALL glProgramUniformHandleui64NV(GLuint program, GLint location, GLuint64 value);
REGAL_DECL void REGAL_CALL glProgramUniformHandleui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64 *values);
REGAL_DECL void REGAL_CALL glUniformHandleui64NV(GLint location, GLuint64 value);
REGAL_DECL void REGAL_CALL glUniformHandleui64vNV(GLint location, GLsizei count, const GLuint64 *value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_BINDLESS_TEXTURE
REGAL_DECL GLboolean REGAL_CALL plugin_glIsImageHandleResidentNV(GLuint64 handle);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsTextureHandleResidentNV(GLuint64 handle);
REGAL_DECL GLuint64 REGAL_CALL plugin_glGetImageHandleNV(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
REGAL_DECL GLuint64 REGAL_CALL plugin_glGetTextureHandleNV(GLuint texture);
REGAL_DECL GLuint64 REGAL_CALL plugin_glGetTextureSamplerHandleNV(GLuint texture, GLuint sampler);
REGAL_DECL void REGAL_CALL plugin_glMakeImageHandleNonResidentNV(GLuint64 handle);
REGAL_DECL void REGAL_CALL plugin_glMakeImageHandleResidentNV(GLuint64 handle, GLenum access);
REGAL_DECL void REGAL_CALL plugin_glMakeTextureHandleNonResidentNV(GLuint64 handle);
REGAL_DECL void REGAL_CALL plugin_glMakeTextureHandleResidentNV(GLuint64 handle);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformHandleui64NV(GLuint program, GLint location, GLuint64 value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformHandleui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64 *values);
REGAL_DECL void REGAL_CALL plugin_glUniformHandleui64NV(GLint location, GLuint64 value);
REGAL_DECL void REGAL_CALL plugin_glUniformHandleui64vNV(GLint location, GLsizei count, const GLuint64 *value);
#endif

/**
 ** GL_NV_compute_program5
 **/

#if (defined(GL_NV_COMPUTE_PROGRAM5) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_COMPUTE_PROGRAM5)) && !defined(REGAL_NO_ENUM_GL_NV_COMPUTE_PROGRAM5)
#define REGAL_NO_ENUM_GL_NV_COMPUTE_PROGRAM5
#endif

#if (defined(GL_NV_COMPUTE_PROGRAM5) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_COMPUTE_PROGRAM5)) && !defined(REGAL_NO_TYPEDEF_GL_NV_COMPUTE_PROGRAM5)
#define REGAL_NO_TYPEDEF_GL_NV_COMPUTE_PROGRAM5
#endif

#if (defined(GL_NV_COMPUTE_PROGRAM5) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_COMPUTE_PROGRAM5)) && !defined(REGAL_NO_NAMESPACE_GL_NV_COMPUTE_PROGRAM5)
#define REGAL_NO_NAMESPACE_GL_NV_COMPUTE_PROGRAM5
#endif

#if (defined(GL_NV_COMPUTE_PROGRAM5) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_COMPUTE_PROGRAM5)) && !defined(REGAL_NO_PLUGIN_GL_NV_COMPUTE_PROGRAM5)
#define REGAL_NO_PLUGIN_GL_NV_COMPUTE_PROGRAM5
#endif

#if (defined(GL_NV_COMPUTE_PROGRAM5) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_COMPUTE_PROGRAM5)) && !defined(REGAL_NO_DECLARATION_GL_NV_COMPUTE_PROGRAM5)
#define REGAL_NO_DECLARATION_GL_NV_COMPUTE_PROGRAM5
#endif

#ifndef GL_NV_compute_program5
#define GL_NV_compute_program5 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_COMPUTE_PROGRAM5
#define GL_COMPUTE_PROGRAM_NV                  0x90fb     /* 37115 */
#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV 0x90fc     /* 37116 */
#endif

/**
 ** GL_NV_conditional_render
 **/

#if (defined(GL_NV_CONDITIONAL_RENDER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_CONDITIONAL_RENDER)) && !defined(REGAL_NO_ENUM_GL_NV_CONDITIONAL_RENDER)
#define REGAL_NO_ENUM_GL_NV_CONDITIONAL_RENDER
#endif

#if (defined(GL_NV_CONDITIONAL_RENDER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_CONDITIONAL_RENDER)) && !defined(REGAL_NO_TYPEDEF_GL_NV_CONDITIONAL_RENDER)
#define REGAL_NO_TYPEDEF_GL_NV_CONDITIONAL_RENDER
#endif

#if (defined(GL_NV_CONDITIONAL_RENDER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_CONDITIONAL_RENDER)) && !defined(REGAL_NO_NAMESPACE_GL_NV_CONDITIONAL_RENDER)
#define REGAL_NO_NAMESPACE_GL_NV_CONDITIONAL_RENDER
#endif

#if (defined(GL_NV_CONDITIONAL_RENDER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_CONDITIONAL_RENDER)) && !defined(REGAL_NO_PLUGIN_GL_NV_CONDITIONAL_RENDER)
#define REGAL_NO_PLUGIN_GL_NV_CONDITIONAL_RENDER
#endif

#if (defined(GL_NV_CONDITIONAL_RENDER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_CONDITIONAL_RENDER)) && !defined(REGAL_NO_DECLARATION_GL_NV_CONDITIONAL_RENDER)
#define REGAL_NO_DECLARATION_GL_NV_CONDITIONAL_RENDER
#endif

#ifndef GL_NV_conditional_render
#define GL_NV_conditional_render 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_CONDITIONAL_RENDER
#define GL_QUERY_WAIT_NV              0x8e13     /* 36371 */
#define GL_QUERY_NO_WAIT_NV           0x8e14     /* 36372 */
#define GL_QUERY_BY_REGION_WAIT_NV    0x8e15     /* 36373 */
#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8e16     /* 36374 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_CONDITIONAL_RENDER
typedef void (REGAL_CALL *PFNGLBEGINCONDITIONALRENDERNVPROC)(GLuint id, GLenum mode);
typedef void (REGAL_CALL *PFNGLENDCONDITIONALRENDERNVPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_CONDITIONAL_RENDER
#define glBeginConditionalRenderNV          rglBeginConditionalRenderNV
#define glEndConditionalRenderNV            rglEndConditionalRenderNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_CONDITIONAL_RENDER
REGAL_DECL void REGAL_CALL glBeginConditionalRenderNV(GLuint id, GLenum mode);
REGAL_DECL void REGAL_CALL glEndConditionalRenderNV(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_CONDITIONAL_RENDER
REGAL_DECL void REGAL_CALL plugin_glBeginConditionalRenderNV(GLuint id, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glEndConditionalRenderNV(void);
#endif

/**
 ** GL_NV_copy_depth_to_color
 **/

#if (defined(GL_NV_COPY_DEPTH_TO_COLOR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_COPY_DEPTH_TO_COLOR)) && !defined(REGAL_NO_ENUM_GL_NV_COPY_DEPTH_TO_COLOR)
#define REGAL_NO_ENUM_GL_NV_COPY_DEPTH_TO_COLOR
#endif

#if (defined(GL_NV_COPY_DEPTH_TO_COLOR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_COPY_DEPTH_TO_COLOR)) && !defined(REGAL_NO_TYPEDEF_GL_NV_COPY_DEPTH_TO_COLOR)
#define REGAL_NO_TYPEDEF_GL_NV_COPY_DEPTH_TO_COLOR
#endif

#if (defined(GL_NV_COPY_DEPTH_TO_COLOR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_COPY_DEPTH_TO_COLOR)) && !defined(REGAL_NO_NAMESPACE_GL_NV_COPY_DEPTH_TO_COLOR)
#define REGAL_NO_NAMESPACE_GL_NV_COPY_DEPTH_TO_COLOR
#endif

#if (defined(GL_NV_COPY_DEPTH_TO_COLOR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_COPY_DEPTH_TO_COLOR)) && !defined(REGAL_NO_PLUGIN_GL_NV_COPY_DEPTH_TO_COLOR)
#define REGAL_NO_PLUGIN_GL_NV_COPY_DEPTH_TO_COLOR
#endif

#if (defined(GL_NV_COPY_DEPTH_TO_COLOR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_COPY_DEPTH_TO_COLOR)) && !defined(REGAL_NO_DECLARATION_GL_NV_COPY_DEPTH_TO_COLOR)
#define REGAL_NO_DECLARATION_GL_NV_COPY_DEPTH_TO_COLOR
#endif

#ifndef GL_NV_copy_depth_to_color
#define GL_NV_copy_depth_to_color 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_COPY_DEPTH_TO_COLOR
#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886e     /* 34926 */
#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886f     /* 34927 */
#endif

/**
 ** GL_NV_copy_image
 **/

#if (defined(GL_NV_COPY_IMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_COPY_IMAGE)) && !defined(REGAL_NO_ENUM_GL_NV_COPY_IMAGE)
#define REGAL_NO_ENUM_GL_NV_COPY_IMAGE
#endif

#if (defined(GL_NV_COPY_IMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_COPY_IMAGE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_COPY_IMAGE)
#define REGAL_NO_TYPEDEF_GL_NV_COPY_IMAGE
#endif

#if (defined(GL_NV_COPY_IMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_COPY_IMAGE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_COPY_IMAGE)
#define REGAL_NO_NAMESPACE_GL_NV_COPY_IMAGE
#endif

#if (defined(GL_NV_COPY_IMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_COPY_IMAGE)) && !defined(REGAL_NO_PLUGIN_GL_NV_COPY_IMAGE)
#define REGAL_NO_PLUGIN_GL_NV_COPY_IMAGE
#endif

#if (defined(GL_NV_COPY_IMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_COPY_IMAGE)) && !defined(REGAL_NO_DECLARATION_GL_NV_COPY_IMAGE)
#define REGAL_NO_DECLARATION_GL_NV_COPY_IMAGE
#endif

#ifndef GL_NV_copy_image
#define GL_NV_copy_image 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_COPY_IMAGE
typedef void (REGAL_CALL *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);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_COPY_IMAGE
#define glCopyImageSubDataNV                rglCopyImageSubDataNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_COPY_IMAGE
REGAL_DECL void REGAL_CALL glCopyImageSubDataNV(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);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_COPY_IMAGE
REGAL_DECL void REGAL_CALL plugin_glCopyImageSubDataNV(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);
#endif

/**
 ** GL_NV_coverage_sample
 **/

#if (defined(GL_NV_COVERAGE_SAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_ENUM_GL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_ENUM_GL_NV_COVERAGE_SAMPLE
#endif

#if (defined(GL_NV_COVERAGE_SAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_TYPEDEF_GL_NV_COVERAGE_SAMPLE
#endif

#if (defined(GL_NV_COVERAGE_SAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_NAMESPACE_GL_NV_COVERAGE_SAMPLE
#endif

#if (defined(GL_NV_COVERAGE_SAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_PLUGIN_GL_NV_COVERAGE_SAMPLE
#endif

#if (defined(GL_NV_COVERAGE_SAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_DECLARATION_GL_NV_COVERAGE_SAMPLE
#endif

#ifndef GL_NV_coverage_sample
#define GL_NV_coverage_sample 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_COVERAGE_SAMPLE
#define GL_EGL_COVERAGE_BUFFERS_NV    0x30e0     /* 12512 */
#define GL_EGL_COVERAGE_SAMPLES_NV    0x30e1     /* 12513 */
#define GL_COVERAGE_BUFFER_BIT_NV     0x8000     /* 32768 */
#define GL_COVERAGE_COMPONENT_NV      0x8ed0     /* 36560 */
#define GL_COVERAGE_COMPONENT4_NV     0x8ed1     /* 36561 */
#define GL_COVERAGE_ATTACHMENT_NV     0x8ed2     /* 36562 */
#define GL_COVERAGE_BUFFERS_NV        0x8ed3     /* 36563 */
#define GL_COVERAGE_ALL_FRAGMENTS_NV  0x8ed5     /* 36565 */
#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ed6     /* 36566 */
#define GL_COVERAGE_AUTOMATIC_NV      0x8ed7     /* 36567 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_COVERAGE_SAMPLE
typedef void (REGAL_CALL *PFNGLCOVERAGEMASKNVPROC)(GLboolean mask);
typedef void (REGAL_CALL *PFNGLCOVERAGEOPERATIONNVPROC)(GLenum operation);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_COVERAGE_SAMPLE
#define glCoverageMaskNV                    rglCoverageMaskNV
#define glCoverageOperationNV               rglCoverageOperationNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_COVERAGE_SAMPLE
REGAL_DECL void REGAL_CALL glCoverageMaskNV(GLboolean mask);
REGAL_DECL void REGAL_CALL glCoverageOperationNV(GLenum operation);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_COVERAGE_SAMPLE
REGAL_DECL void REGAL_CALL plugin_glCoverageMaskNV(GLboolean mask);
REGAL_DECL void REGAL_CALL plugin_glCoverageOperationNV(GLenum operation);
#endif

/**
 ** GL_NV_deep_texture3D
 **/

#if (defined(GL_NV_DEEP_TEXTURE3D) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_DEEP_TEXTURE3D)) && !defined(REGAL_NO_ENUM_GL_NV_DEEP_TEXTURE3D)
#define REGAL_NO_ENUM_GL_NV_DEEP_TEXTURE3D
#endif

#if (defined(GL_NV_DEEP_TEXTURE3D) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_DEEP_TEXTURE3D)) && !defined(REGAL_NO_TYPEDEF_GL_NV_DEEP_TEXTURE3D)
#define REGAL_NO_TYPEDEF_GL_NV_DEEP_TEXTURE3D
#endif

#if (defined(GL_NV_DEEP_TEXTURE3D) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_DEEP_TEXTURE3D)) && !defined(REGAL_NO_NAMESPACE_GL_NV_DEEP_TEXTURE3D)
#define REGAL_NO_NAMESPACE_GL_NV_DEEP_TEXTURE3D
#endif

#if (defined(GL_NV_DEEP_TEXTURE3D) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_DEEP_TEXTURE3D)) && !defined(REGAL_NO_PLUGIN_GL_NV_DEEP_TEXTURE3D)
#define REGAL_NO_PLUGIN_GL_NV_DEEP_TEXTURE3D
#endif

#if (defined(GL_NV_DEEP_TEXTURE3D) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_DEEP_TEXTURE3D)) && !defined(REGAL_NO_DECLARATION_GL_NV_DEEP_TEXTURE3D)
#define REGAL_NO_DECLARATION_GL_NV_DEEP_TEXTURE3D
#endif

#ifndef GL_NV_deep_texture3D
#define GL_NV_deep_texture3D 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_DEEP_TEXTURE3D
#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV 0x90d0     /* 37072 */
#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV        0x90d1     /* 37073 */
#endif

/**
 ** GL_NV_depth_buffer_float
 **/

#if (defined(GL_NV_DEPTH_BUFFER_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_ENUM_GL_NV_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_ENUM_GL_NV_DEPTH_BUFFER_FLOAT
#endif

#if (defined(GL_NV_DEPTH_BUFFER_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_TYPEDEF_GL_NV_DEPTH_BUFFER_FLOAT
#endif

#if (defined(GL_NV_DEPTH_BUFFER_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_NAMESPACE_GL_NV_DEPTH_BUFFER_FLOAT
#endif

#if (defined(GL_NV_DEPTH_BUFFER_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_NV_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_PLUGIN_GL_NV_DEPTH_BUFFER_FLOAT
#endif

#if (defined(GL_NV_DEPTH_BUFFER_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_DEPTH_BUFFER_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_NV_DEPTH_BUFFER_FLOAT)
#define REGAL_NO_DECLARATION_GL_NV_DEPTH_BUFFER_FLOAT
#endif

#ifndef GL_NV_depth_buffer_float
#define GL_NV_depth_buffer_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_DEPTH_BUFFER_FLOAT
#define GL_DEPTH_COMPONENT32F_NV             0x8dab     /* 36267 */
#define GL_DEPTH32F_STENCIL8_NV              0x8dac     /* 36268 */
#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8dad     /* 36269 */
#define GL_DEPTH_BUFFER_FLOAT_MODE_NV        0x8daf     /* 36271 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_DEPTH_BUFFER_FLOAT
typedef void (REGAL_CALL *PFNGLCLEARDEPTHDNVPROC)(GLdouble depth);
typedef void (REGAL_CALL *PFNGLDEPTHBOUNDSDNVPROC)(GLdouble zmin, GLdouble zmax);
typedef void (REGAL_CALL *PFNGLDEPTHRANGEDNVPROC)(GLdouble zNear, GLdouble zFar);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_DEPTH_BUFFER_FLOAT
#define glClearDepthdNV                     rglClearDepthdNV
#define glDepthBoundsdNV                    rglDepthBoundsdNV
#define glDepthRangedNV                     rglDepthRangedNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_DEPTH_BUFFER_FLOAT
REGAL_DECL void REGAL_CALL glClearDepthdNV(GLdouble depth);
REGAL_DECL void REGAL_CALL glDepthBoundsdNV(GLdouble zmin, GLdouble zmax);
REGAL_DECL void REGAL_CALL glDepthRangedNV(GLdouble zNear, GLdouble zFar);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_DEPTH_BUFFER_FLOAT
REGAL_DECL void REGAL_CALL plugin_glClearDepthdNV(GLdouble depth);
REGAL_DECL void REGAL_CALL plugin_glDepthBoundsdNV(GLdouble zmin, GLdouble zmax);
REGAL_DECL void REGAL_CALL plugin_glDepthRangedNV(GLdouble zNear, GLdouble zFar);
#endif

/**
 ** GL_NV_depth_clamp
 **/

#if (defined(GL_NV_DEPTH_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_DEPTH_CLAMP)) && !defined(REGAL_NO_ENUM_GL_NV_DEPTH_CLAMP)
#define REGAL_NO_ENUM_GL_NV_DEPTH_CLAMP
#endif

#if (defined(GL_NV_DEPTH_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_DEPTH_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_NV_DEPTH_CLAMP)
#define REGAL_NO_TYPEDEF_GL_NV_DEPTH_CLAMP
#endif

#if (defined(GL_NV_DEPTH_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_DEPTH_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_NV_DEPTH_CLAMP)
#define REGAL_NO_NAMESPACE_GL_NV_DEPTH_CLAMP
#endif

#if (defined(GL_NV_DEPTH_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_DEPTH_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_NV_DEPTH_CLAMP)
#define REGAL_NO_PLUGIN_GL_NV_DEPTH_CLAMP
#endif

#if (defined(GL_NV_DEPTH_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_DEPTH_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_NV_DEPTH_CLAMP)
#define REGAL_NO_DECLARATION_GL_NV_DEPTH_CLAMP
#endif

#ifndef GL_NV_depth_clamp
#define GL_NV_depth_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_DEPTH_CLAMP
#define GL_DEPTH_CLAMP_NV 0x864f /* 34383 */
#endif

/**
 ** GL_NV_depth_nonlinear
 **/

#if (defined(GL_NV_DEPTH_NONLINEAR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_ENUM_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_ENUM_GL_NV_DEPTH_NONLINEAR
#endif

#if (defined(GL_NV_DEPTH_NONLINEAR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_TYPEDEF_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_TYPEDEF_GL_NV_DEPTH_NONLINEAR
#endif

#if (defined(GL_NV_DEPTH_NONLINEAR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_NAMESPACE_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_NAMESPACE_GL_NV_DEPTH_NONLINEAR
#endif

#if (defined(GL_NV_DEPTH_NONLINEAR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_PLUGIN_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_PLUGIN_GL_NV_DEPTH_NONLINEAR
#endif

#if (defined(GL_NV_DEPTH_NONLINEAR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_DECLARATION_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_DECLARATION_GL_NV_DEPTH_NONLINEAR
#endif

#ifndef GL_NV_depth_nonlinear
#define GL_NV_depth_nonlinear 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_DEPTH_NONLINEAR
#define GL_EGL_DEPTH_ENCODING_NONE_NV      0x0
#define GL_EGL_DEPTH_ENCODING_NV           0x30e2     /* 12514 */
#define GL_EGL_DEPTH_ENCODING_NONLINEAR_NV 0x30e3     /* 12515 */
#define GL_DEPTH_COMPONENT16_NONLINEAR_NV  0x8e2c     /* 36396 */
#endif

/**
 ** GL_NV_depth_range_unclamped
 **/

#if (defined(GL_NV_DEPTH_RANGE_UNCLAMPED) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_DEPTH_RANGE_UNCLAMPED)) && !defined(REGAL_NO_ENUM_GL_NV_DEPTH_RANGE_UNCLAMPED)
#define REGAL_NO_ENUM_GL_NV_DEPTH_RANGE_UNCLAMPED
#endif

#if (defined(GL_NV_DEPTH_RANGE_UNCLAMPED) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_DEPTH_RANGE_UNCLAMPED)) && !defined(REGAL_NO_TYPEDEF_GL_NV_DEPTH_RANGE_UNCLAMPED)
#define REGAL_NO_TYPEDEF_GL_NV_DEPTH_RANGE_UNCLAMPED
#endif

#if (defined(GL_NV_DEPTH_RANGE_UNCLAMPED) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_DEPTH_RANGE_UNCLAMPED)) && !defined(REGAL_NO_NAMESPACE_GL_NV_DEPTH_RANGE_UNCLAMPED)
#define REGAL_NO_NAMESPACE_GL_NV_DEPTH_RANGE_UNCLAMPED
#endif

#if (defined(GL_NV_DEPTH_RANGE_UNCLAMPED) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_DEPTH_RANGE_UNCLAMPED)) && !defined(REGAL_NO_PLUGIN_GL_NV_DEPTH_RANGE_UNCLAMPED)
#define REGAL_NO_PLUGIN_GL_NV_DEPTH_RANGE_UNCLAMPED
#endif

#if (defined(GL_NV_DEPTH_RANGE_UNCLAMPED) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_DEPTH_RANGE_UNCLAMPED)) && !defined(REGAL_NO_DECLARATION_GL_NV_DEPTH_RANGE_UNCLAMPED)
#define REGAL_NO_DECLARATION_GL_NV_DEPTH_RANGE_UNCLAMPED
#endif

#ifndef GL_NV_depth_range_unclamped
#define GL_NV_depth_range_unclamped 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_DEPTH_RANGE_UNCLAMPED
#define GL_SAMPLE_COUNT_BITS_NV          0x8864     /* 34916 */
#define GL_CURRENT_SAMPLE_COUNT_QUERY_NV 0x8865     /* 34917 */
#define GL_QUERY_RESULT_NV               0x8866     /* 34918 */
#define GL_QUERY_RESULT_AVAILABLE_NV     0x8867     /* 34919 */
#define GL_SAMPLE_COUNT_NV               0x8914     /* 35092 */
#endif

/**
 ** GL_NV_draw_buffers
 **/

#if (defined(GL_NV_DRAW_BUFFERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_DRAW_BUFFERS)) && !defined(REGAL_NO_ENUM_GL_NV_DRAW_BUFFERS)
#define REGAL_NO_ENUM_GL_NV_DRAW_BUFFERS
#endif

#if (defined(GL_NV_DRAW_BUFFERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_DRAW_BUFFERS)) && !defined(REGAL_NO_TYPEDEF_GL_NV_DRAW_BUFFERS)
#define REGAL_NO_TYPEDEF_GL_NV_DRAW_BUFFERS
#endif

#if (defined(GL_NV_DRAW_BUFFERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_DRAW_BUFFERS)) && !defined(REGAL_NO_NAMESPACE_GL_NV_DRAW_BUFFERS)
#define REGAL_NO_NAMESPACE_GL_NV_DRAW_BUFFERS
#endif

#if (defined(GL_NV_DRAW_BUFFERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_DRAW_BUFFERS)) && !defined(REGAL_NO_PLUGIN_GL_NV_DRAW_BUFFERS)
#define REGAL_NO_PLUGIN_GL_NV_DRAW_BUFFERS
#endif

#if (defined(GL_NV_DRAW_BUFFERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_DRAW_BUFFERS)) && !defined(REGAL_NO_DECLARATION_GL_NV_DRAW_BUFFERS)
#define REGAL_NO_DECLARATION_GL_NV_DRAW_BUFFERS
#endif

#ifndef GL_NV_draw_buffers
#define GL_NV_draw_buffers 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_DRAW_BUFFERS
#define GL_MAX_DRAW_BUFFERS_NV 0x8824     /* 34852 */
#define GL_DRAW_BUFFER0_NV     0x8825     /* 34853 */
#define GL_DRAW_BUFFER1_NV     0x8826     /* 34854 */
#define GL_DRAW_BUFFER2_NV     0x8827     /* 34855 */
#define GL_DRAW_BUFFER3_NV     0x8828     /* 34856 */
#define GL_DRAW_BUFFER4_NV     0x8829     /* 34857 */
#define GL_DRAW_BUFFER5_NV     0x882a     /* 34858 */
#define GL_DRAW_BUFFER6_NV     0x882b     /* 34859 */
#define GL_DRAW_BUFFER7_NV     0x882c     /* 34860 */
#define GL_DRAW_BUFFER8_NV     0x882d     /* 34861 */
#define GL_DRAW_BUFFER9_NV     0x882e     /* 34862 */
#define GL_DRAW_BUFFER10_NV    0x882f     /* 34863 */
#define GL_DRAW_BUFFER11_NV    0x8830     /* 34864 */
#define GL_DRAW_BUFFER12_NV    0x8831     /* 34865 */
#define GL_DRAW_BUFFER13_NV    0x8832     /* 34866 */
#define GL_DRAW_BUFFER14_NV    0x8833     /* 34867 */
#define GL_DRAW_BUFFER15_NV    0x8834     /* 34868 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_DRAW_BUFFERS
typedef void (REGAL_CALL *PFNGLDRAWBUFFERSNVPROC)(GLsizei n, const GLenum *bufs);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_DRAW_BUFFERS
#define glDrawBuffersNV                     rglDrawBuffersNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_DRAW_BUFFERS
REGAL_DECL void REGAL_CALL glDrawBuffersNV(GLsizei n, const GLenum *bufs);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_DRAW_BUFFERS
REGAL_DECL void REGAL_CALL plugin_glDrawBuffersNV(GLsizei n, const GLenum *bufs);
#endif

/**
 ** GL_NV_draw_texture
 **/

#if (defined(GL_NV_DRAW_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_DRAW_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_NV_DRAW_TEXTURE)
#define REGAL_NO_ENUM_GL_NV_DRAW_TEXTURE
#endif

#if (defined(GL_NV_DRAW_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_DRAW_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_DRAW_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_NV_DRAW_TEXTURE
#endif

#if (defined(GL_NV_DRAW_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_DRAW_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_DRAW_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_NV_DRAW_TEXTURE
#endif

#if (defined(GL_NV_DRAW_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_DRAW_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_NV_DRAW_TEXTURE)
#define REGAL_NO_PLUGIN_GL_NV_DRAW_TEXTURE
#endif

#if (defined(GL_NV_DRAW_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_DRAW_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_NV_DRAW_TEXTURE)
#define REGAL_NO_DECLARATION_GL_NV_DRAW_TEXTURE
#endif

#ifndef GL_NV_draw_texture
#define GL_NV_draw_texture 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_DRAW_TEXTURE
typedef void (REGAL_CALL *PFNGLDRAWTEXTURENVPROC)(GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_DRAW_TEXTURE
#define glDrawTextureNV                     rglDrawTextureNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_DRAW_TEXTURE
REGAL_DECL void REGAL_CALL glDrawTextureNV(GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_DRAW_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glDrawTextureNV(GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
#endif

/**
 ** GL_NV_evaluators
 **/

#if (defined(GL_NV_EVALUATORS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_EVALUATORS)) && !defined(REGAL_NO_ENUM_GL_NV_EVALUATORS)
#define REGAL_NO_ENUM_GL_NV_EVALUATORS
#endif

#if (defined(GL_NV_EVALUATORS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_EVALUATORS)) && !defined(REGAL_NO_TYPEDEF_GL_NV_EVALUATORS)
#define REGAL_NO_TYPEDEF_GL_NV_EVALUATORS
#endif

#if (defined(GL_NV_EVALUATORS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_EVALUATORS)) && !defined(REGAL_NO_NAMESPACE_GL_NV_EVALUATORS)
#define REGAL_NO_NAMESPACE_GL_NV_EVALUATORS
#endif

#if (defined(GL_NV_EVALUATORS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_EVALUATORS)) && !defined(REGAL_NO_PLUGIN_GL_NV_EVALUATORS)
#define REGAL_NO_PLUGIN_GL_NV_EVALUATORS
#endif

#if (defined(GL_NV_EVALUATORS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_EVALUATORS)) && !defined(REGAL_NO_DECLARATION_GL_NV_EVALUATORS)
#define REGAL_NO_DECLARATION_GL_NV_EVALUATORS
#endif

#ifndef GL_NV_evaluators
#define GL_NV_evaluators 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_EVALUATORS
#define GL_EVAL_2D_NV                      0x86c0     /* 34496 */
#define GL_EVAL_TRIANGULAR_2D_NV           0x86c1     /* 34497 */
#define GL_MAP_TESSELLATION_NV             0x86c2     /* 34498 */
#define GL_MAP_ATTRIB_U_ORDER_NV           0x86c3     /* 34499 */
#define GL_MAP_ATTRIB_V_ORDER_NV           0x86c4     /* 34500 */
#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86c5     /* 34501 */
#define GL_EVAL_VERTEX_ATTRIB0_NV          0x86c6     /* 34502 */
#define GL_EVAL_VERTEX_ATTRIB1_NV          0x86c7     /* 34503 */
#define GL_EVAL_VERTEX_ATTRIB2_NV          0x86c8     /* 34504 */
#define GL_EVAL_VERTEX_ATTRIB3_NV          0x86c9     /* 34505 */
#define GL_EVAL_VERTEX_ATTRIB4_NV          0x86ca     /* 34506 */
#define GL_EVAL_VERTEX_ATTRIB5_NV          0x86cb     /* 34507 */
#define GL_EVAL_VERTEX_ATTRIB6_NV          0x86cc     /* 34508 */
#define GL_EVAL_VERTEX_ATTRIB7_NV          0x86cd     /* 34509 */
#define GL_EVAL_VERTEX_ATTRIB8_NV          0x86ce     /* 34510 */
#define GL_EVAL_VERTEX_ATTRIB9_NV          0x86cf     /* 34511 */
#define GL_EVAL_VERTEX_ATTRIB10_NV         0x86d0     /* 34512 */
#define GL_EVAL_VERTEX_ATTRIB11_NV         0x86d1     /* 34513 */
#define GL_EVAL_VERTEX_ATTRIB12_NV         0x86d2     /* 34514 */
#define GL_EVAL_VERTEX_ATTRIB13_NV         0x86d3     /* 34515 */
#define GL_EVAL_VERTEX_ATTRIB14_NV         0x86d4     /* 34516 */
#define GL_EVAL_VERTEX_ATTRIB15_NV         0x86d5     /* 34517 */
#define GL_MAX_MAP_TESSELLATION_NV         0x86d6     /* 34518 */
#define GL_MAX_RATIONAL_EVAL_ORDER_NV      0x86d7     /* 34519 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_EVALUATORS
typedef void (REGAL_CALL *PFNGLEVALMAPSNVPROC)(GLenum target, GLenum mode);
typedef void (REGAL_CALL *PFNGLGETMAPATTRIBPARAMETERFVNVPROC)(GLenum target, GLuint index, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMAPATTRIBPARAMETERIVNVPROC)(GLenum target, GLuint index, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
typedef void (REGAL_CALL *PFNGLGETMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
typedef void (REGAL_CALL *PFNGLMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_EVALUATORS
#define glEvalMapsNV                        rglEvalMapsNV
#define glGetMapAttribParameterfvNV         rglGetMapAttribParameterfvNV
#define glGetMapAttribParameterivNV         rglGetMapAttribParameterivNV
#define glGetMapControlPointsNV             rglGetMapControlPointsNV
#define glGetMapParameterfvNV               rglGetMapParameterfvNV
#define glGetMapParameterivNV               rglGetMapParameterivNV
#define glMapControlPointsNV                rglMapControlPointsNV
#define glMapParameterfvNV                  rglMapParameterfvNV
#define glMapParameterivNV                  rglMapParameterivNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_EVALUATORS
REGAL_DECL void REGAL_CALL glEvalMapsNV(GLenum target, GLenum mode);
REGAL_DECL void REGAL_CALL glGetMapAttribParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMapAttribParameterivNV(GLenum target, GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMapControlPointsNV(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
REGAL_DECL void REGAL_CALL glGetMapParameterfvNV(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMapParameterivNV(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glMapControlPointsNV(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
REGAL_DECL void REGAL_CALL glMapParameterfvNV(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glMapParameterivNV(GLenum target, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_EVALUATORS
REGAL_DECL void REGAL_CALL plugin_glEvalMapsNV(GLenum target, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glGetMapAttribParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMapAttribParameterivNV(GLenum target, GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMapControlPointsNV(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points);
REGAL_DECL void REGAL_CALL plugin_glGetMapParameterfvNV(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMapParameterivNV(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glMapControlPointsNV(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points);
REGAL_DECL void REGAL_CALL plugin_glMapParameterfvNV(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glMapParameterivNV(GLenum target, GLenum pname, const GLint *params);
#endif

/**
 ** GL_NV_explicit_multisample
 **/

#if (defined(GL_NV_EXPLICIT_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_EXPLICIT_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_NV_EXPLICIT_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_NV_EXPLICIT_MULTISAMPLE
#endif

#if (defined(GL_NV_EXPLICIT_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_EXPLICIT_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_EXPLICIT_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_NV_EXPLICIT_MULTISAMPLE
#endif

#if (defined(GL_NV_EXPLICIT_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_EXPLICIT_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_EXPLICIT_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_NV_EXPLICIT_MULTISAMPLE
#endif

#if (defined(GL_NV_EXPLICIT_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_EXPLICIT_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_NV_EXPLICIT_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_NV_EXPLICIT_MULTISAMPLE
#endif

#if (defined(GL_NV_EXPLICIT_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_EXPLICIT_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_NV_EXPLICIT_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_NV_EXPLICIT_MULTISAMPLE
#endif

#ifndef GL_NV_explicit_multisample
#define GL_NV_explicit_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_EXPLICIT_MULTISAMPLE
#define GL_SAMPLE_POSITION_NV                         0x8e50     /* 36432 */
#define GL_SAMPLE_MASK_NV                             0x8e51     /* 36433 */
#define GL_SAMPLE_MASK_VALUE_NV                       0x8e52     /* 36434 */
#define GL_TEXTURE_BINDING_RENDERBUFFER_NV            0x8e53     /* 36435 */
#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8e54     /* 36436 */
#define GL_TEXTURE_RENDERBUFFER_NV                    0x8e55     /* 36437 */
#define GL_SAMPLER_RENDERBUFFER_NV                    0x8e56     /* 36438 */
#define GL_INT_SAMPLER_RENDERBUFFER_NV                0x8e57     /* 36439 */
#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV       0x8e58     /* 36440 */
#define GL_MAX_SAMPLE_MASK_WORDS_NV                   0x8e59     /* 36441 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_EXPLICIT_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLGETMULTISAMPLEFVNVPROC)(GLenum pname, GLuint index, GLfloat *val);
typedef void (REGAL_CALL *PFNGLSAMPLEMASKINDEXEDNVPROC)(GLuint index, GLbitfield mask);
typedef void (REGAL_CALL *PFNGLTEXRENDERBUFFERNVPROC)(GLenum target, GLuint renderbuffer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_EXPLICIT_MULTISAMPLE
#define glGetMultisamplefvNV                rglGetMultisamplefvNV
#define glSampleMaskIndexedNV               rglSampleMaskIndexedNV
#define glTexRenderbufferNV                 rglTexRenderbufferNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_EXPLICIT_MULTISAMPLE
REGAL_DECL void REGAL_CALL glGetMultisamplefvNV(GLenum pname, GLuint index, GLfloat *val);
REGAL_DECL void REGAL_CALL glSampleMaskIndexedNV(GLuint index, GLbitfield mask);
REGAL_DECL void REGAL_CALL glTexRenderbufferNV(GLenum target, GLuint renderbuffer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_EXPLICIT_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glGetMultisamplefvNV(GLenum pname, GLuint index, GLfloat *val);
REGAL_DECL void REGAL_CALL plugin_glSampleMaskIndexedNV(GLuint index, GLbitfield mask);
REGAL_DECL void REGAL_CALL plugin_glTexRenderbufferNV(GLenum target, GLuint renderbuffer);
#endif

/**
 ** GL_NV_fbo_color_attachments
 **/

#if (defined(GL_NV_FBO_COLOR_ATTACHMENTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FBO_COLOR_ATTACHMENTS)) && !defined(REGAL_NO_ENUM_GL_NV_FBO_COLOR_ATTACHMENTS)
#define REGAL_NO_ENUM_GL_NV_FBO_COLOR_ATTACHMENTS
#endif

#if (defined(GL_NV_FBO_COLOR_ATTACHMENTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FBO_COLOR_ATTACHMENTS)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FBO_COLOR_ATTACHMENTS)
#define REGAL_NO_TYPEDEF_GL_NV_FBO_COLOR_ATTACHMENTS
#endif

#if (defined(GL_NV_FBO_COLOR_ATTACHMENTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FBO_COLOR_ATTACHMENTS)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FBO_COLOR_ATTACHMENTS)
#define REGAL_NO_NAMESPACE_GL_NV_FBO_COLOR_ATTACHMENTS
#endif

#if (defined(GL_NV_FBO_COLOR_ATTACHMENTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FBO_COLOR_ATTACHMENTS)) && !defined(REGAL_NO_PLUGIN_GL_NV_FBO_COLOR_ATTACHMENTS)
#define REGAL_NO_PLUGIN_GL_NV_FBO_COLOR_ATTACHMENTS
#endif

#if (defined(GL_NV_FBO_COLOR_ATTACHMENTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FBO_COLOR_ATTACHMENTS)) && !defined(REGAL_NO_DECLARATION_GL_NV_FBO_COLOR_ATTACHMENTS)
#define REGAL_NO_DECLARATION_GL_NV_FBO_COLOR_ATTACHMENTS
#endif

#ifndef GL_NV_fbo_color_attachments
#define GL_NV_fbo_color_attachments 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FBO_COLOR_ATTACHMENTS
#define GL_MAX_COLOR_ATTACHMENTS_NV 0x8cdf     /* 36063 */
#define GL_COLOR_ATTACHMENT0_NV     0x8ce0     /* 36064 */
#define GL_COLOR_ATTACHMENT1_NV     0x8ce1     /* 36065 */
#define GL_COLOR_ATTACHMENT2_NV     0x8ce2     /* 36066 */
#define GL_COLOR_ATTACHMENT3_NV     0x8ce3     /* 36067 */
#define GL_COLOR_ATTACHMENT4_NV     0x8ce4     /* 36068 */
#define GL_COLOR_ATTACHMENT5_NV     0x8ce5     /* 36069 */
#define GL_COLOR_ATTACHMENT6_NV     0x8ce6     /* 36070 */
#define GL_COLOR_ATTACHMENT7_NV     0x8ce7     /* 36071 */
#define GL_COLOR_ATTACHMENT8_NV     0x8ce8     /* 36072 */
#define GL_COLOR_ATTACHMENT9_NV     0x8ce9     /* 36073 */
#define GL_COLOR_ATTACHMENT10_NV    0x8cea     /* 36074 */
#define GL_COLOR_ATTACHMENT11_NV    0x8ceb     /* 36075 */
#define GL_COLOR_ATTACHMENT12_NV    0x8cec     /* 36076 */
#define GL_COLOR_ATTACHMENT13_NV    0x8ced     /* 36077 */
#define GL_COLOR_ATTACHMENT14_NV    0x8cee     /* 36078 */
#define GL_COLOR_ATTACHMENT15_NV    0x8cef     /* 36079 */
#endif

/**
 ** GL_NV_fence
 **/

#if (defined(GL_NV_FENCE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FENCE)) && !defined(REGAL_NO_ENUM_GL_NV_FENCE)
#define REGAL_NO_ENUM_GL_NV_FENCE
#endif

#if (defined(GL_NV_FENCE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FENCE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FENCE)
#define REGAL_NO_TYPEDEF_GL_NV_FENCE
#endif

#if (defined(GL_NV_FENCE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FENCE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FENCE)
#define REGAL_NO_NAMESPACE_GL_NV_FENCE
#endif

#if (defined(GL_NV_FENCE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FENCE)) && !defined(REGAL_NO_PLUGIN_GL_NV_FENCE)
#define REGAL_NO_PLUGIN_GL_NV_FENCE
#endif

#if (defined(GL_NV_FENCE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FENCE)) && !defined(REGAL_NO_DECLARATION_GL_NV_FENCE)
#define REGAL_NO_DECLARATION_GL_NV_FENCE
#endif

#ifndef GL_NV_fence
#define GL_NV_fence 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FENCE
#define GL_ALL_COMPLETED_NV   0x84f2     /* 34034 */
#define GL_FENCE_STATUS_NV    0x84f3     /* 34035 */
#define GL_FENCE_CONDITION_NV 0x84f4     /* 34036 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_FENCE
typedef GLboolean (REGAL_CALL *PFNGLISFENCENVPROC)(GLuint fence);
typedef GLboolean (REGAL_CALL *PFNGLTESTFENCENVPROC)(GLuint fence);
typedef void (REGAL_CALL *PFNGLDELETEFENCESNVPROC)(GLsizei n, const GLuint *fences);
typedef void (REGAL_CALL *PFNGLFINISHFENCENVPROC)(GLuint fence);
typedef void (REGAL_CALL *PFNGLGENFENCESNVPROC)(GLsizei n, GLuint *fences);
typedef void (REGAL_CALL *PFNGLGETFENCEIVNVPROC)(GLuint fence, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLSETFENCENVPROC)(GLuint fence, GLenum condition);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_FENCE
#define glDeleteFencesNV                    rglDeleteFencesNV
#define glFinishFenceNV                     rglFinishFenceNV
#define glGenFencesNV                       rglGenFencesNV
#define glGetFenceivNV                      rglGetFenceivNV
#define glIsFenceNV                         rglIsFenceNV
#define glSetFenceNV                        rglSetFenceNV
#define glTestFenceNV                       rglTestFenceNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_FENCE
REGAL_DECL GLboolean REGAL_CALL glIsFenceNV(GLuint fence);
REGAL_DECL GLboolean REGAL_CALL glTestFenceNV(GLuint fence);
REGAL_DECL void REGAL_CALL glDeleteFencesNV(GLsizei n, const GLuint *fences);
REGAL_DECL void REGAL_CALL glFinishFenceNV(GLuint fence);
REGAL_DECL void REGAL_CALL glGenFencesNV(GLsizei n, GLuint *fences);
REGAL_DECL void REGAL_CALL glGetFenceivNV(GLuint fence, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glSetFenceNV(GLuint fence, GLenum condition);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_FENCE
REGAL_DECL GLboolean REGAL_CALL plugin_glIsFenceNV(GLuint fence);
REGAL_DECL GLboolean REGAL_CALL plugin_glTestFenceNV(GLuint fence);
REGAL_DECL void REGAL_CALL plugin_glDeleteFencesNV(GLsizei n, const GLuint *fences);
REGAL_DECL void REGAL_CALL plugin_glFinishFenceNV(GLuint fence);
REGAL_DECL void REGAL_CALL plugin_glGenFencesNV(GLsizei n, GLuint *fences);
REGAL_DECL void REGAL_CALL plugin_glGetFenceivNV(GLuint fence, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glSetFenceNV(GLuint fence, GLenum condition);
#endif

/**
 ** GL_NV_float_buffer
 **/

#if (defined(GL_NV_FLOAT_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_ENUM_GL_NV_FLOAT_BUFFER)
#define REGAL_NO_ENUM_GL_NV_FLOAT_BUFFER
#endif

#if (defined(GL_NV_FLOAT_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FLOAT_BUFFER)
#define REGAL_NO_TYPEDEF_GL_NV_FLOAT_BUFFER
#endif

#if (defined(GL_NV_FLOAT_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FLOAT_BUFFER)
#define REGAL_NO_NAMESPACE_GL_NV_FLOAT_BUFFER
#endif

#if (defined(GL_NV_FLOAT_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_PLUGIN_GL_NV_FLOAT_BUFFER)
#define REGAL_NO_PLUGIN_GL_NV_FLOAT_BUFFER
#endif

#if (defined(GL_NV_FLOAT_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_DECLARATION_GL_NV_FLOAT_BUFFER)
#define REGAL_NO_DECLARATION_GL_NV_FLOAT_BUFFER
#endif

#ifndef GL_NV_float_buffer
#define GL_NV_float_buffer 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FLOAT_BUFFER
#define GL_FLOAT_R_NV                  0x8880     /* 34944 */
#define GL_FLOAT_RG_NV                 0x8881     /* 34945 */
#define GL_FLOAT_RGB_NV                0x8882     /* 34946 */
#define GL_FLOAT_RGBA_NV               0x8883     /* 34947 */
#define GL_FLOAT_R16_NV                0x8884     /* 34948 */
#define GL_FLOAT_R32_NV                0x8885     /* 34949 */
#define GL_FLOAT_RG16_NV               0x8886     /* 34950 */
#define GL_FLOAT_RG32_NV               0x8887     /* 34951 */
#define GL_FLOAT_RGB16_NV              0x8888     /* 34952 */
#define GL_FLOAT_RGB32_NV              0x8889     /* 34953 */
#define GL_FLOAT_RGBA16_NV             0x888a     /* 34954 */
#define GL_FLOAT_RGBA32_NV             0x888b     /* 34955 */
#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888c     /* 34956 */
#define GL_FLOAT_CLEAR_COLOR_VALUE_NV  0x888d     /* 34957 */
#define GL_FLOAT_RGBA_MODE_NV          0x888e     /* 34958 */
#endif

/**
 ** GL_NV_fog_distance
 **/

#if (defined(GL_NV_FOG_DISTANCE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FOG_DISTANCE)) && !defined(REGAL_NO_ENUM_GL_NV_FOG_DISTANCE)
#define REGAL_NO_ENUM_GL_NV_FOG_DISTANCE
#endif

#if (defined(GL_NV_FOG_DISTANCE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FOG_DISTANCE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FOG_DISTANCE)
#define REGAL_NO_TYPEDEF_GL_NV_FOG_DISTANCE
#endif

#if (defined(GL_NV_FOG_DISTANCE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FOG_DISTANCE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FOG_DISTANCE)
#define REGAL_NO_NAMESPACE_GL_NV_FOG_DISTANCE
#endif

#if (defined(GL_NV_FOG_DISTANCE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FOG_DISTANCE)) && !defined(REGAL_NO_PLUGIN_GL_NV_FOG_DISTANCE)
#define REGAL_NO_PLUGIN_GL_NV_FOG_DISTANCE
#endif

#if (defined(GL_NV_FOG_DISTANCE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FOG_DISTANCE)) && !defined(REGAL_NO_DECLARATION_GL_NV_FOG_DISTANCE)
#define REGAL_NO_DECLARATION_GL_NV_FOG_DISTANCE
#endif

#ifndef GL_NV_fog_distance
#define GL_NV_fog_distance 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FOG_DISTANCE
#define GL_FOG_DISTANCE_MODE_NV  0x855a     /* 34138 */
#define GL_EYE_RADIAL_NV         0x855b     /* 34139 */
#define GL_EYE_PLANE_ABSOLUTE_NV 0x855c     /* 34140 */
#endif

/**
 ** GL_NV_fragment_program
 **/

#if (defined(GL_NV_FRAGMENT_PROGRAM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_ENUM_GL_NV_FRAGMENT_PROGRAM)
#define REGAL_NO_ENUM_GL_NV_FRAGMENT_PROGRAM
#endif

#if (defined(GL_NV_FRAGMENT_PROGRAM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FRAGMENT_PROGRAM)
#define REGAL_NO_TYPEDEF_GL_NV_FRAGMENT_PROGRAM
#endif

#if (defined(GL_NV_FRAGMENT_PROGRAM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FRAGMENT_PROGRAM)
#define REGAL_NO_NAMESPACE_GL_NV_FRAGMENT_PROGRAM
#endif

#if (defined(GL_NV_FRAGMENT_PROGRAM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_PLUGIN_GL_NV_FRAGMENT_PROGRAM)
#define REGAL_NO_PLUGIN_GL_NV_FRAGMENT_PROGRAM
#endif

#if (defined(GL_NV_FRAGMENT_PROGRAM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM)) && !defined(REGAL_NO_DECLARATION_GL_NV_FRAGMENT_PROGRAM)
#define REGAL_NO_DECLARATION_GL_NV_FRAGMENT_PROGRAM
#endif

#ifndef GL_NV_fragment_program
#define GL_NV_fragment_program 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FRAGMENT_PROGRAM
#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868     /* 34920 */
#define GL_FRAGMENT_PROGRAM_NV                      0x8870     /* 34928 */
#define GL_MAX_TEXTURE_COORDS_NV                    0x8871     /* 34929 */
#define GL_MAX_TEXTURE_IMAGE_UNITS_NV               0x8872     /* 34930 */
#define GL_FRAGMENT_PROGRAM_BINDING_NV              0x8873     /* 34931 */
#define GL_PROGRAM_ERROR_STRING_NV                  0x8874     /* 34932 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_FRAGMENT_PROGRAM
typedef void (REGAL_CALL *PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)(GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)(GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
typedef void (REGAL_CALL *PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)(GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)(GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)(GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)(GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_FRAGMENT_PROGRAM
#define glGetProgramNamedParameterdvNV      rglGetProgramNamedParameterdvNV
#define glGetProgramNamedParameterfvNV      rglGetProgramNamedParameterfvNV
#define glProgramNamedParameter4dNV         rglProgramNamedParameter4dNV
#define glProgramNamedParameter4dvNV        rglProgramNamedParameter4dvNV
#define glProgramNamedParameter4fNV         rglProgramNamedParameter4fNV
#define glProgramNamedParameter4fvNV        rglProgramNamedParameter4fvNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_FRAGMENT_PROGRAM
REGAL_DECL void REGAL_CALL glGetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
REGAL_DECL void REGAL_CALL glProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
REGAL_DECL void REGAL_CALL glProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_FRAGMENT_PROGRAM
REGAL_DECL void REGAL_CALL plugin_glGetProgramNamedParameterdvNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramNamedParameterfvNV(GLuint id, GLsizei len, const GLubyte *name, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glProgramNamedParameter4dNV(GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glProgramNamedParameter4dvNV(GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glProgramNamedParameter4fNV(GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glProgramNamedParameter4fvNV(GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v);
#endif

/**
 ** GL_NV_fragment_program2
 **/

#if (defined(GL_NV_FRAGMENT_PROGRAM2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM2)) && !defined(REGAL_NO_ENUM_GL_NV_FRAGMENT_PROGRAM2)
#define REGAL_NO_ENUM_GL_NV_FRAGMENT_PROGRAM2
#endif

#if (defined(GL_NV_FRAGMENT_PROGRAM2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM2)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FRAGMENT_PROGRAM2)
#define REGAL_NO_TYPEDEF_GL_NV_FRAGMENT_PROGRAM2
#endif

#if (defined(GL_NV_FRAGMENT_PROGRAM2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM2)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FRAGMENT_PROGRAM2)
#define REGAL_NO_NAMESPACE_GL_NV_FRAGMENT_PROGRAM2
#endif

#if (defined(GL_NV_FRAGMENT_PROGRAM2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM2)) && !defined(REGAL_NO_PLUGIN_GL_NV_FRAGMENT_PROGRAM2)
#define REGAL_NO_PLUGIN_GL_NV_FRAGMENT_PROGRAM2
#endif

#if (defined(GL_NV_FRAGMENT_PROGRAM2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FRAGMENT_PROGRAM2)) && !defined(REGAL_NO_DECLARATION_GL_NV_FRAGMENT_PROGRAM2)
#define REGAL_NO_DECLARATION_GL_NV_FRAGMENT_PROGRAM2
#endif

#ifndef GL_NV_fragment_program2
#define GL_NV_fragment_program2 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FRAGMENT_PROGRAM2
#define GL_MAX_PROGRAM_IF_DEPTH_NV   0x88f6     /* 35062 */
#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88f7     /* 35063 */
#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88f8     /* 35064 */
#endif

/**
 ** GL_NV_framebuffer_blit
 **/

#if (defined(GL_NV_FRAMEBUFFER_BLIT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_BLIT)
#define REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_NV_FRAMEBUFFER_BLIT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FRAMEBUFFER_BLIT)
#define REGAL_NO_TYPEDEF_GL_NV_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_NV_FRAMEBUFFER_BLIT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FRAMEBUFFER_BLIT)
#define REGAL_NO_NAMESPACE_GL_NV_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_NV_FRAMEBUFFER_BLIT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_PLUGIN_GL_NV_FRAMEBUFFER_BLIT)
#define REGAL_NO_PLUGIN_GL_NV_FRAMEBUFFER_BLIT
#endif

#if (defined(GL_NV_FRAMEBUFFER_BLIT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_BLIT)) && !defined(REGAL_NO_DECLARATION_GL_NV_FRAMEBUFFER_BLIT)
#define REGAL_NO_DECLARATION_GL_NV_FRAMEBUFFER_BLIT
#endif

#ifndef GL_NV_framebuffer_blit
#define GL_NV_framebuffer_blit 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_BLIT
#define GL_DRAW_FRAMEBUFFER_BINDING_NV 0x8ca6     /* 36006 */
#define GL_READ_FRAMEBUFFER_NV         0x8ca8     /* 36008 */
#define GL_DRAW_FRAMEBUFFER_NV         0x8ca9     /* 36009 */
#define GL_READ_FRAMEBUFFER_BINDING_NV 0x8caa     /* 36010 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_FRAMEBUFFER_BLIT
typedef void (REGAL_CALL *PFNGLBLITFRAMEBUFFERNVPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_FRAMEBUFFER_BLIT
#define glBlitFramebufferNV                 rglBlitFramebufferNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_FRAMEBUFFER_BLIT
REGAL_DECL void REGAL_CALL glBlitFramebufferNV(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_FRAMEBUFFER_BLIT
REGAL_DECL void REGAL_CALL plugin_glBlitFramebufferNV(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

/**
 ** GL_NV_framebuffer_multisample
 **/

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_NV_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_NV_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_NV_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_NV_FRAMEBUFFER_MULTISAMPLE
#endif

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_NV_FRAMEBUFFER_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_NV_FRAMEBUFFER_MULTISAMPLE
#endif

#ifndef GL_NV_framebuffer_multisample
#define GL_NV_framebuffer_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_MULTISAMPLE
#define GL_RENDERBUFFER_SAMPLES_NV               0x8cab     /* 36011 */
#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV 0x8d56     /* 36182 */
#define GL_MAX_SAMPLES_NV                        0x8d57     /* 36183 */
#endif

/**
 ** GL_NV_framebuffer_multisample_coverage
 **/

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)
#define REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
#endif

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)
#define REGAL_NO_TYPEDEF_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
#endif

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)
#define REGAL_NO_NAMESPACE_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
#endif

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_PLUGIN_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)
#define REGAL_NO_PLUGIN_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
#endif

#if (defined(GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_DECLARATION_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE)
#define REGAL_NO_DECLARATION_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
#endif

#ifndef GL_NV_framebuffer_multisample_coverage
#define GL_NV_framebuffer_multisample_coverage 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV  0x8cab     /* 36011 */
#define GL_RENDERBUFFER_COLOR_SAMPLES_NV     0x8e10     /* 36368 */
#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8e11     /* 36369 */
#define GL_MULTISAMPLE_COVERAGE_MODES_NV     0x8e12     /* 36370 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
#define glRenderbufferStorageMultisampleCoverageNV rglRenderbufferStorageMultisampleCoverageNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
REGAL_DECL void REGAL_CALL glRenderbufferStorageMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_FRAMEBUFFER_MULTISAMPLE_COVERAGE
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorageMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
#endif

/**
 ** GL_NV_geometry_program4
 **/

#if (defined(GL_NV_GEOMETRY_PROGRAM4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_GEOMETRY_PROGRAM4)) && !defined(REGAL_NO_ENUM_GL_NV_GEOMETRY_PROGRAM4)
#define REGAL_NO_ENUM_GL_NV_GEOMETRY_PROGRAM4
#endif

#if (defined(GL_NV_GEOMETRY_PROGRAM4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_GEOMETRY_PROGRAM4)) && !defined(REGAL_NO_TYPEDEF_GL_NV_GEOMETRY_PROGRAM4)
#define REGAL_NO_TYPEDEF_GL_NV_GEOMETRY_PROGRAM4
#endif

#if (defined(GL_NV_GEOMETRY_PROGRAM4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_GEOMETRY_PROGRAM4)) && !defined(REGAL_NO_NAMESPACE_GL_NV_GEOMETRY_PROGRAM4)
#define REGAL_NO_NAMESPACE_GL_NV_GEOMETRY_PROGRAM4
#endif

#if (defined(GL_NV_GEOMETRY_PROGRAM4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_GEOMETRY_PROGRAM4)) && !defined(REGAL_NO_PLUGIN_GL_NV_GEOMETRY_PROGRAM4)
#define REGAL_NO_PLUGIN_GL_NV_GEOMETRY_PROGRAM4
#endif

#if (defined(GL_NV_GEOMETRY_PROGRAM4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_GEOMETRY_PROGRAM4)) && !defined(REGAL_NO_DECLARATION_GL_NV_GEOMETRY_PROGRAM4)
#define REGAL_NO_DECLARATION_GL_NV_GEOMETRY_PROGRAM4
#endif

#ifndef GL_NV_geometry_program4
#define GL_NV_geometry_program4 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_GEOMETRY_PROGRAM4
#define GL_GEOMETRY_PROGRAM_NV                    0x8c26     /* 35878 */
#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV         0x8c27     /* 35879 */
#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8c28     /* 35880 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_GEOMETRY_PROGRAM4
typedef void (REGAL_CALL *PFNGLPROGRAMVERTEXLIMITNVPROC)(GLenum target, GLint limit);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_GEOMETRY_PROGRAM4
#define glProgramVertexLimitNV              rglProgramVertexLimitNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_GEOMETRY_PROGRAM4
REGAL_DECL void REGAL_CALL glProgramVertexLimitNV(GLenum target, GLint limit);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_GEOMETRY_PROGRAM4
REGAL_DECL void REGAL_CALL plugin_glProgramVertexLimitNV(GLenum target, GLint limit);
#endif

/**
 ** GL_NV_gpu_program4
 **/

#if (defined(GL_NV_GPU_PROGRAM4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_GPU_PROGRAM4)) && !defined(REGAL_NO_ENUM_GL_NV_GPU_PROGRAM4)
#define REGAL_NO_ENUM_GL_NV_GPU_PROGRAM4
#endif

#if (defined(GL_NV_GPU_PROGRAM4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_GPU_PROGRAM4)) && !defined(REGAL_NO_TYPEDEF_GL_NV_GPU_PROGRAM4)
#define REGAL_NO_TYPEDEF_GL_NV_GPU_PROGRAM4
#endif

#if (defined(GL_NV_GPU_PROGRAM4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_GPU_PROGRAM4)) && !defined(REGAL_NO_NAMESPACE_GL_NV_GPU_PROGRAM4)
#define REGAL_NO_NAMESPACE_GL_NV_GPU_PROGRAM4
#endif

#if (defined(GL_NV_GPU_PROGRAM4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_GPU_PROGRAM4)) && !defined(REGAL_NO_PLUGIN_GL_NV_GPU_PROGRAM4)
#define REGAL_NO_PLUGIN_GL_NV_GPU_PROGRAM4
#endif

#if (defined(GL_NV_GPU_PROGRAM4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_GPU_PROGRAM4)) && !defined(REGAL_NO_DECLARATION_GL_NV_GPU_PROGRAM4)
#define REGAL_NO_DECLARATION_GL_NV_GPU_PROGRAM4
#endif

#ifndef GL_NV_gpu_program4
#define GL_NV_gpu_program4 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_GPU_PROGRAM4
#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV      0x8904     /* 35076 */
#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV      0x8905     /* 35077 */
#define GL_PROGRAM_ATTRIB_COMPONENTS_NV     0x8906     /* 35078 */
#define GL_PROGRAM_RESULT_COMPONENTS_NV     0x8907     /* 35079 */
#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908     /* 35080 */
#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909     /* 35081 */
#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV   0x8da5     /* 36261 */
#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV   0x8da6     /* 36262 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_GPU_PROGRAM4
typedef void (REGAL_CALL *PFNGLGETPROGRAMENVPARAMETERIIVNVPROC)(GLenum target, GLuint index, GLint *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC)(GLenum target, GLuint index, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC)(GLenum target, GLuint index, GLint *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC)(GLenum target, GLuint index, GLuint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETERI4IVNVPROC)(GLenum target, GLuint index, const GLint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETERI4UINVPROC)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)(GLenum target, GLuint index, const GLuint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLuint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)(GLenum target, GLuint index, const GLint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)(GLenum target, GLuint index, const GLuint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLuint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_GPU_PROGRAM4
#define glGetProgramEnvParameterIivNV       rglGetProgramEnvParameterIivNV
#define glGetProgramEnvParameterIuivNV      rglGetProgramEnvParameterIuivNV
#define glGetProgramLocalParameterIivNV     rglGetProgramLocalParameterIivNV
#define glGetProgramLocalParameterIuivNV    rglGetProgramLocalParameterIuivNV
#define glProgramEnvParameterI4iNV          rglProgramEnvParameterI4iNV
#define glProgramEnvParameterI4ivNV         rglProgramEnvParameterI4ivNV
#define glProgramEnvParameterI4uiNV         rglProgramEnvParameterI4uiNV
#define glProgramEnvParameterI4uivNV        rglProgramEnvParameterI4uivNV
#define glProgramEnvParametersI4ivNV        rglProgramEnvParametersI4ivNV
#define glProgramEnvParametersI4uivNV       rglProgramEnvParametersI4uivNV
#define glProgramLocalParameterI4iNV        rglProgramLocalParameterI4iNV
#define glProgramLocalParameterI4ivNV       rglProgramLocalParameterI4ivNV
#define glProgramLocalParameterI4uiNV       rglProgramLocalParameterI4uiNV
#define glProgramLocalParameterI4uivNV      rglProgramLocalParameterI4uivNV
#define glProgramLocalParametersI4ivNV      rglProgramLocalParametersI4ivNV
#define glProgramLocalParametersI4uivNV     rglProgramLocalParametersI4uivNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_GPU_PROGRAM4
REGAL_DECL void REGAL_CALL glGetProgramEnvParameterIivNV(GLenum target, GLuint index, GLint *params);
REGAL_DECL void REGAL_CALL glGetProgramEnvParameterIuivNV(GLenum target, GLuint index, GLuint *params);
REGAL_DECL void REGAL_CALL glGetProgramLocalParameterIivNV(GLenum target, GLuint index, GLint *params);
REGAL_DECL void REGAL_CALL glGetProgramLocalParameterIuivNV(GLenum target, GLuint index, GLuint *params);
REGAL_DECL void REGAL_CALL glProgramEnvParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glProgramEnvParameterI4ivNV(GLenum target, GLuint index, const GLint *params);
REGAL_DECL void REGAL_CALL glProgramEnvParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL glProgramEnvParameterI4uivNV(GLenum target, GLuint index, const GLuint *params);
REGAL_DECL void REGAL_CALL glProgramEnvParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint *params);
REGAL_DECL void REGAL_CALL glProgramEnvParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint *params);
REGAL_DECL void REGAL_CALL glProgramLocalParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glProgramLocalParameterI4ivNV(GLenum target, GLuint index, const GLint *params);
REGAL_DECL void REGAL_CALL glProgramLocalParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL glProgramLocalParameterI4uivNV(GLenum target, GLuint index, const GLuint *params);
REGAL_DECL void REGAL_CALL glProgramLocalParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint *params);
REGAL_DECL void REGAL_CALL glProgramLocalParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_GPU_PROGRAM4
REGAL_DECL void REGAL_CALL plugin_glGetProgramEnvParameterIivNV(GLenum target, GLuint index, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramEnvParameterIuivNV(GLenum target, GLuint index, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramLocalParameterIivNV(GLenum target, GLuint index, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramLocalParameterIuivNV(GLenum target, GLuint index, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameterI4ivNV(GLenum target, GLuint index, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParameterI4uivNV(GLenum target, GLuint index, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramEnvParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameterI4iNV(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameterI4ivNV(GLenum target, GLuint index, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameterI4uiNV(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParameterI4uivNV(GLenum target, GLuint index, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParametersI4ivNV(GLenum target, GLuint index, GLsizei count, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramLocalParametersI4uivNV(GLenum target, GLuint index, GLsizei count, const GLuint *params);
#endif

/**
 ** GL_NV_gpu_program5
 **/

#if (defined(GL_NV_GPU_PROGRAM5) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_GPU_PROGRAM5)) && !defined(REGAL_NO_ENUM_GL_NV_GPU_PROGRAM5)
#define REGAL_NO_ENUM_GL_NV_GPU_PROGRAM5
#endif

#if (defined(GL_NV_GPU_PROGRAM5) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_GPU_PROGRAM5)) && !defined(REGAL_NO_TYPEDEF_GL_NV_GPU_PROGRAM5)
#define REGAL_NO_TYPEDEF_GL_NV_GPU_PROGRAM5
#endif

#if (defined(GL_NV_GPU_PROGRAM5) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_GPU_PROGRAM5)) && !defined(REGAL_NO_NAMESPACE_GL_NV_GPU_PROGRAM5)
#define REGAL_NO_NAMESPACE_GL_NV_GPU_PROGRAM5
#endif

#if (defined(GL_NV_GPU_PROGRAM5) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_GPU_PROGRAM5)) && !defined(REGAL_NO_PLUGIN_GL_NV_GPU_PROGRAM5)
#define REGAL_NO_PLUGIN_GL_NV_GPU_PROGRAM5
#endif

#if (defined(GL_NV_GPU_PROGRAM5) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_GPU_PROGRAM5)) && !defined(REGAL_NO_DECLARATION_GL_NV_GPU_PROGRAM5)
#define REGAL_NO_DECLARATION_GL_NV_GPU_PROGRAM5
#endif

#ifndef GL_NV_gpu_program5
#define GL_NV_gpu_program5 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_GPU_PROGRAM5
#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV           0x8e5a     /* 36442 */
#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV          0x8e5b     /* 36443 */
#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV          0x8e5c     /* 36444 */
#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8e5d     /* 36445 */
#endif

/**
 ** GL_NV_gpu_shader5
 **/

#if (defined(GL_NV_GPU_SHADER5) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_GPU_SHADER5)) && !defined(REGAL_NO_ENUM_GL_NV_GPU_SHADER5)
#define REGAL_NO_ENUM_GL_NV_GPU_SHADER5
#endif

#if (defined(GL_NV_GPU_SHADER5) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_GPU_SHADER5)) && !defined(REGAL_NO_TYPEDEF_GL_NV_GPU_SHADER5)
#define REGAL_NO_TYPEDEF_GL_NV_GPU_SHADER5
#endif

#if (defined(GL_NV_GPU_SHADER5) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_GPU_SHADER5)) && !defined(REGAL_NO_NAMESPACE_GL_NV_GPU_SHADER5)
#define REGAL_NO_NAMESPACE_GL_NV_GPU_SHADER5
#endif

#if (defined(GL_NV_GPU_SHADER5) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_GPU_SHADER5)) && !defined(REGAL_NO_PLUGIN_GL_NV_GPU_SHADER5)
#define REGAL_NO_PLUGIN_GL_NV_GPU_SHADER5
#endif

#if (defined(GL_NV_GPU_SHADER5) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_GPU_SHADER5)) && !defined(REGAL_NO_DECLARATION_GL_NV_GPU_SHADER5)
#define REGAL_NO_DECLARATION_GL_NV_GPU_SHADER5
#endif

#ifndef GL_NV_gpu_shader5
#define GL_NV_gpu_shader5 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_GPU_SHADER5
#define GL_INT8_NV                0x8fe0     /* 36832 */
#define GL_INT8_VEC2_NV           0x8fe1     /* 36833 */
#define GL_INT8_VEC3_NV           0x8fe2     /* 36834 */
#define GL_INT8_VEC4_NV           0x8fe3     /* 36835 */
#define GL_INT16_NV               0x8fe4     /* 36836 */
#define GL_INT16_VEC2_NV          0x8fe5     /* 36837 */
#define GL_INT16_VEC3_NV          0x8fe6     /* 36838 */
#define GL_INT16_VEC4_NV          0x8fe7     /* 36839 */
#define GL_INT64_VEC2_NV          0x8fe9     /* 36841 */
#define GL_INT64_VEC3_NV          0x8fea     /* 36842 */
#define GL_INT64_VEC4_NV          0x8feb     /* 36843 */
#define GL_UNSIGNED_INT8_NV       0x8fec     /* 36844 */
#define GL_UNSIGNED_INT8_VEC2_NV  0x8fed     /* 36845 */
#define GL_UNSIGNED_INT8_VEC3_NV  0x8fee     /* 36846 */
#define GL_UNSIGNED_INT8_VEC4_NV  0x8fef     /* 36847 */
#define GL_UNSIGNED_INT16_NV      0x8ff0     /* 36848 */
#define GL_UNSIGNED_INT16_VEC2_NV 0x8ff1     /* 36849 */
#define GL_UNSIGNED_INT16_VEC3_NV 0x8ff2     /* 36850 */
#define GL_UNSIGNED_INT16_VEC4_NV 0x8ff3     /* 36851 */
#define GL_UNSIGNED_INT64_VEC2_NV 0x8ff5     /* 36853 */
#define GL_UNSIGNED_INT64_VEC3_NV 0x8ff6     /* 36854 */
#define GL_UNSIGNED_INT64_VEC4_NV 0x8ff7     /* 36855 */
#define GL_FLOAT16_NV             0x8ff8     /* 36856 */
#define GL_FLOAT16_VEC2_NV        0x8ff9     /* 36857 */
#define GL_FLOAT16_VEC3_NV        0x8ffa     /* 36858 */
#define GL_FLOAT16_VEC4_NV        0x8ffb     /* 36859 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_GPU_SHADER5
typedef void (REGAL_CALL *PFNGLGETUNIFORMI64VNVPROC)(GLuint program, GLint location, GLint64EXT *params);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1I64NVPROC)(GLuint program, GLint location, GLint64EXT x);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM1UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM2UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM3UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORM4UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORM1I64NVPROC)(GLint location, GLint64EXT x);
typedef void (REGAL_CALL *PFNGLUNIFORM1I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORM1UI64NVPROC)(GLint location, GLuint64EXT x);
typedef void (REGAL_CALL *PFNGLUNIFORM1UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y);
typedef void (REGAL_CALL *PFNGLUNIFORM2I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y);
typedef void (REGAL_CALL *PFNGLUNIFORM2UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
typedef void (REGAL_CALL *PFNGLUNIFORM3I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
typedef void (REGAL_CALL *PFNGLUNIFORM3UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
typedef void (REGAL_CALL *PFNGLUNIFORM4I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
typedef void (REGAL_CALL *PFNGLUNIFORM4UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_GPU_SHADER5
#define glGetUniformi64vNV                  rglGetUniformi64vNV
#define glProgramUniform1i64NV              rglProgramUniform1i64NV
#define glProgramUniform1i64vNV             rglProgramUniform1i64vNV
#define glProgramUniform1ui64NV             rglProgramUniform1ui64NV
#define glProgramUniform1ui64vNV            rglProgramUniform1ui64vNV
#define glProgramUniform2i64NV              rglProgramUniform2i64NV
#define glProgramUniform2i64vNV             rglProgramUniform2i64vNV
#define glProgramUniform2ui64NV             rglProgramUniform2ui64NV
#define glProgramUniform2ui64vNV            rglProgramUniform2ui64vNV
#define glProgramUniform3i64NV              rglProgramUniform3i64NV
#define glProgramUniform3i64vNV             rglProgramUniform3i64vNV
#define glProgramUniform3ui64NV             rglProgramUniform3ui64NV
#define glProgramUniform3ui64vNV            rglProgramUniform3ui64vNV
#define glProgramUniform4i64NV              rglProgramUniform4i64NV
#define glProgramUniform4i64vNV             rglProgramUniform4i64vNV
#define glProgramUniform4ui64NV             rglProgramUniform4ui64NV
#define glProgramUniform4ui64vNV            rglProgramUniform4ui64vNV
#define glUniform1i64NV                     rglUniform1i64NV
#define glUniform1i64vNV                    rglUniform1i64vNV
#define glUniform1ui64NV                    rglUniform1ui64NV
#define glUniform1ui64vNV                   rglUniform1ui64vNV
#define glUniform2i64NV                     rglUniform2i64NV
#define glUniform2i64vNV                    rglUniform2i64vNV
#define glUniform2ui64NV                    rglUniform2ui64NV
#define glUniform2ui64vNV                   rglUniform2ui64vNV
#define glUniform3i64NV                     rglUniform3i64NV
#define glUniform3i64vNV                    rglUniform3i64vNV
#define glUniform3ui64NV                    rglUniform3ui64NV
#define glUniform3ui64vNV                   rglUniform3ui64vNV
#define glUniform4i64NV                     rglUniform4i64NV
#define glUniform4i64vNV                    rglUniform4i64vNV
#define glUniform4ui64NV                    rglUniform4ui64NV
#define glUniform4ui64vNV                   rglUniform4ui64vNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_GPU_SHADER5
REGAL_DECL void REGAL_CALL glGetUniformi64vNV(GLuint program, GLint location, GLint64EXT *params);
REGAL_DECL void REGAL_CALL glProgramUniform1i64NV(GLuint program, GLint location, GLint64EXT x);
REGAL_DECL void REGAL_CALL glProgramUniform1i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL glProgramUniform1ui64NV(GLuint program, GLint location, GLuint64EXT x);
REGAL_DECL void REGAL_CALL glProgramUniform1ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL glProgramUniform2i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
REGAL_DECL void REGAL_CALL glProgramUniform2i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL glProgramUniform2ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
REGAL_DECL void REGAL_CALL glProgramUniform2ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL glProgramUniform3i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
REGAL_DECL void REGAL_CALL glProgramUniform3i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL glProgramUniform3ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
REGAL_DECL void REGAL_CALL glProgramUniform3ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL glProgramUniform4i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
REGAL_DECL void REGAL_CALL glProgramUniform4i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL glProgramUniform4ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
REGAL_DECL void REGAL_CALL glProgramUniform4ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL glUniform1i64NV(GLint location, GLint64EXT x);
REGAL_DECL void REGAL_CALL glUniform1i64vNV(GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL glUniform1ui64NV(GLint location, GLuint64EXT x);
REGAL_DECL void REGAL_CALL glUniform1ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL glUniform2i64NV(GLint location, GLint64EXT x, GLint64EXT y);
REGAL_DECL void REGAL_CALL glUniform2i64vNV(GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL glUniform2ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y);
REGAL_DECL void REGAL_CALL glUniform2ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL glUniform3i64NV(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
REGAL_DECL void REGAL_CALL glUniform3i64vNV(GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL glUniform3ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
REGAL_DECL void REGAL_CALL glUniform3ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL glUniform4i64NV(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
REGAL_DECL void REGAL_CALL glUniform4i64vNV(GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL glUniform4ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
REGAL_DECL void REGAL_CALL glUniform4ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_GPU_SHADER5
REGAL_DECL void REGAL_CALL plugin_glGetUniformi64vNV(GLuint program, GLint location, GLint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1i64NV(GLuint program, GLint location, GLint64EXT x);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1ui64NV(GLuint program, GLint location, GLuint64EXT x);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform1ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform2ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform3ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4i64NV(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4i64vNV(GLuint program, GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4ui64NV(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
REGAL_DECL void REGAL_CALL plugin_glProgramUniform4ui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniform1i64NV(GLint location, GLint64EXT x);
REGAL_DECL void REGAL_CALL plugin_glUniform1i64vNV(GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniform1ui64NV(GLint location, GLuint64EXT x);
REGAL_DECL void REGAL_CALL plugin_glUniform1ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2i64NV(GLint location, GLint64EXT x, GLint64EXT y);
REGAL_DECL void REGAL_CALL plugin_glUniform2i64vNV(GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y);
REGAL_DECL void REGAL_CALL plugin_glUniform2ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3i64NV(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
REGAL_DECL void REGAL_CALL plugin_glUniform3i64vNV(GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
REGAL_DECL void REGAL_CALL plugin_glUniform3ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4i64NV(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
REGAL_DECL void REGAL_CALL plugin_glUniform4i64vNV(GLint location, GLsizei count, const GLint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4ui64NV(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
REGAL_DECL void REGAL_CALL plugin_glUniform4ui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
#endif

/**
 ** GL_NV_half_float
 **/

#if (defined(GL_NV_HALF_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_HALF_FLOAT)) && !defined(REGAL_NO_ENUM_GL_NV_HALF_FLOAT)
#define REGAL_NO_ENUM_GL_NV_HALF_FLOAT
#endif

#if (defined(GL_NV_HALF_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_HALF_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_HALF_FLOAT)
#define REGAL_NO_TYPEDEF_GL_NV_HALF_FLOAT
#endif

#if (defined(GL_NV_HALF_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_HALF_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_HALF_FLOAT)
#define REGAL_NO_NAMESPACE_GL_NV_HALF_FLOAT
#endif

#if (defined(GL_NV_HALF_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_HALF_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_NV_HALF_FLOAT)
#define REGAL_NO_PLUGIN_GL_NV_HALF_FLOAT
#endif

#if (defined(GL_NV_HALF_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_HALF_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_NV_HALF_FLOAT)
#define REGAL_NO_DECLARATION_GL_NV_HALF_FLOAT
#endif

#ifndef GL_NV_half_float
#define GL_NV_half_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_HALF_FLOAT
#define GL_HALF_FLOAT_NV 0x140b /* 5131 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_HALF_FLOAT
typedef void (REGAL_CALL *PFNGLCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
typedef void (REGAL_CALL *PFNGLCOLOR3HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLCOLOR4HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLFOGCOORDHNVPROC)(GLhalfNV coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDHVNVPROC)(const GLhalfNV *coord);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1HNVPROC)(GLenum target, GLhalfNV s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1HVNVPROC)(GLenum target, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2HVNVPROC)(GLenum target, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3HVNVPROC)(GLenum target, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4HVNVPROC)(GLenum target, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLNORMAL3HNVPROC)(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
typedef void (REGAL_CALL *PFNGLNORMAL3HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD1HNVPROC)(GLhalfNV s);
typedef void (REGAL_CALL *PFNGLTEXCOORD1HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2HNVPROC)(GLhalfNV s, GLhalfNV t);
typedef void (REGAL_CALL *PFNGLTEXCOORD2HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD3HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r);
typedef void (REGAL_CALL *PFNGLTEXCOORD3HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD4HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
typedef void (REGAL_CALL *PFNGLTEXCOORD4HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEX2HNVPROC)(GLhalfNV x, GLhalfNV y);
typedef void (REGAL_CALL *PFNGLVERTEX2HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEX3HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z);
typedef void (REGAL_CALL *PFNGLVERTEX3HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEX4HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
typedef void (REGAL_CALL *PFNGLVERTEX4HVNVPROC)(const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1HNVPROC)(GLuint index, GLhalfNV x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1HVNVPROC)(GLuint index, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2HVNVPROC)(GLuint index, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3HVNVPROC)(GLuint index, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4HVNVPROC)(GLuint index, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS1HVNVPROC)(GLuint index, GLsizei count, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS2HVNVPROC)(GLuint index, GLsizei count, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS3HVNVPROC)(GLuint index, GLsizei count, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS4HVNVPROC)(GLuint index, GLsizei count, const GLhalfNV *v);
typedef void (REGAL_CALL *PFNGLVERTEXWEIGHTHNVPROC)(GLhalfNV weight);
typedef void (REGAL_CALL *PFNGLVERTEXWEIGHTHVNVPROC)(const GLhalfNV *weight);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_HALF_FLOAT
#define glColor3hNV                         rglColor3hNV
#define glColor3hvNV                        rglColor3hvNV
#define glColor4hNV                         rglColor4hNV
#define glColor4hvNV                        rglColor4hvNV
#define glFogCoordhNV                       rglFogCoordhNV
#define glFogCoordhvNV                      rglFogCoordhvNV
#define glMultiTexCoord1hNV                 rglMultiTexCoord1hNV
#define glMultiTexCoord1hvNV                rglMultiTexCoord1hvNV
#define glMultiTexCoord2hNV                 rglMultiTexCoord2hNV
#define glMultiTexCoord2hvNV                rglMultiTexCoord2hvNV
#define glMultiTexCoord3hNV                 rglMultiTexCoord3hNV
#define glMultiTexCoord3hvNV                rglMultiTexCoord3hvNV
#define glMultiTexCoord4hNV                 rglMultiTexCoord4hNV
#define glMultiTexCoord4hvNV                rglMultiTexCoord4hvNV
#define glNormal3hNV                        rglNormal3hNV
#define glNormal3hvNV                       rglNormal3hvNV
#define glSecondaryColor3hNV                rglSecondaryColor3hNV
#define glSecondaryColor3hvNV               rglSecondaryColor3hvNV
#define glTexCoord1hNV                      rglTexCoord1hNV
#define glTexCoord1hvNV                     rglTexCoord1hvNV
#define glTexCoord2hNV                      rglTexCoord2hNV
#define glTexCoord2hvNV                     rglTexCoord2hvNV
#define glTexCoord3hNV                      rglTexCoord3hNV
#define glTexCoord3hvNV                     rglTexCoord3hvNV
#define glTexCoord4hNV                      rglTexCoord4hNV
#define glTexCoord4hvNV                     rglTexCoord4hvNV
#define glVertex2hNV                        rglVertex2hNV
#define glVertex2hvNV                       rglVertex2hvNV
#define glVertex3hNV                        rglVertex3hNV
#define glVertex3hvNV                       rglVertex3hvNV
#define glVertex4hNV                        rglVertex4hNV
#define glVertex4hvNV                       rglVertex4hvNV
#define glVertexAttrib1hNV                  rglVertexAttrib1hNV
#define glVertexAttrib1hvNV                 rglVertexAttrib1hvNV
#define glVertexAttrib2hNV                  rglVertexAttrib2hNV
#define glVertexAttrib2hvNV                 rglVertexAttrib2hvNV
#define glVertexAttrib3hNV                  rglVertexAttrib3hNV
#define glVertexAttrib3hvNV                 rglVertexAttrib3hvNV
#define glVertexAttrib4hNV                  rglVertexAttrib4hNV
#define glVertexAttrib4hvNV                 rglVertexAttrib4hvNV
#define glVertexAttribs1hvNV                rglVertexAttribs1hvNV
#define glVertexAttribs2hvNV                rglVertexAttribs2hvNV
#define glVertexAttribs3hvNV                rglVertexAttribs3hvNV
#define glVertexAttribs4hvNV                rglVertexAttribs4hvNV
#define glVertexWeighthNV                   rglVertexWeighthNV
#define glVertexWeighthvNV                  rglVertexWeighthvNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_HALF_FLOAT
REGAL_DECL void REGAL_CALL glColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
REGAL_DECL void REGAL_CALL glColor3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glColor4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
REGAL_DECL void REGAL_CALL glColor4hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glFogCoordhNV(GLhalfNV coord);
REGAL_DECL void REGAL_CALL glFogCoordhvNV(const GLhalfNV *coord);
REGAL_DECL void REGAL_CALL glMultiTexCoord1hNV(GLenum target, GLhalfNV s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1hvNV(GLenum target, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2hvNV(GLenum target, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3hvNV(GLenum target, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4hvNV(GLenum target, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glNormal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
REGAL_DECL void REGAL_CALL glNormal3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glTexCoord1hNV(GLhalfNV s);
REGAL_DECL void REGAL_CALL glTexCoord1hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glTexCoord2hNV(GLhalfNV s, GLhalfNV t);
REGAL_DECL void REGAL_CALL glTexCoord2hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glTexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r);
REGAL_DECL void REGAL_CALL glTexCoord3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glTexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
REGAL_DECL void REGAL_CALL glTexCoord4hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertex2hNV(GLhalfNV x, GLhalfNV y);
REGAL_DECL void REGAL_CALL glVertex2hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z);
REGAL_DECL void REGAL_CALL glVertex3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
REGAL_DECL void REGAL_CALL glVertex4hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexAttrib1hNV(GLuint index, GLhalfNV x);
REGAL_DECL void REGAL_CALL glVertexAttrib1hvNV(GLuint index, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2hNV(GLuint index, GLhalfNV x, GLhalfNV y);
REGAL_DECL void REGAL_CALL glVertexAttrib2hvNV(GLuint index, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
REGAL_DECL void REGAL_CALL glVertexAttrib3hvNV(GLuint index, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
REGAL_DECL void REGAL_CALL glVertexAttrib4hvNV(GLuint index, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexAttribs1hvNV(GLuint index, GLsizei count, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexAttribs2hvNV(GLuint index, GLsizei count, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexAttribs3hvNV(GLuint index, GLsizei count, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexAttribs4hvNV(GLuint index, GLsizei count, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL glVertexWeighthNV(GLhalfNV weight);
REGAL_DECL void REGAL_CALL glVertexWeighthvNV(const GLhalfNV *weight);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_HALF_FLOAT
REGAL_DECL void REGAL_CALL plugin_glColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
REGAL_DECL void REGAL_CALL plugin_glColor3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glColor4hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glFogCoordhNV(GLhalfNV coord);
REGAL_DECL void REGAL_CALL plugin_glFogCoordhvNV(const GLhalfNV *coord);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1hNV(GLenum target, GLhalfNV s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1hvNV(GLenum target, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2hNV(GLenum target, GLhalfNV s, GLhalfNV t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2hvNV(GLenum target, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3hvNV(GLenum target, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4hNV(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4hvNV(GLenum target, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glNormal3hNV(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
REGAL_DECL void REGAL_CALL plugin_glNormal3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3hNV(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1hNV(GLhalfNV s);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2hNV(GLhalfNV s, GLhalfNV t);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4hNV(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertex2hNV(GLhalfNV x, GLhalfNV y);
REGAL_DECL void REGAL_CALL plugin_glVertex2hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertex3hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z);
REGAL_DECL void REGAL_CALL plugin_glVertex3hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertex4hNV(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
REGAL_DECL void REGAL_CALL plugin_glVertex4hvNV(const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1hNV(GLuint index, GLhalfNV x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1hvNV(GLuint index, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2hNV(GLuint index, GLhalfNV x, GLhalfNV y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2hvNV(GLuint index, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3hvNV(GLuint index, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4hNV(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4hvNV(GLuint index, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs1hvNV(GLuint index, GLsizei count, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs2hvNV(GLuint index, GLsizei count, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs3hvNV(GLuint index, GLsizei count, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs4hvNV(GLuint index, GLsizei count, const GLhalfNV *v);
REGAL_DECL void REGAL_CALL plugin_glVertexWeighthNV(GLhalfNV weight);
REGAL_DECL void REGAL_CALL plugin_glVertexWeighthvNV(const GLhalfNV *weight);
#endif

/**
 ** GL_NV_instanced_arrays
 **/

#if (defined(GL_NV_INSTANCED_ARRAYS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_INSTANCED_ARRAYS)) && !defined(REGAL_NO_ENUM_GL_NV_INSTANCED_ARRAYS)
#define REGAL_NO_ENUM_GL_NV_INSTANCED_ARRAYS
#endif

#if (defined(GL_NV_INSTANCED_ARRAYS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_INSTANCED_ARRAYS)) && !defined(REGAL_NO_TYPEDEF_GL_NV_INSTANCED_ARRAYS)
#define REGAL_NO_TYPEDEF_GL_NV_INSTANCED_ARRAYS
#endif

#if (defined(GL_NV_INSTANCED_ARRAYS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_INSTANCED_ARRAYS)) && !defined(REGAL_NO_NAMESPACE_GL_NV_INSTANCED_ARRAYS)
#define REGAL_NO_NAMESPACE_GL_NV_INSTANCED_ARRAYS
#endif

#if (defined(GL_NV_INSTANCED_ARRAYS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_INSTANCED_ARRAYS)) && !defined(REGAL_NO_PLUGIN_GL_NV_INSTANCED_ARRAYS)
#define REGAL_NO_PLUGIN_GL_NV_INSTANCED_ARRAYS
#endif

#if (defined(GL_NV_INSTANCED_ARRAYS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_INSTANCED_ARRAYS)) && !defined(REGAL_NO_DECLARATION_GL_NV_INSTANCED_ARRAYS)
#define REGAL_NO_DECLARATION_GL_NV_INSTANCED_ARRAYS
#endif

#ifndef GL_NV_instanced_arrays
#define GL_NV_instanced_arrays 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_INSTANCED_ARRAYS
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV 0x88fe /* 35070 */
#endif

/**
 ** GL_NV_light_max_exponent
 **/

#if (defined(GL_NV_LIGHT_MAX_EXPONENT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_LIGHT_MAX_EXPONENT)) && !defined(REGAL_NO_ENUM_GL_NV_LIGHT_MAX_EXPONENT)
#define REGAL_NO_ENUM_GL_NV_LIGHT_MAX_EXPONENT
#endif

#if (defined(GL_NV_LIGHT_MAX_EXPONENT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_LIGHT_MAX_EXPONENT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_LIGHT_MAX_EXPONENT)
#define REGAL_NO_TYPEDEF_GL_NV_LIGHT_MAX_EXPONENT
#endif

#if (defined(GL_NV_LIGHT_MAX_EXPONENT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_LIGHT_MAX_EXPONENT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_LIGHT_MAX_EXPONENT)
#define REGAL_NO_NAMESPACE_GL_NV_LIGHT_MAX_EXPONENT
#endif

#if (defined(GL_NV_LIGHT_MAX_EXPONENT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_LIGHT_MAX_EXPONENT)) && !defined(REGAL_NO_PLUGIN_GL_NV_LIGHT_MAX_EXPONENT)
#define REGAL_NO_PLUGIN_GL_NV_LIGHT_MAX_EXPONENT
#endif

#if (defined(GL_NV_LIGHT_MAX_EXPONENT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_LIGHT_MAX_EXPONENT)) && !defined(REGAL_NO_DECLARATION_GL_NV_LIGHT_MAX_EXPONENT)
#define REGAL_NO_DECLARATION_GL_NV_LIGHT_MAX_EXPONENT
#endif

#ifndef GL_NV_light_max_exponent
#define GL_NV_light_max_exponent 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_LIGHT_MAX_EXPONENT
#define GL_MAX_SHININESS_NV     0x8504     /* 34052 */
#define GL_MAX_SPOT_EXPONENT_NV 0x8505     /* 34053 */
#endif

/**
 ** GL_NV_multisample_coverage
 **/

#if (defined(GL_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_ENUM_GL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_ENUM_GL_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(GL_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_TYPEDEF_GL_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(GL_NV_MULTISAMPLE_COVERAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_NAMESPACE_GL_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(GL_NV_MULTISAMPLE_COVERAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_PLUGIN_GL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_PLUGIN_GL_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(GL_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_DECLARATION_GL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_DECLARATION_GL_NV_MULTISAMPLE_COVERAGE
#endif

#ifndef GL_NV_multisample_coverage
#define GL_NV_multisample_coverage 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_MULTISAMPLE_COVERAGE
#define GL_COVERAGE_SAMPLES_NV 0x80a9     /* 32937 */
#define GL_COLOR_SAMPLES_NV    0x8e20     /* 36384 */
#endif

/**
 ** GL_NV_multisample_filter_hint
 **/

#if (defined(GL_NV_MULTISAMPLE_FILTER_HINT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_MULTISAMPLE_FILTER_HINT)) && !defined(REGAL_NO_ENUM_GL_NV_MULTISAMPLE_FILTER_HINT)
#define REGAL_NO_ENUM_GL_NV_MULTISAMPLE_FILTER_HINT
#endif

#if (defined(GL_NV_MULTISAMPLE_FILTER_HINT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_MULTISAMPLE_FILTER_HINT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_MULTISAMPLE_FILTER_HINT)
#define REGAL_NO_TYPEDEF_GL_NV_MULTISAMPLE_FILTER_HINT
#endif

#if (defined(GL_NV_MULTISAMPLE_FILTER_HINT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_MULTISAMPLE_FILTER_HINT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_MULTISAMPLE_FILTER_HINT)
#define REGAL_NO_NAMESPACE_GL_NV_MULTISAMPLE_FILTER_HINT
#endif

#if (defined(GL_NV_MULTISAMPLE_FILTER_HINT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_MULTISAMPLE_FILTER_HINT)) && !defined(REGAL_NO_PLUGIN_GL_NV_MULTISAMPLE_FILTER_HINT)
#define REGAL_NO_PLUGIN_GL_NV_MULTISAMPLE_FILTER_HINT
#endif

#if (defined(GL_NV_MULTISAMPLE_FILTER_HINT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_MULTISAMPLE_FILTER_HINT)) && !defined(REGAL_NO_DECLARATION_GL_NV_MULTISAMPLE_FILTER_HINT)
#define REGAL_NO_DECLARATION_GL_NV_MULTISAMPLE_FILTER_HINT
#endif

#ifndef GL_NV_multisample_filter_hint
#define GL_NV_multisample_filter_hint 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_MULTISAMPLE_FILTER_HINT
#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 /* 34100 */
#endif

/**
 ** GL_NV_occlusion_query
 **/

#if (defined(GL_NV_OCCLUSION_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_OCCLUSION_QUERY)) && !defined(REGAL_NO_ENUM_GL_NV_OCCLUSION_QUERY)
#define REGAL_NO_ENUM_GL_NV_OCCLUSION_QUERY
#endif

#if (defined(GL_NV_OCCLUSION_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_OCCLUSION_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_NV_OCCLUSION_QUERY)
#define REGAL_NO_TYPEDEF_GL_NV_OCCLUSION_QUERY
#endif

#if (defined(GL_NV_OCCLUSION_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_OCCLUSION_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_NV_OCCLUSION_QUERY)
#define REGAL_NO_NAMESPACE_GL_NV_OCCLUSION_QUERY
#endif

#if (defined(GL_NV_OCCLUSION_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_OCCLUSION_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_NV_OCCLUSION_QUERY)
#define REGAL_NO_PLUGIN_GL_NV_OCCLUSION_QUERY
#endif

#if (defined(GL_NV_OCCLUSION_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_OCCLUSION_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_NV_OCCLUSION_QUERY)
#define REGAL_NO_DECLARATION_GL_NV_OCCLUSION_QUERY
#endif

#ifndef GL_NV_occlusion_query
#define GL_NV_occlusion_query 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_OCCLUSION_QUERY
#define GL_PIXEL_COUNTER_BITS_NV         0x8864     /* 34916 */
#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865     /* 34917 */
#define GL_PIXEL_COUNT_NV                0x8866     /* 34918 */
#define GL_PIXEL_COUNT_AVAILABLE_NV      0x8867     /* 34919 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_OCCLUSION_QUERY
typedef GLboolean (REGAL_CALL *PFNGLISOCCLUSIONQUERYNVPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLBEGINOCCLUSIONQUERYNVPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLDELETEOCCLUSIONQUERIESNVPROC)(GLsizei n, const GLuint *ids);
typedef void (REGAL_CALL *PFNGLENDOCCLUSIONQUERYNVPROC)(void);
typedef void (REGAL_CALL *PFNGLGENOCCLUSIONQUERIESNVPROC)(GLsizei n, GLuint *ids);
typedef void (REGAL_CALL *PFNGLGETOCCLUSIONQUERYIVNVPROC)(GLuint id, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETOCCLUSIONQUERYUIVNVPROC)(GLuint id, GLenum pname, GLuint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_OCCLUSION_QUERY
#define glBeginOcclusionQueryNV             rglBeginOcclusionQueryNV
#define glDeleteOcclusionQueriesNV          rglDeleteOcclusionQueriesNV
#define glEndOcclusionQueryNV               rglEndOcclusionQueryNV
#define glGenOcclusionQueriesNV             rglGenOcclusionQueriesNV
#define glGetOcclusionQueryivNV             rglGetOcclusionQueryivNV
#define glGetOcclusionQueryuivNV            rglGetOcclusionQueryuivNV
#define glIsOcclusionQueryNV                rglIsOcclusionQueryNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_OCCLUSION_QUERY
REGAL_DECL GLboolean REGAL_CALL glIsOcclusionQueryNV(GLuint id);
REGAL_DECL void REGAL_CALL glBeginOcclusionQueryNV(GLuint id);
REGAL_DECL void REGAL_CALL glDeleteOcclusionQueriesNV(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL glEndOcclusionQueryNV(void);
REGAL_DECL void REGAL_CALL glGenOcclusionQueriesNV(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL glGetOcclusionQueryivNV(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetOcclusionQueryuivNV(GLuint id, GLenum pname, GLuint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_OCCLUSION_QUERY
REGAL_DECL GLboolean REGAL_CALL plugin_glIsOcclusionQueryNV(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glBeginOcclusionQueryNV(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDeleteOcclusionQueriesNV(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glEndOcclusionQueryNV(void);
REGAL_DECL void REGAL_CALL plugin_glGenOcclusionQueriesNV(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glGetOcclusionQueryivNV(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetOcclusionQueryuivNV(GLuint id, GLenum pname, GLuint *params);
#endif

/**
 ** GL_NV_pack_subimage
 **/

#if (defined(GL_NV_PACK_SUBIMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PACK_SUBIMAGE)) && !defined(REGAL_NO_ENUM_GL_NV_PACK_SUBIMAGE)
#define REGAL_NO_ENUM_GL_NV_PACK_SUBIMAGE
#endif

#if (defined(GL_NV_PACK_SUBIMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PACK_SUBIMAGE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PACK_SUBIMAGE)
#define REGAL_NO_TYPEDEF_GL_NV_PACK_SUBIMAGE
#endif

#if (defined(GL_NV_PACK_SUBIMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PACK_SUBIMAGE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PACK_SUBIMAGE)
#define REGAL_NO_NAMESPACE_GL_NV_PACK_SUBIMAGE
#endif

#if (defined(GL_NV_PACK_SUBIMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PACK_SUBIMAGE)) && !defined(REGAL_NO_PLUGIN_GL_NV_PACK_SUBIMAGE)
#define REGAL_NO_PLUGIN_GL_NV_PACK_SUBIMAGE
#endif

#if (defined(GL_NV_PACK_SUBIMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PACK_SUBIMAGE)) && !defined(REGAL_NO_DECLARATION_GL_NV_PACK_SUBIMAGE)
#define REGAL_NO_DECLARATION_GL_NV_PACK_SUBIMAGE
#endif

#ifndef GL_NV_pack_subimage
#define GL_NV_pack_subimage 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PACK_SUBIMAGE
#define GL_PACK_ROW_LENGTH_NV  0xd02     /* 3330 */
#define GL_PACK_SKIP_ROWS_NV   0xd03     /* 3331 */
#define GL_PACK_SKIP_PIXELS_NV 0xd04     /* 3332 */
#endif

/**
 ** GL_NV_packed_depth_stencil
 **/

#if (defined(GL_NV_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_ENUM_GL_NV_PACKED_DEPTH_STENCIL)
#define REGAL_NO_ENUM_GL_NV_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_NV_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PACKED_DEPTH_STENCIL)
#define REGAL_NO_TYPEDEF_GL_NV_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_NV_PACKED_DEPTH_STENCIL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PACKED_DEPTH_STENCIL)
#define REGAL_NO_NAMESPACE_GL_NV_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_NV_PACKED_DEPTH_STENCIL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_PLUGIN_GL_NV_PACKED_DEPTH_STENCIL)
#define REGAL_NO_PLUGIN_GL_NV_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_NV_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_DECLARATION_GL_NV_PACKED_DEPTH_STENCIL)
#define REGAL_NO_DECLARATION_GL_NV_PACKED_DEPTH_STENCIL
#endif

#ifndef GL_NV_packed_depth_stencil
#define GL_NV_packed_depth_stencil 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PACKED_DEPTH_STENCIL
#define GL_DEPTH_STENCIL_NV     0x84f9     /* 34041 */
#define GL_UNSIGNED_INT_24_8_NV 0x84fa     /* 34042 */
#endif

/**
 ** GL_NV_packed_float_linear
 **/

#if (defined(GL_NV_PACKED_FLOAT_LINEAR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PACKED_FLOAT_LINEAR)) && !defined(REGAL_NO_ENUM_GL_NV_PACKED_FLOAT_LINEAR)
#define REGAL_NO_ENUM_GL_NV_PACKED_FLOAT_LINEAR
#endif

#if (defined(GL_NV_PACKED_FLOAT_LINEAR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PACKED_FLOAT_LINEAR)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PACKED_FLOAT_LINEAR)
#define REGAL_NO_TYPEDEF_GL_NV_PACKED_FLOAT_LINEAR
#endif

#if (defined(GL_NV_PACKED_FLOAT_LINEAR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PACKED_FLOAT_LINEAR)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PACKED_FLOAT_LINEAR)
#define REGAL_NO_NAMESPACE_GL_NV_PACKED_FLOAT_LINEAR
#endif

#if (defined(GL_NV_PACKED_FLOAT_LINEAR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PACKED_FLOAT_LINEAR)) && !defined(REGAL_NO_PLUGIN_GL_NV_PACKED_FLOAT_LINEAR)
#define REGAL_NO_PLUGIN_GL_NV_PACKED_FLOAT_LINEAR
#endif

#if (defined(GL_NV_PACKED_FLOAT_LINEAR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PACKED_FLOAT_LINEAR)) && !defined(REGAL_NO_DECLARATION_GL_NV_PACKED_FLOAT_LINEAR)
#define REGAL_NO_DECLARATION_GL_NV_PACKED_FLOAT_LINEAR
#endif

#ifndef GL_NV_packed_float_linear
#define GL_NV_packed_float_linear 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PACKED_FLOAT_LINEAR
#define GL_R11F_G11F_B10F_NV               0x8c3a     /* 35898 */
#define GL_UNSIGNED_INT_10F_11F_11F_REV_NV 0x8c3b     /* 35899 */
#endif

/**
 ** GL_NV_parameter_buffer_object
 **/

#if (defined(GL_NV_PARAMETER_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PARAMETER_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_NV_PARAMETER_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_NV_PARAMETER_BUFFER_OBJECT
#endif

#if (defined(GL_NV_PARAMETER_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PARAMETER_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PARAMETER_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_NV_PARAMETER_BUFFER_OBJECT
#endif

#if (defined(GL_NV_PARAMETER_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PARAMETER_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PARAMETER_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_NV_PARAMETER_BUFFER_OBJECT
#endif

#if (defined(GL_NV_PARAMETER_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PARAMETER_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_NV_PARAMETER_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_NV_PARAMETER_BUFFER_OBJECT
#endif

#if (defined(GL_NV_PARAMETER_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PARAMETER_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_NV_PARAMETER_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_NV_PARAMETER_BUFFER_OBJECT
#endif

#ifndef GL_NV_parameter_buffer_object
#define GL_NV_parameter_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PARAMETER_BUFFER_OBJECT
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8da0     /* 36256 */
#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV     0x8da1     /* 36257 */
#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV       0x8da2     /* 36258 */
#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV     0x8da3     /* 36259 */
#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV     0x8da4     /* 36260 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_PARAMETER_BUFFER_OBJECT
typedef void (REGAL_CALL *PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
typedef void (REGAL_CALL *PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_PARAMETER_BUFFER_OBJECT
#define glProgramBufferParametersIivNV      rglProgramBufferParametersIivNV
#define glProgramBufferParametersIuivNV     rglProgramBufferParametersIuivNV
#define glProgramBufferParametersfvNV       rglProgramBufferParametersfvNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_PARAMETER_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL glProgramBufferParametersIivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
REGAL_DECL void REGAL_CALL glProgramBufferParametersIuivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
REGAL_DECL void REGAL_CALL glProgramBufferParametersfvNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_PARAMETER_BUFFER_OBJECT
REGAL_DECL void REGAL_CALL plugin_glProgramBufferParametersIivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramBufferParametersIuivNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glProgramBufferParametersfvNV(GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params);
#endif

/**
 ** GL_NV_path_rendering
 **/

#if (defined(GL_NV_PATH_RENDERING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PATH_RENDERING)) && !defined(REGAL_NO_ENUM_GL_NV_PATH_RENDERING)
#define REGAL_NO_ENUM_GL_NV_PATH_RENDERING
#endif

#if (defined(GL_NV_PATH_RENDERING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PATH_RENDERING)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PATH_RENDERING)
#define REGAL_NO_TYPEDEF_GL_NV_PATH_RENDERING
#endif

#if (defined(GL_NV_PATH_RENDERING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PATH_RENDERING)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PATH_RENDERING)
#define REGAL_NO_NAMESPACE_GL_NV_PATH_RENDERING
#endif

#if (defined(GL_NV_PATH_RENDERING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PATH_RENDERING)) && !defined(REGAL_NO_PLUGIN_GL_NV_PATH_RENDERING)
#define REGAL_NO_PLUGIN_GL_NV_PATH_RENDERING
#endif

#if (defined(GL_NV_PATH_RENDERING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PATH_RENDERING)) && !defined(REGAL_NO_DECLARATION_GL_NV_PATH_RENDERING)
#define REGAL_NO_DECLARATION_GL_NV_PATH_RENDERING
#endif

#ifndef GL_NV_path_rendering
#define GL_NV_path_rendering 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PATH_RENDERING
#define GL_CLOSE_PATH_NV                           0x0
#define GL_BOLD_BIT_NV                             0x1
#define GL_GLYPH_WIDTH_BIT_NV                      0x1
#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10           /* 16 */
#define GL_SMOOTH_CUBIC_CURVE_TO_NV                0x10           /* 16 */
#define GL_GLYPH_HAS_KERNING_BIT_NV                0x100          /* 256 */
#define GL_FONT_X_MIN_BOUNDS_BIT_NV                0x10000        /* 65536 */
#define GL_FONT_UNITS_PER_EM_BIT_NV                0x100000       /* 1048576 */
#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV           0x1000000      /* 16777216 */
#define GL_FONT_HAS_KERNING_BIT_NV                 0x10000000     /* 268435456 */
#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV       0x11           /* 17 */
#define GL_SMALL_CCW_ARC_TO_NV                     0x12           /* 18 */
#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV            0x13           /* 19 */
#define GL_SMALL_CW_ARC_TO_NV                      0x14           /* 20 */
#define GL_RELATIVE_SMALL_CW_ARC_TO_NV             0x15           /* 21 */
#define GL_LARGE_CCW_ARC_TO_NV                     0x16           /* 22 */
#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV            0x17           /* 23 */
#define GL_LARGE_CW_ARC_TO_NV                      0x18           /* 24 */
#define GL_RELATIVE_LARGE_CW_ARC_TO_NV             0x19           /* 25 */
#define GL_GLYPH_HEIGHT_BIT_NV                     0x2
#define GL_ITALIC_BIT_NV                           0x2
#define GL_MOVE_TO_NV                              0x2
#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV         0x20           /* 32 */
#define GL_FONT_Y_MIN_BOUNDS_BIT_NV                0x20000        /* 131072 */
#define GL_FONT_ASCENDER_BIT_NV                    0x200000       /* 2097152 */
#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV          0x2000000      /* 33554432 */
#define GL_RELATIVE_MOVE_TO_NV                     0x3
#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV       0x4
#define GL_LINE_TO_NV                              0x4
#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV         0x40           /* 64 */
#define GL_FONT_X_MAX_BOUNDS_BIT_NV                0x40000        /* 262144 */
#define GL_FONT_DESCENDER_BIT_NV                   0x400000       /* 4194304 */
#define GL_FONT_UNDERLINE_POSITION_BIT_NV          0x4000000      /* 67108864 */
#define GL_RELATIVE_LINE_TO_NV                     0x5
#define GL_HORIZONTAL_LINE_TO_NV                   0x6
#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV          0x7
#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV       0x8
#define GL_VERTICAL_LINE_TO_NV                     0x8
#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV   0x80           /* 128 */
#define GL_FONT_Y_MAX_BOUNDS_BIT_NV                0x80000        /* 524288 */
#define GL_FONT_HEIGHT_BIT_NV                      0x800000       /* 8388608 */
#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV         0x8000000      /* 134217728 */
#define GL_RELATIVE_VERTICAL_LINE_TO_NV            0x9
#define GL_PATH_FORMAT_SVG_NV                      0x9070         /* 36976 */
#define GL_PATH_FORMAT_PS_NV                       0x9071         /* 36977 */
#define GL_STANDARD_FONT_NAME_NV                   0x9072         /* 36978 */
#define GL_SYSTEM_FONT_NAME_NV                     0x9073         /* 36979 */
#define GL_FILE_NAME_NV                            0x9074         /* 36980 */
#define GL_PATH_STROKE_WIDTH_NV                    0x9075         /* 36981 */
#define GL_PATH_END_CAPS_NV                        0x9076         /* 36982 */
#define GL_PATH_INITIAL_END_CAP_NV                 0x9077         /* 36983 */
#define GL_PATH_TERMINAL_END_CAP_NV                0x9078         /* 36984 */
#define GL_PATH_JOIN_STYLE_NV                      0x9079         /* 36985 */
#define GL_PATH_MITER_LIMIT_NV                     0x907a         /* 36986 */
#define GL_PATH_DASH_CAPS_NV                       0x907b         /* 36987 */
#define GL_PATH_INITIAL_DASH_CAP_NV                0x907c         /* 36988 */
#define GL_PATH_TERMINAL_DASH_CAP_NV               0x907d         /* 36989 */
#define GL_PATH_DASH_OFFSET_NV                     0x907e         /* 36990 */
#define GL_PATH_CLIENT_LENGTH_NV                   0x907f         /* 36991 */
#define GL_PATH_FILL_MODE_NV                       0x9080         /* 36992 */
#define GL_PATH_FILL_MASK_NV                       0x9081         /* 36993 */
#define GL_PATH_FILL_COVER_MODE_NV                 0x9082         /* 36994 */
#define GL_PATH_STROKE_COVER_MODE_NV               0x9083         /* 36995 */
#define GL_PATH_STROKE_MASK_NV                     0x9084         /* 36996 */
#define GL_COUNT_UP_NV                             0x9088         /* 37000 */
#define GL_COUNT_DOWN_NV                           0x9089         /* 37001 */
#define GL_PATH_OBJECT_BOUNDING_BOX_NV             0x908a         /* 37002 */
#define GL_CONVEX_HULL_NV                          0x908b         /* 37003 */
#define GL_BOUNDING_BOX_NV                         0x908d         /* 37005 */
#define GL_TRANSLATE_X_NV                          0x908e         /* 37006 */
#define GL_TRANSLATE_Y_NV                          0x908f         /* 37007 */
#define GL_TRANSLATE_2D_NV                         0x9090         /* 37008 */
#define GL_TRANSLATE_3D_NV                         0x9091         /* 37009 */
#define GL_AFFINE_2D_NV                            0x9092         /* 37010 */
#define GL_AFFINE_3D_NV                            0x9094         /* 37012 */
#define GL_TRANSPOSE_AFFINE_2D_NV                  0x9096         /* 37014 */
#define GL_TRANSPOSE_AFFINE_3D_NV                  0x9098         /* 37016 */
#define GL_UTF8_NV                                 0x909a         /* 37018 */
#define GL_UTF16_NV                                0x909b         /* 37019 */
#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV       0x909c         /* 37020 */
#define GL_PATH_COMMAND_COUNT_NV                   0x909d         /* 37021 */
#define GL_PATH_COORD_COUNT_NV                     0x909e         /* 37022 */
#define GL_PATH_DASH_ARRAY_COUNT_NV                0x909f         /* 37023 */
#define GL_PATH_COMPUTED_LENGTH_NV                 0x90a0         /* 37024 */
#define GL_PATH_FILL_BOUNDING_BOX_NV               0x90a1         /* 37025 */
#define GL_PATH_STROKE_BOUNDING_BOX_NV             0x90a2         /* 37026 */
#define GL_SQUARE_NV                               0x90a3         /* 37027 */
#define GL_ROUND_NV                                0x90a4         /* 37028 */
#define GL_TRIANGULAR_NV                           0x90a5         /* 37029 */
#define GL_BEVEL_NV                                0x90a6         /* 37030 */
#define GL_MITER_REVERT_NV                         0x90a7         /* 37031 */
#define GL_MITER_TRUNCATE_NV                       0x90a8         /* 37032 */
#define GL_SKIP_MISSING_GLYPH_NV                   0x90a9         /* 37033 */
#define GL_USE_MISSING_GLYPH_NV                    0x90aa         /* 37034 */
#define GL_PATH_ERROR_POSITION_NV                  0x90ab         /* 37035 */
#define GL_PATH_FOG_GEN_MODE_NV                    0x90ac         /* 37036 */
#define GL_ACCUM_ADJACENT_PAIRS_NV                 0x90ad         /* 37037 */
#define GL_ADJACENT_PAIRS_NV                       0x90ae         /* 37038 */
#define GL_FIRST_TO_REST_NV                        0x90af         /* 37039 */
#define GL_PATH_GEN_MODE_NV                        0x90b0         /* 37040 */
#define GL_PATH_GEN_COEFF_NV                       0x90b1         /* 37041 */
#define GL_PATH_GEN_COLOR_FORMAT_NV                0x90b2         /* 37042 */
#define GL_PATH_GEN_COMPONENTS_NV                  0x90b3         /* 37043 */
#define GL_PATH_DASH_OFFSET_RESET_NV               0x90b4         /* 37044 */
#define GL_MOVE_TO_RESETS_NV                       0x90b5         /* 37045 */
#define GL_MOVE_TO_CONTINUES_NV                    0x90b6         /* 37046 */
#define GL_PATH_STENCIL_FUNC_NV                    0x90b7         /* 37047 */
#define GL_PATH_STENCIL_REF_NV                     0x90b8         /* 37048 */
#define GL_PATH_STENCIL_VALUE_MASK_NV              0x90b9         /* 37049 */
#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV     0x90bd         /* 37053 */
#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV      0x90be         /* 37054 */
#define GL_PATH_COVER_DEPTH_FUNC_NV                0x90bf         /* 37055 */
#define GL_QUADRATIC_CURVE_TO_NV                   0xa            /* 10 */
#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV          0xb            /* 11 */
#define GL_CUBIC_CURVE_TO_NV                       0xc            /* 12 */
#define GL_RELATIVE_CUBIC_CURVE_TO_NV              0xd            /* 13 */
#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV            0xe            /* 14 */
#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV   0xf            /* 15 */
#define GL_RESTART_PATH_NV                         0xf0           /* 240 */
#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV             0xf2           /* 242 */
#define GL_DUP_LAST_CUBIC_CURVE_TO_NV              0xf4           /* 244 */
#define GL_RECT_NV                                 0xf6           /* 246 */
#define GL_CIRCULAR_CCW_ARC_TO_NV                  0xf8           /* 248 */
#define GL_CIRCULAR_CW_ARC_TO_NV                   0xfa           /* 250 */
#define GL_CIRCULAR_TANGENT_ARC_TO_NV              0xfc           /* 252 */
#define GL_ARC_TO_NV                               0xfe           /* 254 */
#define GL_RELATIVE_ARC_TO_NV                      0xff           /* 255 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_PATH_RENDERING
typedef GLboolean (REGAL_CALL *PFNGLISPATHNVPROC)(GLuint path);
typedef GLboolean (REGAL_CALL *PFNGLISPOINTINFILLPATHNVPROC)(GLuint path, GLuint mask, GLfloat x, GLfloat y);
typedef GLboolean (REGAL_CALL *PFNGLISPOINTINSTROKEPATHNVPROC)(GLuint path, GLfloat x, GLfloat y);
typedef GLboolean (REGAL_CALL *PFNGLPOINTALONGPATHNVPROC)(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
typedef GLfloat (REGAL_CALL *PFNGLGETPATHLENGTHNVPROC)(GLuint path, GLsizei startSegment, GLsizei numSegments);
typedef GLuint (REGAL_CALL *PFNGLGENPATHSNVPROC)(GLsizei range);
typedef void (REGAL_CALL *PFNGLCOPYPATHNVPROC)(GLuint resultPath, GLuint srcPath);
typedef void (REGAL_CALL *PFNGLCOVERFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
typedef void (REGAL_CALL *PFNGLCOVERFILLPATHNVPROC)(GLuint path, GLenum coverMode);
typedef void (REGAL_CALL *PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
typedef void (REGAL_CALL *PFNGLCOVERSTROKEPATHNVPROC)(GLuint name, GLenum coverMode);
typedef void (REGAL_CALL *PFNGLDELETEPATHSNVPROC)(GLuint path, GLsizei range);
typedef void (REGAL_CALL *PFNGLGETPATHCOLORGENFVNVPROC)(GLenum color, GLenum pname, GLfloat *value);
typedef void (REGAL_CALL *PFNGLGETPATHCOLORGENIVNVPROC)(GLenum color, GLenum pname, GLint *value);
typedef void (REGAL_CALL *PFNGLGETPATHCOMMANDSNVPROC)(GLuint name, GLubyte *commands);
typedef void (REGAL_CALL *PFNGLGETPATHCOORDSNVPROC)(GLuint name, GLfloat *coords);
typedef void (REGAL_CALL *PFNGLGETPATHDASHARRAYNVPROC)(GLuint name, GLfloat *dashArray);
typedef void (REGAL_CALL *PFNGLGETPATHMETRICRANGENVPROC)(GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics);
typedef void (REGAL_CALL *PFNGLGETPATHMETRICSNVPROC)(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
typedef void (REGAL_CALL *PFNGLGETPATHPARAMETERFVNVPROC)(GLuint name, GLenum param, GLfloat *value);
typedef void (REGAL_CALL *PFNGLGETPATHPARAMETERIVNVPROC)(GLuint name, GLenum param, GLint *value);
typedef void (REGAL_CALL *PFNGLGETPATHSPACINGNVPROC)(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
typedef void (REGAL_CALL *PFNGLGETPATHTEXGENFVNVPROC)(GLenum texCoordSet, GLenum pname, GLfloat *value);
typedef void (REGAL_CALL *PFNGLGETPATHTEXGENIVNVPROC)(GLenum texCoordSet, GLenum pname, GLint *value);
typedef void (REGAL_CALL *PFNGLINTERPOLATEPATHSNVPROC)(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
typedef void (REGAL_CALL *PFNGLPATHCOLORGENNVPROC)(GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
typedef void (REGAL_CALL *PFNGLPATHCOMMANDSNVPROC)(GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
typedef void (REGAL_CALL *PFNGLPATHCOORDSNVPROC)(GLuint path, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
typedef void (REGAL_CALL *PFNGLPATHCOVERDEPTHFUNCNVPROC)(GLenum zfunc);
typedef void (REGAL_CALL *PFNGLPATHDASHARRAYNVPROC)(GLuint path, GLsizei dashCount, const GLfloat *dashArray);
typedef void (REGAL_CALL *PFNGLPATHFOGGENNVPROC)(GLenum genMode);
typedef void (REGAL_CALL *PFNGLPATHGLYPHRANGENVPROC)(GLuint firstPathName, GLenum fontTarget, const GLvoid *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
typedef void (REGAL_CALL *PFNGLPATHGLYPHSNVPROC)(GLuint firstPathName, GLenum fontTarget, const GLvoid *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
typedef void (REGAL_CALL *PFNGLPATHPARAMETERFNVPROC)(GLuint path, GLenum pname, GLfloat value);
typedef void (REGAL_CALL *PFNGLPATHPARAMETERFVNVPROC)(GLuint path, GLenum pname, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLPATHPARAMETERINVPROC)(GLuint path, GLenum pname, GLint value);
typedef void (REGAL_CALL *PFNGLPATHPARAMETERIVNVPROC)(GLuint path, GLenum pname, const GLint *value);
typedef void (REGAL_CALL *PFNGLPATHSTENCILDEPTHOFFSETNVPROC)(GLfloat factor, GLfloat units);
typedef void (REGAL_CALL *PFNGLPATHSTENCILFUNCNVPROC)(GLenum func, GLint ref, GLuint mask);
typedef void (REGAL_CALL *PFNGLPATHSTRINGNVPROC)(GLuint path, GLenum format, GLsizei length, const GLvoid *pathString);
typedef void (REGAL_CALL *PFNGLPATHSUBCOMMANDSNVPROC)(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
typedef void (REGAL_CALL *PFNGLPATHSUBCOORDSNVPROC)(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
typedef void (REGAL_CALL *PFNGLPATHTEXGENNVPROC)(GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
typedef void (REGAL_CALL *PFNGLSTENCILFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
typedef void (REGAL_CALL *PFNGLSTENCILFILLPATHNVPROC)(GLuint path, GLenum fillMode, GLuint mask);
typedef void (REGAL_CALL *PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
typedef void (REGAL_CALL *PFNGLSTENCILSTROKEPATHNVPROC)(GLuint path, GLint reference, GLuint mask);
typedef void (REGAL_CALL *PFNGLTRANSFORMPATHNVPROC)(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues);
typedef void (REGAL_CALL *PFNGLWEIGHTPATHSNVPROC)(GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_PATH_RENDERING
#define glCopyPathNV                        rglCopyPathNV
#define glCoverFillPathInstancedNV          rglCoverFillPathInstancedNV
#define glCoverFillPathNV                   rglCoverFillPathNV
#define glCoverStrokePathInstancedNV        rglCoverStrokePathInstancedNV
#define glCoverStrokePathNV                 rglCoverStrokePathNV
#define glDeletePathsNV                     rglDeletePathsNV
#define glGenPathsNV                        rglGenPathsNV
#define glGetPathColorGenfvNV               rglGetPathColorGenfvNV
#define glGetPathColorGenivNV               rglGetPathColorGenivNV
#define glGetPathCommandsNV                 rglGetPathCommandsNV
#define glGetPathCoordsNV                   rglGetPathCoordsNV
#define glGetPathDashArrayNV                rglGetPathDashArrayNV
#define glGetPathLengthNV                   rglGetPathLengthNV
#define glGetPathMetricRangeNV              rglGetPathMetricRangeNV
#define glGetPathMetricsNV                  rglGetPathMetricsNV
#define glGetPathParameterfvNV              rglGetPathParameterfvNV
#define glGetPathParameterivNV              rglGetPathParameterivNV
#define glGetPathSpacingNV                  rglGetPathSpacingNV
#define glGetPathTexGenfvNV                 rglGetPathTexGenfvNV
#define glGetPathTexGenivNV                 rglGetPathTexGenivNV
#define glInterpolatePathsNV                rglInterpolatePathsNV
#define glIsPathNV                          rglIsPathNV
#define glIsPointInFillPathNV               rglIsPointInFillPathNV
#define glIsPointInStrokePathNV             rglIsPointInStrokePathNV
#define glPathColorGenNV                    rglPathColorGenNV
#define glPathCommandsNV                    rglPathCommandsNV
#define glPathCoordsNV                      rglPathCoordsNV
#define glPathCoverDepthFuncNV              rglPathCoverDepthFuncNV
#define glPathDashArrayNV                   rglPathDashArrayNV
#define glPathFogGenNV                      rglPathFogGenNV
#define glPathGlyphRangeNV                  rglPathGlyphRangeNV
#define glPathGlyphsNV                      rglPathGlyphsNV
#define glPathParameterfNV                  rglPathParameterfNV
#define glPathParameterfvNV                 rglPathParameterfvNV
#define glPathParameteriNV                  rglPathParameteriNV
#define glPathParameterivNV                 rglPathParameterivNV
#define glPathStencilDepthOffsetNV          rglPathStencilDepthOffsetNV
#define glPathStencilFuncNV                 rglPathStencilFuncNV
#define glPathStringNV                      rglPathStringNV
#define glPathSubCommandsNV                 rglPathSubCommandsNV
#define glPathSubCoordsNV                   rglPathSubCoordsNV
#define glPathTexGenNV                      rglPathTexGenNV
#define glPointAlongPathNV                  rglPointAlongPathNV
#define glStencilFillPathInstancedNV        rglStencilFillPathInstancedNV
#define glStencilFillPathNV                 rglStencilFillPathNV
#define glStencilStrokePathInstancedNV      rglStencilStrokePathInstancedNV
#define glStencilStrokePathNV               rglStencilStrokePathNV
#define glTransformPathNV                   rglTransformPathNV
#define glWeightPathsNV                     rglWeightPathsNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_PATH_RENDERING
REGAL_DECL GLboolean REGAL_CALL glIsPathNV(GLuint path);
REGAL_DECL GLboolean REGAL_CALL glIsPointInFillPathNV(GLuint path, GLuint mask, GLfloat x, GLfloat y);
REGAL_DECL GLboolean REGAL_CALL glIsPointInStrokePathNV(GLuint path, GLfloat x, GLfloat y);
REGAL_DECL GLboolean REGAL_CALL glPointAlongPathNV(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
REGAL_DECL GLfloat REGAL_CALL glGetPathLengthNV(GLuint path, GLsizei startSegment, GLsizei numSegments);
REGAL_DECL GLuint REGAL_CALL glGenPathsNV(GLsizei range);
REGAL_DECL void REGAL_CALL glCopyPathNV(GLuint resultPath, GLuint srcPath);
REGAL_DECL void REGAL_CALL glCoverFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL glCoverFillPathNV(GLuint path, GLenum coverMode);
REGAL_DECL void REGAL_CALL glCoverStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL glCoverStrokePathNV(GLuint name, GLenum coverMode);
REGAL_DECL void REGAL_CALL glDeletePathsNV(GLuint path, GLsizei range);
REGAL_DECL void REGAL_CALL glGetPathColorGenfvNV(GLenum color, GLenum pname, GLfloat *value);
REGAL_DECL void REGAL_CALL glGetPathColorGenivNV(GLenum color, GLenum pname, GLint *value);
REGAL_DECL void REGAL_CALL glGetPathCommandsNV(GLuint name, GLubyte *commands);
REGAL_DECL void REGAL_CALL glGetPathCoordsNV(GLuint name, GLfloat *coords);
REGAL_DECL void REGAL_CALL glGetPathDashArrayNV(GLuint name, GLfloat *dashArray);
REGAL_DECL void REGAL_CALL glGetPathMetricRangeNV(GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics);
REGAL_DECL void REGAL_CALL glGetPathMetricsNV(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
REGAL_DECL void REGAL_CALL glGetPathParameterfvNV(GLuint name, GLenum param, GLfloat *value);
REGAL_DECL void REGAL_CALL glGetPathParameterivNV(GLuint name, GLenum param, GLint *value);
REGAL_DECL void REGAL_CALL glGetPathSpacingNV(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
REGAL_DECL void REGAL_CALL glGetPathTexGenfvNV(GLenum texCoordSet, GLenum pname, GLfloat *value);
REGAL_DECL void REGAL_CALL glGetPathTexGenivNV(GLenum texCoordSet, GLenum pname, GLint *value);
REGAL_DECL void REGAL_CALL glInterpolatePathsNV(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
REGAL_DECL void REGAL_CALL glPathColorGenNV(GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
REGAL_DECL void REGAL_CALL glPathCommandsNV(GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
REGAL_DECL void REGAL_CALL glPathCoordsNV(GLuint path, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
REGAL_DECL void REGAL_CALL glPathCoverDepthFuncNV(GLenum zfunc);
REGAL_DECL void REGAL_CALL glPathDashArrayNV(GLuint path, GLsizei dashCount, const GLfloat *dashArray);
REGAL_DECL void REGAL_CALL glPathFogGenNV(GLenum genMode);
REGAL_DECL void REGAL_CALL glPathGlyphRangeNV(GLuint firstPathName, GLenum fontTarget, const GLvoid *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
REGAL_DECL void REGAL_CALL glPathGlyphsNV(GLuint firstPathName, GLenum fontTarget, const GLvoid *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
REGAL_DECL void REGAL_CALL glPathParameterfNV(GLuint path, GLenum pname, GLfloat value);
REGAL_DECL void REGAL_CALL glPathParameterfvNV(GLuint path, GLenum pname, const GLfloat *value);
REGAL_DECL void REGAL_CALL glPathParameteriNV(GLuint path, GLenum pname, GLint value);
REGAL_DECL void REGAL_CALL glPathParameterivNV(GLuint path, GLenum pname, const GLint *value);
REGAL_DECL void REGAL_CALL glPathStencilDepthOffsetNV(GLfloat factor, GLfloat units);
REGAL_DECL void REGAL_CALL glPathStencilFuncNV(GLenum func, GLint ref, GLuint mask);
REGAL_DECL void REGAL_CALL glPathStringNV(GLuint path, GLenum format, GLsizei length, const GLvoid *pathString);
REGAL_DECL void REGAL_CALL glPathSubCommandsNV(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
REGAL_DECL void REGAL_CALL glPathSubCoordsNV(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
REGAL_DECL void REGAL_CALL glPathTexGenNV(GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
REGAL_DECL void REGAL_CALL glStencilFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL glStencilFillPathNV(GLuint path, GLenum fillMode, GLuint mask);
REGAL_DECL void REGAL_CALL glStencilStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL glStencilStrokePathNV(GLuint path, GLint reference, GLuint mask);
REGAL_DECL void REGAL_CALL glTransformPathNV(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL glWeightPathsNV(GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_PATH_RENDERING
REGAL_DECL GLboolean REGAL_CALL plugin_glIsPathNV(GLuint path);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsPointInFillPathNV(GLuint path, GLuint mask, GLfloat x, GLfloat y);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsPointInStrokePathNV(GLuint path, GLfloat x, GLfloat y);
REGAL_DECL GLboolean REGAL_CALL plugin_glPointAlongPathNV(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY);
REGAL_DECL GLfloat REGAL_CALL plugin_glGetPathLengthNV(GLuint path, GLsizei startSegment, GLsizei numSegments);
REGAL_DECL GLuint REGAL_CALL plugin_glGenPathsNV(GLsizei range);
REGAL_DECL void REGAL_CALL plugin_glCopyPathNV(GLuint resultPath, GLuint srcPath);
REGAL_DECL void REGAL_CALL plugin_glCoverFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL plugin_glCoverFillPathNV(GLuint path, GLenum coverMode);
REGAL_DECL void REGAL_CALL plugin_glCoverStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL plugin_glCoverStrokePathNV(GLuint name, GLenum coverMode);
REGAL_DECL void REGAL_CALL plugin_glDeletePathsNV(GLuint path, GLsizei range);
REGAL_DECL void REGAL_CALL plugin_glGetPathColorGenfvNV(GLenum color, GLenum pname, GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glGetPathColorGenivNV(GLenum color, GLenum pname, GLint *value);
REGAL_DECL void REGAL_CALL plugin_glGetPathCommandsNV(GLuint name, GLubyte *commands);
REGAL_DECL void REGAL_CALL plugin_glGetPathCoordsNV(GLuint name, GLfloat *coords);
REGAL_DECL void REGAL_CALL plugin_glGetPathDashArrayNV(GLuint name, GLfloat *dashArray);
REGAL_DECL void REGAL_CALL plugin_glGetPathMetricRangeNV(GLbitfield metricQueryMask, GLuint fistPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics);
REGAL_DECL void REGAL_CALL plugin_glGetPathMetricsNV(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics);
REGAL_DECL void REGAL_CALL plugin_glGetPathParameterfvNV(GLuint name, GLenum param, GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glGetPathParameterivNV(GLuint name, GLenum param, GLint *value);
REGAL_DECL void REGAL_CALL plugin_glGetPathSpacingNV(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing);
REGAL_DECL void REGAL_CALL plugin_glGetPathTexGenfvNV(GLenum texCoordSet, GLenum pname, GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glGetPathTexGenivNV(GLenum texCoordSet, GLenum pname, GLint *value);
REGAL_DECL void REGAL_CALL plugin_glInterpolatePathsNV(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
REGAL_DECL void REGAL_CALL plugin_glPathColorGenNV(GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat *coeffs);
REGAL_DECL void REGAL_CALL plugin_glPathCommandsNV(GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
REGAL_DECL void REGAL_CALL plugin_glPathCoordsNV(GLuint path, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
REGAL_DECL void REGAL_CALL plugin_glPathCoverDepthFuncNV(GLenum zfunc);
REGAL_DECL void REGAL_CALL plugin_glPathDashArrayNV(GLuint path, GLsizei dashCount, const GLfloat *dashArray);
REGAL_DECL void REGAL_CALL plugin_glPathFogGenNV(GLenum genMode);
REGAL_DECL void REGAL_CALL plugin_glPathGlyphRangeNV(GLuint firstPathName, GLenum fontTarget, const GLvoid *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
REGAL_DECL void REGAL_CALL plugin_glPathGlyphsNV(GLuint firstPathName, GLenum fontTarget, const GLvoid *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const GLvoid *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
REGAL_DECL void REGAL_CALL plugin_glPathParameterfNV(GLuint path, GLenum pname, GLfloat value);
REGAL_DECL void REGAL_CALL plugin_glPathParameterfvNV(GLuint path, GLenum pname, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glPathParameteriNV(GLuint path, GLenum pname, GLint value);
REGAL_DECL void REGAL_CALL plugin_glPathParameterivNV(GLuint path, GLenum pname, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glPathStencilDepthOffsetNV(GLfloat factor, GLfloat units);
REGAL_DECL void REGAL_CALL plugin_glPathStencilFuncNV(GLenum func, GLint ref, GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glPathStringNV(GLuint path, GLenum format, GLsizei length, const GLvoid *pathString);
REGAL_DECL void REGAL_CALL plugin_glPathSubCommandsNV(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
REGAL_DECL void REGAL_CALL plugin_glPathSubCoordsNV(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const GLvoid *coords);
REGAL_DECL void REGAL_CALL plugin_glPathTexGenNV(GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat *coeffs);
REGAL_DECL void REGAL_CALL plugin_glStencilFillPathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL plugin_glStencilFillPathNV(GLuint path, GLenum fillMode, GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glStencilStrokePathInstancedNV(GLsizei numPaths, GLenum pathNameType, const GLvoid *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL plugin_glStencilStrokePathNV(GLuint path, GLint reference, GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glTransformPathNV(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues);
REGAL_DECL void REGAL_CALL plugin_glWeightPathsNV(GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights);
#endif

/**
 ** GL_NV_pixel_buffer_object
 **/

#if (defined(GL_NV_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_NV_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_NV_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_NV_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_NV_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_NV_PIXEL_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_NV_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_NV_PIXEL_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_NV_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_NV_PIXEL_BUFFER_OBJECT
#endif

#if (defined(GL_NV_PIXEL_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PIXEL_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_NV_PIXEL_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_NV_PIXEL_BUFFER_OBJECT
#endif

#ifndef GL_NV_pixel_buffer_object
#define GL_NV_pixel_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PIXEL_BUFFER_OBJECT
#define GL_PIXEL_PACK_BUFFER_NV           0x88eb     /* 35051 */
#define GL_PIXEL_UNPACK_BUFFER_NV         0x88ec     /* 35052 */
#define GL_PIXEL_PACK_BUFFER_BINDING_NV   0x88ed     /* 35053 */
#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV 0x88ef     /* 35055 */
#endif

/**
 ** GL_NV_pixel_data_range
 **/

#if (defined(GL_NV_PIXEL_DATA_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PIXEL_DATA_RANGE)) && !defined(REGAL_NO_ENUM_GL_NV_PIXEL_DATA_RANGE)
#define REGAL_NO_ENUM_GL_NV_PIXEL_DATA_RANGE
#endif

#if (defined(GL_NV_PIXEL_DATA_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PIXEL_DATA_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PIXEL_DATA_RANGE)
#define REGAL_NO_TYPEDEF_GL_NV_PIXEL_DATA_RANGE
#endif

#if (defined(GL_NV_PIXEL_DATA_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PIXEL_DATA_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PIXEL_DATA_RANGE)
#define REGAL_NO_NAMESPACE_GL_NV_PIXEL_DATA_RANGE
#endif

#if (defined(GL_NV_PIXEL_DATA_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PIXEL_DATA_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_NV_PIXEL_DATA_RANGE)
#define REGAL_NO_PLUGIN_GL_NV_PIXEL_DATA_RANGE
#endif

#if (defined(GL_NV_PIXEL_DATA_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PIXEL_DATA_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_NV_PIXEL_DATA_RANGE)
#define REGAL_NO_DECLARATION_GL_NV_PIXEL_DATA_RANGE
#endif

#ifndef GL_NV_pixel_data_range
#define GL_NV_pixel_data_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PIXEL_DATA_RANGE
#define GL_WRITE_PIXEL_DATA_RANGE_NV         0x8878     /* 34936 */
#define GL_READ_PIXEL_DATA_RANGE_NV          0x8879     /* 34937 */
#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV  0x887a     /* 34938 */
#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV   0x887b     /* 34939 */
#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887c     /* 34940 */
#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV  0x887d     /* 34941 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_PIXEL_DATA_RANGE
typedef void (REGAL_CALL *PFNGLFLUSHPIXELDATARANGENVPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLPIXELDATARANGENVPROC)(GLenum target, GLsizei size, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_PIXEL_DATA_RANGE
#define glFlushPixelDataRangeNV             rglFlushPixelDataRangeNV
#define glPixelDataRangeNV                  rglPixelDataRangeNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_PIXEL_DATA_RANGE
REGAL_DECL void REGAL_CALL glFlushPixelDataRangeNV(GLenum target);
REGAL_DECL void REGAL_CALL glPixelDataRangeNV(GLenum target, GLsizei size, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_PIXEL_DATA_RANGE
REGAL_DECL void REGAL_CALL plugin_glFlushPixelDataRangeNV(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glPixelDataRangeNV(GLenum target, GLsizei size, const GLvoid *pointer);
#endif

/**
 ** GL_NV_platform_binary
 **/

#if (defined(GL_NV_PLATFORM_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PLATFORM_BINARY)) && !defined(REGAL_NO_ENUM_GL_NV_PLATFORM_BINARY)
#define REGAL_NO_ENUM_GL_NV_PLATFORM_BINARY
#endif

#if (defined(GL_NV_PLATFORM_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PLATFORM_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PLATFORM_BINARY)
#define REGAL_NO_TYPEDEF_GL_NV_PLATFORM_BINARY
#endif

#if (defined(GL_NV_PLATFORM_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PLATFORM_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PLATFORM_BINARY)
#define REGAL_NO_NAMESPACE_GL_NV_PLATFORM_BINARY
#endif

#if (defined(GL_NV_PLATFORM_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PLATFORM_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_NV_PLATFORM_BINARY)
#define REGAL_NO_PLUGIN_GL_NV_PLATFORM_BINARY
#endif

#if (defined(GL_NV_PLATFORM_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PLATFORM_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_NV_PLATFORM_BINARY)
#define REGAL_NO_DECLARATION_GL_NV_PLATFORM_BINARY
#endif

#ifndef GL_NV_platform_binary
#define GL_NV_platform_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PLATFORM_BINARY
#define GL_NVIDIA_PLATFORM_BINARY_NV 0x890b /* 35083 */
#endif

/**
 ** GL_NV_point_sprite
 **/

#if (defined(GL_NV_POINT_SPRITE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_POINT_SPRITE)) && !defined(REGAL_NO_ENUM_GL_NV_POINT_SPRITE)
#define REGAL_NO_ENUM_GL_NV_POINT_SPRITE
#endif

#if (defined(GL_NV_POINT_SPRITE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_POINT_SPRITE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_POINT_SPRITE)
#define REGAL_NO_TYPEDEF_GL_NV_POINT_SPRITE
#endif

#if (defined(GL_NV_POINT_SPRITE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_POINT_SPRITE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_POINT_SPRITE)
#define REGAL_NO_NAMESPACE_GL_NV_POINT_SPRITE
#endif

#if (defined(GL_NV_POINT_SPRITE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_POINT_SPRITE)) && !defined(REGAL_NO_PLUGIN_GL_NV_POINT_SPRITE)
#define REGAL_NO_PLUGIN_GL_NV_POINT_SPRITE
#endif

#if (defined(GL_NV_POINT_SPRITE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_POINT_SPRITE)) && !defined(REGAL_NO_DECLARATION_GL_NV_POINT_SPRITE)
#define REGAL_NO_DECLARATION_GL_NV_POINT_SPRITE
#endif

#ifndef GL_NV_point_sprite
#define GL_NV_point_sprite 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_POINT_SPRITE
#define GL_POINT_SPRITE_NV        0x8861     /* 34913 */
#define GL_COORD_REPLACE_NV       0x8862     /* 34914 */
#define GL_POINT_SPRITE_R_MODE_NV 0x8863     /* 34915 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_POINT_SPRITE
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERINVPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERIVNVPROC)(GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_POINT_SPRITE
#define glPointParameteriNV                 rglPointParameteriNV
#define glPointParameterivNV                rglPointParameterivNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_POINT_SPRITE
REGAL_DECL void REGAL_CALL glPointParameteriNV(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glPointParameterivNV(GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_POINT_SPRITE
REGAL_DECL void REGAL_CALL plugin_glPointParameteriNV(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glPointParameterivNV(GLenum pname, const GLint *params);
#endif

/**
 ** GL_NV_present_video
 **/

#if (defined(GL_NV_PRESENT_VIDEO) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_ENUM_GL_NV_PRESENT_VIDEO)
#define REGAL_NO_ENUM_GL_NV_PRESENT_VIDEO
#endif

#if (defined(GL_NV_PRESENT_VIDEO) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PRESENT_VIDEO)
#define REGAL_NO_TYPEDEF_GL_NV_PRESENT_VIDEO
#endif

#if (defined(GL_NV_PRESENT_VIDEO) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PRESENT_VIDEO)
#define REGAL_NO_NAMESPACE_GL_NV_PRESENT_VIDEO
#endif

#if (defined(GL_NV_PRESENT_VIDEO) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_PLUGIN_GL_NV_PRESENT_VIDEO)
#define REGAL_NO_PLUGIN_GL_NV_PRESENT_VIDEO
#endif

#if (defined(GL_NV_PRESENT_VIDEO) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_DECLARATION_GL_NV_PRESENT_VIDEO)
#define REGAL_NO_DECLARATION_GL_NV_PRESENT_VIDEO
#endif

#ifndef GL_NV_present_video
#define GL_NV_present_video 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PRESENT_VIDEO
#define GL_FRAME_NV            0x8e26     /* 36390 */
#define GL_FIELDS_NV           0x8e27     /* 36391 */
#define GL_CURRENT_TIME_NV     0x8e28     /* 36392 */
#define GL_NUM_FILL_STREAMS_NV 0x8e29     /* 36393 */
#define GL_PRESENT_TIME_NV     0x8e2a     /* 36394 */
#define GL_PRESENT_DURATION_NV 0x8e2b     /* 36395 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_PRESENT_VIDEO
typedef void (REGAL_CALL *PFNGLGETVIDEOI64VNVPROC)(GLuint video_slot, GLenum pname, GLint64EXT *params);
typedef void (REGAL_CALL *PFNGLGETVIDEOIVNVPROC)(GLuint video_slot, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVIDEOUI64VNVPROC)(GLuint video_slot, GLenum pname, GLuint64EXT *params);
typedef void (REGAL_CALL *PFNGLGETVIDEOUIVNVPROC)(GLuint video_slot, GLenum pname, GLuint *params);
typedef void (REGAL_CALL *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 (REGAL_CALL *PFNGLPRESENTFRAMEKEYEDNVPROC)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_PRESENT_VIDEO
#define glGetVideoi64vNV                    rglGetVideoi64vNV
#define glGetVideoivNV                      rglGetVideoivNV
#define glGetVideoui64vNV                   rglGetVideoui64vNV
#define glGetVideouivNV                     rglGetVideouivNV
#define glPresentFrameDualFillNV            rglPresentFrameDualFillNV
#define glPresentFrameKeyedNV               rglPresentFrameKeyedNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_PRESENT_VIDEO
REGAL_DECL void REGAL_CALL glGetVideoi64vNV(GLuint video_slot, GLenum pname, GLint64EXT *params);
REGAL_DECL void REGAL_CALL glGetVideoivNV(GLuint video_slot, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetVideoui64vNV(GLuint video_slot, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL glGetVideouivNV(GLuint video_slot, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glPresentFrameDualFillNV(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);
REGAL_DECL void REGAL_CALL glPresentFrameKeyedNV(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_PRESENT_VIDEO
REGAL_DECL void REGAL_CALL plugin_glGetVideoi64vNV(GLuint video_slot, GLenum pname, GLint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glGetVideoivNV(GLuint video_slot, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVideoui64vNV(GLuint video_slot, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glGetVideouivNV(GLuint video_slot, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glPresentFrameDualFillNV(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);
REGAL_DECL void REGAL_CALL plugin_glPresentFrameKeyedNV(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
#endif

/**
 ** GL_NV_primitive_restart
 **/

#if (defined(GL_NV_PRIMITIVE_RESTART) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_PRIMITIVE_RESTART)) && !defined(REGAL_NO_ENUM_GL_NV_PRIMITIVE_RESTART)
#define REGAL_NO_ENUM_GL_NV_PRIMITIVE_RESTART
#endif

#if (defined(GL_NV_PRIMITIVE_RESTART) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_PRIMITIVE_RESTART)) && !defined(REGAL_NO_TYPEDEF_GL_NV_PRIMITIVE_RESTART)
#define REGAL_NO_TYPEDEF_GL_NV_PRIMITIVE_RESTART
#endif

#if (defined(GL_NV_PRIMITIVE_RESTART) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_PRIMITIVE_RESTART)) && !defined(REGAL_NO_NAMESPACE_GL_NV_PRIMITIVE_RESTART)
#define REGAL_NO_NAMESPACE_GL_NV_PRIMITIVE_RESTART
#endif

#if (defined(GL_NV_PRIMITIVE_RESTART) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_PRIMITIVE_RESTART)) && !defined(REGAL_NO_PLUGIN_GL_NV_PRIMITIVE_RESTART)
#define REGAL_NO_PLUGIN_GL_NV_PRIMITIVE_RESTART
#endif

#if (defined(GL_NV_PRIMITIVE_RESTART) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_PRIMITIVE_RESTART)) && !defined(REGAL_NO_DECLARATION_GL_NV_PRIMITIVE_RESTART)
#define REGAL_NO_DECLARATION_GL_NV_PRIMITIVE_RESTART
#endif

#ifndef GL_NV_primitive_restart
#define GL_NV_primitive_restart 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_PRIMITIVE_RESTART
#define GL_PRIMITIVE_RESTART_NV       0x8558     /* 34136 */
#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559     /* 34137 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_PRIMITIVE_RESTART
typedef void (REGAL_CALL *PFNGLPRIMITIVERESTARTINDEXNVPROC)(GLuint index);
typedef void (REGAL_CALL *PFNGLPRIMITIVERESTARTNVPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_PRIMITIVE_RESTART
#define glPrimitiveRestartIndexNV           rglPrimitiveRestartIndexNV
#define glPrimitiveRestartNV                rglPrimitiveRestartNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_PRIMITIVE_RESTART
REGAL_DECL void REGAL_CALL glPrimitiveRestartIndexNV(GLuint index);
REGAL_DECL void REGAL_CALL glPrimitiveRestartNV(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_PRIMITIVE_RESTART
REGAL_DECL void REGAL_CALL plugin_glPrimitiveRestartIndexNV(GLuint index);
REGAL_DECL void REGAL_CALL plugin_glPrimitiveRestartNV(void);
#endif

/**
 ** GL_NV_read_buffer
 **/

#if (defined(GL_NV_READ_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_READ_BUFFER)) && !defined(REGAL_NO_ENUM_GL_NV_READ_BUFFER)
#define REGAL_NO_ENUM_GL_NV_READ_BUFFER
#endif

#if (defined(GL_NV_READ_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_READ_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_NV_READ_BUFFER)
#define REGAL_NO_TYPEDEF_GL_NV_READ_BUFFER
#endif

#if (defined(GL_NV_READ_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_READ_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_NV_READ_BUFFER)
#define REGAL_NO_NAMESPACE_GL_NV_READ_BUFFER
#endif

#if (defined(GL_NV_READ_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_READ_BUFFER)) && !defined(REGAL_NO_PLUGIN_GL_NV_READ_BUFFER)
#define REGAL_NO_PLUGIN_GL_NV_READ_BUFFER
#endif

#if (defined(GL_NV_READ_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_READ_BUFFER)) && !defined(REGAL_NO_DECLARATION_GL_NV_READ_BUFFER)
#define REGAL_NO_DECLARATION_GL_NV_READ_BUFFER
#endif

#ifndef GL_NV_read_buffer
#define GL_NV_read_buffer 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_READ_BUFFER
typedef void (REGAL_CALL *PFNGLREADBUFFERNVPROC)(GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_READ_BUFFER
#define glReadBufferNV                      rglReadBufferNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_READ_BUFFER
REGAL_DECL void REGAL_CALL glReadBufferNV(GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_READ_BUFFER
REGAL_DECL void REGAL_CALL plugin_glReadBufferNV(GLenum mode);
#endif

/**
 ** GL_NV_read_buffer_front
 **/

#if (defined(GL_NV_READ_BUFFER_FRONT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_READ_BUFFER_FRONT)) && !defined(REGAL_NO_ENUM_GL_NV_READ_BUFFER_FRONT)
#define REGAL_NO_ENUM_GL_NV_READ_BUFFER_FRONT
#endif

#if (defined(GL_NV_READ_BUFFER_FRONT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_READ_BUFFER_FRONT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_READ_BUFFER_FRONT)
#define REGAL_NO_TYPEDEF_GL_NV_READ_BUFFER_FRONT
#endif

#if (defined(GL_NV_READ_BUFFER_FRONT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_READ_BUFFER_FRONT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_READ_BUFFER_FRONT)
#define REGAL_NO_NAMESPACE_GL_NV_READ_BUFFER_FRONT
#endif

#if (defined(GL_NV_READ_BUFFER_FRONT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_READ_BUFFER_FRONT)) && !defined(REGAL_NO_PLUGIN_GL_NV_READ_BUFFER_FRONT)
#define REGAL_NO_PLUGIN_GL_NV_READ_BUFFER_FRONT
#endif

#if (defined(GL_NV_READ_BUFFER_FRONT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_READ_BUFFER_FRONT)) && !defined(REGAL_NO_DECLARATION_GL_NV_READ_BUFFER_FRONT)
#define REGAL_NO_DECLARATION_GL_NV_READ_BUFFER_FRONT
#endif

#ifndef GL_NV_read_buffer_front
#define GL_NV_read_buffer_front 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_READ_BUFFER_FRONT
#define GL_READ_BUFFER_NV 0xc02 /* 3074 */
#endif

/**
 ** GL_NV_register_combiners
 **/

#if (defined(GL_NV_REGISTER_COMBINERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS)) && !defined(REGAL_NO_ENUM_GL_NV_REGISTER_COMBINERS)
#define REGAL_NO_ENUM_GL_NV_REGISTER_COMBINERS
#endif

#if (defined(GL_NV_REGISTER_COMBINERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS)) && !defined(REGAL_NO_TYPEDEF_GL_NV_REGISTER_COMBINERS)
#define REGAL_NO_TYPEDEF_GL_NV_REGISTER_COMBINERS
#endif

#if (defined(GL_NV_REGISTER_COMBINERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS)) && !defined(REGAL_NO_NAMESPACE_GL_NV_REGISTER_COMBINERS)
#define REGAL_NO_NAMESPACE_GL_NV_REGISTER_COMBINERS
#endif

#if (defined(GL_NV_REGISTER_COMBINERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS)) && !defined(REGAL_NO_PLUGIN_GL_NV_REGISTER_COMBINERS)
#define REGAL_NO_PLUGIN_GL_NV_REGISTER_COMBINERS
#endif

#if (defined(GL_NV_REGISTER_COMBINERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS)) && !defined(REGAL_NO_DECLARATION_GL_NV_REGISTER_COMBINERS)
#define REGAL_NO_DECLARATION_GL_NV_REGISTER_COMBINERS
#endif

#ifndef GL_NV_register_combiners
#define GL_NV_register_combiners 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_REGISTER_COMBINERS
#define GL_REGISTER_COMBINERS_NV          0x8522     /* 34082 */
#define GL_VARIABLE_A_NV                  0x8523     /* 34083 */
#define GL_VARIABLE_B_NV                  0x8524     /* 34084 */
#define GL_VARIABLE_C_NV                  0x8525     /* 34085 */
#define GL_VARIABLE_D_NV                  0x8526     /* 34086 */
#define GL_VARIABLE_E_NV                  0x8527     /* 34087 */
#define GL_VARIABLE_F_NV                  0x8528     /* 34088 */
#define GL_VARIABLE_G_NV                  0x8529     /* 34089 */
#define GL_CONSTANT_COLOR0_NV             0x852a     /* 34090 */
#define GL_CONSTANT_COLOR1_NV             0x852b     /* 34091 */
#define GL_PRIMARY_COLOR_NV               0x852c     /* 34092 */
#define GL_SECONDARY_COLOR_NV             0x852d     /* 34093 */
#define GL_SPARE0_NV                      0x852e     /* 34094 */
#define GL_SPARE1_NV                      0x852f     /* 34095 */
#define GL_DISCARD_NV                     0x8530     /* 34096 */
#define GL_E_TIMES_F_NV                   0x8531     /* 34097 */
#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532     /* 34098 */
#define GL_UNSIGNED_IDENTITY_NV           0x8536     /* 34102 */
#define GL_UNSIGNED_INVERT_NV             0x8537     /* 34103 */
#define GL_EXPAND_NORMAL_NV               0x8538     /* 34104 */
#define GL_EXPAND_NEGATE_NV               0x8539     /* 34105 */
#define GL_HALF_BIAS_NORMAL_NV            0x853a     /* 34106 */
#define GL_HALF_BIAS_NEGATE_NV            0x853b     /* 34107 */
#define GL_SIGNED_IDENTITY_NV             0x853c     /* 34108 */
#define GL_SIGNED_NEGATE_NV               0x853d     /* 34109 */
#define GL_SCALE_BY_TWO_NV                0x853e     /* 34110 */
#define GL_SCALE_BY_FOUR_NV               0x853f     /* 34111 */
#define GL_SCALE_BY_ONE_HALF_NV           0x8540     /* 34112 */
#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV   0x8541     /* 34113 */
#define GL_COMBINER_INPUT_NV              0x8542     /* 34114 */
#define GL_COMBINER_MAPPING_NV            0x8543     /* 34115 */
#define GL_COMBINER_COMPONENT_USAGE_NV    0x8544     /* 34116 */
#define GL_COMBINER_AB_DOT_PRODUCT_NV     0x8545     /* 34117 */
#define GL_COMBINER_CD_DOT_PRODUCT_NV     0x8546     /* 34118 */
#define GL_COMBINER_MUX_SUM_NV            0x8547     /* 34119 */
#define GL_COMBINER_SCALE_NV              0x8548     /* 34120 */
#define GL_COMBINER_BIAS_NV               0x8549     /* 34121 */
#define GL_COMBINER_AB_OUTPUT_NV          0x854a     /* 34122 */
#define GL_COMBINER_CD_OUTPUT_NV          0x854b     /* 34123 */
#define GL_COMBINER_SUM_OUTPUT_NV         0x854c     /* 34124 */
#define GL_MAX_GENERAL_COMBINERS_NV       0x854d     /* 34125 */
#define GL_NUM_GENERAL_COMBINERS_NV       0x854e     /* 34126 */
#define GL_COLOR_SUM_CLAMP_NV             0x854f     /* 34127 */
#define GL_COMBINER0_NV                   0x8550     /* 34128 */
#define GL_COMBINER1_NV                   0x8551     /* 34129 */
#define GL_COMBINER2_NV                   0x8552     /* 34130 */
#define GL_COMBINER3_NV                   0x8553     /* 34131 */
#define GL_COMBINER4_NV                   0x8554     /* 34132 */
#define GL_COMBINER5_NV                   0x8555     /* 34133 */
#define GL_COMBINER6_NV                   0x8556     /* 34134 */
#define GL_COMBINER7_NV                   0x8557     /* 34135 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_REGISTER_COMBINERS
typedef void (REGAL_CALL *PFNGLCOMBINERINPUTNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
typedef void (REGAL_CALL *PFNGLCOMBINEROUTPUTNVPROC)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
typedef void (REGAL_CALL *PFNGLCOMBINERPARAMETERFNVPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLCOMBINERPARAMETERFVNVPROC)(GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLCOMBINERPARAMETERINVPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLCOMBINERPARAMETERIVNVPROC)(GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLFINALCOMBINERINPUTNVPROC)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
typedef void (REGAL_CALL *PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)(GLenum variable, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)(GLenum variable, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_REGISTER_COMBINERS
#define glCombinerInputNV                   rglCombinerInputNV
#define glCombinerOutputNV                  rglCombinerOutputNV
#define glCombinerParameterfNV              rglCombinerParameterfNV
#define glCombinerParameterfvNV             rglCombinerParameterfvNV
#define glCombinerParameteriNV              rglCombinerParameteriNV
#define glCombinerParameterivNV             rglCombinerParameterivNV
#define glFinalCombinerInputNV              rglFinalCombinerInputNV
#define glGetCombinerInputParameterfvNV     rglGetCombinerInputParameterfvNV
#define glGetCombinerInputParameterivNV     rglGetCombinerInputParameterivNV
#define glGetCombinerOutputParameterfvNV    rglGetCombinerOutputParameterfvNV
#define glGetCombinerOutputParameterivNV    rglGetCombinerOutputParameterivNV
#define glGetFinalCombinerInputParameterfvNV rglGetFinalCombinerInputParameterfvNV
#define glGetFinalCombinerInputParameterivNV rglGetFinalCombinerInputParameterivNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_REGISTER_COMBINERS
REGAL_DECL void REGAL_CALL glCombinerInputNV(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
REGAL_DECL void REGAL_CALL glCombinerOutputNV(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
REGAL_DECL void REGAL_CALL glCombinerParameterfNV(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glCombinerParameterfvNV(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glCombinerParameteriNV(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glCombinerParameterivNV(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glFinalCombinerInputNV(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
REGAL_DECL void REGAL_CALL glGetCombinerInputParameterfvNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetCombinerInputParameterivNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetCombinerOutputParameterfvNV(GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetCombinerOutputParameterivNV(GLenum stage, GLenum portion, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetFinalCombinerInputParameterfvNV(GLenum variable, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetFinalCombinerInputParameterivNV(GLenum variable, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_REGISTER_COMBINERS
REGAL_DECL void REGAL_CALL plugin_glCombinerInputNV(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
REGAL_DECL void REGAL_CALL plugin_glCombinerOutputNV(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
REGAL_DECL void REGAL_CALL plugin_glCombinerParameterfNV(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glCombinerParameterfvNV(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glCombinerParameteriNV(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glCombinerParameterivNV(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glFinalCombinerInputNV(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
REGAL_DECL void REGAL_CALL plugin_glGetCombinerInputParameterfvNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetCombinerInputParameterivNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetCombinerOutputParameterfvNV(GLenum stage, GLenum portion, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetCombinerOutputParameterivNV(GLenum stage, GLenum portion, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetFinalCombinerInputParameterfvNV(GLenum variable, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetFinalCombinerInputParameterivNV(GLenum variable, GLenum pname, GLint *params);
#endif

/**
 ** GL_NV_register_combiners2
 **/

#if (defined(GL_NV_REGISTER_COMBINERS2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS2)) && !defined(REGAL_NO_ENUM_GL_NV_REGISTER_COMBINERS2)
#define REGAL_NO_ENUM_GL_NV_REGISTER_COMBINERS2
#endif

#if (defined(GL_NV_REGISTER_COMBINERS2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS2)) && !defined(REGAL_NO_TYPEDEF_GL_NV_REGISTER_COMBINERS2)
#define REGAL_NO_TYPEDEF_GL_NV_REGISTER_COMBINERS2
#endif

#if (defined(GL_NV_REGISTER_COMBINERS2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS2)) && !defined(REGAL_NO_NAMESPACE_GL_NV_REGISTER_COMBINERS2)
#define REGAL_NO_NAMESPACE_GL_NV_REGISTER_COMBINERS2
#endif

#if (defined(GL_NV_REGISTER_COMBINERS2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS2)) && !defined(REGAL_NO_PLUGIN_GL_NV_REGISTER_COMBINERS2)
#define REGAL_NO_PLUGIN_GL_NV_REGISTER_COMBINERS2
#endif

#if (defined(GL_NV_REGISTER_COMBINERS2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_REGISTER_COMBINERS2)) && !defined(REGAL_NO_DECLARATION_GL_NV_REGISTER_COMBINERS2)
#define REGAL_NO_DECLARATION_GL_NV_REGISTER_COMBINERS2
#endif

#ifndef GL_NV_register_combiners2
#define GL_NV_register_combiners2 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_REGISTER_COMBINERS2
#define GL_PER_STAGE_CONSTANTS_NV 0x8535 /* 34101 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_REGISTER_COMBINERS2
typedef void (REGAL_CALL *PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, GLfloat *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_REGISTER_COMBINERS2
#define glCombinerStageParameterfvNV        rglCombinerStageParameterfvNV
#define glGetCombinerStageParameterfvNV     rglGetCombinerStageParameterfvNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_REGISTER_COMBINERS2
REGAL_DECL void REGAL_CALL glCombinerStageParameterfvNV(GLenum stage, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glGetCombinerStageParameterfvNV(GLenum stage, GLenum pname, GLfloat *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_REGISTER_COMBINERS2
REGAL_DECL void REGAL_CALL plugin_glCombinerStageParameterfvNV(GLenum stage, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetCombinerStageParameterfvNV(GLenum stage, GLenum pname, GLfloat *params);
#endif

/**
 ** GL_NV_sRGB_formats
 **/

#if (defined(GL_NV_SRGB_FORMATS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_SRGB_FORMATS)) && !defined(REGAL_NO_ENUM_GL_NV_SRGB_FORMATS)
#define REGAL_NO_ENUM_GL_NV_SRGB_FORMATS
#endif

#if (defined(GL_NV_SRGB_FORMATS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_SRGB_FORMATS)) && !defined(REGAL_NO_TYPEDEF_GL_NV_SRGB_FORMATS)
#define REGAL_NO_TYPEDEF_GL_NV_SRGB_FORMATS
#endif

#if (defined(GL_NV_SRGB_FORMATS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_SRGB_FORMATS)) && !defined(REGAL_NO_NAMESPACE_GL_NV_SRGB_FORMATS)
#define REGAL_NO_NAMESPACE_GL_NV_SRGB_FORMATS
#endif

#if (defined(GL_NV_SRGB_FORMATS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_SRGB_FORMATS)) && !defined(REGAL_NO_PLUGIN_GL_NV_SRGB_FORMATS)
#define REGAL_NO_PLUGIN_GL_NV_SRGB_FORMATS
#endif

#if (defined(GL_NV_SRGB_FORMATS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_SRGB_FORMATS)) && !defined(REGAL_NO_DECLARATION_GL_NV_SRGB_FORMATS)
#define REGAL_NO_DECLARATION_GL_NV_SRGB_FORMATS
#endif

#ifndef GL_NV_sRGB_formats
#define GL_NV_sRGB_formats 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_SRGB_FORMATS
#define GL_ETC1_SRGB8_NV                      0x88ee     /* 35054 */
#define GL_SRGB8_NV                           0x8c41     /* 35905 */
#define GL_SLUMINANCE_ALPHA_NV                0x8c44     /* 35908 */
#define GL_SLUMINANCE8_ALPHA8_NV              0x8c45     /* 35909 */
#define GL_SLUMINANCE_NV                      0x8c46     /* 35910 */
#define GL_SLUMINANCE8_NV                     0x8c47     /* 35911 */
#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV       0x8c4c     /* 35916 */
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV 0x8c4d     /* 35917 */
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV 0x8c4e     /* 35918 */
#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV 0x8c4f     /* 35919 */
#endif

/**
 ** GL_NV_shader_buffer_load
 **/

#if (defined(GL_NV_SHADER_BUFFER_LOAD) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_SHADER_BUFFER_LOAD)) && !defined(REGAL_NO_ENUM_GL_NV_SHADER_BUFFER_LOAD)
#define REGAL_NO_ENUM_GL_NV_SHADER_BUFFER_LOAD
#endif

#if (defined(GL_NV_SHADER_BUFFER_LOAD) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_SHADER_BUFFER_LOAD)) && !defined(REGAL_NO_TYPEDEF_GL_NV_SHADER_BUFFER_LOAD)
#define REGAL_NO_TYPEDEF_GL_NV_SHADER_BUFFER_LOAD
#endif

#if (defined(GL_NV_SHADER_BUFFER_LOAD) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_SHADER_BUFFER_LOAD)) && !defined(REGAL_NO_NAMESPACE_GL_NV_SHADER_BUFFER_LOAD)
#define REGAL_NO_NAMESPACE_GL_NV_SHADER_BUFFER_LOAD
#endif

#if (defined(GL_NV_SHADER_BUFFER_LOAD) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_SHADER_BUFFER_LOAD)) && !defined(REGAL_NO_PLUGIN_GL_NV_SHADER_BUFFER_LOAD)
#define REGAL_NO_PLUGIN_GL_NV_SHADER_BUFFER_LOAD
#endif

#if (defined(GL_NV_SHADER_BUFFER_LOAD) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_SHADER_BUFFER_LOAD)) && !defined(REGAL_NO_DECLARATION_GL_NV_SHADER_BUFFER_LOAD)
#define REGAL_NO_DECLARATION_GL_NV_SHADER_BUFFER_LOAD
#endif

#ifndef GL_NV_shader_buffer_load
#define GL_NV_shader_buffer_load 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_SHADER_BUFFER_LOAD
#define GL_BUFFER_GPU_ADDRESS_NV        0x8f1d     /* 36637 */
#define GL_GPU_ADDRESS_NV               0x8f34     /* 36660 */
#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8f35     /* 36661 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_SHADER_BUFFER_LOAD
typedef GLboolean (REGAL_CALL *PFNGLISBUFFERRESIDENTNVPROC)(GLenum target);
typedef GLboolean (REGAL_CALL *PFNGLISNAMEDBUFFERRESIDENTNVPROC)(GLuint buffer);
typedef void (REGAL_CALL *PFNGLGETBUFFERPARAMETERUI64VNVPROC)(GLenum target, GLenum pname, GLuint64EXT *params);
typedef void (REGAL_CALL *PFNGLGETINTEGERUI64VNVPROC)(GLenum target, GLuint64EXT *data);
typedef void (REGAL_CALL *PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)(GLuint buffer, GLenum pname, GLuint64EXT *params);
typedef void (REGAL_CALL *PFNGLGETUNIFORMUI64VNVPROC)(GLuint program, GLint location, GLuint64EXT *params);
typedef void (REGAL_CALL *PFNGLMAKEBUFFERNONRESIDENTNVPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLMAKEBUFFERRESIDENTNVPROC)(GLenum target, GLenum access);
typedef void (REGAL_CALL *PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)(GLuint buffer);
typedef void (REGAL_CALL *PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)(GLuint buffer, GLenum access);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMUI64NVPROC)(GLuint program, GLint location, GLuint64EXT v0);
typedef void (REGAL_CALL *PFNGLPROGRAMUNIFORMUI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
typedef void (REGAL_CALL *PFNGLUNIFORMUI64NVPROC)(GLint location, GLuint64EXT v0);
typedef void (REGAL_CALL *PFNGLUNIFORMUI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT *value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_SHADER_BUFFER_LOAD
#define glGetBufferParameterui64vNV         rglGetBufferParameterui64vNV
#define glGetIntegerui64vNV                 rglGetIntegerui64vNV
#define glGetNamedBufferParameterui64vNV    rglGetNamedBufferParameterui64vNV
#define glGetUniformui64vNV                 rglGetUniformui64vNV
#define glIsBufferResidentNV                rglIsBufferResidentNV
#define glIsNamedBufferResidentNV           rglIsNamedBufferResidentNV
#define glMakeBufferNonResidentNV           rglMakeBufferNonResidentNV
#define glMakeBufferResidentNV              rglMakeBufferResidentNV
#define glMakeNamedBufferNonResidentNV      rglMakeNamedBufferNonResidentNV
#define glMakeNamedBufferResidentNV         rglMakeNamedBufferResidentNV
#define glProgramUniformui64NV              rglProgramUniformui64NV
#define glProgramUniformui64vNV             rglProgramUniformui64vNV
#define glUniformui64NV                     rglUniformui64NV
#define glUniformui64vNV                    rglUniformui64vNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_SHADER_BUFFER_LOAD
REGAL_DECL GLboolean REGAL_CALL glIsBufferResidentNV(GLenum target);
REGAL_DECL GLboolean REGAL_CALL glIsNamedBufferResidentNV(GLuint buffer);
REGAL_DECL void REGAL_CALL glGetBufferParameterui64vNV(GLenum target, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL glGetIntegerui64vNV(GLenum target, GLuint64EXT *data);
REGAL_DECL void REGAL_CALL glGetNamedBufferParameterui64vNV(GLuint buffer, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL glGetUniformui64vNV(GLuint program, GLint location, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL glMakeBufferNonResidentNV(GLenum target);
REGAL_DECL void REGAL_CALL glMakeBufferResidentNV(GLenum target, GLenum access);
REGAL_DECL void REGAL_CALL glMakeNamedBufferNonResidentNV(GLuint buffer);
REGAL_DECL void REGAL_CALL glMakeNamedBufferResidentNV(GLuint buffer, GLenum access);
REGAL_DECL void REGAL_CALL glProgramUniformui64NV(GLuint program, GLint location, GLuint64EXT v0);
REGAL_DECL void REGAL_CALL glProgramUniformui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL glUniformui64NV(GLint location, GLuint64EXT v0);
REGAL_DECL void REGAL_CALL glUniformui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_SHADER_BUFFER_LOAD
REGAL_DECL GLboolean REGAL_CALL plugin_glIsBufferResidentNV(GLenum target);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsNamedBufferResidentNV(GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glGetBufferParameterui64vNV(GLenum target, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glGetIntegerui64vNV(GLenum target, GLuint64EXT *data);
REGAL_DECL void REGAL_CALL plugin_glGetNamedBufferParameterui64vNV(GLuint buffer, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glGetUniformui64vNV(GLuint program, GLint location, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glMakeBufferNonResidentNV(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glMakeBufferResidentNV(GLenum target, GLenum access);
REGAL_DECL void REGAL_CALL plugin_glMakeNamedBufferNonResidentNV(GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glMakeNamedBufferResidentNV(GLuint buffer, GLenum access);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformui64NV(GLuint program, GLint location, GLuint64EXT v0);
REGAL_DECL void REGAL_CALL plugin_glProgramUniformui64vNV(GLuint program, GLint location, GLsizei count, const GLuint64EXT *value);
REGAL_DECL void REGAL_CALL plugin_glUniformui64NV(GLint location, GLuint64EXT v0);
REGAL_DECL void REGAL_CALL plugin_glUniformui64vNV(GLint location, GLsizei count, const GLuint64EXT *value);
#endif

/**
 ** GL_NV_shadow_samplers_array
 **/

#if (defined(GL_NV_SHADOW_SAMPLERS_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_ARRAY)) && !defined(REGAL_NO_ENUM_GL_NV_SHADOW_SAMPLERS_ARRAY)
#define REGAL_NO_ENUM_GL_NV_SHADOW_SAMPLERS_ARRAY
#endif

#if (defined(GL_NV_SHADOW_SAMPLERS_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_NV_SHADOW_SAMPLERS_ARRAY)
#define REGAL_NO_TYPEDEF_GL_NV_SHADOW_SAMPLERS_ARRAY
#endif

#if (defined(GL_NV_SHADOW_SAMPLERS_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_NV_SHADOW_SAMPLERS_ARRAY)
#define REGAL_NO_NAMESPACE_GL_NV_SHADOW_SAMPLERS_ARRAY
#endif

#if (defined(GL_NV_SHADOW_SAMPLERS_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_NV_SHADOW_SAMPLERS_ARRAY)
#define REGAL_NO_PLUGIN_GL_NV_SHADOW_SAMPLERS_ARRAY
#endif

#if (defined(GL_NV_SHADOW_SAMPLERS_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_NV_SHADOW_SAMPLERS_ARRAY)
#define REGAL_NO_DECLARATION_GL_NV_SHADOW_SAMPLERS_ARRAY
#endif

#ifndef GL_NV_shadow_samplers_array
#define GL_NV_shadow_samplers_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_SHADOW_SAMPLERS_ARRAY
#define GL_SAMPLER_2D_ARRAY_SHADOW_NV 0x8dc4 /* 36292 */
#endif

/**
 ** GL_NV_shadow_samplers_cube
 **/

#if (defined(GL_NV_SHADOW_SAMPLERS_CUBE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_CUBE)) && !defined(REGAL_NO_ENUM_GL_NV_SHADOW_SAMPLERS_CUBE)
#define REGAL_NO_ENUM_GL_NV_SHADOW_SAMPLERS_CUBE
#endif

#if (defined(GL_NV_SHADOW_SAMPLERS_CUBE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_CUBE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_SHADOW_SAMPLERS_CUBE)
#define REGAL_NO_TYPEDEF_GL_NV_SHADOW_SAMPLERS_CUBE
#endif

#if (defined(GL_NV_SHADOW_SAMPLERS_CUBE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_CUBE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_SHADOW_SAMPLERS_CUBE)
#define REGAL_NO_NAMESPACE_GL_NV_SHADOW_SAMPLERS_CUBE
#endif

#if (defined(GL_NV_SHADOW_SAMPLERS_CUBE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_CUBE)) && !defined(REGAL_NO_PLUGIN_GL_NV_SHADOW_SAMPLERS_CUBE)
#define REGAL_NO_PLUGIN_GL_NV_SHADOW_SAMPLERS_CUBE
#endif

#if (defined(GL_NV_SHADOW_SAMPLERS_CUBE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_SHADOW_SAMPLERS_CUBE)) && !defined(REGAL_NO_DECLARATION_GL_NV_SHADOW_SAMPLERS_CUBE)
#define REGAL_NO_DECLARATION_GL_NV_SHADOW_SAMPLERS_CUBE
#endif

#ifndef GL_NV_shadow_samplers_cube
#define GL_NV_shadow_samplers_cube 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_SHADOW_SAMPLERS_CUBE
#define GL_SAMPLER_CUBE_SHADOW_NV 0x8dc5 /* 36293 */
#endif

/**
 ** GL_NV_tessellation_program5
 **/

#if (defined(GL_NV_TESSELLATION_PROGRAM5) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TESSELLATION_PROGRAM5)) && !defined(REGAL_NO_ENUM_GL_NV_TESSELLATION_PROGRAM5)
#define REGAL_NO_ENUM_GL_NV_TESSELLATION_PROGRAM5
#endif

#if (defined(GL_NV_TESSELLATION_PROGRAM5) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TESSELLATION_PROGRAM5)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TESSELLATION_PROGRAM5)
#define REGAL_NO_TYPEDEF_GL_NV_TESSELLATION_PROGRAM5
#endif

#if (defined(GL_NV_TESSELLATION_PROGRAM5) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TESSELLATION_PROGRAM5)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TESSELLATION_PROGRAM5)
#define REGAL_NO_NAMESPACE_GL_NV_TESSELLATION_PROGRAM5
#endif

#if (defined(GL_NV_TESSELLATION_PROGRAM5) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TESSELLATION_PROGRAM5)) && !defined(REGAL_NO_PLUGIN_GL_NV_TESSELLATION_PROGRAM5)
#define REGAL_NO_PLUGIN_GL_NV_TESSELLATION_PROGRAM5
#endif

#if (defined(GL_NV_TESSELLATION_PROGRAM5) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TESSELLATION_PROGRAM5)) && !defined(REGAL_NO_DECLARATION_GL_NV_TESSELLATION_PROGRAM5)
#define REGAL_NO_DECLARATION_GL_NV_TESSELLATION_PROGRAM5
#endif

#ifndef GL_NV_tessellation_program5
#define GL_NV_tessellation_program5 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TESSELLATION_PROGRAM5
#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV                0x86d8     /* 34520 */
#define GL_TESS_CONTROL_PROGRAM_NV                     0x891e     /* 35102 */
#define GL_TESS_EVALUATION_PROGRAM_NV                  0x891f     /* 35103 */
#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV    0x8c74     /* 35956 */
#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8c75     /* 35957 */
#endif

/**
 ** GL_NV_texgen_emboss
 **/

#if (defined(GL_NV_TEXGEN_EMBOSS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXGEN_EMBOSS)) && !defined(REGAL_NO_ENUM_GL_NV_TEXGEN_EMBOSS)
#define REGAL_NO_ENUM_GL_NV_TEXGEN_EMBOSS
#endif

#if (defined(GL_NV_TEXGEN_EMBOSS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXGEN_EMBOSS)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXGEN_EMBOSS)
#define REGAL_NO_TYPEDEF_GL_NV_TEXGEN_EMBOSS
#endif

#if (defined(GL_NV_TEXGEN_EMBOSS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXGEN_EMBOSS)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXGEN_EMBOSS)
#define REGAL_NO_NAMESPACE_GL_NV_TEXGEN_EMBOSS
#endif

#if (defined(GL_NV_TEXGEN_EMBOSS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXGEN_EMBOSS)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXGEN_EMBOSS)
#define REGAL_NO_PLUGIN_GL_NV_TEXGEN_EMBOSS
#endif

#if (defined(GL_NV_TEXGEN_EMBOSS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXGEN_EMBOSS)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXGEN_EMBOSS)
#define REGAL_NO_DECLARATION_GL_NV_TEXGEN_EMBOSS
#endif

#ifndef GL_NV_texgen_emboss
#define GL_NV_texgen_emboss 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXGEN_EMBOSS
#define GL_EMBOSS_LIGHT_NV    0x855d     /* 34141 */
#define GL_EMBOSS_CONSTANT_NV 0x855e     /* 34142 */
#define GL_EMBOSS_MAP_NV      0x855f     /* 34143 */
#endif

/**
 ** GL_NV_texgen_reflection
 **/

#if (defined(GL_NV_TEXGEN_REFLECTION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXGEN_REFLECTION)) && !defined(REGAL_NO_ENUM_GL_NV_TEXGEN_REFLECTION)
#define REGAL_NO_ENUM_GL_NV_TEXGEN_REFLECTION
#endif

#if (defined(GL_NV_TEXGEN_REFLECTION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXGEN_REFLECTION)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXGEN_REFLECTION)
#define REGAL_NO_TYPEDEF_GL_NV_TEXGEN_REFLECTION
#endif

#if (defined(GL_NV_TEXGEN_REFLECTION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXGEN_REFLECTION)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXGEN_REFLECTION)
#define REGAL_NO_NAMESPACE_GL_NV_TEXGEN_REFLECTION
#endif

#if (defined(GL_NV_TEXGEN_REFLECTION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXGEN_REFLECTION)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXGEN_REFLECTION)
#define REGAL_NO_PLUGIN_GL_NV_TEXGEN_REFLECTION
#endif

#if (defined(GL_NV_TEXGEN_REFLECTION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXGEN_REFLECTION)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXGEN_REFLECTION)
#define REGAL_NO_DECLARATION_GL_NV_TEXGEN_REFLECTION
#endif

#ifndef GL_NV_texgen_reflection
#define GL_NV_texgen_reflection 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXGEN_REFLECTION
#define GL_NORMAL_MAP_NV     0x8511     /* 34065 */
#define GL_REFLECTION_MAP_NV 0x8512     /* 34066 */
#endif

/**
 ** GL_NV_texture_array
 **/

#if (defined(GL_NV_TEXTURE_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_ARRAY)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_ARRAY)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_ARRAY
#endif

#if (defined(GL_NV_TEXTURE_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_ARRAY)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_ARRAY
#endif

#if (defined(GL_NV_TEXTURE_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_ARRAY)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_ARRAY
#endif

#if (defined(GL_NV_TEXTURE_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_ARRAY)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_ARRAY
#endif

#if (defined(GL_NV_TEXTURE_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_ARRAY)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_ARRAY
#endif

#ifndef GL_NV_texture_array
#define GL_NV_texture_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_ARRAY
#define GL_UNPACK_SKIP_IMAGES_NV                   0x806d     /* 32877 */
#define GL_UNPACK_IMAGE_HEIGHT_NV                  0x806e     /* 32878 */
#define GL_MAX_ARRAY_TEXTURE_LAYERS_NV             0x88ff     /* 35071 */
#define GL_TEXTURE_2D_ARRAY_NV                     0x8c1a     /* 35866 */
#define GL_TEXTURE_BINDING_2D_ARRAY_NV             0x8c1d     /* 35869 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_NV 0x8cd4     /* 36052 */
#define GL_SAMPLER_2D_ARRAY_NV                     0x8dc1     /* 36289 */
#endif

/**
 ** GL_NV_texture_barrier
 **/

#if (defined(GL_NV_TEXTURE_BARRIER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_BARRIER)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_BARRIER)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_BARRIER
#endif

#if (defined(GL_NV_TEXTURE_BARRIER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_BARRIER)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_BARRIER)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_BARRIER
#endif

#if (defined(GL_NV_TEXTURE_BARRIER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_BARRIER)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_BARRIER)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_BARRIER
#endif

#if (defined(GL_NV_TEXTURE_BARRIER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_BARRIER)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_BARRIER)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_BARRIER
#endif

#if (defined(GL_NV_TEXTURE_BARRIER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_BARRIER)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_BARRIER)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_BARRIER
#endif

#ifndef GL_NV_texture_barrier
#define GL_NV_texture_barrier 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_TEXTURE_BARRIER
typedef void (REGAL_CALL *PFNGLTEXTUREBARRIERNVPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_TEXTURE_BARRIER
#define glTextureBarrierNV                  rglTextureBarrierNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_TEXTURE_BARRIER
REGAL_DECL void REGAL_CALL glTextureBarrierNV(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_TEXTURE_BARRIER
REGAL_DECL void REGAL_CALL plugin_glTextureBarrierNV(void);
#endif

/**
 ** GL_NV_texture_border_clamp
 **/

#if (defined(GL_NV_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_NV_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_NV_TEXTURE_BORDER_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_NV_TEXTURE_BORDER_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_NV_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_BORDER_CLAMP
#endif

#ifndef GL_NV_texture_border_clamp
#define GL_NV_texture_border_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_BORDER_CLAMP
#define GL_TEXTURE_BORDER_COLOR_NV 0x1004     /* 4100 */
#define GL_CLAMP_TO_BORDER_NV      0x812d     /* 33069 */
#endif

/**
 ** GL_NV_texture_compression_latc
 **/

#if (defined(GL_NV_TEXTURE_COMPRESSION_LATC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_COMPRESSION_LATC
#endif

#if (defined(GL_NV_TEXTURE_COMPRESSION_LATC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_COMPRESSION_LATC
#endif

#if (defined(GL_NV_TEXTURE_COMPRESSION_LATC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_COMPRESSION_LATC
#endif

#if (defined(GL_NV_TEXTURE_COMPRESSION_LATC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_COMPRESSION_LATC
#endif

#if (defined(GL_NV_TEXTURE_COMPRESSION_LATC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_LATC)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_COMPRESSION_LATC)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_COMPRESSION_LATC
#endif

#ifndef GL_NV_texture_compression_latc
#define GL_NV_texture_compression_latc 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_COMPRESSION_LATC
#define GL_COMPRESSED_LUMINANCE_LATC1_NV              0x8c70     /* 35952 */
#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_NV       0x8c71     /* 35953 */
#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_NV        0x8c72     /* 35954 */
#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_NV 0x8c73     /* 35955 */
#endif

/**
 ** GL_NV_texture_compression_s3tc
 **/

#if (defined(GL_NV_TEXTURE_COMPRESSION_S3TC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_COMPRESSION_S3TC
#endif

#if (defined(GL_NV_TEXTURE_COMPRESSION_S3TC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_COMPRESSION_S3TC
#endif

#if (defined(GL_NV_TEXTURE_COMPRESSION_S3TC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_COMPRESSION_S3TC
#endif

#if (defined(GL_NV_TEXTURE_COMPRESSION_S3TC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_COMPRESSION_S3TC
#endif

#if (defined(GL_NV_TEXTURE_COMPRESSION_S3TC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_COMPRESSION_S3TC)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_COMPRESSION_S3TC)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_COMPRESSION_S3TC
#endif

#ifndef GL_NV_texture_compression_s3tc
#define GL_NV_texture_compression_s3tc 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_COMPRESSION_S3TC
#define GL_COMPRESSED_RGB_S3TC_DXT1_NV  0x83f0     /* 33776 */
#define GL_COMPRESSED_RGBA_S3TC_DXT1_NV 0x83f1     /* 33777 */
#define GL_COMPRESSED_RGBA_S3TC_DXT3_NV 0x83f2     /* 33778 */
#define GL_COMPRESSED_RGBA_S3TC_DXT5_NV 0x83f3     /* 33779 */
#endif

/**
 ** GL_NV_texture_env_combine4
 **/

#if (defined(GL_NV_TEXTURE_ENV_COMBINE4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_ENV_COMBINE4)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_ENV_COMBINE4)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_ENV_COMBINE4
#endif

#if (defined(GL_NV_TEXTURE_ENV_COMBINE4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_ENV_COMBINE4)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_ENV_COMBINE4)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_ENV_COMBINE4
#endif

#if (defined(GL_NV_TEXTURE_ENV_COMBINE4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_ENV_COMBINE4)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_ENV_COMBINE4)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_ENV_COMBINE4
#endif

#if (defined(GL_NV_TEXTURE_ENV_COMBINE4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_ENV_COMBINE4)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_ENV_COMBINE4)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_ENV_COMBINE4
#endif

#if (defined(GL_NV_TEXTURE_ENV_COMBINE4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_ENV_COMBINE4)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_ENV_COMBINE4)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_ENV_COMBINE4
#endif

#ifndef GL_NV_texture_env_combine4
#define GL_NV_texture_env_combine4 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_ENV_COMBINE4
#define GL_COMBINE4_NV       0x8503     /* 34051 */
#define GL_SOURCE3_RGB_NV    0x8583     /* 34179 */
#define GL_SOURCE3_ALPHA_NV  0x858b     /* 34187 */
#define GL_OPERAND3_RGB_NV   0x8593     /* 34195 */
#define GL_OPERAND3_ALPHA_NV 0x859b     /* 34203 */
#endif

/**
 ** GL_NV_texture_expand_normal
 **/

#if (defined(GL_NV_TEXTURE_EXPAND_NORMAL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_EXPAND_NORMAL)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_EXPAND_NORMAL)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_EXPAND_NORMAL
#endif

#if (defined(GL_NV_TEXTURE_EXPAND_NORMAL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_EXPAND_NORMAL)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_EXPAND_NORMAL)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_EXPAND_NORMAL
#endif

#if (defined(GL_NV_TEXTURE_EXPAND_NORMAL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_EXPAND_NORMAL)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_EXPAND_NORMAL)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_EXPAND_NORMAL
#endif

#if (defined(GL_NV_TEXTURE_EXPAND_NORMAL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_EXPAND_NORMAL)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_EXPAND_NORMAL)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_EXPAND_NORMAL
#endif

#if (defined(GL_NV_TEXTURE_EXPAND_NORMAL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_EXPAND_NORMAL)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_EXPAND_NORMAL)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_EXPAND_NORMAL
#endif

#ifndef GL_NV_texture_expand_normal
#define GL_NV_texture_expand_normal 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_EXPAND_NORMAL
#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888f /* 34959 */
#endif

/**
 ** GL_NV_texture_multisample
 **/

#if (defined(GL_NV_TEXTURE_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_MULTISAMPLE
#endif

#if (defined(GL_NV_TEXTURE_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_MULTISAMPLE
#endif

#if (defined(GL_NV_TEXTURE_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_MULTISAMPLE
#endif

#if (defined(GL_NV_TEXTURE_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_MULTISAMPLE
#endif

#if (defined(GL_NV_TEXTURE_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_MULTISAMPLE
#endif

#ifndef GL_NV_texture_multisample
#define GL_NV_texture_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_MULTISAMPLE
#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045     /* 36933 */
#define GL_TEXTURE_COLOR_SAMPLES_NV    0x9046     /* 36934 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_TEXTURE_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
typedef void (REGAL_CALL *PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
typedef void (REGAL_CALL *PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
typedef void (REGAL_CALL *PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
typedef void (REGAL_CALL *PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
typedef void (REGAL_CALL *PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_TEXTURE_MULTISAMPLE
#define glTexImage2DMultisampleCoverageNV   rglTexImage2DMultisampleCoverageNV
#define glTexImage3DMultisampleCoverageNV   rglTexImage3DMultisampleCoverageNV
#define glTextureImage2DMultisampleCoverageNV rglTextureImage2DMultisampleCoverageNV
#define glTextureImage2DMultisampleNV       rglTextureImage2DMultisampleNV
#define glTextureImage3DMultisampleCoverageNV rglTextureImage3DMultisampleCoverageNV
#define glTextureImage3DMultisampleNV       rglTextureImage3DMultisampleNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_TEXTURE_MULTISAMPLE
REGAL_DECL void REGAL_CALL glTexImage2DMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL glTexImage3DMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL glTextureImage2DMultisampleCoverageNV(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL glTextureImage2DMultisampleNV(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL glTextureImage3DMultisampleCoverageNV(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL glTextureImage3DMultisampleNV(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_TEXTURE_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glTexImage2DMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL plugin_glTexImage3DMultisampleCoverageNV(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL plugin_glTextureImage2DMultisampleCoverageNV(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL plugin_glTextureImage2DMultisampleNV(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL plugin_glTextureImage3DMultisampleCoverageNV(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
REGAL_DECL void REGAL_CALL plugin_glTextureImage3DMultisampleNV(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
#endif

/**
 ** GL_NV_texture_rectangle
 **/

#if (defined(GL_NV_TEXTURE_RECTANGLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_RECTANGLE)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_RECTANGLE
#endif

#if (defined(GL_NV_TEXTURE_RECTANGLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_RECTANGLE)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_RECTANGLE
#endif

#if (defined(GL_NV_TEXTURE_RECTANGLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_RECTANGLE)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_RECTANGLE
#endif

#if (defined(GL_NV_TEXTURE_RECTANGLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_RECTANGLE)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_RECTANGLE
#endif

#if (defined(GL_NV_TEXTURE_RECTANGLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_RECTANGLE)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_RECTANGLE
#endif

#ifndef GL_NV_texture_rectangle
#define GL_NV_texture_rectangle 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_RECTANGLE
#define GL_TEXTURE_RECTANGLE_NV          0x84f5     /* 34037 */
#define GL_TEXTURE_BINDING_RECTANGLE_NV  0x84f6     /* 34038 */
#define GL_PROXY_TEXTURE_RECTANGLE_NV    0x84f7     /* 34039 */
#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84f8     /* 34040 */
#endif

/**
 ** GL_NV_texture_shader
 **/

#if (defined(GL_NV_TEXTURE_SHADER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER
#endif

#if (defined(GL_NV_TEXTURE_SHADER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_SHADER)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_SHADER
#endif

#if (defined(GL_NV_TEXTURE_SHADER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_SHADER)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_SHADER
#endif

#if (defined(GL_NV_TEXTURE_SHADER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_SHADER)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_SHADER
#endif

#if (defined(GL_NV_TEXTURE_SHADER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_SHADER)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_SHADER
#endif

#ifndef GL_NV_texture_shader
#define GL_NV_texture_shader 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER
#define GL_OFFSET_TEXTURE_RECTANGLE_NV               0x864c     /* 34380 */
#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV         0x864d     /* 34381 */
#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV          0x864e     /* 34382 */
#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV      0x86d9     /* 34521 */
#define GL_SHADER_CONSISTENT_NV                      0x86dd     /* 34525 */
#define GL_TEXTURE_SHADER_NV                         0x86de     /* 34526 */
#define GL_SHADER_OPERATION_NV                       0x86df     /* 34527 */
#define GL_CULL_MODES_NV                             0x86e0     /* 34528 */
#define GL_OFFSET_TEXTURE_2D_MATRIX_NV               0x86e1     /* 34529 */
#define GL_OFFSET_TEXTURE_MATRIX_NV                  0x86e1     /* 34529 */
#define GL_OFFSET_TEXTURE_2D_SCALE_NV                0x86e2     /* 34530 */
#define GL_OFFSET_TEXTURE_SCALE_NV                   0x86e2     /* 34530 */
#define GL_OFFSET_TEXTURE_2D_BIAS_NV                 0x86e3     /* 34531 */
#define GL_OFFSET_TEXTURE_BIAS_NV                    0x86e3     /* 34531 */
#define GL_PREVIOUS_TEXTURE_INPUT_NV                 0x86e4     /* 34532 */
#define GL_CONST_EYE_NV                              0x86e5     /* 34533 */
#define GL_PASS_THROUGH_NV                           0x86e6     /* 34534 */
#define GL_CULL_FRAGMENT_NV                          0x86e7     /* 34535 */
#define GL_OFFSET_TEXTURE_2D_NV                      0x86e8     /* 34536 */
#define GL_DEPENDENT_AR_TEXTURE_2D_NV                0x86e9     /* 34537 */
#define GL_DEPENDENT_GB_TEXTURE_2D_NV                0x86ea     /* 34538 */
#define GL_DOT_PRODUCT_NV                            0x86ec     /* 34540 */
#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV              0x86ed     /* 34541 */
#define GL_DOT_PRODUCT_TEXTURE_2D_NV                 0x86ee     /* 34542 */
#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV           0x86f0     /* 34544 */
#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV           0x86f1     /* 34545 */
#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV           0x86f2     /* 34546 */
#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86f3     /* 34547 */
#define GL_HI_SCALE_NV                               0x870e     /* 34574 */
#define GL_LO_SCALE_NV                               0x870f     /* 34575 */
#define GL_DS_SCALE_NV                               0x8710     /* 34576 */
#define GL_DT_SCALE_NV                               0x8711     /* 34577 */
#define GL_MAGNITUDE_SCALE_NV                        0x8712     /* 34578 */
#define GL_VIBRANCE_SCALE_NV                         0x8713     /* 34579 */
#define GL_HI_BIAS_NV                                0x8714     /* 34580 */
#define GL_LO_BIAS_NV                                0x8715     /* 34581 */
#define GL_DS_BIAS_NV                                0x8716     /* 34582 */
#define GL_DT_BIAS_NV                                0x8717     /* 34583 */
#define GL_MAGNITUDE_BIAS_NV                         0x8718     /* 34584 */
#define GL_VIBRANCE_BIAS_NV                          0x8719     /* 34585 */
#define GL_TEXTURE_BORDER_VALUES_NV                  0x871a     /* 34586 */
#define GL_TEXTURE_HI_SIZE_NV                        0x871b     /* 34587 */
#define GL_TEXTURE_LO_SIZE_NV                        0x871c     /* 34588 */
#define GL_TEXTURE_DS_SIZE_NV                        0x871d     /* 34589 */
#define GL_TEXTURE_DT_SIZE_NV                        0x871e     /* 34590 */
#define GL_TEXTURE_MAG_SIZE_NV                       0x871f     /* 34591 */
#endif

/**
 ** GL_NV_texture_shader2
 **/

#if (defined(GL_NV_TEXTURE_SHADER2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER2)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER2)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER2
#endif

#if (defined(GL_NV_TEXTURE_SHADER2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER2)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_SHADER2)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_SHADER2
#endif

#if (defined(GL_NV_TEXTURE_SHADER2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER2)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_SHADER2)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_SHADER2
#endif

#if (defined(GL_NV_TEXTURE_SHADER2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER2)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_SHADER2)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_SHADER2
#endif

#if (defined(GL_NV_TEXTURE_SHADER2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER2)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_SHADER2)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_SHADER2
#endif

#ifndef GL_NV_texture_shader2
#define GL_NV_texture_shader2 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER2
#define GL_UNSIGNED_INT_S8_S8_8_8_NV      0x86da     /* 34522 */
#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV  0x86db     /* 34523 */
#define GL_DSDT_MAG_INTENSITY_NV          0x86dc     /* 34524 */
#define GL_DOT_PRODUCT_TEXTURE_3D_NV      0x86ef     /* 34543 */
#define GL_HILO_NV                        0x86f4     /* 34548 */
#define GL_DSDT_NV                        0x86f5     /* 34549 */
#define GL_DSDT_MAG_NV                    0x86f6     /* 34550 */
#define GL_DSDT_MAG_VIB_NV                0x86f7     /* 34551 */
#define GL_HILO16_NV                      0x86f8     /* 34552 */
#define GL_SIGNED_HILO_NV                 0x86f9     /* 34553 */
#define GL_SIGNED_HILO16_NV               0x86fa     /* 34554 */
#define GL_SIGNED_RGBA_NV                 0x86fb     /* 34555 */
#define GL_SIGNED_RGBA8_NV                0x86fc     /* 34556 */
#define GL_SIGNED_RGB_NV                  0x86fe     /* 34558 */
#define GL_SIGNED_RGB8_NV                 0x86ff     /* 34559 */
#define GL_SIGNED_LUMINANCE_NV            0x8701     /* 34561 */
#define GL_SIGNED_LUMINANCE8_NV           0x8702     /* 34562 */
#define GL_SIGNED_LUMINANCE_ALPHA_NV      0x8703     /* 34563 */
#define GL_SIGNED_LUMINANCE8_ALPHA8_NV    0x8704     /* 34564 */
#define GL_SIGNED_ALPHA_NV                0x8705     /* 34565 */
#define GL_SIGNED_ALPHA8_NV               0x8706     /* 34566 */
#define GL_SIGNED_INTENSITY_NV            0x8707     /* 34567 */
#define GL_SIGNED_INTENSITY8_NV           0x8708     /* 34568 */
#define GL_DSDT8_NV                       0x8709     /* 34569 */
#define GL_DSDT8_MAG8_NV                  0x870a     /* 34570 */
#define GL_DSDT8_MAG8_INTENSITY8_NV       0x870b     /* 34571 */
#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV   0x870c     /* 34572 */
#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870d     /* 34573 */
#endif

/**
 ** GL_NV_texture_shader3
 **/

#if (defined(GL_NV_TEXTURE_SHADER3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER3)) && !defined(REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER3)
#define REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER3
#endif

#if (defined(GL_NV_TEXTURE_SHADER3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER3)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TEXTURE_SHADER3)
#define REGAL_NO_TYPEDEF_GL_NV_TEXTURE_SHADER3
#endif

#if (defined(GL_NV_TEXTURE_SHADER3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER3)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TEXTURE_SHADER3)
#define REGAL_NO_NAMESPACE_GL_NV_TEXTURE_SHADER3
#endif

#if (defined(GL_NV_TEXTURE_SHADER3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER3)) && !defined(REGAL_NO_PLUGIN_GL_NV_TEXTURE_SHADER3)
#define REGAL_NO_PLUGIN_GL_NV_TEXTURE_SHADER3
#endif

#if (defined(GL_NV_TEXTURE_SHADER3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TEXTURE_SHADER3)) && !defined(REGAL_NO_DECLARATION_GL_NV_TEXTURE_SHADER3)
#define REGAL_NO_DECLARATION_GL_NV_TEXTURE_SHADER3
#endif

#ifndef GL_NV_texture_shader3
#define GL_NV_texture_shader3 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TEXTURE_SHADER3
#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV              0x8850     /* 34896 */
#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV        0x8851     /* 34897 */
#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV       0x8852     /* 34898 */
#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853     /* 34899 */
#define GL_OFFSET_HILO_TEXTURE_2D_NV                    0x8854     /* 34900 */
#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV             0x8855     /* 34901 */
#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV         0x8856     /* 34902 */
#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV  0x8857     /* 34903 */
#define GL_DEPENDENT_HILO_TEXTURE_2D_NV                 0x8858     /* 34904 */
#define GL_DEPENDENT_RGB_TEXTURE_3D_NV                  0x8859     /* 34905 */
#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV            0x885a     /* 34906 */
#define GL_DOT_PRODUCT_PASS_THROUGH_NV                  0x885b     /* 34907 */
#define GL_DOT_PRODUCT_TEXTURE_1D_NV                    0x885c     /* 34908 */
#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV          0x885d     /* 34909 */
#define GL_HILO8_NV                                     0x885e     /* 34910 */
#define GL_SIGNED_HILO8_NV                              0x885f     /* 34911 */
#define GL_FORCE_BLUE_TO_ONE_NV                         0x8860     /* 34912 */
#endif

/**
 ** GL_NV_transform_feedback
 **/

#if (defined(GL_NV_TRANSFORM_FEEDBACK) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_ENUM_GL_NV_TRANSFORM_FEEDBACK)
#define REGAL_NO_ENUM_GL_NV_TRANSFORM_FEEDBACK
#endif

#if (defined(GL_NV_TRANSFORM_FEEDBACK) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TRANSFORM_FEEDBACK)
#define REGAL_NO_TYPEDEF_GL_NV_TRANSFORM_FEEDBACK
#endif

#if (defined(GL_NV_TRANSFORM_FEEDBACK) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TRANSFORM_FEEDBACK)
#define REGAL_NO_NAMESPACE_GL_NV_TRANSFORM_FEEDBACK
#endif

#if (defined(GL_NV_TRANSFORM_FEEDBACK) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_PLUGIN_GL_NV_TRANSFORM_FEEDBACK)
#define REGAL_NO_PLUGIN_GL_NV_TRANSFORM_FEEDBACK
#endif

#if (defined(GL_NV_TRANSFORM_FEEDBACK) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK)) && !defined(REGAL_NO_DECLARATION_GL_NV_TRANSFORM_FEEDBACK)
#define REGAL_NO_DECLARATION_GL_NV_TRANSFORM_FEEDBACK
#endif

#ifndef GL_NV_transform_feedback
#define GL_NV_transform_feedback 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TRANSFORM_FEEDBACK
#define GL_BACK_PRIMARY_COLOR_NV                            0x8c77     /* 35959 */
#define GL_BACK_SECONDARY_COLOR_NV                          0x8c78     /* 35960 */
#define GL_TEXTURE_COORD_NV                                 0x8c79     /* 35961 */
#define GL_CLIP_DISTANCE_NV                                 0x8c7a     /* 35962 */
#define GL_VERTEX_ID_NV                                     0x8c7b     /* 35963 */
#define GL_PRIMITIVE_ID_NV                                  0x8c7c     /* 35964 */
#define GL_GENERIC_ATTRIB_NV                                0x8c7d     /* 35965 */
#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV                    0x8c7e     /* 35966 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV                0x8c7f     /* 35967 */
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV    0x8c80     /* 35968 */
#define GL_ACTIVE_VARYINGS_NV                               0x8c81     /* 35969 */
#define GL_ACTIVE_VARYING_MAX_LENGTH_NV                     0x8c82     /* 35970 */
#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV                   0x8c83     /* 35971 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV               0x8c84     /* 35972 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV                0x8c85     /* 35973 */
#define GL_TRANSFORM_FEEDBACK_RECORD_NV                     0x8c86     /* 35974 */
#define GL_PRIMITIVES_GENERATED_NV                          0x8c87     /* 35975 */
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV         0x8c88     /* 35976 */
#define GL_RASTERIZER_DISCARD_NV                            0x8c89     /* 35977 */
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV 0x8c8a     /* 35978 */
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV       0x8c8b     /* 35979 */
#define GL_INTERLEAVED_ATTRIBS_NV                           0x8c8c     /* 35980 */
#define GL_SEPARATE_ATTRIBS_NV                              0x8c8d     /* 35981 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_NV                     0x8c8e     /* 35982 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV             0x8c8f     /* 35983 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_TRANSFORM_FEEDBACK
typedef GLint (REGAL_CALL *PFNGLGETVARYINGLOCATIONNVPROC)(GLuint program, const GLchar *name);
typedef void (REGAL_CALL *PFNGLACTIVEVARYINGNVPROC)(GLuint program, const GLchar *name);
typedef void (REGAL_CALL *PFNGLBEGINTRANSFORMFEEDBACKNVPROC)(GLenum primitiveMode);
typedef void (REGAL_CALL *PFNGLBINDBUFFERBASENVPROC)(GLenum target, GLuint index, GLuint buffer);
typedef void (REGAL_CALL *PFNGLBINDBUFFEROFFSETNVPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
typedef void (REGAL_CALL *PFNGLBINDBUFFERRANGENVPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
typedef void (REGAL_CALL *PFNGLENDTRANSFORMFEEDBACKNVPROC)(void);
typedef void (REGAL_CALL *PFNGLGETACTIVEVARYINGNVPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
typedef void (REGAL_CALL *PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)(GLuint program, GLuint index, GLint *location);
typedef void (REGAL_CALL *PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)(GLuint count, const GLint *attribs, GLenum bufferMode);
typedef void (REGAL_CALL *PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)(GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_TRANSFORM_FEEDBACK
#define glActiveVaryingNV                   rglActiveVaryingNV
#define glBeginTransformFeedbackNV          rglBeginTransformFeedbackNV
#define glBindBufferBaseNV                  rglBindBufferBaseNV
#define glBindBufferOffsetNV                rglBindBufferOffsetNV
#define glBindBufferRangeNV                 rglBindBufferRangeNV
#define glEndTransformFeedbackNV            rglEndTransformFeedbackNV
#define glGetActiveVaryingNV                rglGetActiveVaryingNV
#define glGetTransformFeedbackVaryingNV     rglGetTransformFeedbackVaryingNV
#define glGetVaryingLocationNV              rglGetVaryingLocationNV
#define glTransformFeedbackAttribsNV        rglTransformFeedbackAttribsNV
#define glTransformFeedbackVaryingsNV       rglTransformFeedbackVaryingsNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_TRANSFORM_FEEDBACK
REGAL_DECL GLint REGAL_CALL glGetVaryingLocationNV(GLuint program, const GLchar *name);
REGAL_DECL void REGAL_CALL glActiveVaryingNV(GLuint program, const GLchar *name);
REGAL_DECL void REGAL_CALL glBeginTransformFeedbackNV(GLenum primitiveMode);
REGAL_DECL void REGAL_CALL glBindBufferBaseNV(GLenum target, GLuint index, GLuint buffer);
REGAL_DECL void REGAL_CALL glBindBufferOffsetNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
REGAL_DECL void REGAL_CALL glBindBufferRangeNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL glEndTransformFeedbackNV(void);
REGAL_DECL void REGAL_CALL glGetActiveVaryingNV(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL glGetTransformFeedbackVaryingNV(GLuint program, GLuint index, GLint *location);
REGAL_DECL void REGAL_CALL glTransformFeedbackAttribsNV(GLuint count, const GLint *attribs, GLenum bufferMode);
REGAL_DECL void REGAL_CALL glTransformFeedbackVaryingsNV(GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_TRANSFORM_FEEDBACK
REGAL_DECL GLint REGAL_CALL plugin_glGetVaryingLocationNV(GLuint program, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glActiveVaryingNV(GLuint program, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glBeginTransformFeedbackNV(GLenum primitiveMode);
REGAL_DECL void REGAL_CALL plugin_glBindBufferBaseNV(GLenum target, GLuint index, GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glBindBufferOffsetNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glBindBufferRangeNV(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
REGAL_DECL void REGAL_CALL plugin_glEndTransformFeedbackNV(void);
REGAL_DECL void REGAL_CALL plugin_glGetActiveVaryingNV(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetTransformFeedbackVaryingNV(GLuint program, GLuint index, GLint *location);
REGAL_DECL void REGAL_CALL plugin_glTransformFeedbackAttribsNV(GLuint count, const GLint *attribs, GLenum bufferMode);
REGAL_DECL void REGAL_CALL plugin_glTransformFeedbackVaryingsNV(GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode);
#endif

/**
 ** GL_NV_transform_feedback2
 **/

#if (defined(GL_NV_TRANSFORM_FEEDBACK2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_ENUM_GL_NV_TRANSFORM_FEEDBACK2)
#define REGAL_NO_ENUM_GL_NV_TRANSFORM_FEEDBACK2
#endif

#if (defined(GL_NV_TRANSFORM_FEEDBACK2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_TYPEDEF_GL_NV_TRANSFORM_FEEDBACK2)
#define REGAL_NO_TYPEDEF_GL_NV_TRANSFORM_FEEDBACK2
#endif

#if (defined(GL_NV_TRANSFORM_FEEDBACK2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_NAMESPACE_GL_NV_TRANSFORM_FEEDBACK2)
#define REGAL_NO_NAMESPACE_GL_NV_TRANSFORM_FEEDBACK2
#endif

#if (defined(GL_NV_TRANSFORM_FEEDBACK2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_PLUGIN_GL_NV_TRANSFORM_FEEDBACK2)
#define REGAL_NO_PLUGIN_GL_NV_TRANSFORM_FEEDBACK2
#endif

#if (defined(GL_NV_TRANSFORM_FEEDBACK2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_TRANSFORM_FEEDBACK2)) && !defined(REGAL_NO_DECLARATION_GL_NV_TRANSFORM_FEEDBACK2)
#define REGAL_NO_DECLARATION_GL_NV_TRANSFORM_FEEDBACK2
#endif

#ifndef GL_NV_transform_feedback2
#define GL_NV_transform_feedback2 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_TRANSFORM_FEEDBACK2
#define GL_TRANSFORM_FEEDBACK_NV               0x8e22     /* 36386 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8e23     /* 36387 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8e24     /* 36388 */
#define GL_TRANSFORM_FEEDBACK_BINDING_NV       0x8e25     /* 36389 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_TRANSFORM_FEEDBACK2
typedef GLboolean (REGAL_CALL *PFNGLISTRANSFORMFEEDBACKNVPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLBINDTRANSFORMFEEDBACKNVPROC)(GLenum target, GLuint id);
typedef void (REGAL_CALL *PFNGLDELETETRANSFORMFEEDBACKSNVPROC)(GLsizei n, const GLuint *ids);
typedef void (REGAL_CALL *PFNGLDRAWTRANSFORMFEEDBACKNVPROC)(GLenum mode, GLuint name);
typedef void (REGAL_CALL *PFNGLGENTRANSFORMFEEDBACKSNVPROC)(GLsizei n, GLuint *ids);
typedef void (REGAL_CALL *PFNGLPAUSETRANSFORMFEEDBACKNVPROC)(void);
typedef void (REGAL_CALL *PFNGLRESUMETRANSFORMFEEDBACKNVPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_TRANSFORM_FEEDBACK2
#define glBindTransformFeedbackNV           rglBindTransformFeedbackNV
#define glDeleteTransformFeedbacksNV        rglDeleteTransformFeedbacksNV
#define glDrawTransformFeedbackNV           rglDrawTransformFeedbackNV
#define glGenTransformFeedbacksNV           rglGenTransformFeedbacksNV
#define glIsTransformFeedbackNV             rglIsTransformFeedbackNV
#define glPauseTransformFeedbackNV          rglPauseTransformFeedbackNV
#define glResumeTransformFeedbackNV         rglResumeTransformFeedbackNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_TRANSFORM_FEEDBACK2
REGAL_DECL GLboolean REGAL_CALL glIsTransformFeedbackNV(GLuint id);
REGAL_DECL void REGAL_CALL glBindTransformFeedbackNV(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL glDeleteTransformFeedbacksNV(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL glDrawTransformFeedbackNV(GLenum mode, GLuint name);
REGAL_DECL void REGAL_CALL glGenTransformFeedbacksNV(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL glPauseTransformFeedbackNV(void);
REGAL_DECL void REGAL_CALL glResumeTransformFeedbackNV(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_TRANSFORM_FEEDBACK2
REGAL_DECL GLboolean REGAL_CALL plugin_glIsTransformFeedbackNV(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glBindTransformFeedbackNV(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDeleteTransformFeedbacksNV(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glDrawTransformFeedbackNV(GLenum mode, GLuint name);
REGAL_DECL void REGAL_CALL plugin_glGenTransformFeedbacksNV(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glPauseTransformFeedbackNV(void);
REGAL_DECL void REGAL_CALL plugin_glResumeTransformFeedbackNV(void);
#endif

/**
 ** GL_NV_vdpau_interop
 **/

#if (defined(GL_NV_VDPAU_INTEROP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VDPAU_INTEROP)) && !defined(REGAL_NO_ENUM_GL_NV_VDPAU_INTEROP)
#define REGAL_NO_ENUM_GL_NV_VDPAU_INTEROP
#endif

#if (defined(GL_NV_VDPAU_INTEROP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VDPAU_INTEROP)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VDPAU_INTEROP)
#define REGAL_NO_TYPEDEF_GL_NV_VDPAU_INTEROP
#endif

#if (defined(GL_NV_VDPAU_INTEROP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VDPAU_INTEROP)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VDPAU_INTEROP)
#define REGAL_NO_NAMESPACE_GL_NV_VDPAU_INTEROP
#endif

#if (defined(GL_NV_VDPAU_INTEROP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VDPAU_INTEROP)) && !defined(REGAL_NO_PLUGIN_GL_NV_VDPAU_INTEROP)
#define REGAL_NO_PLUGIN_GL_NV_VDPAU_INTEROP
#endif

#if (defined(GL_NV_VDPAU_INTEROP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VDPAU_INTEROP)) && !defined(REGAL_NO_DECLARATION_GL_NV_VDPAU_INTEROP)
#define REGAL_NO_DECLARATION_GL_NV_VDPAU_INTEROP
#endif

#ifndef GL_NV_vdpau_interop
#define GL_NV_vdpau_interop 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VDPAU_INTEROP
#define GL_SURFACE_STATE_NV      0x86eb     /* 34539 */
#define GL_SURFACE_REGISTERED_NV 0x86fd     /* 34557 */
#define GL_SURFACE_MAPPED_NV     0x8700     /* 34560 */
#define GL_WRITE_DISCARD_NV      0x88be     /* 35006 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_VDPAU_INTEROP
typedef GLboolean (REGAL_CALL *PFNGLVDPAUISSURFACENVPROC)(GLvdpauSurfaceNV surface);
typedef GLvdpauSurfaceNV (REGAL_CALL *PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)(const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
typedef GLvdpauSurfaceNV (REGAL_CALL *PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)(const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
typedef void (REGAL_CALL *PFNGLVDPAUFININVPROC)(void);
typedef void (REGAL_CALL *PFNGLVDPAUGETSURFACEIVNVPROC)(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
typedef void (REGAL_CALL *PFNGLVDPAUINITNVPROC)(const GLvoid *vdpDevice, const GLvoid *getProcAddress);
typedef void (REGAL_CALL *PFNGLVDPAUMAPSURFACESNVPROC)(GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
typedef void (REGAL_CALL *PFNGLVDPAUSURFACEACCESSNVPROC)(GLvdpauSurfaceNV surface, GLenum access);
typedef void (REGAL_CALL *PFNGLVDPAUUNMAPSURFACESNVPROC)(GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
typedef void (REGAL_CALL *PFNGLVDPAUUNREGISTERSURFACENVPROC)(GLvdpauSurfaceNV surface);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_VDPAU_INTEROP
#define glVDPAUFiniNV                       rglVDPAUFiniNV
#define glVDPAUGetSurfaceivNV               rglVDPAUGetSurfaceivNV
#define glVDPAUInitNV                       rglVDPAUInitNV
#define glVDPAUIsSurfaceNV                  rglVDPAUIsSurfaceNV
#define glVDPAUMapSurfacesNV                rglVDPAUMapSurfacesNV
#define glVDPAURegisterOutputSurfaceNV      rglVDPAURegisterOutputSurfaceNV
#define glVDPAURegisterVideoSurfaceNV       rglVDPAURegisterVideoSurfaceNV
#define glVDPAUSurfaceAccessNV              rglVDPAUSurfaceAccessNV
#define glVDPAUUnmapSurfacesNV              rglVDPAUUnmapSurfacesNV
#define glVDPAUUnregisterSurfaceNV          rglVDPAUUnregisterSurfaceNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_VDPAU_INTEROP
REGAL_DECL GLboolean REGAL_CALL glVDPAUIsSurfaceNV(GLvdpauSurfaceNV surface);
REGAL_DECL GLvdpauSurfaceNV REGAL_CALL glVDPAURegisterOutputSurfaceNV(const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
REGAL_DECL GLvdpauSurfaceNV REGAL_CALL glVDPAURegisterVideoSurfaceNV(const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
REGAL_DECL void REGAL_CALL glVDPAUFiniNV(void);
REGAL_DECL void REGAL_CALL glVDPAUGetSurfaceivNV(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
REGAL_DECL void REGAL_CALL glVDPAUInitNV(const GLvoid *vdpDevice, const GLvoid *getProcAddress);
REGAL_DECL void REGAL_CALL glVDPAUMapSurfacesNV(GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
REGAL_DECL void REGAL_CALL glVDPAUSurfaceAccessNV(GLvdpauSurfaceNV surface, GLenum access);
REGAL_DECL void REGAL_CALL glVDPAUUnmapSurfacesNV(GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
REGAL_DECL void REGAL_CALL glVDPAUUnregisterSurfaceNV(GLvdpauSurfaceNV surface);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_VDPAU_INTEROP
REGAL_DECL GLboolean REGAL_CALL plugin_glVDPAUIsSurfaceNV(GLvdpauSurfaceNV surface);
REGAL_DECL GLvdpauSurfaceNV REGAL_CALL plugin_glVDPAURegisterOutputSurfaceNV(const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
REGAL_DECL GLvdpauSurfaceNV REGAL_CALL plugin_glVDPAURegisterVideoSurfaceNV(const GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames);
REGAL_DECL void REGAL_CALL plugin_glVDPAUFiniNV(void);
REGAL_DECL void REGAL_CALL plugin_glVDPAUGetSurfaceivNV(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values);
REGAL_DECL void REGAL_CALL plugin_glVDPAUInitNV(const GLvoid *vdpDevice, const GLvoid *getProcAddress);
REGAL_DECL void REGAL_CALL plugin_glVDPAUMapSurfacesNV(GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
REGAL_DECL void REGAL_CALL plugin_glVDPAUSurfaceAccessNV(GLvdpauSurfaceNV surface, GLenum access);
REGAL_DECL void REGAL_CALL plugin_glVDPAUUnmapSurfacesNV(GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces);
REGAL_DECL void REGAL_CALL plugin_glVDPAUUnregisterSurfaceNV(GLvdpauSurfaceNV surface);
#endif

/**
 ** GL_NV_vertex_array_range
 **/

#if (defined(GL_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_ENUM_GL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_ENUM_GL_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(GL_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_TYPEDEF_GL_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(GL_NV_VERTEX_ARRAY_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_NAMESPACE_GL_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(GL_NV_VERTEX_ARRAY_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_PLUGIN_GL_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(GL_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_DECLARATION_GL_NV_VERTEX_ARRAY_RANGE
#endif

#ifndef GL_NV_vertex_array_range
#define GL_NV_vertex_array_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VERTEX_ARRAY_RANGE
#define GL_VERTEX_ARRAY_RANGE_NV             0x851d     /* 34077 */
#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV      0x851e     /* 34078 */
#define GL_VERTEX_ARRAY_RANGE_VALID_NV       0x851f     /* 34079 */
#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520     /* 34080 */
#define GL_VERTEX_ARRAY_RANGE_POINTER_NV     0x8521     /* 34081 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_VERTEX_ARRAY_RANGE
typedef void (REGAL_CALL *PFNGLFLUSHVERTEXARRAYRANGENVPROC)(void);
typedef void (REGAL_CALL *PFNGLVERTEXARRAYRANGENVPROC)(GLsizei size, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_VERTEX_ARRAY_RANGE
#define glFlushVertexArrayRangeNV           rglFlushVertexArrayRangeNV
#define glVertexArrayRangeNV                rglVertexArrayRangeNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_VERTEX_ARRAY_RANGE
REGAL_DECL void REGAL_CALL glFlushVertexArrayRangeNV(void);
REGAL_DECL void REGAL_CALL glVertexArrayRangeNV(GLsizei size, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_VERTEX_ARRAY_RANGE
REGAL_DECL void REGAL_CALL plugin_glFlushVertexArrayRangeNV(void);
REGAL_DECL void REGAL_CALL plugin_glVertexArrayRangeNV(GLsizei size, const GLvoid *pointer);
#endif

/**
 ** GL_NV_vertex_array_range2
 **/

#if (defined(GL_NV_VERTEX_ARRAY_RANGE2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE2)) && !defined(REGAL_NO_ENUM_GL_NV_VERTEX_ARRAY_RANGE2)
#define REGAL_NO_ENUM_GL_NV_VERTEX_ARRAY_RANGE2
#endif

#if (defined(GL_NV_VERTEX_ARRAY_RANGE2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE2)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VERTEX_ARRAY_RANGE2)
#define REGAL_NO_TYPEDEF_GL_NV_VERTEX_ARRAY_RANGE2
#endif

#if (defined(GL_NV_VERTEX_ARRAY_RANGE2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE2)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VERTEX_ARRAY_RANGE2)
#define REGAL_NO_NAMESPACE_GL_NV_VERTEX_ARRAY_RANGE2
#endif

#if (defined(GL_NV_VERTEX_ARRAY_RANGE2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE2)) && !defined(REGAL_NO_PLUGIN_GL_NV_VERTEX_ARRAY_RANGE2)
#define REGAL_NO_PLUGIN_GL_NV_VERTEX_ARRAY_RANGE2
#endif

#if (defined(GL_NV_VERTEX_ARRAY_RANGE2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VERTEX_ARRAY_RANGE2)) && !defined(REGAL_NO_DECLARATION_GL_NV_VERTEX_ARRAY_RANGE2)
#define REGAL_NO_DECLARATION_GL_NV_VERTEX_ARRAY_RANGE2
#endif

#ifndef GL_NV_vertex_array_range2
#define GL_NV_vertex_array_range2 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VERTEX_ARRAY_RANGE2
#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 /* 34099 */
#endif

/**
 ** GL_NV_vertex_attrib_integer_64bit
 **/

#if (defined(GL_NV_VERTEX_ATTRIB_INTEGER_64BIT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)) && !defined(REGAL_NO_ENUM_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)
#define REGAL_NO_ENUM_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
#endif

#if (defined(GL_NV_VERTEX_ATTRIB_INTEGER_64BIT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)
#define REGAL_NO_TYPEDEF_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
#endif

#if (defined(GL_NV_VERTEX_ATTRIB_INTEGER_64BIT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)
#define REGAL_NO_NAMESPACE_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
#endif

#if (defined(GL_NV_VERTEX_ATTRIB_INTEGER_64BIT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)) && !defined(REGAL_NO_PLUGIN_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)
#define REGAL_NO_PLUGIN_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
#endif

#if (defined(GL_NV_VERTEX_ATTRIB_INTEGER_64BIT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)) && !defined(REGAL_NO_DECLARATION_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT)
#define REGAL_NO_DECLARATION_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
#endif

#ifndef GL_NV_vertex_attrib_integer_64bit
#define GL_NV_vertex_attrib_integer_64bit 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
#define GL_INT64_NV          0x140e     /* 5134 */
#define GL_UNSIGNED_INT64_NV 0x140f     /* 5135 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBLI64VNVPROC)(GLuint index, GLenum pname, GLint64EXT *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBLUI64VNVPROC)(GLuint index, GLenum pname, GLuint64EXT *params);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1I64NVPROC)(GLuint index, GLint64EXT x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1I64VNVPROC)(GLuint index, const GLint64EXT *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1UI64NVPROC)(GLuint index, GLuint64EXT x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL1UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL2I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL2I64VNVPROC)(GLuint index, const GLint64EXT *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL2UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL2UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL3I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL3I64VNVPROC)(GLuint index, const GLint64EXT *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL3UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL3UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL4I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL4I64VNVPROC)(GLuint index, const GLint64EXT *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL4UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBL4UI64VNVPROC)(GLuint index, const GLuint64EXT *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBLFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
#define glGetVertexAttribLi64vNV            rglGetVertexAttribLi64vNV
#define glGetVertexAttribLui64vNV           rglGetVertexAttribLui64vNV
#define glVertexAttribL1i64NV               rglVertexAttribL1i64NV
#define glVertexAttribL1i64vNV              rglVertexAttribL1i64vNV
#define glVertexAttribL1ui64NV              rglVertexAttribL1ui64NV
#define glVertexAttribL1ui64vNV             rglVertexAttribL1ui64vNV
#define glVertexAttribL2i64NV               rglVertexAttribL2i64NV
#define glVertexAttribL2i64vNV              rglVertexAttribL2i64vNV
#define glVertexAttribL2ui64NV              rglVertexAttribL2ui64NV
#define glVertexAttribL2ui64vNV             rglVertexAttribL2ui64vNV
#define glVertexAttribL3i64NV               rglVertexAttribL3i64NV
#define glVertexAttribL3i64vNV              rglVertexAttribL3i64vNV
#define glVertexAttribL3ui64NV              rglVertexAttribL3ui64NV
#define glVertexAttribL3ui64vNV             rglVertexAttribL3ui64vNV
#define glVertexAttribL4i64NV               rglVertexAttribL4i64NV
#define glVertexAttribL4i64vNV              rglVertexAttribL4i64vNV
#define glVertexAttribL4ui64NV              rglVertexAttribL4ui64NV
#define glVertexAttribL4ui64vNV             rglVertexAttribL4ui64vNV
#define glVertexAttribLFormatNV             rglVertexAttribLFormatNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
REGAL_DECL void REGAL_CALL glGetVertexAttribLi64vNV(GLuint index, GLenum pname, GLint64EXT *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribLui64vNV(GLuint index, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL glVertexAttribL1i64NV(GLuint index, GLint64EXT x);
REGAL_DECL void REGAL_CALL glVertexAttribL1i64vNV(GLuint index, const GLint64EXT *v);
REGAL_DECL void REGAL_CALL glVertexAttribL1ui64NV(GLuint index, GLuint64EXT x);
REGAL_DECL void REGAL_CALL glVertexAttribL1ui64vNV(GLuint index, const GLuint64EXT *v);
REGAL_DECL void REGAL_CALL glVertexAttribL2i64NV(GLuint index, GLint64EXT x, GLint64EXT y);
REGAL_DECL void REGAL_CALL glVertexAttribL2i64vNV(GLuint index, const GLint64EXT *v);
REGAL_DECL void REGAL_CALL glVertexAttribL2ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y);
REGAL_DECL void REGAL_CALL glVertexAttribL2ui64vNV(GLuint index, const GLuint64EXT *v);
REGAL_DECL void REGAL_CALL glVertexAttribL3i64NV(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
REGAL_DECL void REGAL_CALL glVertexAttribL3i64vNV(GLuint index, const GLint64EXT *v);
REGAL_DECL void REGAL_CALL glVertexAttribL3ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
REGAL_DECL void REGAL_CALL glVertexAttribL3ui64vNV(GLuint index, const GLuint64EXT *v);
REGAL_DECL void REGAL_CALL glVertexAttribL4i64NV(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
REGAL_DECL void REGAL_CALL glVertexAttribL4i64vNV(GLuint index, const GLint64EXT *v);
REGAL_DECL void REGAL_CALL glVertexAttribL4ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
REGAL_DECL void REGAL_CALL glVertexAttribL4ui64vNV(GLuint index, const GLuint64EXT *v);
REGAL_DECL void REGAL_CALL glVertexAttribLFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_VERTEX_ATTRIB_INTEGER_64BIT
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribLi64vNV(GLuint index, GLenum pname, GLint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribLui64vNV(GLuint index, GLenum pname, GLuint64EXT *params);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1i64NV(GLuint index, GLint64EXT x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1i64vNV(GLuint index, const GLint64EXT *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1ui64NV(GLuint index, GLuint64EXT x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL1ui64vNV(GLuint index, const GLuint64EXT *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL2i64NV(GLuint index, GLint64EXT x, GLint64EXT y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL2i64vNV(GLuint index, const GLint64EXT *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL2ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL2ui64vNV(GLuint index, const GLuint64EXT *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL3i64NV(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL3i64vNV(GLuint index, const GLint64EXT *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL3ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL3ui64vNV(GLuint index, const GLuint64EXT *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL4i64NV(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL4i64vNV(GLuint index, const GLint64EXT *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL4ui64NV(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribL4ui64vNV(GLuint index, const GLuint64EXT *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribLFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride);
#endif

/**
 ** GL_NV_vertex_buffer_unified_memory
 **/

#if (defined(GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)) && !defined(REGAL_NO_ENUM_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)
#define REGAL_NO_ENUM_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
#endif

#if (defined(GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)
#define REGAL_NO_TYPEDEF_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
#endif

#if (defined(GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)
#define REGAL_NO_NAMESPACE_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
#endif

#if (defined(GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)) && !defined(REGAL_NO_PLUGIN_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)
#define REGAL_NO_PLUGIN_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
#endif

#if (defined(GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)) && !defined(REGAL_NO_DECLARATION_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY)
#define REGAL_NO_DECLARATION_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
#endif

#ifndef GL_NV_vertex_buffer_unified_memory
#define GL_NV_vertex_buffer_unified_memory 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV   0x8f1e     /* 36638 */
#define GL_ELEMENT_ARRAY_UNIFIED_NV         0x8f1f     /* 36639 */
#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV   0x8f20     /* 36640 */
#define GL_VERTEX_ARRAY_ADDRESS_NV          0x8f21     /* 36641 */
#define GL_NORMAL_ARRAY_ADDRESS_NV          0x8f22     /* 36642 */
#define GL_COLOR_ARRAY_ADDRESS_NV           0x8f23     /* 36643 */
#define GL_INDEX_ARRAY_ADDRESS_NV           0x8f24     /* 36644 */
#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV   0x8f25     /* 36645 */
#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV       0x8f26     /* 36646 */
#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8f27     /* 36647 */
#define GL_FOG_COORD_ARRAY_ADDRESS_NV       0x8f28     /* 36648 */
#define GL_ELEMENT_ARRAY_ADDRESS_NV         0x8f29     /* 36649 */
#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV    0x8f2a     /* 36650 */
#define GL_VERTEX_ARRAY_LENGTH_NV           0x8f2b     /* 36651 */
#define GL_NORMAL_ARRAY_LENGTH_NV           0x8f2c     /* 36652 */
#define GL_COLOR_ARRAY_LENGTH_NV            0x8f2d     /* 36653 */
#define GL_INDEX_ARRAY_LENGTH_NV            0x8f2e     /* 36654 */
#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV    0x8f2f     /* 36655 */
#define GL_EDGE_FLAG_ARRAY_LENGTH_NV        0x8f30     /* 36656 */
#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV  0x8f31     /* 36657 */
#define GL_FOG_COORD_ARRAY_LENGTH_NV        0x8f32     /* 36658 */
#define GL_ELEMENT_ARRAY_LENGTH_NV          0x8f33     /* 36659 */
#define GL_DRAW_INDIRECT_UNIFIED_NV         0x8f40     /* 36672 */
#define GL_DRAW_INDIRECT_ADDRESS_NV         0x8f41     /* 36673 */
#define GL_DRAW_INDIRECT_LENGTH_NV          0x8f42     /* 36674 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
typedef void (REGAL_CALL *PFNGLBUFFERADDRESSRANGENVPROC)(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
typedef void (REGAL_CALL *PFNGLCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
typedef void (REGAL_CALL *PFNGLEDGEFLAGFORMATNVPROC)(GLsizei stride);
typedef void (REGAL_CALL *PFNGLFOGCOORDFORMATNVPROC)(GLenum type, GLsizei stride);
typedef void (REGAL_CALL *PFNGLGETINTEGERUI64I_VNVPROC)(GLenum target, GLuint index, GLuint64EXT *data);
typedef void (REGAL_CALL *PFNGLINDEXFORMATNVPROC)(GLenum type, GLsizei stride);
typedef void (REGAL_CALL *PFNGLNORMALFORMATNVPROC)(GLenum type, GLsizei stride);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
typedef void (REGAL_CALL *PFNGLTEXCOORDFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBIFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride);
typedef void (REGAL_CALL *PFNGLVERTEXFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
#define glBufferAddressRangeNV              rglBufferAddressRangeNV
#define glColorFormatNV                     rglColorFormatNV
#define glEdgeFlagFormatNV                  rglEdgeFlagFormatNV
#define glFogCoordFormatNV                  rglFogCoordFormatNV
#define glGetIntegerui64i_vNV               rglGetIntegerui64i_vNV
#define glIndexFormatNV                     rglIndexFormatNV
#define glNormalFormatNV                    rglNormalFormatNV
#define glSecondaryColorFormatNV            rglSecondaryColorFormatNV
#define glTexCoordFormatNV                  rglTexCoordFormatNV
#define glVertexAttribFormatNV              rglVertexAttribFormatNV
#define glVertexAttribIFormatNV             rglVertexAttribIFormatNV
#define glVertexFormatNV                    rglVertexFormatNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
REGAL_DECL void REGAL_CALL glBufferAddressRangeNV(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
REGAL_DECL void REGAL_CALL glColorFormatNV(GLint size, GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL glEdgeFlagFormatNV(GLsizei stride);
REGAL_DECL void REGAL_CALL glFogCoordFormatNV(GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL glGetIntegerui64i_vNV(GLenum target, GLuint index, GLuint64EXT *data);
REGAL_DECL void REGAL_CALL glIndexFormatNV(GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL glNormalFormatNV(GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL glSecondaryColorFormatNV(GLint size, GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL glTexCoordFormatNV(GLint size, GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL glVertexAttribFormatNV(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
REGAL_DECL void REGAL_CALL glVertexAttribIFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL glVertexFormatNV(GLint size, GLenum type, GLsizei stride);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_VERTEX_BUFFER_UNIFIED_MEMORY
REGAL_DECL void REGAL_CALL plugin_glBufferAddressRangeNV(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
REGAL_DECL void REGAL_CALL plugin_glColorFormatNV(GLint size, GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glEdgeFlagFormatNV(GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glFogCoordFormatNV(GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glGetIntegerui64i_vNV(GLenum target, GLuint index, GLuint64EXT *data);
REGAL_DECL void REGAL_CALL plugin_glIndexFormatNV(GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glNormalFormatNV(GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColorFormatNV(GLint size, GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glTexCoordFormatNV(GLint size, GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribFormatNV(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribIFormatNV(GLuint index, GLint size, GLenum type, GLsizei stride);
REGAL_DECL void REGAL_CALL plugin_glVertexFormatNV(GLint size, GLenum type, GLsizei stride);
#endif

/**
 ** GL_NV_vertex_program
 **/

#if (defined(GL_NV_VERTEX_PROGRAM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM)) && !defined(REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM)
#define REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM
#endif

#if (defined(GL_NV_VERTEX_PROGRAM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM)
#define REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM
#endif

#if (defined(GL_NV_VERTEX_PROGRAM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM)
#define REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM
#endif

#if (defined(GL_NV_VERTEX_PROGRAM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM)) && !defined(REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM)
#define REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM
#endif

#if (defined(GL_NV_VERTEX_PROGRAM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM)) && !defined(REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM)
#define REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM
#endif

#ifndef GL_NV_vertex_program
#define GL_NV_vertex_program 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM
#define GL_VERTEX_PROGRAM_NV               0x8620     /* 34336 */
#define GL_VERTEX_STATE_PROGRAM_NV         0x8621     /* 34337 */
#define GL_ATTRIB_ARRAY_SIZE_NV            0x8623     /* 34339 */
#define GL_ATTRIB_ARRAY_STRIDE_NV          0x8624     /* 34340 */
#define GL_ATTRIB_ARRAY_TYPE_NV            0x8625     /* 34341 */
#define GL_CURRENT_ATTRIB_NV               0x8626     /* 34342 */
#define GL_PROGRAM_LENGTH_NV               0x8627     /* 34343 */
#define GL_PROGRAM_STRING_NV               0x8628     /* 34344 */
#define GL_MODELVIEW_PROJECTION_NV         0x8629     /* 34345 */
#define GL_IDENTITY_NV                     0x862a     /* 34346 */
#define GL_INVERSE_NV                      0x862b     /* 34347 */
#define GL_TRANSPOSE_NV                    0x862c     /* 34348 */
#define GL_INVERSE_TRANSPOSE_NV            0x862d     /* 34349 */
#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862e     /* 34350 */
#define GL_MAX_TRACK_MATRICES_NV           0x862f     /* 34351 */
#define GL_MATRIX0_NV                      0x8630     /* 34352 */
#define GL_MATRIX1_NV                      0x8631     /* 34353 */
#define GL_MATRIX2_NV                      0x8632     /* 34354 */
#define GL_MATRIX3_NV                      0x8633     /* 34355 */
#define GL_MATRIX4_NV                      0x8634     /* 34356 */
#define GL_MATRIX5_NV                      0x8635     /* 34357 */
#define GL_MATRIX6_NV                      0x8636     /* 34358 */
#define GL_MATRIX7_NV                      0x8637     /* 34359 */
#define GL_CURRENT_MATRIX_STACK_DEPTH_NV   0x8640     /* 34368 */
#define GL_CURRENT_MATRIX_NV               0x8641     /* 34369 */
#define GL_VERTEX_PROGRAM_POINT_SIZE_NV    0x8642     /* 34370 */
#define GL_VERTEX_PROGRAM_TWO_SIDE_NV      0x8643     /* 34371 */
#define GL_PROGRAM_PARAMETER_NV            0x8644     /* 34372 */
#define GL_ATTRIB_ARRAY_POINTER_NV         0x8645     /* 34373 */
#define GL_PROGRAM_TARGET_NV               0x8646     /* 34374 */
#define GL_PROGRAM_RESIDENT_NV             0x8647     /* 34375 */
#define GL_TRACK_MATRIX_NV                 0x8648     /* 34376 */
#define GL_TRACK_MATRIX_TRANSFORM_NV       0x8649     /* 34377 */
#define GL_VERTEX_PROGRAM_BINDING_NV       0x864a     /* 34378 */
#define GL_PROGRAM_ERROR_POSITION_NV       0x864b     /* 34379 */
#define GL_VERTEX_ATTRIB_ARRAY0_NV         0x8650     /* 34384 */
#define GL_VERTEX_ATTRIB_ARRAY1_NV         0x8651     /* 34385 */
#define GL_VERTEX_ATTRIB_ARRAY2_NV         0x8652     /* 34386 */
#define GL_VERTEX_ATTRIB_ARRAY3_NV         0x8653     /* 34387 */
#define GL_VERTEX_ATTRIB_ARRAY4_NV         0x8654     /* 34388 */
#define GL_VERTEX_ATTRIB_ARRAY5_NV         0x8655     /* 34389 */
#define GL_VERTEX_ATTRIB_ARRAY6_NV         0x8656     /* 34390 */
#define GL_VERTEX_ATTRIB_ARRAY7_NV         0x8657     /* 34391 */
#define GL_VERTEX_ATTRIB_ARRAY8_NV         0x8658     /* 34392 */
#define GL_VERTEX_ATTRIB_ARRAY9_NV         0x8659     /* 34393 */
#define GL_VERTEX_ATTRIB_ARRAY10_NV        0x865a     /* 34394 */
#define GL_VERTEX_ATTRIB_ARRAY11_NV        0x865b     /* 34395 */
#define GL_VERTEX_ATTRIB_ARRAY12_NV        0x865c     /* 34396 */
#define GL_VERTEX_ATTRIB_ARRAY13_NV        0x865d     /* 34397 */
#define GL_VERTEX_ATTRIB_ARRAY14_NV        0x865e     /* 34398 */
#define GL_VERTEX_ATTRIB_ARRAY15_NV        0x865f     /* 34399 */
#define GL_MAP1_VERTEX_ATTRIB0_4_NV        0x8660     /* 34400 */
#define GL_MAP1_VERTEX_ATTRIB1_4_NV        0x8661     /* 34401 */
#define GL_MAP1_VERTEX_ATTRIB2_4_NV        0x8662     /* 34402 */
#define GL_MAP1_VERTEX_ATTRIB3_4_NV        0x8663     /* 34403 */
#define GL_MAP1_VERTEX_ATTRIB4_4_NV        0x8664     /* 34404 */
#define GL_MAP1_VERTEX_ATTRIB5_4_NV        0x8665     /* 34405 */
#define GL_MAP1_VERTEX_ATTRIB6_4_NV        0x8666     /* 34406 */
#define GL_MAP1_VERTEX_ATTRIB7_4_NV        0x8667     /* 34407 */
#define GL_MAP1_VERTEX_ATTRIB8_4_NV        0x8668     /* 34408 */
#define GL_MAP1_VERTEX_ATTRIB9_4_NV        0x8669     /* 34409 */
#define GL_MAP1_VERTEX_ATTRIB10_4_NV       0x866a     /* 34410 */
#define GL_MAP1_VERTEX_ATTRIB11_4_NV       0x866b     /* 34411 */
#define GL_MAP1_VERTEX_ATTRIB12_4_NV       0x866c     /* 34412 */
#define GL_MAP1_VERTEX_ATTRIB13_4_NV       0x866d     /* 34413 */
#define GL_MAP1_VERTEX_ATTRIB14_4_NV       0x866e     /* 34414 */
#define GL_MAP1_VERTEX_ATTRIB15_4_NV       0x866f     /* 34415 */
#define GL_MAP2_VERTEX_ATTRIB0_4_NV        0x8670     /* 34416 */
#define GL_MAP2_VERTEX_ATTRIB1_4_NV        0x8671     /* 34417 */
#define GL_MAP2_VERTEX_ATTRIB2_4_NV        0x8672     /* 34418 */
#define GL_MAP2_VERTEX_ATTRIB3_4_NV        0x8673     /* 34419 */
#define GL_MAP2_VERTEX_ATTRIB4_4_NV        0x8674     /* 34420 */
#define GL_MAP2_VERTEX_ATTRIB5_4_NV        0x8675     /* 34421 */
#define GL_MAP2_VERTEX_ATTRIB6_4_NV        0x8676     /* 34422 */
#define GL_MAP2_VERTEX_ATTRIB7_4_NV        0x8677     /* 34423 */
#define GL_MAP2_VERTEX_ATTRIB8_4_NV        0x8678     /* 34424 */
#define GL_MAP2_VERTEX_ATTRIB9_4_NV        0x8679     /* 34425 */
#define GL_MAP2_VERTEX_ATTRIB10_4_NV       0x867a     /* 34426 */
#define GL_MAP2_VERTEX_ATTRIB11_4_NV       0x867b     /* 34427 */
#define GL_MAP2_VERTEX_ATTRIB12_4_NV       0x867c     /* 34428 */
#define GL_MAP2_VERTEX_ATTRIB13_4_NV       0x867d     /* 34429 */
#define GL_MAP2_VERTEX_ATTRIB14_4_NV       0x867e     /* 34430 */
#define GL_MAP2_VERTEX_ATTRIB15_4_NV       0x867f     /* 34431 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM
typedef GLboolean (REGAL_CALL *PFNGLAREPROGRAMSRESIDENTNVPROC)(GLsizei n, const GLuint *programs, GLboolean *residences);
typedef GLboolean (REGAL_CALL *PFNGLISPROGRAMNVPROC)(GLuint id);
typedef void (REGAL_CALL *PFNGLBINDPROGRAMNVPROC)(GLenum target, GLuint id);
typedef void (REGAL_CALL *PFNGLDELETEPROGRAMSNVPROC)(GLsizei n, const GLuint *programs);
typedef void (REGAL_CALL *PFNGLEXECUTEPROGRAMNVPROC)(GLenum target, GLuint id, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLGENPROGRAMSNVPROC)(GLsizei n, GLuint *programs);
typedef void (REGAL_CALL *PFNGLGETPROGRAMIVNVPROC)(GLuint id, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMPARAMETERDVNVPROC)(GLenum target, GLuint index, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMPARAMETERFVNVPROC)(GLenum target, GLuint index, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETPROGRAMSTRINGNVPROC)(GLuint id, GLenum pname, GLubyte *program);
typedef void (REGAL_CALL *PFNGLGETTRACKMATRIXIVNVPROC)(GLenum target, GLuint address, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBDVNVPROC)(GLuint index, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBFVNVPROC)(GLuint index, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBIVNVPROC)(GLuint index, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBPOINTERVNVPROC)(GLuint index, GLenum pname, GLvoid **pointer);
typedef void (REGAL_CALL *PFNGLLOADPROGRAMNVPROC)(GLenum target, GLuint id, GLsizei len, const GLubyte *program);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETER4DNVPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETER4DVNVPROC)(GLenum target, GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETER4FNVPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETER4FVNVPROC)(GLenum target, GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETERS4DVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLPROGRAMPARAMETERS4FVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREQUESTRESIDENTPROGRAMSNVPROC)(GLsizei n, const GLuint *programs);
typedef void (REGAL_CALL *PFNGLTRACKMATRIXNVPROC)(GLenum target, GLuint address, GLenum matrix, GLenum transform);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1DNVPROC)(GLuint index, GLdouble x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1DVNVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1FNVPROC)(GLuint index, GLfloat x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1FVNVPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1SNVPROC)(GLuint index, GLshort x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1SVNVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2DNVPROC)(GLuint index, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2DVNVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2FNVPROC)(GLuint index, GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2FVNVPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2SNVPROC)(GLuint index, GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2SVNVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3DNVPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3DVNVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3FVNVPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3SVNVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4DNVPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4DVNVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4FVNVPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4SVNVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4UBNVPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4UBVNVPROC)(GLuint index, const GLubyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBPOINTERNVPROC)(GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS1DVNVPROC)(GLuint index, GLsizei n, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS1FVNVPROC)(GLuint index, GLsizei n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS1SVNVPROC)(GLuint index, GLsizei n, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS2DVNVPROC)(GLuint index, GLsizei n, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS2FVNVPROC)(GLuint index, GLsizei n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS2SVNVPROC)(GLuint index, GLsizei n, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS3DVNVPROC)(GLuint index, GLsizei n, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS3FVNVPROC)(GLuint index, GLsizei n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS3SVNVPROC)(GLuint index, GLsizei n, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS4DVNVPROC)(GLuint index, GLsizei n, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS4FVNVPROC)(GLuint index, GLsizei n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS4SVNVPROC)(GLuint index, GLsizei n, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBS4UBVNVPROC)(GLuint index, GLsizei n, const GLubyte *v);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM
#define glAreProgramsResidentNV             rglAreProgramsResidentNV
#define glBindProgramNV                     rglBindProgramNV
#define glDeleteProgramsNV                  rglDeleteProgramsNV
#define glExecuteProgramNV                  rglExecuteProgramNV
#define glGenProgramsNV                     rglGenProgramsNV
#define glGetProgramParameterdvNV           rglGetProgramParameterdvNV
#define glGetProgramParameterfvNV           rglGetProgramParameterfvNV
#define glGetProgramStringNV                rglGetProgramStringNV
#define glGetProgramivNV                    rglGetProgramivNV
#define glGetTrackMatrixivNV                rglGetTrackMatrixivNV
#define glGetVertexAttribPointervNV         rglGetVertexAttribPointervNV
#define glGetVertexAttribdvNV               rglGetVertexAttribdvNV
#define glGetVertexAttribfvNV               rglGetVertexAttribfvNV
#define glGetVertexAttribivNV               rglGetVertexAttribivNV
#define glIsProgramNV                       rglIsProgramNV
#define glLoadProgramNV                     rglLoadProgramNV
#define glProgramParameter4dNV              rglProgramParameter4dNV
#define glProgramParameter4dvNV             rglProgramParameter4dvNV
#define glProgramParameter4fNV              rglProgramParameter4fNV
#define glProgramParameter4fvNV             rglProgramParameter4fvNV
#define glProgramParameters4dvNV            rglProgramParameters4dvNV
#define glProgramParameters4fvNV            rglProgramParameters4fvNV
#define glRequestResidentProgramsNV         rglRequestResidentProgramsNV
#define glTrackMatrixNV                     rglTrackMatrixNV
#define glVertexAttrib1dNV                  rglVertexAttrib1dNV
#define glVertexAttrib1dvNV                 rglVertexAttrib1dvNV
#define glVertexAttrib1fNV                  rglVertexAttrib1fNV
#define glVertexAttrib1fvNV                 rglVertexAttrib1fvNV
#define glVertexAttrib1sNV                  rglVertexAttrib1sNV
#define glVertexAttrib1svNV                 rglVertexAttrib1svNV
#define glVertexAttrib2dNV                  rglVertexAttrib2dNV
#define glVertexAttrib2dvNV                 rglVertexAttrib2dvNV
#define glVertexAttrib2fNV                  rglVertexAttrib2fNV
#define glVertexAttrib2fvNV                 rglVertexAttrib2fvNV
#define glVertexAttrib2sNV                  rglVertexAttrib2sNV
#define glVertexAttrib2svNV                 rglVertexAttrib2svNV
#define glVertexAttrib3dNV                  rglVertexAttrib3dNV
#define glVertexAttrib3dvNV                 rglVertexAttrib3dvNV
#define glVertexAttrib3fNV                  rglVertexAttrib3fNV
#define glVertexAttrib3fvNV                 rglVertexAttrib3fvNV
#define glVertexAttrib3sNV                  rglVertexAttrib3sNV
#define glVertexAttrib3svNV                 rglVertexAttrib3svNV
#define glVertexAttrib4dNV                  rglVertexAttrib4dNV
#define glVertexAttrib4dvNV                 rglVertexAttrib4dvNV
#define glVertexAttrib4fNV                  rglVertexAttrib4fNV
#define glVertexAttrib4fvNV                 rglVertexAttrib4fvNV
#define glVertexAttrib4sNV                  rglVertexAttrib4sNV
#define glVertexAttrib4svNV                 rglVertexAttrib4svNV
#define glVertexAttrib4ubNV                 rglVertexAttrib4ubNV
#define glVertexAttrib4ubvNV                rglVertexAttrib4ubvNV
#define glVertexAttribPointerNV             rglVertexAttribPointerNV
#define glVertexAttribs1dvNV                rglVertexAttribs1dvNV
#define glVertexAttribs1fvNV                rglVertexAttribs1fvNV
#define glVertexAttribs1svNV                rglVertexAttribs1svNV
#define glVertexAttribs2dvNV                rglVertexAttribs2dvNV
#define glVertexAttribs2fvNV                rglVertexAttribs2fvNV
#define glVertexAttribs2svNV                rglVertexAttribs2svNV
#define glVertexAttribs3dvNV                rglVertexAttribs3dvNV
#define glVertexAttribs3fvNV                rglVertexAttribs3fvNV
#define glVertexAttribs3svNV                rglVertexAttribs3svNV
#define glVertexAttribs4dvNV                rglVertexAttribs4dvNV
#define glVertexAttribs4fvNV                rglVertexAttribs4fvNV
#define glVertexAttribs4svNV                rglVertexAttribs4svNV
#define glVertexAttribs4ubvNV               rglVertexAttribs4ubvNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM
REGAL_DECL GLboolean REGAL_CALL glAreProgramsResidentNV(GLsizei n, const GLuint *programs, GLboolean *residences);
REGAL_DECL GLboolean REGAL_CALL glIsProgramNV(GLuint id);
REGAL_DECL void REGAL_CALL glBindProgramNV(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL glDeleteProgramsNV(GLsizei n, const GLuint *programs);
REGAL_DECL void REGAL_CALL glExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params);
REGAL_DECL void REGAL_CALL glGenProgramsNV(GLsizei n, GLuint *programs);
REGAL_DECL void REGAL_CALL glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetProgramStringNV(GLuint id, GLenum pname, GLubyte *program);
REGAL_DECL void REGAL_CALL glGetProgramivNV(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer);
REGAL_DECL void REGAL_CALL glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribivNV(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program);
REGAL_DECL void REGAL_CALL glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glProgramParameters4dvNV(GLenum target, GLuint index, GLsizei count, const GLdouble *v);
REGAL_DECL void REGAL_CALL glProgramParameters4fvNV(GLenum target, GLuint index, GLsizei count, const GLfloat *v);
REGAL_DECL void REGAL_CALL glRequestResidentProgramsNV(GLsizei n, const GLuint *programs);
REGAL_DECL void REGAL_CALL glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform);
REGAL_DECL void REGAL_CALL glVertexAttrib1dNV(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL glVertexAttrib1dvNV(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib1fNV(GLuint index, GLfloat x);
REGAL_DECL void REGAL_CALL glVertexAttrib1fvNV(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib1sNV(GLuint index, GLshort x);
REGAL_DECL void REGAL_CALL glVertexAttrib1svNV(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glVertexAttrib2dvNV(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glVertexAttrib2fvNV(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glVertexAttrib2svNV(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glVertexAttrib3dvNV(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glVertexAttrib3fvNV(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glVertexAttrib3svNV(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glVertexAttrib4dvNV(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glVertexAttrib4fvNV(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL glVertexAttrib4svNV(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
REGAL_DECL void REGAL_CALL glVertexAttrib4ubvNV(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL glVertexAttribPointerNV(GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glVertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM
REGAL_DECL GLboolean REGAL_CALL plugin_glAreProgramsResidentNV(GLsizei n, const GLuint *programs, GLboolean *residences);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsProgramNV(GLuint id);
REGAL_DECL void REGAL_CALL plugin_glBindProgramNV(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL plugin_glDeleteProgramsNV(GLsizei n, const GLuint *programs);
REGAL_DECL void REGAL_CALL plugin_glExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGenProgramsNV(GLsizei n, GLuint *programs);
REGAL_DECL void REGAL_CALL plugin_glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetProgramStringNV(GLuint id, GLenum pname, GLubyte *program);
REGAL_DECL void REGAL_CALL plugin_glGetProgramivNV(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribivNV(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program);
REGAL_DECL void REGAL_CALL plugin_glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glProgramParameters4dvNV(GLenum target, GLuint index, GLsizei count, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glProgramParameters4fvNV(GLenum target, GLuint index, GLsizei count, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glRequestResidentProgramsNV(GLsizei n, const GLuint *programs);
REGAL_DECL void REGAL_CALL plugin_glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1dNV(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1dvNV(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1fNV(GLuint index, GLfloat x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1fvNV(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1sNV(GLuint index, GLshort x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1svNV(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2dvNV(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2fvNV(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2svNV(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3dvNV(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3fvNV(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3svNV(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4dvNV(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4fvNV(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4svNV(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4ubvNV(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribPointerNV(GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs1dvNV(GLuint index, GLsizei n, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs1fvNV(GLuint index, GLsizei n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs1svNV(GLuint index, GLsizei n, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs2dvNV(GLuint index, GLsizei n, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs2fvNV(GLuint index, GLsizei n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs2svNV(GLuint index, GLsizei n, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs3dvNV(GLuint index, GLsizei n, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs3fvNV(GLuint index, GLsizei n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs3svNV(GLuint index, GLsizei n, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs4dvNV(GLuint index, GLsizei n, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs4fvNV(GLuint index, GLsizei n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs4svNV(GLuint index, GLsizei n, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribs4ubvNV(GLuint index, GLsizei n, const GLubyte *v);
#endif

/**
 ** GL_NV_vertex_program2_option
 **/

#if (defined(GL_NV_VERTEX_PROGRAM2_OPTION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM2_OPTION)) && !defined(REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM2_OPTION)
#define REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM2_OPTION
#endif

#if (defined(GL_NV_VERTEX_PROGRAM2_OPTION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM2_OPTION)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM2_OPTION)
#define REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM2_OPTION
#endif

#if (defined(GL_NV_VERTEX_PROGRAM2_OPTION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM2_OPTION)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM2_OPTION)
#define REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM2_OPTION
#endif

#if (defined(GL_NV_VERTEX_PROGRAM2_OPTION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM2_OPTION)) && !defined(REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM2_OPTION)
#define REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM2_OPTION
#endif

#if (defined(GL_NV_VERTEX_PROGRAM2_OPTION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM2_OPTION)) && !defined(REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM2_OPTION)
#define REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM2_OPTION
#endif

#ifndef GL_NV_vertex_program2_option
#define GL_NV_vertex_program2_option 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM2_OPTION
#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88f4     /* 35060 */
#define GL_MAX_PROGRAM_CALL_DEPTH_NV        0x88f5     /* 35061 */
#endif

/**
 ** GL_NV_vertex_program3
 **/

#if (defined(GL_NV_VERTEX_PROGRAM3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM3)) && !defined(REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM3)
#define REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM3
#endif

#if (defined(GL_NV_VERTEX_PROGRAM3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM3)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM3)
#define REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM3
#endif

#if (defined(GL_NV_VERTEX_PROGRAM3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM3)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM3)
#define REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM3
#endif

#if (defined(GL_NV_VERTEX_PROGRAM3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM3)) && !defined(REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM3)
#define REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM3
#endif

#if (defined(GL_NV_VERTEX_PROGRAM3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM3)) && !defined(REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM3)
#define REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM3
#endif

#ifndef GL_NV_vertex_program3
#define GL_NV_vertex_program3 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM3
#define MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8b4c /* 35660 */
#endif

/**
 ** GL_NV_vertex_program4
 **/

#if (defined(GL_NV_VERTEX_PROGRAM4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM4)) && !defined(REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM4)
#define REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM4
#endif

#if (defined(GL_NV_VERTEX_PROGRAM4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM4)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM4)
#define REGAL_NO_TYPEDEF_GL_NV_VERTEX_PROGRAM4
#endif

#if (defined(GL_NV_VERTEX_PROGRAM4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM4)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM4)
#define REGAL_NO_NAMESPACE_GL_NV_VERTEX_PROGRAM4
#endif

#if (defined(GL_NV_VERTEX_PROGRAM4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM4)) && !defined(REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM4)
#define REGAL_NO_PLUGIN_GL_NV_VERTEX_PROGRAM4
#endif

#if (defined(GL_NV_VERTEX_PROGRAM4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VERTEX_PROGRAM4)) && !defined(REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM4)
#define REGAL_NO_DECLARATION_GL_NV_VERTEX_PROGRAM4
#endif

#ifndef GL_NV_vertex_program4
#define GL_NV_vertex_program4 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VERTEX_PROGRAM4
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88fd /* 35069 */
#endif

/**
 ** GL_NV_video_capture
 **/

#if (defined(GL_NV_VIDEO_CAPTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_ENUM_GL_NV_VIDEO_CAPTURE)
#define REGAL_NO_ENUM_GL_NV_VIDEO_CAPTURE
#endif

#if (defined(GL_NV_VIDEO_CAPTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_TYPEDEF_GL_NV_VIDEO_CAPTURE)
#define REGAL_NO_TYPEDEF_GL_NV_VIDEO_CAPTURE
#endif

#if (defined(GL_NV_VIDEO_CAPTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_NAMESPACE_GL_NV_VIDEO_CAPTURE)
#define REGAL_NO_NAMESPACE_GL_NV_VIDEO_CAPTURE
#endif

#if (defined(GL_NV_VIDEO_CAPTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_PLUGIN_GL_NV_VIDEO_CAPTURE)
#define REGAL_NO_PLUGIN_GL_NV_VIDEO_CAPTURE
#endif

#if (defined(GL_NV_VIDEO_CAPTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_DECLARATION_GL_NV_VIDEO_CAPTURE)
#define REGAL_NO_DECLARATION_GL_NV_VIDEO_CAPTURE
#endif

#ifndef GL_NV_video_capture
#define GL_NV_video_capture 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_VIDEO_CAPTURE
#define GL_VIDEO_BUFFER_NV                          0x9020     /* 36896 */
#define GL_VIDEO_BUFFER_BINDING_NV                  0x9021     /* 36897 */
#define GL_FIELD_UPPER_NV                           0x9022     /* 36898 */
#define GL_FIELD_LOWER_NV                           0x9023     /* 36899 */
#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV             0x9024     /* 36900 */
#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV      0x9025     /* 36901 */
#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV        0x9026     /* 36902 */
#define GL_LAST_VIDEO_CAPTURE_STATUS_NV             0x9027     /* 36903 */
#define GL_VIDEO_BUFFER_PITCH_NV                    0x9028     /* 36904 */
#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV         0x9029     /* 36905 */
#define GL_VIDEO_COLOR_CONVERSION_MAX_NV            0x902a     /* 36906 */
#define GL_VIDEO_COLOR_CONVERSION_MIN_NV            0x902b     /* 36907 */
#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV         0x902c     /* 36908 */
#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV          0x902d     /* 36909 */
#define GL_PARTIAL_SUCCESS_NV                       0x902e     /* 36910 */
#define GL_SUCCESS_NV                               0x902f     /* 36911 */
#define GL_FAILURE_NV                               0x9030     /* 36912 */
#define GL_YCBYCR8_422_NV                           0x9031     /* 36913 */
#define GL_YCBAYCR8A_4224_NV                        0x9032     /* 36914 */
#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV            0x9033     /* 36915 */
#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034     /* 36916 */
#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV            0x9035     /* 36917 */
#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036     /* 36918 */
#define GL_Z4Y12Z4CB12Z4CR12_444_NV                 0x9037     /* 36919 */
#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV             0x9038     /* 36920 */
#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV            0x9039     /* 36921 */
#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV      0x903a     /* 36922 */
#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV      0x903b     /* 36923 */
#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV          0x903c     /* 36924 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_NV_VIDEO_CAPTURE
typedef GLenum (REGAL_CALL *PFNGLVIDEOCAPTURENVPROC)(GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time);
typedef void (REGAL_CALL *PFNGLBEGINVIDEOCAPTURENVPROC)(GLuint video_capture_slot);
typedef void (REGAL_CALL *PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptr offset);
typedef void (REGAL_CALL *PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
typedef void (REGAL_CALL *PFNGLENDVIDEOCAPTURENVPROC)(GLuint video_capture_slot);
typedef void (REGAL_CALL *PFNGLGETVIDEOCAPTUREIVNVPROC)(GLuint video_capture_slot, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params);
typedef void (REGAL_CALL *PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_NV_VIDEO_CAPTURE
#define glBeginVideoCaptureNV               rglBeginVideoCaptureNV
#define glBindVideoCaptureStreamBufferNV    rglBindVideoCaptureStreamBufferNV
#define glBindVideoCaptureStreamTextureNV   rglBindVideoCaptureStreamTextureNV
#define glEndVideoCaptureNV                 rglEndVideoCaptureNV
#define glGetVideoCaptureStreamdvNV         rglGetVideoCaptureStreamdvNV
#define glGetVideoCaptureStreamfvNV         rglGetVideoCaptureStreamfvNV
#define glGetVideoCaptureStreamivNV         rglGetVideoCaptureStreamivNV
#define glGetVideoCaptureivNV               rglGetVideoCaptureivNV
#define glVideoCaptureNV                    rglVideoCaptureNV
#define glVideoCaptureStreamParameterdvNV   rglVideoCaptureStreamParameterdvNV
#define glVideoCaptureStreamParameterfvNV   rglVideoCaptureStreamParameterfvNV
#define glVideoCaptureStreamParameterivNV   rglVideoCaptureStreamParameterivNV
#endif

#ifndef REGAL_NO_DECLARATION_GL_NV_VIDEO_CAPTURE
REGAL_DECL GLenum REGAL_CALL glVideoCaptureNV(GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time);
REGAL_DECL void REGAL_CALL glBeginVideoCaptureNV(GLuint video_capture_slot);
REGAL_DECL void REGAL_CALL glBindVideoCaptureStreamBufferNV(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptr offset);
REGAL_DECL void REGAL_CALL glBindVideoCaptureStreamTextureNV(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
REGAL_DECL void REGAL_CALL glEndVideoCaptureNV(GLuint video_capture_slot);
REGAL_DECL void REGAL_CALL glGetVideoCaptureStreamdvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetVideoCaptureStreamfvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetVideoCaptureStreamivNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetVideoCaptureivNV(GLuint video_capture_slot, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glVideoCaptureStreamParameterdvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params);
REGAL_DECL void REGAL_CALL glVideoCaptureStreamParameterfvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glVideoCaptureStreamParameterivNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_NV_VIDEO_CAPTURE
REGAL_DECL GLenum REGAL_CALL plugin_glVideoCaptureNV(GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time);
REGAL_DECL void REGAL_CALL plugin_glBeginVideoCaptureNV(GLuint video_capture_slot);
REGAL_DECL void REGAL_CALL plugin_glBindVideoCaptureStreamBufferNV(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptr offset);
REGAL_DECL void REGAL_CALL plugin_glBindVideoCaptureStreamTextureNV(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
REGAL_DECL void REGAL_CALL plugin_glEndVideoCaptureNV(GLuint video_capture_slot);
REGAL_DECL void REGAL_CALL plugin_glGetVideoCaptureStreamdvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetVideoCaptureStreamfvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetVideoCaptureStreamivNV(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVideoCaptureivNV(GLuint video_capture_slot, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glVideoCaptureStreamParameterdvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glVideoCaptureStreamParameterfvNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glVideoCaptureStreamParameterivNV(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params);
#endif

/**
 ** GL_OES_blend_equation_separate
 **/

#if (defined(GL_OES_BLEND_EQUATION_SEPARATE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_ENUM_GL_OES_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_ENUM_GL_OES_BLEND_EQUATION_SEPARATE
#endif

#if (defined(GL_OES_BLEND_EQUATION_SEPARATE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_TYPEDEF_GL_OES_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_TYPEDEF_GL_OES_BLEND_EQUATION_SEPARATE
#endif

#if (defined(GL_OES_BLEND_EQUATION_SEPARATE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_NAMESPACE_GL_OES_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_NAMESPACE_GL_OES_BLEND_EQUATION_SEPARATE
#endif

#if (defined(GL_OES_BLEND_EQUATION_SEPARATE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_PLUGIN_GL_OES_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_PLUGIN_GL_OES_BLEND_EQUATION_SEPARATE
#endif

#if (defined(GL_OES_BLEND_EQUATION_SEPARATE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_BLEND_EQUATION_SEPARATE)) && !defined(REGAL_NO_DECLARATION_GL_OES_BLEND_EQUATION_SEPARATE)
#define REGAL_NO_DECLARATION_GL_OES_BLEND_EQUATION_SEPARATE
#endif

#ifndef GL_OES_blend_equation_separate
#define GL_OES_blend_equation_separate 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_BLEND_EQUATION_SEPARATE
#define GL_BLEND_EQUATION_RGB_OES   0x8009     /* 32777 */
#define GL_BLEND_EQUATION_ALPHA_OES 0x883d     /* 34877 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_BLEND_EQUATION_SEPARATE
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONSEPARATEOESPROC)(GLenum modeRGB, GLenum modeAlpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_BLEND_EQUATION_SEPARATE
#define glBlendEquationSeparateOES          rglBlendEquationSeparateOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_BLEND_EQUATION_SEPARATE
REGAL_DECL void REGAL_CALL glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_BLEND_EQUATION_SEPARATE
REGAL_DECL void REGAL_CALL plugin_glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha);
#endif

/**
 ** GL_OES_blend_func_separate
 **/

#if (defined(GL_OES_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_ENUM_GL_OES_BLEND_FUNC_SEPARATE)
#define REGAL_NO_ENUM_GL_OES_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_OES_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_TYPEDEF_GL_OES_BLEND_FUNC_SEPARATE)
#define REGAL_NO_TYPEDEF_GL_OES_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_OES_BLEND_FUNC_SEPARATE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_NAMESPACE_GL_OES_BLEND_FUNC_SEPARATE)
#define REGAL_NO_NAMESPACE_GL_OES_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_OES_BLEND_FUNC_SEPARATE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_PLUGIN_GL_OES_BLEND_FUNC_SEPARATE)
#define REGAL_NO_PLUGIN_GL_OES_BLEND_FUNC_SEPARATE
#endif

#if (defined(GL_OES_BLEND_FUNC_SEPARATE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_BLEND_FUNC_SEPARATE)) && !defined(REGAL_NO_DECLARATION_GL_OES_BLEND_FUNC_SEPARATE)
#define REGAL_NO_DECLARATION_GL_OES_BLEND_FUNC_SEPARATE
#endif

#ifndef GL_OES_blend_func_separate
#define GL_OES_blend_func_separate 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_BLEND_FUNC_SEPARATE
#define GL_BLEND_DST_RGB_OES   0x80c8     /* 32968 */
#define GL_BLEND_SRC_RGB_OES   0x80c9     /* 32969 */
#define GL_BLEND_DST_ALPHA_OES 0x80ca     /* 32970 */
#define GL_BLEND_SRC_ALPHA_OES 0x80cb     /* 32971 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_BLEND_FUNC_SEPARATE
typedef void (REGAL_CALL *PFNGLBLENDFUNCSEPARATEOESPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_BLEND_FUNC_SEPARATE
#define glBlendFuncSeparateOES              rglBlendFuncSeparateOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_BLEND_FUNC_SEPARATE
REGAL_DECL void REGAL_CALL glBlendFuncSeparateOES(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_BLEND_FUNC_SEPARATE
REGAL_DECL void REGAL_CALL plugin_glBlendFuncSeparateOES(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
#endif

/**
 ** GL_OES_blend_subtract
 **/

#if (defined(GL_OES_BLEND_SUBTRACT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_BLEND_SUBTRACT)) && !defined(REGAL_NO_ENUM_GL_OES_BLEND_SUBTRACT)
#define REGAL_NO_ENUM_GL_OES_BLEND_SUBTRACT
#endif

#if (defined(GL_OES_BLEND_SUBTRACT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_BLEND_SUBTRACT)) && !defined(REGAL_NO_TYPEDEF_GL_OES_BLEND_SUBTRACT)
#define REGAL_NO_TYPEDEF_GL_OES_BLEND_SUBTRACT
#endif

#if (defined(GL_OES_BLEND_SUBTRACT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_BLEND_SUBTRACT)) && !defined(REGAL_NO_NAMESPACE_GL_OES_BLEND_SUBTRACT)
#define REGAL_NO_NAMESPACE_GL_OES_BLEND_SUBTRACT
#endif

#if (defined(GL_OES_BLEND_SUBTRACT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_BLEND_SUBTRACT)) && !defined(REGAL_NO_PLUGIN_GL_OES_BLEND_SUBTRACT)
#define REGAL_NO_PLUGIN_GL_OES_BLEND_SUBTRACT
#endif

#if (defined(GL_OES_BLEND_SUBTRACT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_BLEND_SUBTRACT)) && !defined(REGAL_NO_DECLARATION_GL_OES_BLEND_SUBTRACT)
#define REGAL_NO_DECLARATION_GL_OES_BLEND_SUBTRACT
#endif

#ifndef GL_OES_blend_subtract
#define GL_OES_blend_subtract 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_BLEND_SUBTRACT
#define GL_FUNC_ADD_OES              0x8006     /* 32774 */
#define GL_BLEND_EQUATION_OES        0x8009     /* 32777 */
#define GL_FUNC_SUBTRACT_OES         0x800a     /* 32778 */
#define GL_FUNC_REVERSE_SUBTRACT_OES 0x800b     /* 32779 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_BLEND_SUBTRACT
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONOESPROC)(GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_BLEND_SUBTRACT
#define glBlendEquationOES                  rglBlendEquationOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_BLEND_SUBTRACT
REGAL_DECL void REGAL_CALL glBlendEquationOES(GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_BLEND_SUBTRACT
REGAL_DECL void REGAL_CALL plugin_glBlendEquationOES(GLenum mode);
#endif

/**
 ** GL_OES_compressed_ETC1_RGB8_texture
 **/

#if (defined(GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)
#define REGAL_NO_ENUM_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE
#endif

#if (defined(GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE
#endif

#if (defined(GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE
#endif

#if (defined(GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)
#define REGAL_NO_PLUGIN_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE
#endif

#if (defined(GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE)
#define REGAL_NO_DECLARATION_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE
#endif

#ifndef GL_OES_compressed_ETC1_RGB8_texture
#define GL_OES_compressed_ETC1_RGB8_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_COMPRESSED_ETC1_RGB8_TEXTURE
#define GL_ETC1_RGB8_OES 0x8d64 /* 36196 */
#endif

/**
 ** GL_OES_compressed_paletted_texture
 **/

#if (defined(GL_OES_COMPRESSED_PALETTED_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_COMPRESSED_PALETTED_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_OES_COMPRESSED_PALETTED_TEXTURE)
#define REGAL_NO_ENUM_GL_OES_COMPRESSED_PALETTED_TEXTURE
#endif

#if (defined(GL_OES_COMPRESSED_PALETTED_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_COMPRESSED_PALETTED_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_OES_COMPRESSED_PALETTED_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_OES_COMPRESSED_PALETTED_TEXTURE
#endif

#if (defined(GL_OES_COMPRESSED_PALETTED_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_COMPRESSED_PALETTED_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_OES_COMPRESSED_PALETTED_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_OES_COMPRESSED_PALETTED_TEXTURE
#endif

#if (defined(GL_OES_COMPRESSED_PALETTED_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_COMPRESSED_PALETTED_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_OES_COMPRESSED_PALETTED_TEXTURE)
#define REGAL_NO_PLUGIN_GL_OES_COMPRESSED_PALETTED_TEXTURE
#endif

#if (defined(GL_OES_COMPRESSED_PALETTED_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_COMPRESSED_PALETTED_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_OES_COMPRESSED_PALETTED_TEXTURE)
#define REGAL_NO_DECLARATION_GL_OES_COMPRESSED_PALETTED_TEXTURE
#endif

#ifndef GL_OES_compressed_paletted_texture
#define GL_OES_compressed_paletted_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_COMPRESSED_PALETTED_TEXTURE
#define GL_PALETTE4_RGB8_OES     0x8b90     /* 35728 */
#define GL_PALETTE4_RGBA8_OES    0x8b91     /* 35729 */
#define GL_PALETTE4_R5_G6_B5_OES 0x8b92     /* 35730 */
#define GL_PALETTE4_RGBA4_OES    0x8b93     /* 35731 */
#define GL_PALETTE4_RGB5_A1_OES  0x8b94     /* 35732 */
#define GL_PALETTE8_RGB8_OES     0x8b95     /* 35733 */
#define GL_PALETTE8_RGBA8_OES    0x8b96     /* 35734 */
#define GL_PALETTE8_R5_G6_B5_OES 0x8b97     /* 35735 */
#define GL_PALETTE8_RGBA4_OES    0x8b98     /* 35736 */
#define GL_PALETTE8_RGB5_A1_OES  0x8b99     /* 35737 */
#endif

/**
 ** GL_OES_draw_texture
 **/

#if (defined(GL_OES_DRAW_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_DRAW_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_OES_DRAW_TEXTURE)
#define REGAL_NO_ENUM_GL_OES_DRAW_TEXTURE
#endif

#if (defined(GL_OES_DRAW_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_DRAW_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_OES_DRAW_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_OES_DRAW_TEXTURE
#endif

#if (defined(GL_OES_DRAW_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_DRAW_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_OES_DRAW_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_OES_DRAW_TEXTURE
#endif

#if (defined(GL_OES_DRAW_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_DRAW_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_OES_DRAW_TEXTURE)
#define REGAL_NO_PLUGIN_GL_OES_DRAW_TEXTURE
#endif

#if (defined(GL_OES_DRAW_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_DRAW_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_OES_DRAW_TEXTURE)
#define REGAL_NO_DECLARATION_GL_OES_DRAW_TEXTURE
#endif

#ifndef GL_OES_draw_texture
#define GL_OES_draw_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_DRAW_TEXTURE
#define GL_TEXTURE_CROP_RECT_OES 0x8b9d /* 35741 */
#endif

/**
 ** GL_OES_framebuffer_object
 **/

#if (defined(GL_OES_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GL_OES_FRAMEBUFFER_OBJECT)
#define REGAL_NO_ENUM_GL_OES_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_OES_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_OES_FRAMEBUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GL_OES_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_OES_FRAMEBUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_OES_FRAMEBUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GL_OES_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_OES_FRAMEBUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_OES_FRAMEBUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GL_OES_FRAMEBUFFER_OBJECT
#endif

#if (defined(GL_OES_FRAMEBUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_FRAMEBUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_OES_FRAMEBUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GL_OES_FRAMEBUFFER_OBJECT
#endif

#ifndef GL_OES_framebuffer_object
#define GL_OES_framebuffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_FRAMEBUFFER_OBJECT
#define GL_NONE_OES                                         0x0
#define GL_INVALID_FRAMEBUFFER_OPERATION_OES                0x506      /* 1286 */
#define GL_MAX_RENDERBUFFER_SIZE_OES                        0x84e8     /* 34024 */
#define GL_FRAMEBUFFER_BINDING_OES                          0x8ca6     /* 36006 */
#define GL_RENDERBUFFER_BINDING_OES                         0x8ca7     /* 36007 */
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES           0x8cd0     /* 36048 */
#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES           0x8cd1     /* 36049 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES         0x8cd2     /* 36050 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES 0x8cd3     /* 36051 */
#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES    0x8cd4     /* 36052 */
#define GL_FRAMEBUFFER_COMPLETE_OES                         0x8cd5     /* 36053 */
#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES            0x8cd6     /* 36054 */
#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES    0x8cd7     /* 36055 */
#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES            0x8cd9     /* 36057 */
#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES               0x8cda     /* 36058 */
#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES           0x8cdb     /* 36059 */
#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES           0x8cdc     /* 36060 */
#define GL_FRAMEBUFFER_UNSUPPORTED_OES                      0x8cdd     /* 36061 */
#define GL_COLOR_ATTACHMENT0_OES                            0x8ce0     /* 36064 */
#define GL_DEPTH_ATTACHMENT_OES                             0x8d00     /* 36096 */
#define GL_STENCIL_ATTACHMENT_OES                           0x8d20     /* 36128 */
#define GL_FRAMEBUFFER_OES                                  0x8d40     /* 36160 */
#define GL_RENDERBUFFER_OES                                 0x8d41     /* 36161 */
#define GL_RENDERBUFFER_WIDTH_OES                           0x8d42     /* 36162 */
#define GL_RENDERBUFFER_HEIGHT_OES                          0x8d43     /* 36163 */
#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES                 0x8d44     /* 36164 */
#define GL_RENDERBUFFER_RED_SIZE_OES                        0x8d50     /* 36176 */
#define GL_RENDERBUFFER_GREEN_SIZE_OES                      0x8d51     /* 36177 */
#define GL_RENDERBUFFER_BLUE_SIZE_OES                       0x8d52     /* 36178 */
#define GL_RENDERBUFFER_ALPHA_SIZE_OES                      0x8d53     /* 36179 */
#define GL_RENDERBUFFER_DEPTH_SIZE_OES                      0x8d54     /* 36180 */
#define GL_RENDERBUFFER_STENCIL_SIZE_OES                    0x8d55     /* 36181 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_FRAMEBUFFER_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLISFRAMEBUFFEROESPROC)(GLuint framebuffer);
typedef GLboolean (REGAL_CALL *PFNGLISRENDERBUFFEROESPROC)(GLuint renderbuffer);
typedef GLenum (REGAL_CALL *PFNGLCHECKFRAMEBUFFERSTATUSOESPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLBINDFRAMEBUFFEROESPROC)(GLenum target, GLuint framebuffer);
typedef void (REGAL_CALL *PFNGLBINDRENDERBUFFEROESPROC)(GLenum target, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLDELETEFRAMEBUFFERSOESPROC)(GLsizei n, const GLuint *framebuffers);
typedef void (REGAL_CALL *PFNGLDELETERENDERBUFFERSOESPROC)(GLsizei n, const GLuint *renderbuffers);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERRENDERBUFFEROESPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE2DOESPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLGENERATEMIPMAPOESPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLGENFRAMEBUFFERSOESPROC)(GLsizei n, GLuint *framebuffers);
typedef void (REGAL_CALL *PFNGLGENRENDERBUFFERSOESPROC)(GLsizei n, GLuint *renderbuffers);
typedef void (REGAL_CALL *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETRENDERBUFFERPARAMETERIVOESPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLRENDERBUFFERSTORAGEOESPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_FRAMEBUFFER_OBJECT
#define glBindFramebufferOES                rglBindFramebufferOES
#define glBindRenderbufferOES               rglBindRenderbufferOES
#define glCheckFramebufferStatusOES         rglCheckFramebufferStatusOES
#define glDeleteFramebuffersOES             rglDeleteFramebuffersOES
#define glDeleteRenderbuffersOES            rglDeleteRenderbuffersOES
#define glFramebufferRenderbufferOES        rglFramebufferRenderbufferOES
#define glFramebufferTexture2DOES           rglFramebufferTexture2DOES
#define glGenFramebuffersOES                rglGenFramebuffersOES
#define glGenRenderbuffersOES               rglGenRenderbuffersOES
#define glGenerateMipmapOES                 rglGenerateMipmapOES
#define glGetFramebufferAttachmentParameterivOES rglGetFramebufferAttachmentParameterivOES
#define glGetRenderbufferParameterivOES     rglGetRenderbufferParameterivOES
#define glIsFramebufferOES                  rglIsFramebufferOES
#define glIsRenderbufferOES                 rglIsRenderbufferOES
#define glRenderbufferStorageOES            rglRenderbufferStorageOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_FRAMEBUFFER_OBJECT
REGAL_DECL GLboolean REGAL_CALL glIsFramebufferOES(GLuint framebuffer);
REGAL_DECL GLboolean REGAL_CALL glIsRenderbufferOES(GLuint renderbuffer);
REGAL_DECL GLenum REGAL_CALL glCheckFramebufferStatusOES(GLenum target);
REGAL_DECL void REGAL_CALL glBindFramebufferOES(GLenum target, GLuint framebuffer);
REGAL_DECL void REGAL_CALL glBindRenderbufferOES(GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glDeleteFramebuffersOES(GLsizei n, const GLuint *framebuffers);
REGAL_DECL void REGAL_CALL glDeleteRenderbuffersOES(GLsizei n, const GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glGenFramebuffersOES(GLsizei n, GLuint *framebuffers);
REGAL_DECL void REGAL_CALL glGenRenderbuffersOES(GLsizei n, GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL glGenerateMipmapOES(GLenum target);
REGAL_DECL void REGAL_CALL glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_FRAMEBUFFER_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glIsFramebufferOES(GLuint framebuffer);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsRenderbufferOES(GLuint renderbuffer);
REGAL_DECL GLenum REGAL_CALL plugin_glCheckFramebufferStatusOES(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glBindFramebufferOES(GLenum target, GLuint framebuffer);
REGAL_DECL void REGAL_CALL plugin_glBindRenderbufferOES(GLenum target, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glDeleteFramebuffersOES(GLsizei n, const GLuint *framebuffers);
REGAL_DECL void REGAL_CALL plugin_glDeleteRenderbuffersOES(GLsizei n, const GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL plugin_glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glGenFramebuffersOES(GLsizei n, GLuint *framebuffers);
REGAL_DECL void REGAL_CALL plugin_glGenRenderbuffersOES(GLsizei n, GLuint *renderbuffers);
REGAL_DECL void REGAL_CALL plugin_glGenerateMipmapOES(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
#endif

/**
 ** GL_OES_get_program_binary
 **/

#if (defined(GL_OES_GET_PROGRAM_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_ENUM_GL_OES_GET_PROGRAM_BINARY)
#define REGAL_NO_ENUM_GL_OES_GET_PROGRAM_BINARY
#endif

#if (defined(GL_OES_GET_PROGRAM_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_OES_GET_PROGRAM_BINARY)
#define REGAL_NO_TYPEDEF_GL_OES_GET_PROGRAM_BINARY
#endif

#if (defined(GL_OES_GET_PROGRAM_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_OES_GET_PROGRAM_BINARY)
#define REGAL_NO_NAMESPACE_GL_OES_GET_PROGRAM_BINARY
#endif

#if (defined(GL_OES_GET_PROGRAM_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_OES_GET_PROGRAM_BINARY)
#define REGAL_NO_PLUGIN_GL_OES_GET_PROGRAM_BINARY
#endif

#if (defined(GL_OES_GET_PROGRAM_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_GET_PROGRAM_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_OES_GET_PROGRAM_BINARY)
#define REGAL_NO_DECLARATION_GL_OES_GET_PROGRAM_BINARY
#endif

#ifndef GL_OES_get_program_binary
#define GL_OES_get_program_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_GET_PROGRAM_BINARY
#define GL_PROGRAM_BINARY_LENGTH_OES      0x8741     /* 34625 */
#define GL_NUM_PROGRAM_BINARY_FORMATS_OES 0x87fe     /* 34814 */
#define GL_PROGRAM_BINARY_FORMATS_OES     0x87ff     /* 34815 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_GET_PROGRAM_BINARY
typedef void (REGAL_CALL *PFNGLGETPROGRAMBINARYOESPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
typedef void (REGAL_CALL *PFNGLPROGRAMBINARYOESPROC)(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_GET_PROGRAM_BINARY
#define glGetProgramBinaryOES               rglGetProgramBinaryOES
#define glProgramBinaryOES                  rglProgramBinaryOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_GET_PROGRAM_BINARY
REGAL_DECL void REGAL_CALL glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
REGAL_DECL void REGAL_CALL glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_GET_PROGRAM_BINARY
REGAL_DECL void REGAL_CALL plugin_glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary);
REGAL_DECL void REGAL_CALL plugin_glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length);
#endif

/**
 ** GL_OES_mapbuffer
 **/

#if (defined(GL_OES_MAPBUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_MAPBUFFER)) && !defined(REGAL_NO_ENUM_GL_OES_MAPBUFFER)
#define REGAL_NO_ENUM_GL_OES_MAPBUFFER
#endif

#if (defined(GL_OES_MAPBUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_MAPBUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_OES_MAPBUFFER)
#define REGAL_NO_TYPEDEF_GL_OES_MAPBUFFER
#endif

#if (defined(GL_OES_MAPBUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_MAPBUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_OES_MAPBUFFER)
#define REGAL_NO_NAMESPACE_GL_OES_MAPBUFFER
#endif

#if (defined(GL_OES_MAPBUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_MAPBUFFER)) && !defined(REGAL_NO_PLUGIN_GL_OES_MAPBUFFER)
#define REGAL_NO_PLUGIN_GL_OES_MAPBUFFER
#endif

#if (defined(GL_OES_MAPBUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_MAPBUFFER)) && !defined(REGAL_NO_DECLARATION_GL_OES_MAPBUFFER)
#define REGAL_NO_DECLARATION_GL_OES_MAPBUFFER
#endif

#ifndef GL_OES_mapbuffer
#define GL_OES_mapbuffer 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_MAPBUFFER
#define GL_WRITE_ONLY_OES         0x88b9     /* 35001 */
#define GL_BUFFER_ACCESS_OES      0x88bb     /* 35003 */
#define GL_BUFFER_MAPPED_OES      0x88bc     /* 35004 */
#define GL_BUFFER_MAP_POINTER_OES 0x88bd     /* 35005 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_MAPBUFFER
typedef GLboolean (REGAL_CALL *PFNGLUNMAPBUFFEROESPROC)(GLenum target);
typedef GLvoid *(REGAL_CALL *PFNGLMAPBUFFEROESPROC)(GLenum target, GLenum access);
typedef void (REGAL_CALL *PFNGLGETBUFFERPOINTERVOESPROC)(GLenum target, GLenum pname, GLvoid **params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_MAPBUFFER
#define glGetBufferPointervOES              rglGetBufferPointervOES
#define glMapBufferOES                      rglMapBufferOES
#define glUnmapBufferOES                    rglUnmapBufferOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_MAPBUFFER
REGAL_DECL GLboolean REGAL_CALL glUnmapBufferOES(GLenum target);
REGAL_DECL GLvoid *REGAL_CALL glMapBufferOES(GLenum target, GLenum access);
REGAL_DECL void REGAL_CALL glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid **params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_MAPBUFFER
REGAL_DECL GLboolean REGAL_CALL plugin_glUnmapBufferOES(GLenum target);
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapBufferOES(GLenum target, GLenum access);
REGAL_DECL void REGAL_CALL plugin_glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid **params);
#endif

/**
 ** GL_OES_matrix_get
 **/

#if (defined(GL_OES_MATRIX_GET) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_MATRIX_GET)) && !defined(REGAL_NO_ENUM_GL_OES_MATRIX_GET)
#define REGAL_NO_ENUM_GL_OES_MATRIX_GET
#endif

#if (defined(GL_OES_MATRIX_GET) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_MATRIX_GET)) && !defined(REGAL_NO_TYPEDEF_GL_OES_MATRIX_GET)
#define REGAL_NO_TYPEDEF_GL_OES_MATRIX_GET
#endif

#if (defined(GL_OES_MATRIX_GET) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_MATRIX_GET)) && !defined(REGAL_NO_NAMESPACE_GL_OES_MATRIX_GET)
#define REGAL_NO_NAMESPACE_GL_OES_MATRIX_GET
#endif

#if (defined(GL_OES_MATRIX_GET) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_MATRIX_GET)) && !defined(REGAL_NO_PLUGIN_GL_OES_MATRIX_GET)
#define REGAL_NO_PLUGIN_GL_OES_MATRIX_GET
#endif

#if (defined(GL_OES_MATRIX_GET) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_MATRIX_GET)) && !defined(REGAL_NO_DECLARATION_GL_OES_MATRIX_GET)
#define REGAL_NO_DECLARATION_GL_OES_MATRIX_GET
#endif

#ifndef GL_OES_matrix_get
#define GL_OES_matrix_get 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_MATRIX_GET
#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES  0x898     /* 2200 */
#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES 0x898     /* 2200 */
#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES    0x898     /* 2200 */
#endif

/**
 ** GL_OES_matrix_palette
 **/

#if (defined(GL_OES_MATRIX_PALETTE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_MATRIX_PALETTE)) && !defined(REGAL_NO_ENUM_GL_OES_MATRIX_PALETTE)
#define REGAL_NO_ENUM_GL_OES_MATRIX_PALETTE
#endif

#if (defined(GL_OES_MATRIX_PALETTE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_MATRIX_PALETTE)) && !defined(REGAL_NO_TYPEDEF_GL_OES_MATRIX_PALETTE)
#define REGAL_NO_TYPEDEF_GL_OES_MATRIX_PALETTE
#endif

#if (defined(GL_OES_MATRIX_PALETTE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_MATRIX_PALETTE)) && !defined(REGAL_NO_NAMESPACE_GL_OES_MATRIX_PALETTE)
#define REGAL_NO_NAMESPACE_GL_OES_MATRIX_PALETTE
#endif

#if (defined(GL_OES_MATRIX_PALETTE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_MATRIX_PALETTE)) && !defined(REGAL_NO_PLUGIN_GL_OES_MATRIX_PALETTE)
#define REGAL_NO_PLUGIN_GL_OES_MATRIX_PALETTE
#endif

#if (defined(GL_OES_MATRIX_PALETTE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_MATRIX_PALETTE)) && !defined(REGAL_NO_DECLARATION_GL_OES_MATRIX_PALETTE)
#define REGAL_NO_DECLARATION_GL_OES_MATRIX_PALETTE
#endif

#ifndef GL_OES_matrix_palette
#define GL_OES_matrix_palette 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_MATRIX_PALETTE
#define GL_MAX_VERTEX_UNITS_OES                  0x86a4     /* 34468 */
#define GL_WEIGHT_ARRAY_TYPE_OES                 0x86a9     /* 34473 */
#define GL_WEIGHT_ARRAY_STRIDE_OES               0x86aa     /* 34474 */
#define GL_WEIGHT_ARRAY_SIZE_OES                 0x86ab     /* 34475 */
#define GL_WEIGHT_ARRAY_POINTER_OES              0x86ac     /* 34476 */
#define GL_WEIGHT_ARRAY_OES                      0x86ad     /* 34477 */
#define GL_MATRIX_PALETTE_OES                    0x8840     /* 34880 */
#define GL_MAX_PALETTE_MATRICES_OES              0x8842     /* 34882 */
#define GL_CURRENT_PALETTE_MATRIX_OES            0x8843     /* 34883 */
#define GL_MATRIX_INDEX_ARRAY_OES                0x8844     /* 34884 */
#define GL_MATRIX_INDEX_ARRAY_SIZE_OES           0x8846     /* 34886 */
#define GL_MATRIX_INDEX_ARRAY_TYPE_OES           0x8847     /* 34887 */
#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES         0x8848     /* 34888 */
#define GL_MATRIX_INDEX_ARRAY_POINTER_OES        0x8849     /* 34889 */
#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES       0x889e     /* 34974 */
#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES 0x8b9e     /* 35742 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_MATRIX_PALETTE
typedef void (REGAL_CALL *PFNGLCURRENTPALETTEMATRIXOESPROC)(GLuint index);
typedef void (REGAL_CALL *PFNGLMATRIXINDEXPOINTEROESPROC)(GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLWEIGHTPOINTEROESPROC)(GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_MATRIX_PALETTE
#define glCurrentPaletteMatrixOES           rglCurrentPaletteMatrixOES
#define glMatrixIndexPointerOES             rglMatrixIndexPointerOES
#define glWeightPointerOES                  rglWeightPointerOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_MATRIX_PALETTE
REGAL_DECL void REGAL_CALL glCurrentPaletteMatrixOES(GLuint index);
REGAL_DECL void REGAL_CALL glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
REGAL_DECL void REGAL_CALL glWeightPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_MATRIX_PALETTE
REGAL_DECL void REGAL_CALL plugin_glCurrentPaletteMatrixOES(GLuint index);
REGAL_DECL void REGAL_CALL plugin_glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glWeightPointerOES(GLint size, GLenum type, GLsizei stride, GLvoid *pointer);
#endif

/**
 ** GL_OES_packed_depth_stencil
 **/

#if (defined(GL_OES_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_ENUM_GL_OES_PACKED_DEPTH_STENCIL)
#define REGAL_NO_ENUM_GL_OES_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_OES_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_TYPEDEF_GL_OES_PACKED_DEPTH_STENCIL)
#define REGAL_NO_TYPEDEF_GL_OES_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_OES_PACKED_DEPTH_STENCIL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_NAMESPACE_GL_OES_PACKED_DEPTH_STENCIL)
#define REGAL_NO_NAMESPACE_GL_OES_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_OES_PACKED_DEPTH_STENCIL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_PLUGIN_GL_OES_PACKED_DEPTH_STENCIL)
#define REGAL_NO_PLUGIN_GL_OES_PACKED_DEPTH_STENCIL
#endif

#if (defined(GL_OES_PACKED_DEPTH_STENCIL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_PACKED_DEPTH_STENCIL)) && !defined(REGAL_NO_DECLARATION_GL_OES_PACKED_DEPTH_STENCIL)
#define REGAL_NO_DECLARATION_GL_OES_PACKED_DEPTH_STENCIL
#endif

#ifndef GL_OES_packed_depth_stencil
#define GL_OES_packed_depth_stencil 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_PACKED_DEPTH_STENCIL
#define GL_DEPTH_STENCIL_OES     0x84f9     /* 34041 */
#define GL_UNSIGNED_INT_24_8_OES 0x84fa     /* 34042 */
#endif

/**
 ** GL_OES_point_size_array
 **/

#if (defined(GL_OES_POINT_SIZE_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_POINT_SIZE_ARRAY)) && !defined(REGAL_NO_ENUM_GL_OES_POINT_SIZE_ARRAY)
#define REGAL_NO_ENUM_GL_OES_POINT_SIZE_ARRAY
#endif

#if (defined(GL_OES_POINT_SIZE_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_POINT_SIZE_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_OES_POINT_SIZE_ARRAY)
#define REGAL_NO_TYPEDEF_GL_OES_POINT_SIZE_ARRAY
#endif

#if (defined(GL_OES_POINT_SIZE_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_POINT_SIZE_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_OES_POINT_SIZE_ARRAY)
#define REGAL_NO_NAMESPACE_GL_OES_POINT_SIZE_ARRAY
#endif

#if (defined(GL_OES_POINT_SIZE_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_POINT_SIZE_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_OES_POINT_SIZE_ARRAY)
#define REGAL_NO_PLUGIN_GL_OES_POINT_SIZE_ARRAY
#endif

#if (defined(GL_OES_POINT_SIZE_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_POINT_SIZE_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_OES_POINT_SIZE_ARRAY)
#define REGAL_NO_DECLARATION_GL_OES_POINT_SIZE_ARRAY
#endif

#ifndef GL_OES_point_size_array
#define GL_OES_point_size_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_POINT_SIZE_ARRAY
#define GL_POINT_SIZE_ARRAY_TYPE_OES           0x898a     /* 35210 */
#define GL_POINT_SIZE_ARRAY_STRIDE_OES         0x898b     /* 35211 */
#define GL_POINT_SIZE_ARRAY_POINTER_OES        0x898c     /* 35212 */
#define GL_POINT_SIZE_ARRAY_OES                0x8b9c     /* 35740 */
#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES 0x8b9f     /* 35743 */
#endif

/**
 ** GL_OES_point_sprite
 **/

#if (defined(GL_OES_POINT_SPRITE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_POINT_SPRITE)) && !defined(REGAL_NO_ENUM_GL_OES_POINT_SPRITE)
#define REGAL_NO_ENUM_GL_OES_POINT_SPRITE
#endif

#if (defined(GL_OES_POINT_SPRITE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_POINT_SPRITE)) && !defined(REGAL_NO_TYPEDEF_GL_OES_POINT_SPRITE)
#define REGAL_NO_TYPEDEF_GL_OES_POINT_SPRITE
#endif

#if (defined(GL_OES_POINT_SPRITE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_POINT_SPRITE)) && !defined(REGAL_NO_NAMESPACE_GL_OES_POINT_SPRITE)
#define REGAL_NO_NAMESPACE_GL_OES_POINT_SPRITE
#endif

#if (defined(GL_OES_POINT_SPRITE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_POINT_SPRITE)) && !defined(REGAL_NO_PLUGIN_GL_OES_POINT_SPRITE)
#define REGAL_NO_PLUGIN_GL_OES_POINT_SPRITE
#endif

#if (defined(GL_OES_POINT_SPRITE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_POINT_SPRITE)) && !defined(REGAL_NO_DECLARATION_GL_OES_POINT_SPRITE)
#define REGAL_NO_DECLARATION_GL_OES_POINT_SPRITE
#endif

#ifndef GL_OES_point_sprite
#define GL_OES_point_sprite 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_POINT_SPRITE
#define GL_POINT_SPRITE_OES  0x8861     /* 34913 */
#define GL_COORD_REPLACE_OES 0x8862     /* 34914 */
#endif

/**
 ** GL_OES_read_format
 **/

#if (defined(GL_OES_READ_FORMAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_READ_FORMAT)) && !defined(REGAL_NO_ENUM_GL_OES_READ_FORMAT)
#define REGAL_NO_ENUM_GL_OES_READ_FORMAT
#endif

#if (defined(GL_OES_READ_FORMAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_READ_FORMAT)) && !defined(REGAL_NO_TYPEDEF_GL_OES_READ_FORMAT)
#define REGAL_NO_TYPEDEF_GL_OES_READ_FORMAT
#endif

#if (defined(GL_OES_READ_FORMAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_READ_FORMAT)) && !defined(REGAL_NO_NAMESPACE_GL_OES_READ_FORMAT)
#define REGAL_NO_NAMESPACE_GL_OES_READ_FORMAT
#endif

#if (defined(GL_OES_READ_FORMAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_READ_FORMAT)) && !defined(REGAL_NO_PLUGIN_GL_OES_READ_FORMAT)
#define REGAL_NO_PLUGIN_GL_OES_READ_FORMAT
#endif

#if (defined(GL_OES_READ_FORMAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_READ_FORMAT)) && !defined(REGAL_NO_DECLARATION_GL_OES_READ_FORMAT)
#define REGAL_NO_DECLARATION_GL_OES_READ_FORMAT
#endif

#ifndef GL_OES_read_format
#define GL_OES_read_format 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_READ_FORMAT
#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES   0x8b9a     /* 35738 */
#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8b9b     /* 35739 */
#endif

/**
 ** GL_OES_required_internalformat
 **/

#if (defined(GL_OES_REQUIRED_INTERNALFORMAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_REQUIRED_INTERNALFORMAT)) && !defined(REGAL_NO_ENUM_GL_OES_REQUIRED_INTERNALFORMAT)
#define REGAL_NO_ENUM_GL_OES_REQUIRED_INTERNALFORMAT
#endif

#if (defined(GL_OES_REQUIRED_INTERNALFORMAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_REQUIRED_INTERNALFORMAT)) && !defined(REGAL_NO_TYPEDEF_GL_OES_REQUIRED_INTERNALFORMAT)
#define REGAL_NO_TYPEDEF_GL_OES_REQUIRED_INTERNALFORMAT
#endif

#if (defined(GL_OES_REQUIRED_INTERNALFORMAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_REQUIRED_INTERNALFORMAT)) && !defined(REGAL_NO_NAMESPACE_GL_OES_REQUIRED_INTERNALFORMAT)
#define REGAL_NO_NAMESPACE_GL_OES_REQUIRED_INTERNALFORMAT
#endif

#if (defined(GL_OES_REQUIRED_INTERNALFORMAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_REQUIRED_INTERNALFORMAT)) && !defined(REGAL_NO_PLUGIN_GL_OES_REQUIRED_INTERNALFORMAT)
#define REGAL_NO_PLUGIN_GL_OES_REQUIRED_INTERNALFORMAT
#endif

#if (defined(GL_OES_REQUIRED_INTERNALFORMAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_REQUIRED_INTERNALFORMAT)) && !defined(REGAL_NO_DECLARATION_GL_OES_REQUIRED_INTERNALFORMAT)
#define REGAL_NO_DECLARATION_GL_OES_REQUIRED_INTERNALFORMAT
#endif

#ifndef GL_OES_required_internalformat
#define GL_OES_required_internalformat 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_REQUIRED_INTERNALFORMAT
#define GL_ALPHA8_OES            0x803c     /* 32828 */
#define GL_LUMINANCE8_OES        0x8040     /* 32832 */
#define GL_LUMINANCE4_ALPHA4_OES 0x8043     /* 32835 */
#define GL_LUMINANCE8_ALPHA8_OES 0x8045     /* 32837 */
#define GL_RGBA4_OES             0x8056     /* 32854 */
#define GL_RGB5_A1_OES           0x8057     /* 32855 */
#define GL_DEPTH_COMPONENT16_OES 0x81a5     /* 33189 */
#define GL_DEPTH_COMPONENT24_OES 0x81a6     /* 33190 */
#define GL_DEPTH_COMPONENT32_OES 0x81a7     /* 33191 */
#define GL_DEPTH24_STENCIL8_OES  0x88f0     /* 35056 */
#define GL_RGB565_OES            0x8d62     /* 36194 */
#endif

/**
 ** GL_OES_rgb8_rgba8
 **/

#if (defined(GL_OES_RGB8_RGBA8) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_RGB8_RGBA8)) && !defined(REGAL_NO_ENUM_GL_OES_RGB8_RGBA8)
#define REGAL_NO_ENUM_GL_OES_RGB8_RGBA8
#endif

#if (defined(GL_OES_RGB8_RGBA8) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_RGB8_RGBA8)) && !defined(REGAL_NO_TYPEDEF_GL_OES_RGB8_RGBA8)
#define REGAL_NO_TYPEDEF_GL_OES_RGB8_RGBA8
#endif

#if (defined(GL_OES_RGB8_RGBA8) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_RGB8_RGBA8)) && !defined(REGAL_NO_NAMESPACE_GL_OES_RGB8_RGBA8)
#define REGAL_NO_NAMESPACE_GL_OES_RGB8_RGBA8
#endif

#if (defined(GL_OES_RGB8_RGBA8) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_RGB8_RGBA8)) && !defined(REGAL_NO_PLUGIN_GL_OES_RGB8_RGBA8)
#define REGAL_NO_PLUGIN_GL_OES_RGB8_RGBA8
#endif

#if (defined(GL_OES_RGB8_RGBA8) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_RGB8_RGBA8)) && !defined(REGAL_NO_DECLARATION_GL_OES_RGB8_RGBA8)
#define REGAL_NO_DECLARATION_GL_OES_RGB8_RGBA8
#endif

#ifndef GL_OES_rgb8_rgba8
#define GL_OES_rgb8_rgba8 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_RGB8_RGBA8
#define GL_RGB8_OES  0x8051     /* 32849 */
#define GL_RGBA8_OES 0x8058     /* 32856 */
#endif

/**
 ** GL_OES_single_precision
 **/

#if (defined(GL_OES_SINGLE_PRECISION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_SINGLE_PRECISION)) && !defined(REGAL_NO_ENUM_GL_OES_SINGLE_PRECISION)
#define REGAL_NO_ENUM_GL_OES_SINGLE_PRECISION
#endif

#if (defined(GL_OES_SINGLE_PRECISION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_SINGLE_PRECISION)) && !defined(REGAL_NO_TYPEDEF_GL_OES_SINGLE_PRECISION)
#define REGAL_NO_TYPEDEF_GL_OES_SINGLE_PRECISION
#endif

#if (defined(GL_OES_SINGLE_PRECISION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_SINGLE_PRECISION)) && !defined(REGAL_NO_NAMESPACE_GL_OES_SINGLE_PRECISION)
#define REGAL_NO_NAMESPACE_GL_OES_SINGLE_PRECISION
#endif

#if (defined(GL_OES_SINGLE_PRECISION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_SINGLE_PRECISION)) && !defined(REGAL_NO_PLUGIN_GL_OES_SINGLE_PRECISION)
#define REGAL_NO_PLUGIN_GL_OES_SINGLE_PRECISION
#endif

#if (defined(GL_OES_SINGLE_PRECISION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_SINGLE_PRECISION)) && !defined(REGAL_NO_DECLARATION_GL_OES_SINGLE_PRECISION)
#define REGAL_NO_DECLARATION_GL_OES_SINGLE_PRECISION
#endif

#ifndef GL_OES_single_precision
#define GL_OES_single_precision 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_SINGLE_PRECISION
typedef void (REGAL_CALL *PFNGLCLEARDEPTHFOESPROC)(GLclampd depth);
typedef void (REGAL_CALL *PFNGLCLIPPLANEFOESPROC)(GLenum plane, const GLfloat *equation);
typedef void (REGAL_CALL *PFNGLDEPTHRANGEFOESPROC)(GLclampf n, GLclampf f);
typedef void (REGAL_CALL *PFNGLFRUSTUMFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
typedef void (REGAL_CALL *PFNGLGETCLIPPLANEFOESPROC)(GLenum plane, GLfloat *equation);
typedef void (REGAL_CALL *PFNGLORTHOFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_SINGLE_PRECISION
#define glClearDepthfOES                    rglClearDepthfOES
#define glClipPlanefOES                     rglClipPlanefOES
#define glDepthRangefOES                    rglDepthRangefOES
#define glFrustumfOES                       rglFrustumfOES
#define glGetClipPlanefOES                  rglGetClipPlanefOES
#define glOrthofOES                         rglOrthofOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_SINGLE_PRECISION
REGAL_DECL void REGAL_CALL glClearDepthfOES(GLclampd depth);
REGAL_DECL void REGAL_CALL glClipPlanefOES(GLenum plane, const GLfloat *equation);
REGAL_DECL void REGAL_CALL glDepthRangefOES(GLclampf n, GLclampf f);
REGAL_DECL void REGAL_CALL glFrustumfOES(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
REGAL_DECL void REGAL_CALL glGetClipPlanefOES(GLenum plane, GLfloat *equation);
REGAL_DECL void REGAL_CALL glOrthofOES(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_SINGLE_PRECISION
REGAL_DECL void REGAL_CALL plugin_glClearDepthfOES(GLclampd depth);
REGAL_DECL void REGAL_CALL plugin_glClipPlanefOES(GLenum plane, const GLfloat *equation);
REGAL_DECL void REGAL_CALL plugin_glDepthRangefOES(GLclampf n, GLclampf f);
REGAL_DECL void REGAL_CALL plugin_glFrustumfOES(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
REGAL_DECL void REGAL_CALL plugin_glGetClipPlanefOES(GLenum plane, GLfloat *equation);
REGAL_DECL void REGAL_CALL plugin_glOrthofOES(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
#endif

/**
 ** GL_OES_standard_derivatives
 **/

#if (defined(GL_OES_STANDARD_DERIVATIVES) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_STANDARD_DERIVATIVES)) && !defined(REGAL_NO_ENUM_GL_OES_STANDARD_DERIVATIVES)
#define REGAL_NO_ENUM_GL_OES_STANDARD_DERIVATIVES
#endif

#if (defined(GL_OES_STANDARD_DERIVATIVES) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_STANDARD_DERIVATIVES)) && !defined(REGAL_NO_TYPEDEF_GL_OES_STANDARD_DERIVATIVES)
#define REGAL_NO_TYPEDEF_GL_OES_STANDARD_DERIVATIVES
#endif

#if (defined(GL_OES_STANDARD_DERIVATIVES) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_STANDARD_DERIVATIVES)) && !defined(REGAL_NO_NAMESPACE_GL_OES_STANDARD_DERIVATIVES)
#define REGAL_NO_NAMESPACE_GL_OES_STANDARD_DERIVATIVES
#endif

#if (defined(GL_OES_STANDARD_DERIVATIVES) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_STANDARD_DERIVATIVES)) && !defined(REGAL_NO_PLUGIN_GL_OES_STANDARD_DERIVATIVES)
#define REGAL_NO_PLUGIN_GL_OES_STANDARD_DERIVATIVES
#endif

#if (defined(GL_OES_STANDARD_DERIVATIVES) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_STANDARD_DERIVATIVES)) && !defined(REGAL_NO_DECLARATION_GL_OES_STANDARD_DERIVATIVES)
#define REGAL_NO_DECLARATION_GL_OES_STANDARD_DERIVATIVES
#endif

#ifndef GL_OES_standard_derivatives
#define GL_OES_standard_derivatives 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_STANDARD_DERIVATIVES
#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES 0x8b8b /* 35723 */
#endif

/**
 ** GL_OES_stencil1
 **/

#if (defined(GL_OES_STENCIL1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_STENCIL1)) && !defined(REGAL_NO_ENUM_GL_OES_STENCIL1)
#define REGAL_NO_ENUM_GL_OES_STENCIL1
#endif

#if (defined(GL_OES_STENCIL1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_STENCIL1)) && !defined(REGAL_NO_TYPEDEF_GL_OES_STENCIL1)
#define REGAL_NO_TYPEDEF_GL_OES_STENCIL1
#endif

#if (defined(GL_OES_STENCIL1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_STENCIL1)) && !defined(REGAL_NO_NAMESPACE_GL_OES_STENCIL1)
#define REGAL_NO_NAMESPACE_GL_OES_STENCIL1
#endif

#if (defined(GL_OES_STENCIL1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_STENCIL1)) && !defined(REGAL_NO_PLUGIN_GL_OES_STENCIL1)
#define REGAL_NO_PLUGIN_GL_OES_STENCIL1
#endif

#if (defined(GL_OES_STENCIL1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_STENCIL1)) && !defined(REGAL_NO_DECLARATION_GL_OES_STENCIL1)
#define REGAL_NO_DECLARATION_GL_OES_STENCIL1
#endif

#ifndef GL_OES_stencil1
#define GL_OES_stencil1 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_STENCIL1
#define GL_STENCIL_INDEX1_OES 0x8d46 /* 36166 */
#endif

/**
 ** GL_OES_stencil4
 **/

#if (defined(GL_OES_STENCIL4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_STENCIL4)) && !defined(REGAL_NO_ENUM_GL_OES_STENCIL4)
#define REGAL_NO_ENUM_GL_OES_STENCIL4
#endif

#if (defined(GL_OES_STENCIL4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_STENCIL4)) && !defined(REGAL_NO_TYPEDEF_GL_OES_STENCIL4)
#define REGAL_NO_TYPEDEF_GL_OES_STENCIL4
#endif

#if (defined(GL_OES_STENCIL4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_STENCIL4)) && !defined(REGAL_NO_NAMESPACE_GL_OES_STENCIL4)
#define REGAL_NO_NAMESPACE_GL_OES_STENCIL4
#endif

#if (defined(GL_OES_STENCIL4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_STENCIL4)) && !defined(REGAL_NO_PLUGIN_GL_OES_STENCIL4)
#define REGAL_NO_PLUGIN_GL_OES_STENCIL4
#endif

#if (defined(GL_OES_STENCIL4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_STENCIL4)) && !defined(REGAL_NO_DECLARATION_GL_OES_STENCIL4)
#define REGAL_NO_DECLARATION_GL_OES_STENCIL4
#endif

#ifndef GL_OES_stencil4
#define GL_OES_stencil4 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_STENCIL4
#define GL_STENCIL_INDEX4_OES 0x8d47 /* 36167 */
#endif

/**
 ** GL_OES_stencil8
 **/

#if (defined(GL_OES_STENCIL8) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_STENCIL8)) && !defined(REGAL_NO_ENUM_GL_OES_STENCIL8)
#define REGAL_NO_ENUM_GL_OES_STENCIL8
#endif

#if (defined(GL_OES_STENCIL8) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_STENCIL8)) && !defined(REGAL_NO_TYPEDEF_GL_OES_STENCIL8)
#define REGAL_NO_TYPEDEF_GL_OES_STENCIL8
#endif

#if (defined(GL_OES_STENCIL8) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_STENCIL8)) && !defined(REGAL_NO_NAMESPACE_GL_OES_STENCIL8)
#define REGAL_NO_NAMESPACE_GL_OES_STENCIL8
#endif

#if (defined(GL_OES_STENCIL8) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_STENCIL8)) && !defined(REGAL_NO_PLUGIN_GL_OES_STENCIL8)
#define REGAL_NO_PLUGIN_GL_OES_STENCIL8
#endif

#if (defined(GL_OES_STENCIL8) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_STENCIL8)) && !defined(REGAL_NO_DECLARATION_GL_OES_STENCIL8)
#define REGAL_NO_DECLARATION_GL_OES_STENCIL8
#endif

#ifndef GL_OES_stencil8
#define GL_OES_stencil8 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_STENCIL8
#define GL_STENCIL_INDEX8_OES 0x8d48 /* 36168 */
#endif

/**
 ** GL_OES_surfaceless_context
 **/

#if (defined(GL_OES_SURFACELESS_CONTEXT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_SURFACELESS_CONTEXT)) && !defined(REGAL_NO_ENUM_GL_OES_SURFACELESS_CONTEXT)
#define REGAL_NO_ENUM_GL_OES_SURFACELESS_CONTEXT
#endif

#if (defined(GL_OES_SURFACELESS_CONTEXT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_SURFACELESS_CONTEXT)) && !defined(REGAL_NO_TYPEDEF_GL_OES_SURFACELESS_CONTEXT)
#define REGAL_NO_TYPEDEF_GL_OES_SURFACELESS_CONTEXT
#endif

#if (defined(GL_OES_SURFACELESS_CONTEXT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_SURFACELESS_CONTEXT)) && !defined(REGAL_NO_NAMESPACE_GL_OES_SURFACELESS_CONTEXT)
#define REGAL_NO_NAMESPACE_GL_OES_SURFACELESS_CONTEXT
#endif

#if (defined(GL_OES_SURFACELESS_CONTEXT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_SURFACELESS_CONTEXT)) && !defined(REGAL_NO_PLUGIN_GL_OES_SURFACELESS_CONTEXT)
#define REGAL_NO_PLUGIN_GL_OES_SURFACELESS_CONTEXT
#endif

#if (defined(GL_OES_SURFACELESS_CONTEXT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_SURFACELESS_CONTEXT)) && !defined(REGAL_NO_DECLARATION_GL_OES_SURFACELESS_CONTEXT)
#define REGAL_NO_DECLARATION_GL_OES_SURFACELESS_CONTEXT
#endif

#ifndef GL_OES_surfaceless_context
#define GL_OES_surfaceless_context 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_SURFACELESS_CONTEXT
#define GL_FRAMEBUFFER_UNDEFINED_OES 0x8219 /* 33305 */
#endif

/**
 ** GL_OES_texture_3D
 **/

#if (defined(GL_OES_TEXTURE_3D) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_TEXTURE_3D)) && !defined(REGAL_NO_ENUM_GL_OES_TEXTURE_3D)
#define REGAL_NO_ENUM_GL_OES_TEXTURE_3D
#endif

#if (defined(GL_OES_TEXTURE_3D) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_TEXTURE_3D)) && !defined(REGAL_NO_TYPEDEF_GL_OES_TEXTURE_3D)
#define REGAL_NO_TYPEDEF_GL_OES_TEXTURE_3D
#endif

#if (defined(GL_OES_TEXTURE_3D) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_TEXTURE_3D)) && !defined(REGAL_NO_NAMESPACE_GL_OES_TEXTURE_3D)
#define REGAL_NO_NAMESPACE_GL_OES_TEXTURE_3D
#endif

#if (defined(GL_OES_TEXTURE_3D) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_TEXTURE_3D)) && !defined(REGAL_NO_PLUGIN_GL_OES_TEXTURE_3D)
#define REGAL_NO_PLUGIN_GL_OES_TEXTURE_3D
#endif

#if (defined(GL_OES_TEXTURE_3D) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_TEXTURE_3D)) && !defined(REGAL_NO_DECLARATION_GL_OES_TEXTURE_3D)
#define REGAL_NO_DECLARATION_GL_OES_TEXTURE_3D
#endif

#ifndef GL_OES_texture_3D
#define GL_OES_texture_3D 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_TEXTURE_3D
#define GL_TEXTURE_BINDING_3D_OES  0x806a     /* 32874 */
#define GL_TEXTURE_3D_OES          0x806f     /* 32879 */
#define GL_TEXTURE_WRAP_R_OES      0x8072     /* 32882 */
#define GL_MAX_3D_TEXTURE_SIZE_OES 0x8073     /* 32883 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_TEXTURE_3D
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXIMAGE3DOESPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOPYTEXSUBIMAGE3DOESPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTURE3DOESPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
typedef void (REGAL_CALL *PFNGLTEXIMAGE3DOESPROC)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXSUBIMAGE3DOESPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_TEXTURE_3D
#define glCompressedTexImage3DOES           rglCompressedTexImage3DOES
#define glCompressedTexSubImage3DOES        rglCompressedTexSubImage3DOES
#define glCopyTexSubImage3DOES              rglCopyTexSubImage3DOES
#define glFramebufferTexture3DOES           rglFramebufferTexture3DOES
#define glTexImage3DOES                     rglTexImage3DOES
#define glTexSubImage3DOES                  rglTexSubImage3DOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_TEXTURE_3D
REGAL_DECL void REGAL_CALL glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
REGAL_DECL void REGAL_CALL glTexImage3DOES(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_TEXTURE_3D
REGAL_DECL void REGAL_CALL plugin_glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
REGAL_DECL void REGAL_CALL plugin_glTexImage3DOES(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

/**
 ** GL_OES_texture_cube_map
 **/

#if (defined(GL_OES_TEXTURE_CUBE_MAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_ENUM_GL_OES_TEXTURE_CUBE_MAP)
#define REGAL_NO_ENUM_GL_OES_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_OES_TEXTURE_CUBE_MAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_TYPEDEF_GL_OES_TEXTURE_CUBE_MAP)
#define REGAL_NO_TYPEDEF_GL_OES_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_OES_TEXTURE_CUBE_MAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_NAMESPACE_GL_OES_TEXTURE_CUBE_MAP)
#define REGAL_NO_NAMESPACE_GL_OES_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_OES_TEXTURE_CUBE_MAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_PLUGIN_GL_OES_TEXTURE_CUBE_MAP)
#define REGAL_NO_PLUGIN_GL_OES_TEXTURE_CUBE_MAP
#endif

#if (defined(GL_OES_TEXTURE_CUBE_MAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_TEXTURE_CUBE_MAP)) && !defined(REGAL_NO_DECLARATION_GL_OES_TEXTURE_CUBE_MAP)
#define REGAL_NO_DECLARATION_GL_OES_TEXTURE_CUBE_MAP
#endif

#ifndef GL_OES_texture_cube_map
#define GL_OES_texture_cube_map 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_TEXTURE_CUBE_MAP
#define GL_TEXTURE_GEN_MODE_OES            0x2500     /* 9472 */
#define GL_NORMAL_MAP_OES                  0x8511     /* 34065 */
#define GL_REFLECTION_MAP_OES              0x8512     /* 34066 */
#define GL_TEXTURE_CUBE_MAP_OES            0x8513     /* 34067 */
#define GL_TEXTURE_BINDING_CUBE_MAP_OES    0x8514     /* 34068 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES 0x8515     /* 34069 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES 0x8516     /* 34070 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES 0x8517     /* 34071 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES 0x8518     /* 34072 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES 0x8519     /* 34073 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES 0x851a     /* 34074 */
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES   0x851c     /* 34076 */
#define GL_TEXTURE_GEN_STR_OES             0x8d60     /* 36192 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_TEXTURE_CUBE_MAP
typedef void (REGAL_CALL *PFNGLGETTEXGENFVOESPROC)(GLenum coord, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETTEXGENIVOESPROC)(GLenum coord, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETTEXGENXVOESPROC)(GLenum coord, GLenum pname, GLfixed *params);
typedef void (REGAL_CALL *PFNGLTEXGENFOESPROC)(GLenum coord, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLTEXGENFVOESPROC)(GLenum coord, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLTEXGENIOESPROC)(GLenum coord, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLTEXGENIVOESPROC)(GLenum coord, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLTEXGENXOESPROC)(GLenum coord, GLenum pname, GLfixed param);
typedef void (REGAL_CALL *PFNGLTEXGENXVOESPROC)(GLenum coord, GLenum pname, const GLfixed *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_TEXTURE_CUBE_MAP
#define glGetTexGenfvOES                    rglGetTexGenfvOES
#define glGetTexGenivOES                    rglGetTexGenivOES
#define glGetTexGenxvOES                    rglGetTexGenxvOES
#define glTexGenfOES                        rglTexGenfOES
#define glTexGenfvOES                       rglTexGenfvOES
#define glTexGeniOES                        rglTexGeniOES
#define glTexGenivOES                       rglTexGenivOES
#define glTexGenxOES                        rglTexGenxOES
#define glTexGenxvOES                       rglTexGenxvOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_TEXTURE_CUBE_MAP
REGAL_DECL void REGAL_CALL glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetTexGenivOES(GLenum coord, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL glTexGenfOES(GLenum coord, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glTexGeniOES(GLenum coord, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glTexGenivOES(GLenum coord, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glTexGenxOES(GLenum coord, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_TEXTURE_CUBE_MAP
REGAL_DECL void REGAL_CALL plugin_glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexGenivOES(GLenum coord, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glTexGenfOES(GLenum coord, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glTexGeniOES(GLenum coord, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glTexGenivOES(GLenum coord, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glTexGenxOES(GLenum coord, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL plugin_glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params);
#endif

/**
 ** GL_OES_vertex_array_object
 **/

#if (defined(GL_OES_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_ENUM_GL_OES_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_ENUM_GL_OES_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_OES_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GL_OES_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_TYPEDEF_GL_OES_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_OES_VERTEX_ARRAY_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GL_OES_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_NAMESPACE_GL_OES_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_OES_VERTEX_ARRAY_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_PLUGIN_GL_OES_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_PLUGIN_GL_OES_VERTEX_ARRAY_OBJECT
#endif

#if (defined(GL_OES_VERTEX_ARRAY_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_VERTEX_ARRAY_OBJECT)) && !defined(REGAL_NO_DECLARATION_GL_OES_VERTEX_ARRAY_OBJECT)
#define REGAL_NO_DECLARATION_GL_OES_VERTEX_ARRAY_OBJECT
#endif

#ifndef GL_OES_vertex_array_object
#define GL_OES_vertex_array_object 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_VERTEX_ARRAY_OBJECT
#define GL_VERTEX_ARRAY_BINDING_OES 0x85b5 /* 34229 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_OES_VERTEX_ARRAY_OBJECT
typedef GLboolean (REGAL_CALL *PFNGLISVERTEXARRAYOESPROC)(GLuint array);
typedef void (REGAL_CALL *PFNGLBINDVERTEXARRAYOESPROC)(GLuint array);
typedef void (REGAL_CALL *PFNGLDELETEVERTEXARRAYSOESPROC)(GLsizei n, const GLuint *arrays);
typedef void (REGAL_CALL *PFNGLGENVERTEXARRAYSOESPROC)(GLsizei n, GLuint *arrays);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_OES_VERTEX_ARRAY_OBJECT
#define glBindVertexArrayOES                rglBindVertexArrayOES
#define glDeleteVertexArraysOES             rglDeleteVertexArraysOES
#define glGenVertexArraysOES                rglGenVertexArraysOES
#define glIsVertexArrayOES                  rglIsVertexArrayOES
#endif

#ifndef REGAL_NO_DECLARATION_GL_OES_VERTEX_ARRAY_OBJECT
REGAL_DECL GLboolean REGAL_CALL glIsVertexArrayOES(GLuint array);
REGAL_DECL void REGAL_CALL glBindVertexArrayOES(GLuint array);
REGAL_DECL void REGAL_CALL glDeleteVertexArraysOES(GLsizei n, const GLuint *arrays);
REGAL_DECL void REGAL_CALL glGenVertexArraysOES(GLsizei n, GLuint *arrays);
#endif

#ifndef REGAL_NO_PLUGIN_GL_OES_VERTEX_ARRAY_OBJECT
REGAL_DECL GLboolean REGAL_CALL plugin_glIsVertexArrayOES(GLuint array);
REGAL_DECL void REGAL_CALL plugin_glBindVertexArrayOES(GLuint array);
REGAL_DECL void REGAL_CALL plugin_glDeleteVertexArraysOES(GLsizei n, const GLuint *arrays);
REGAL_DECL void REGAL_CALL plugin_glGenVertexArraysOES(GLsizei n, GLuint *arrays);
#endif

/**
 ** GL_OES_vertex_half_float
 **/

#if (defined(GL_OES_VERTEX_HALF_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_VERTEX_HALF_FLOAT)) && !defined(REGAL_NO_ENUM_GL_OES_VERTEX_HALF_FLOAT)
#define REGAL_NO_ENUM_GL_OES_VERTEX_HALF_FLOAT
#endif

#if (defined(GL_OES_VERTEX_HALF_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_VERTEX_HALF_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GL_OES_VERTEX_HALF_FLOAT)
#define REGAL_NO_TYPEDEF_GL_OES_VERTEX_HALF_FLOAT
#endif

#if (defined(GL_OES_VERTEX_HALF_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_VERTEX_HALF_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GL_OES_VERTEX_HALF_FLOAT)
#define REGAL_NO_NAMESPACE_GL_OES_VERTEX_HALF_FLOAT
#endif

#if (defined(GL_OES_VERTEX_HALF_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_VERTEX_HALF_FLOAT)) && !defined(REGAL_NO_PLUGIN_GL_OES_VERTEX_HALF_FLOAT)
#define REGAL_NO_PLUGIN_GL_OES_VERTEX_HALF_FLOAT
#endif

#if (defined(GL_OES_VERTEX_HALF_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_VERTEX_HALF_FLOAT)) && !defined(REGAL_NO_DECLARATION_GL_OES_VERTEX_HALF_FLOAT)
#define REGAL_NO_DECLARATION_GL_OES_VERTEX_HALF_FLOAT
#endif

#ifndef GL_OES_vertex_half_float
#define GL_OES_vertex_half_float 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_VERTEX_HALF_FLOAT
#define GL_HALF_FLOAT_OES 0x8d61 /* 36193 */
#endif

/**
 ** GL_OES_vertex_type_10_10_10_2
 **/

#if (defined(GL_OES_VERTEX_TYPE_10_10_10_2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OES_VERTEX_TYPE_10_10_10_2)) && !defined(REGAL_NO_ENUM_GL_OES_VERTEX_TYPE_10_10_10_2)
#define REGAL_NO_ENUM_GL_OES_VERTEX_TYPE_10_10_10_2
#endif

#if (defined(GL_OES_VERTEX_TYPE_10_10_10_2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OES_VERTEX_TYPE_10_10_10_2)) && !defined(REGAL_NO_TYPEDEF_GL_OES_VERTEX_TYPE_10_10_10_2)
#define REGAL_NO_TYPEDEF_GL_OES_VERTEX_TYPE_10_10_10_2
#endif

#if (defined(GL_OES_VERTEX_TYPE_10_10_10_2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OES_VERTEX_TYPE_10_10_10_2)) && !defined(REGAL_NO_NAMESPACE_GL_OES_VERTEX_TYPE_10_10_10_2)
#define REGAL_NO_NAMESPACE_GL_OES_VERTEX_TYPE_10_10_10_2
#endif

#if (defined(GL_OES_VERTEX_TYPE_10_10_10_2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OES_VERTEX_TYPE_10_10_10_2)) && !defined(REGAL_NO_PLUGIN_GL_OES_VERTEX_TYPE_10_10_10_2)
#define REGAL_NO_PLUGIN_GL_OES_VERTEX_TYPE_10_10_10_2
#endif

#if (defined(GL_OES_VERTEX_TYPE_10_10_10_2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OES_VERTEX_TYPE_10_10_10_2)) && !defined(REGAL_NO_DECLARATION_GL_OES_VERTEX_TYPE_10_10_10_2)
#define REGAL_NO_DECLARATION_GL_OES_VERTEX_TYPE_10_10_10_2
#endif

#ifndef GL_OES_vertex_type_10_10_10_2
#define GL_OES_vertex_type_10_10_10_2 1
#endif

#ifndef REGAL_NO_ENUM_GL_OES_VERTEX_TYPE_10_10_10_2
#define GL_UNSIGNED_INT_10_10_10_2_OES 0x8df6     /* 36342 */
#define GL_INT_10_10_10_2_OES          0x8df7     /* 36343 */
#endif

/**
 ** GL_OML_interlace
 **/

#if (defined(GL_OML_INTERLACE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OML_INTERLACE)) && !defined(REGAL_NO_ENUM_GL_OML_INTERLACE)
#define REGAL_NO_ENUM_GL_OML_INTERLACE
#endif

#if (defined(GL_OML_INTERLACE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OML_INTERLACE)) && !defined(REGAL_NO_TYPEDEF_GL_OML_INTERLACE)
#define REGAL_NO_TYPEDEF_GL_OML_INTERLACE
#endif

#if (defined(GL_OML_INTERLACE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OML_INTERLACE)) && !defined(REGAL_NO_NAMESPACE_GL_OML_INTERLACE)
#define REGAL_NO_NAMESPACE_GL_OML_INTERLACE
#endif

#if (defined(GL_OML_INTERLACE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OML_INTERLACE)) && !defined(REGAL_NO_PLUGIN_GL_OML_INTERLACE)
#define REGAL_NO_PLUGIN_GL_OML_INTERLACE
#endif

#if (defined(GL_OML_INTERLACE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OML_INTERLACE)) && !defined(REGAL_NO_DECLARATION_GL_OML_INTERLACE)
#define REGAL_NO_DECLARATION_GL_OML_INTERLACE
#endif

#ifndef GL_OML_interlace
#define GL_OML_interlace 1
#endif

#ifndef REGAL_NO_ENUM_GL_OML_INTERLACE
#define GL_INTERLACE_OML      0x8980     /* 35200 */
#define GL_INTERLACE_READ_OML 0x8981     /* 35201 */
#endif

/**
 ** GL_OML_resample
 **/

#if (defined(GL_OML_RESAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OML_RESAMPLE)) && !defined(REGAL_NO_ENUM_GL_OML_RESAMPLE)
#define REGAL_NO_ENUM_GL_OML_RESAMPLE
#endif

#if (defined(GL_OML_RESAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OML_RESAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_OML_RESAMPLE)
#define REGAL_NO_TYPEDEF_GL_OML_RESAMPLE
#endif

#if (defined(GL_OML_RESAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OML_RESAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_OML_RESAMPLE)
#define REGAL_NO_NAMESPACE_GL_OML_RESAMPLE
#endif

#if (defined(GL_OML_RESAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OML_RESAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_OML_RESAMPLE)
#define REGAL_NO_PLUGIN_GL_OML_RESAMPLE
#endif

#if (defined(GL_OML_RESAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OML_RESAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_OML_RESAMPLE)
#define REGAL_NO_DECLARATION_GL_OML_RESAMPLE
#endif

#ifndef GL_OML_resample
#define GL_OML_resample 1
#endif

#ifndef REGAL_NO_ENUM_GL_OML_RESAMPLE
#define GL_PACK_RESAMPLE_OML      0x8984     /* 35204 */
#define GL_UNPACK_RESAMPLE_OML    0x8985     /* 35205 */
#define GL_RESAMPLE_REPLICATE_OML 0x8986     /* 35206 */
#define GL_RESAMPLE_ZERO_FILL_OML 0x8987     /* 35207 */
#define GL_RESAMPLE_AVERAGE_OML   0x8988     /* 35208 */
#define GL_RESAMPLE_DECIMATE_OML  0x8989     /* 35209 */
#endif

/**
 ** GL_OML_subsample
 **/

#if (defined(GL_OML_SUBSAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_OML_SUBSAMPLE)) && !defined(REGAL_NO_ENUM_GL_OML_SUBSAMPLE)
#define REGAL_NO_ENUM_GL_OML_SUBSAMPLE
#endif

#if (defined(GL_OML_SUBSAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_OML_SUBSAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_OML_SUBSAMPLE)
#define REGAL_NO_TYPEDEF_GL_OML_SUBSAMPLE
#endif

#if (defined(GL_OML_SUBSAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_OML_SUBSAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_OML_SUBSAMPLE)
#define REGAL_NO_NAMESPACE_GL_OML_SUBSAMPLE
#endif

#if (defined(GL_OML_SUBSAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_OML_SUBSAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_OML_SUBSAMPLE)
#define REGAL_NO_PLUGIN_GL_OML_SUBSAMPLE
#endif

#if (defined(GL_OML_SUBSAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_OML_SUBSAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_OML_SUBSAMPLE)
#define REGAL_NO_DECLARATION_GL_OML_SUBSAMPLE
#endif

#ifndef GL_OML_subsample
#define GL_OML_subsample 1
#endif

#ifndef REGAL_NO_ENUM_GL_OML_SUBSAMPLE
#define GL_FORMAT_SUBSAMPLE_24_24_OML   0x8982     /* 35202 */
#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983     /* 35203 */
#endif

/**
 ** GL_PGI_misc_hints
 **/

#if (defined(GL_PGI_MISC_HINTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_PGI_MISC_HINTS)) && !defined(REGAL_NO_ENUM_GL_PGI_MISC_HINTS)
#define REGAL_NO_ENUM_GL_PGI_MISC_HINTS
#endif

#if (defined(GL_PGI_MISC_HINTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_PGI_MISC_HINTS)) && !defined(REGAL_NO_TYPEDEF_GL_PGI_MISC_HINTS)
#define REGAL_NO_TYPEDEF_GL_PGI_MISC_HINTS
#endif

#if (defined(GL_PGI_MISC_HINTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_PGI_MISC_HINTS)) && !defined(REGAL_NO_NAMESPACE_GL_PGI_MISC_HINTS)
#define REGAL_NO_NAMESPACE_GL_PGI_MISC_HINTS
#endif

#if (defined(GL_PGI_MISC_HINTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_PGI_MISC_HINTS)) && !defined(REGAL_NO_PLUGIN_GL_PGI_MISC_HINTS)
#define REGAL_NO_PLUGIN_GL_PGI_MISC_HINTS
#endif

#if (defined(GL_PGI_MISC_HINTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_PGI_MISC_HINTS)) && !defined(REGAL_NO_DECLARATION_GL_PGI_MISC_HINTS)
#define REGAL_NO_DECLARATION_GL_PGI_MISC_HINTS
#endif

#ifndef GL_PGI_misc_hints
#define GL_PGI_misc_hints 1
#endif

#ifndef REGAL_NO_ENUM_GL_PGI_MISC_HINTS
#define GL_PREFER_DOUBLEBUFFER_HINT_PGI   0x1a1f8     /* 107000 */
#define GL_CONSERVE_MEMORY_HINT_PGI       0x1a1fd     /* 107005 */
#define GL_RECLAIM_MEMORY_HINT_PGI        0x1a1fe     /* 107006 */
#define GL_NATIVE_GRAPHICS_HANDLE_PGI     0x1a202     /* 107010 */
#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1a203     /* 107011 */
#define GL_NATIVE_GRAPHICS_END_HINT_PGI   0x1a204     /* 107012 */
#define GL_ALWAYS_FAST_HINT_PGI           0x1a20c     /* 107020 */
#define GL_ALWAYS_SOFT_HINT_PGI           0x1a20d     /* 107021 */
#define GL_ALLOW_DRAW_OBJ_HINT_PGI        0x1a20e     /* 107022 */
#define GL_ALLOW_DRAW_WIN_HINT_PGI        0x1a20f     /* 107023 */
#define GL_ALLOW_DRAW_FRG_HINT_PGI        0x1a210     /* 107024 */
#define GL_ALLOW_DRAW_MEM_HINT_PGI        0x1a211     /* 107025 */
#define GL_STRICT_DEPTHFUNC_HINT_PGI      0x1a216     /* 107030 */
#define GL_STRICT_LIGHTING_HINT_PGI       0x1a217     /* 107031 */
#define GL_STRICT_SCISSOR_HINT_PGI        0x1a218     /* 107032 */
#define GL_FULL_STIPPLE_HINT_PGI          0x1a219     /* 107033 */
#define GL_CLIP_NEAR_HINT_PGI             0x1a220     /* 107040 */
#define GL_CLIP_FAR_HINT_PGI              0x1a221     /* 107041 */
#define GL_WIDE_LINE_HINT_PGI             0x1a222     /* 107042 */
#define GL_BACK_NORMALS_HINT_PGI          0x1a223     /* 107043 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_PGI_MISC_HINTS
typedef void (REGAL_CALL *PFNGLHINTPGIPROC)(GLenum target, GLint mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_PGI_MISC_HINTS
#define glHintPGI                           rglHintPGI
#endif

#ifndef REGAL_NO_DECLARATION_GL_PGI_MISC_HINTS
REGAL_DECL void REGAL_CALL glHintPGI(GLenum target, GLint mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_PGI_MISC_HINTS
REGAL_DECL void REGAL_CALL plugin_glHintPGI(GLenum target, GLint mode);
#endif

/**
 ** GL_PGI_vertex_hints
 **/

#if (defined(GL_PGI_VERTEX_HINTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_PGI_VERTEX_HINTS)) && !defined(REGAL_NO_ENUM_GL_PGI_VERTEX_HINTS)
#define REGAL_NO_ENUM_GL_PGI_VERTEX_HINTS
#endif

#if (defined(GL_PGI_VERTEX_HINTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_PGI_VERTEX_HINTS)) && !defined(REGAL_NO_TYPEDEF_GL_PGI_VERTEX_HINTS)
#define REGAL_NO_TYPEDEF_GL_PGI_VERTEX_HINTS
#endif

#if (defined(GL_PGI_VERTEX_HINTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_PGI_VERTEX_HINTS)) && !defined(REGAL_NO_NAMESPACE_GL_PGI_VERTEX_HINTS)
#define REGAL_NO_NAMESPACE_GL_PGI_VERTEX_HINTS
#endif

#if (defined(GL_PGI_VERTEX_HINTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_PGI_VERTEX_HINTS)) && !defined(REGAL_NO_PLUGIN_GL_PGI_VERTEX_HINTS)
#define REGAL_NO_PLUGIN_GL_PGI_VERTEX_HINTS
#endif

#if (defined(GL_PGI_VERTEX_HINTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_PGI_VERTEX_HINTS)) && !defined(REGAL_NO_DECLARATION_GL_PGI_VERTEX_HINTS)
#define REGAL_NO_DECLARATION_GL_PGI_VERTEX_HINTS
#endif

#ifndef GL_PGI_vertex_hints
#define GL_PGI_vertex_hints 1
#endif

#ifndef REGAL_NO_ENUM_GL_PGI_VERTEX_HINTS
#define GL_COLOR3_BIT_PGI                  0x10000        /* 65536 */
#define GL_MAT_AMBIENT_BIT_PGI             0x100000       /* 1048576 */
#define GL_MAT_COLOR_INDEXES_BIT_PGI       0x1000000      /* 16777216 */
#define GL_TEXCOORD1_BIT_PGI               0x10000000     /* 268435456 */
#define GL_VERTEX_DATA_HINT_PGI            0x1a22a        /* 107050 */
#define GL_VERTEX_CONSISTENT_HINT_PGI      0x1a22b        /* 107051 */
#define GL_MATERIAL_SIDE_HINT_PGI          0x1a22c        /* 107052 */
#define GL_MAX_VERTEX_HINT_PGI             0x1a22d        /* 107053 */
#define GL_COLOR4_BIT_PGI                  0x20000        /* 131072 */
#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x200000       /* 2097152 */
#define GL_MAT_SHININESS_BIT_PGI           0x2000000      /* 33554432 */
#define GL_TEXCOORD2_BIT_PGI               0x20000000     /* 536870912 */
#define GL_VERTEX23_BIT_PGI                0x4
#define GL_EDGEFLAG_BIT_PGI                0x40000        /* 262144 */
#define GL_MAT_DIFFUSE_BIT_PGI             0x400000       /* 4194304 */
#define GL_MAT_SPECULAR_BIT_PGI            0x4000000      /* 67108864 */
#define GL_TEXCOORD3_BIT_PGI               0x40000000     /* 1073741824 */
#define GL_VERTEX4_BIT_PGI                 0x8
#define GL_INDEX_BIT_PGI                   0x80000        /* 524288 */
#define GL_MAT_EMISSION_BIT_PGI            0x800000       /* 8388608 */
#define GL_NORMAL_BIT_PGI                  0x8000000      /* 134217728 */
#define GL_TEXCOORD4_BIT_PGI               0x80000000     /* 2147483648 */
#endif

/**
 ** GL_QCOM_alpha_test
 **/

#if (defined(GL_QCOM_ALPHA_TEST) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_QCOM_ALPHA_TEST)) && !defined(REGAL_NO_ENUM_GL_QCOM_ALPHA_TEST)
#define REGAL_NO_ENUM_GL_QCOM_ALPHA_TEST
#endif

#if (defined(GL_QCOM_ALPHA_TEST) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_QCOM_ALPHA_TEST)) && !defined(REGAL_NO_TYPEDEF_GL_QCOM_ALPHA_TEST)
#define REGAL_NO_TYPEDEF_GL_QCOM_ALPHA_TEST
#endif

#if (defined(GL_QCOM_ALPHA_TEST) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_QCOM_ALPHA_TEST)) && !defined(REGAL_NO_NAMESPACE_GL_QCOM_ALPHA_TEST)
#define REGAL_NO_NAMESPACE_GL_QCOM_ALPHA_TEST
#endif

#if (defined(GL_QCOM_ALPHA_TEST) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_QCOM_ALPHA_TEST)) && !defined(REGAL_NO_PLUGIN_GL_QCOM_ALPHA_TEST)
#define REGAL_NO_PLUGIN_GL_QCOM_ALPHA_TEST
#endif

#if (defined(GL_QCOM_ALPHA_TEST) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_QCOM_ALPHA_TEST)) && !defined(REGAL_NO_DECLARATION_GL_QCOM_ALPHA_TEST)
#define REGAL_NO_DECLARATION_GL_QCOM_ALPHA_TEST
#endif

#ifndef GL_QCOM_alpha_test
#define GL_QCOM_alpha_test 1
#endif

#ifndef REGAL_NO_ENUM_GL_QCOM_ALPHA_TEST
#define GL_ALPHA_TEST_QCOM      0xbc0     /* 3008 */
#define GL_ALPHA_TEST_FUNC_QCOM 0xbc1     /* 3009 */
#define GL_ALPHA_TEST_REF_QCOM  0xbc2     /* 3010 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_QCOM_ALPHA_TEST
typedef void (REGAL_CALL *PFNGLALPHAFUNCQCOMPROC)(GLenum func, GLclampf ref);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_QCOM_ALPHA_TEST
#define glAlphaFuncQCOM                     rglAlphaFuncQCOM
#endif

#ifndef REGAL_NO_DECLARATION_GL_QCOM_ALPHA_TEST
REGAL_DECL void REGAL_CALL glAlphaFuncQCOM(GLenum func, GLclampf ref);
#endif

#ifndef REGAL_NO_PLUGIN_GL_QCOM_ALPHA_TEST
REGAL_DECL void REGAL_CALL plugin_glAlphaFuncQCOM(GLenum func, GLclampf ref);
#endif

/**
 ** GL_QCOM_binning_control
 **/

#if (defined(GL_QCOM_BINNING_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_QCOM_BINNING_CONTROL)) && !defined(REGAL_NO_ENUM_GL_QCOM_BINNING_CONTROL)
#define REGAL_NO_ENUM_GL_QCOM_BINNING_CONTROL
#endif

#if (defined(GL_QCOM_BINNING_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_QCOM_BINNING_CONTROL)) && !defined(REGAL_NO_TYPEDEF_GL_QCOM_BINNING_CONTROL)
#define REGAL_NO_TYPEDEF_GL_QCOM_BINNING_CONTROL
#endif

#if (defined(GL_QCOM_BINNING_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_QCOM_BINNING_CONTROL)) && !defined(REGAL_NO_NAMESPACE_GL_QCOM_BINNING_CONTROL)
#define REGAL_NO_NAMESPACE_GL_QCOM_BINNING_CONTROL
#endif

#if (defined(GL_QCOM_BINNING_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_QCOM_BINNING_CONTROL)) && !defined(REGAL_NO_PLUGIN_GL_QCOM_BINNING_CONTROL)
#define REGAL_NO_PLUGIN_GL_QCOM_BINNING_CONTROL
#endif

#if (defined(GL_QCOM_BINNING_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_QCOM_BINNING_CONTROL)) && !defined(REGAL_NO_DECLARATION_GL_QCOM_BINNING_CONTROL)
#define REGAL_NO_DECLARATION_GL_QCOM_BINNING_CONTROL
#endif

#ifndef GL_QCOM_binning_control
#define GL_QCOM_binning_control 1
#endif

#ifndef REGAL_NO_ENUM_GL_QCOM_BINNING_CONTROL
#define GL_BINNING_CONTROL_HINT_QCOM         0x8fb0     /* 36784 */
#define GL_CPU_OPTIMIZED_QCOM                0x8fb1     /* 36785 */
#define GL_GPU_OPTIMIZED_QCOM                0x8fb2     /* 36786 */
#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM 0x8fb3     /* 36787 */
#endif

/**
 ** GL_QCOM_driver_control
 **/

#if (defined(GL_QCOM_DRIVER_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_QCOM_DRIVER_CONTROL)) && !defined(REGAL_NO_ENUM_GL_QCOM_DRIVER_CONTROL)
#define REGAL_NO_ENUM_GL_QCOM_DRIVER_CONTROL
#endif

#if (defined(GL_QCOM_DRIVER_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_QCOM_DRIVER_CONTROL)) && !defined(REGAL_NO_TYPEDEF_GL_QCOM_DRIVER_CONTROL)
#define REGAL_NO_TYPEDEF_GL_QCOM_DRIVER_CONTROL
#endif

#if (defined(GL_QCOM_DRIVER_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_QCOM_DRIVER_CONTROL)) && !defined(REGAL_NO_NAMESPACE_GL_QCOM_DRIVER_CONTROL)
#define REGAL_NO_NAMESPACE_GL_QCOM_DRIVER_CONTROL
#endif

#if (defined(GL_QCOM_DRIVER_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_QCOM_DRIVER_CONTROL)) && !defined(REGAL_NO_PLUGIN_GL_QCOM_DRIVER_CONTROL)
#define REGAL_NO_PLUGIN_GL_QCOM_DRIVER_CONTROL
#endif

#if (defined(GL_QCOM_DRIVER_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_QCOM_DRIVER_CONTROL)) && !defined(REGAL_NO_DECLARATION_GL_QCOM_DRIVER_CONTROL)
#define REGAL_NO_DECLARATION_GL_QCOM_DRIVER_CONTROL
#endif

#ifndef GL_QCOM_driver_control
#define GL_QCOM_driver_control 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_QCOM_DRIVER_CONTROL
typedef void (REGAL_CALL *PFNGLDISABLEDRIVERCONTROLQCOMPROC)(GLuint driverControl);
typedef void (REGAL_CALL *PFNGLENABLEDRIVERCONTROLQCOMPROC)(GLuint driverControl);
typedef void (REGAL_CALL *PFNGLGETDRIVERCONTROLSQCOMPROC)(GLint *num, GLsizei size, GLuint *driverControls);
typedef void (REGAL_CALL *PFNGLGETDRIVERCONTROLSTRINGQCOMPROC)(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_QCOM_DRIVER_CONTROL
#define glDisableDriverControlQCOM          rglDisableDriverControlQCOM
#define glEnableDriverControlQCOM           rglEnableDriverControlQCOM
#define glGetDriverControlStringQCOM        rglGetDriverControlStringQCOM
#define glGetDriverControlsQCOM             rglGetDriverControlsQCOM
#endif

#ifndef REGAL_NO_DECLARATION_GL_QCOM_DRIVER_CONTROL
REGAL_DECL void REGAL_CALL glDisableDriverControlQCOM(GLuint driverControl);
REGAL_DECL void REGAL_CALL glEnableDriverControlQCOM(GLuint driverControl);
REGAL_DECL void REGAL_CALL glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
REGAL_DECL void REGAL_CALL glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls);
#endif

#ifndef REGAL_NO_PLUGIN_GL_QCOM_DRIVER_CONTROL
REGAL_DECL void REGAL_CALL plugin_glDisableDriverControlQCOM(GLuint driverControl);
REGAL_DECL void REGAL_CALL plugin_glEnableDriverControlQCOM(GLuint driverControl);
REGAL_DECL void REGAL_CALL plugin_glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString);
REGAL_DECL void REGAL_CALL plugin_glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls);
#endif

/**
 ** GL_QCOM_extended_get
 **/

#if (defined(GL_QCOM_EXTENDED_GET) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET)) && !defined(REGAL_NO_ENUM_GL_QCOM_EXTENDED_GET)
#define REGAL_NO_ENUM_GL_QCOM_EXTENDED_GET
#endif

#if (defined(GL_QCOM_EXTENDED_GET) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET)) && !defined(REGAL_NO_TYPEDEF_GL_QCOM_EXTENDED_GET)
#define REGAL_NO_TYPEDEF_GL_QCOM_EXTENDED_GET
#endif

#if (defined(GL_QCOM_EXTENDED_GET) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET)) && !defined(REGAL_NO_NAMESPACE_GL_QCOM_EXTENDED_GET)
#define REGAL_NO_NAMESPACE_GL_QCOM_EXTENDED_GET
#endif

#if (defined(GL_QCOM_EXTENDED_GET) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET)) && !defined(REGAL_NO_PLUGIN_GL_QCOM_EXTENDED_GET)
#define REGAL_NO_PLUGIN_GL_QCOM_EXTENDED_GET
#endif

#if (defined(GL_QCOM_EXTENDED_GET) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET)) && !defined(REGAL_NO_DECLARATION_GL_QCOM_EXTENDED_GET)
#define REGAL_NO_DECLARATION_GL_QCOM_EXTENDED_GET
#endif

#ifndef GL_QCOM_extended_get
#define GL_QCOM_extended_get 1
#endif

#ifndef REGAL_NO_ENUM_GL_QCOM_EXTENDED_GET
#define GL_TEXTURE_WIDTH_QCOM           0x8bd2     /* 35794 */
#define GL_TEXTURE_HEIGHT_QCOM          0x8bd3     /* 35795 */
#define GL_TEXTURE_DEPTH_QCOM           0x8bd4     /* 35796 */
#define GL_TEXTURE_INTERNAL_FORMAT_QCOM 0x8bd5     /* 35797 */
#define GL_TEXTURE_FORMAT_QCOM          0x8bd6     /* 35798 */
#define GL_TEXTURE_TYPE_QCOM            0x8bd7     /* 35799 */
#define GL_TEXTURE_IMAGE_VALID_QCOM     0x8bd8     /* 35800 */
#define GL_TEXTURE_NUM_LEVELS_QCOM      0x8bd9     /* 35801 */
#define GL_TEXTURE_TARGET_QCOM          0x8bda     /* 35802 */
#define GL_TEXTURE_OBJECT_VALID_QCOM    0x8bdb     /* 35803 */
#define GL_STATE_RESTORE                0x8bdc     /* 35804 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_QCOM_EXTENDED_GET
typedef void (REGAL_CALL *PFNGLEXTGETBUFFERPOINTERVQCOMPROC)(GLenum target, GLvoid **params);
typedef void (REGAL_CALL *PFNGLEXTGETBUFFERSQCOMPROC)(GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
typedef void (REGAL_CALL *PFNGLEXTGETFRAMEBUFFERSQCOMPROC)(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
typedef void (REGAL_CALL *PFNGLEXTGETRENDERBUFFERSQCOMPROC)(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
typedef void (REGAL_CALL *PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC)(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLEXTGETTEXSUBIMAGEQCOMPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
typedef void (REGAL_CALL *PFNGLEXTGETTEXTURESQCOMPROC)(GLuint *textures, GLint maxTextures, GLint *numTextures);
typedef void (REGAL_CALL *PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC)(GLenum target, GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_QCOM_EXTENDED_GET
#define glExtGetBufferPointervQCOM          rglExtGetBufferPointervQCOM
#define glExtGetBuffersQCOM                 rglExtGetBuffersQCOM
#define glExtGetFramebuffersQCOM            rglExtGetFramebuffersQCOM
#define glExtGetRenderbuffersQCOM           rglExtGetRenderbuffersQCOM
#define glExtGetTexLevelParameterivQCOM     rglExtGetTexLevelParameterivQCOM
#define glExtGetTexSubImageQCOM             rglExtGetTexSubImageQCOM
#define glExtGetTexturesQCOM                rglExtGetTexturesQCOM
#define glExtTexObjectStateOverrideiQCOM    rglExtTexObjectStateOverrideiQCOM
#endif

#ifndef REGAL_NO_DECLARATION_GL_QCOM_EXTENDED_GET
REGAL_DECL void REGAL_CALL glExtGetBufferPointervQCOM(GLenum target, GLvoid **params);
REGAL_DECL void REGAL_CALL glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
REGAL_DECL void REGAL_CALL glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
REGAL_DECL void REGAL_CALL glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
REGAL_DECL void REGAL_CALL glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
REGAL_DECL void REGAL_CALL glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures);
REGAL_DECL void REGAL_CALL glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_PLUGIN_GL_QCOM_EXTENDED_GET
REGAL_DECL void REGAL_CALL plugin_glExtGetBufferPointervQCOM(GLenum target, GLvoid **params);
REGAL_DECL void REGAL_CALL plugin_glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers);
REGAL_DECL void REGAL_CALL plugin_glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers);
REGAL_DECL void REGAL_CALL plugin_glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers);
REGAL_DECL void REGAL_CALL plugin_glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels);
REGAL_DECL void REGAL_CALL plugin_glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures);
REGAL_DECL void REGAL_CALL plugin_glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param);
#endif

/**
 ** GL_QCOM_extended_get2
 **/

#if (defined(GL_QCOM_EXTENDED_GET2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET2)) && !defined(REGAL_NO_ENUM_GL_QCOM_EXTENDED_GET2)
#define REGAL_NO_ENUM_GL_QCOM_EXTENDED_GET2
#endif

#if (defined(GL_QCOM_EXTENDED_GET2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET2)) && !defined(REGAL_NO_TYPEDEF_GL_QCOM_EXTENDED_GET2)
#define REGAL_NO_TYPEDEF_GL_QCOM_EXTENDED_GET2
#endif

#if (defined(GL_QCOM_EXTENDED_GET2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET2)) && !defined(REGAL_NO_NAMESPACE_GL_QCOM_EXTENDED_GET2)
#define REGAL_NO_NAMESPACE_GL_QCOM_EXTENDED_GET2
#endif

#if (defined(GL_QCOM_EXTENDED_GET2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET2)) && !defined(REGAL_NO_PLUGIN_GL_QCOM_EXTENDED_GET2)
#define REGAL_NO_PLUGIN_GL_QCOM_EXTENDED_GET2
#endif

#if (defined(GL_QCOM_EXTENDED_GET2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_QCOM_EXTENDED_GET2)) && !defined(REGAL_NO_DECLARATION_GL_QCOM_EXTENDED_GET2)
#define REGAL_NO_DECLARATION_GL_QCOM_EXTENDED_GET2
#endif

#ifndef GL_QCOM_extended_get2
#define GL_QCOM_extended_get2 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_QCOM_EXTENDED_GET2
typedef GLboolean (REGAL_CALL *PFNGLEXTISPROGRAMBINARYQCOMPROC)(GLuint program);
typedef void (REGAL_CALL *PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC)(GLuint program, GLenum shadertype, GLchar *source, GLint *length);
typedef void (REGAL_CALL *PFNGLEXTGETPROGRAMSQCOMPROC)(GLuint *programs, GLint maxPrograms, GLint *numPrograms);
typedef void (REGAL_CALL *PFNGLEXTGETSHADERSQCOMPROC)(GLuint *shaders, GLint maxShaders, GLint *numShaders);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_QCOM_EXTENDED_GET2
#define glExtGetProgramBinarySourceQCOM     rglExtGetProgramBinarySourceQCOM
#define glExtGetProgramsQCOM                rglExtGetProgramsQCOM
#define glExtGetShadersQCOM                 rglExtGetShadersQCOM
#define glExtIsProgramBinaryQCOM            rglExtIsProgramBinaryQCOM
#endif

#ifndef REGAL_NO_DECLARATION_GL_QCOM_EXTENDED_GET2
REGAL_DECL GLboolean REGAL_CALL glExtIsProgramBinaryQCOM(GLuint program);
REGAL_DECL void REGAL_CALL glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length);
REGAL_DECL void REGAL_CALL glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms);
REGAL_DECL void REGAL_CALL glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders);
#endif

#ifndef REGAL_NO_PLUGIN_GL_QCOM_EXTENDED_GET2
REGAL_DECL GLboolean REGAL_CALL plugin_glExtIsProgramBinaryQCOM(GLuint program);
REGAL_DECL void REGAL_CALL plugin_glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length);
REGAL_DECL void REGAL_CALL plugin_glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms);
REGAL_DECL void REGAL_CALL plugin_glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders);
#endif

/**
 ** GL_QCOM_perfmon_global_mode
 **/

#if (defined(GL_QCOM_PERFMON_GLOBAL_MODE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_QCOM_PERFMON_GLOBAL_MODE)) && !defined(REGAL_NO_ENUM_GL_QCOM_PERFMON_GLOBAL_MODE)
#define REGAL_NO_ENUM_GL_QCOM_PERFMON_GLOBAL_MODE
#endif

#if (defined(GL_QCOM_PERFMON_GLOBAL_MODE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_QCOM_PERFMON_GLOBAL_MODE)) && !defined(REGAL_NO_TYPEDEF_GL_QCOM_PERFMON_GLOBAL_MODE)
#define REGAL_NO_TYPEDEF_GL_QCOM_PERFMON_GLOBAL_MODE
#endif

#if (defined(GL_QCOM_PERFMON_GLOBAL_MODE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_QCOM_PERFMON_GLOBAL_MODE)) && !defined(REGAL_NO_NAMESPACE_GL_QCOM_PERFMON_GLOBAL_MODE)
#define REGAL_NO_NAMESPACE_GL_QCOM_PERFMON_GLOBAL_MODE
#endif

#if (defined(GL_QCOM_PERFMON_GLOBAL_MODE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_QCOM_PERFMON_GLOBAL_MODE)) && !defined(REGAL_NO_PLUGIN_GL_QCOM_PERFMON_GLOBAL_MODE)
#define REGAL_NO_PLUGIN_GL_QCOM_PERFMON_GLOBAL_MODE
#endif

#if (defined(GL_QCOM_PERFMON_GLOBAL_MODE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_QCOM_PERFMON_GLOBAL_MODE)) && !defined(REGAL_NO_DECLARATION_GL_QCOM_PERFMON_GLOBAL_MODE)
#define REGAL_NO_DECLARATION_GL_QCOM_PERFMON_GLOBAL_MODE
#endif

#ifndef GL_QCOM_perfmon_global_mode
#define GL_QCOM_perfmon_global_mode 1
#endif

#ifndef REGAL_NO_ENUM_GL_QCOM_PERFMON_GLOBAL_MODE
#define GL_PERFMON_GLOBAL_MODE_QCOM 0x8fa0 /* 36768 */
#endif

/**
 ** GL_QCOM_tiled_rendering
 **/

#if (defined(GL_QCOM_TILED_RENDERING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_QCOM_TILED_RENDERING)) && !defined(REGAL_NO_ENUM_GL_QCOM_TILED_RENDERING)
#define REGAL_NO_ENUM_GL_QCOM_TILED_RENDERING
#endif

#if (defined(GL_QCOM_TILED_RENDERING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_QCOM_TILED_RENDERING)) && !defined(REGAL_NO_TYPEDEF_GL_QCOM_TILED_RENDERING)
#define REGAL_NO_TYPEDEF_GL_QCOM_TILED_RENDERING
#endif

#if (defined(GL_QCOM_TILED_RENDERING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_QCOM_TILED_RENDERING)) && !defined(REGAL_NO_NAMESPACE_GL_QCOM_TILED_RENDERING)
#define REGAL_NO_NAMESPACE_GL_QCOM_TILED_RENDERING
#endif

#if (defined(GL_QCOM_TILED_RENDERING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_QCOM_TILED_RENDERING)) && !defined(REGAL_NO_PLUGIN_GL_QCOM_TILED_RENDERING)
#define REGAL_NO_PLUGIN_GL_QCOM_TILED_RENDERING
#endif

#if (defined(GL_QCOM_TILED_RENDERING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_QCOM_TILED_RENDERING)) && !defined(REGAL_NO_DECLARATION_GL_QCOM_TILED_RENDERING)
#define REGAL_NO_DECLARATION_GL_QCOM_TILED_RENDERING
#endif

#ifndef GL_QCOM_tiled_rendering
#define GL_QCOM_tiled_rendering 1
#endif

#ifndef REGAL_NO_ENUM_GL_QCOM_TILED_RENDERING
#define GL_COLOR_BUFFER_BIT0_QCOM       0x1
#define GL_COLOR_BUFFER_BIT4_QCOM       0x10           /* 16 */
#define GL_DEPTH_BUFFER_BIT0_QCOM       0x100          /* 256 */
#define GL_DEPTH_BUFFER_BIT4_QCOM       0x1000         /* 4096 */
#define GL_STENCIL_BUFFER_BIT0_QCOM     0x10000        /* 65536 */
#define GL_STENCIL_BUFFER_BIT4_QCOM     0x100000       /* 1048576 */
#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM 0x1000000      /* 16777216 */
#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM 0x10000000     /* 268435456 */
#define GL_COLOR_BUFFER_BIT1_QCOM       0x2
#define GL_COLOR_BUFFER_BIT5_QCOM       0x20           /* 32 */
#define GL_DEPTH_BUFFER_BIT1_QCOM       0x200          /* 512 */
#define GL_DEPTH_BUFFER_BIT5_QCOM       0x2000         /* 8192 */
#define GL_STENCIL_BUFFER_BIT1_QCOM     0x20000        /* 131072 */
#define GL_STENCIL_BUFFER_BIT5_QCOM     0x200000       /* 2097152 */
#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM 0x2000000      /* 33554432 */
#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM 0x20000000     /* 536870912 */
#define GL_COLOR_BUFFER_BIT2_QCOM       0x4
#define GL_COLOR_BUFFER_BIT6_QCOM       0x40           /* 64 */
#define GL_DEPTH_BUFFER_BIT2_QCOM       0x400          /* 1024 */
#define GL_DEPTH_BUFFER_BIT6_QCOM       0x4000         /* 16384 */
#define GL_STENCIL_BUFFER_BIT2_QCOM     0x40000        /* 262144 */
#define GL_STENCIL_BUFFER_BIT6_QCOM     0x400000       /* 4194304 */
#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM 0x4000000      /* 67108864 */
#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM 0x40000000     /* 1073741824 */
#define GL_COLOR_BUFFER_BIT3_QCOM       0x8
#define GL_COLOR_BUFFER_BIT7_QCOM       0x80           /* 128 */
#define GL_DEPTH_BUFFER_BIT3_QCOM       0x800          /* 2048 */
#define GL_DEPTH_BUFFER_BIT7_QCOM       0x8000         /* 32768 */
#define GL_STENCIL_BUFFER_BIT3_QCOM     0x80000        /* 524288 */
#define GL_STENCIL_BUFFER_BIT7_QCOM     0x800000       /* 8388608 */
#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM 0x8000000      /* 134217728 */
#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM 0x80000000     /* 2147483648 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_QCOM_TILED_RENDERING
typedef void (REGAL_CALL *PFNGLENDTILINGQCOMPROC)(GLbitfield preserveMask);
typedef void (REGAL_CALL *PFNGLSTARTTILINGQCOMPROC)(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_QCOM_TILED_RENDERING
#define glEndTilingQCOM                     rglEndTilingQCOM
#define glStartTilingQCOM                   rglStartTilingQCOM
#endif

#ifndef REGAL_NO_DECLARATION_GL_QCOM_TILED_RENDERING
REGAL_DECL void REGAL_CALL glEndTilingQCOM(GLbitfield preserveMask);
REGAL_DECL void REGAL_CALL glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
#endif

#ifndef REGAL_NO_PLUGIN_GL_QCOM_TILED_RENDERING
REGAL_DECL void REGAL_CALL plugin_glEndTilingQCOM(GLbitfield preserveMask);
REGAL_DECL void REGAL_CALL plugin_glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
#endif

/**
 ** GL_QCOM_writeonly_rendering
 **/

#if (defined(GL_QCOM_WRITEONLY_RENDERING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_QCOM_WRITEONLY_RENDERING)) && !defined(REGAL_NO_ENUM_GL_QCOM_WRITEONLY_RENDERING)
#define REGAL_NO_ENUM_GL_QCOM_WRITEONLY_RENDERING
#endif

#if (defined(GL_QCOM_WRITEONLY_RENDERING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_QCOM_WRITEONLY_RENDERING)) && !defined(REGAL_NO_TYPEDEF_GL_QCOM_WRITEONLY_RENDERING)
#define REGAL_NO_TYPEDEF_GL_QCOM_WRITEONLY_RENDERING
#endif

#if (defined(GL_QCOM_WRITEONLY_RENDERING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_QCOM_WRITEONLY_RENDERING)) && !defined(REGAL_NO_NAMESPACE_GL_QCOM_WRITEONLY_RENDERING)
#define REGAL_NO_NAMESPACE_GL_QCOM_WRITEONLY_RENDERING
#endif

#if (defined(GL_QCOM_WRITEONLY_RENDERING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_QCOM_WRITEONLY_RENDERING)) && !defined(REGAL_NO_PLUGIN_GL_QCOM_WRITEONLY_RENDERING)
#define REGAL_NO_PLUGIN_GL_QCOM_WRITEONLY_RENDERING
#endif

#if (defined(GL_QCOM_WRITEONLY_RENDERING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_QCOM_WRITEONLY_RENDERING)) && !defined(REGAL_NO_DECLARATION_GL_QCOM_WRITEONLY_RENDERING)
#define REGAL_NO_DECLARATION_GL_QCOM_WRITEONLY_RENDERING
#endif

#ifndef GL_QCOM_writeonly_rendering
#define GL_QCOM_writeonly_rendering 1
#endif

#ifndef REGAL_NO_ENUM_GL_QCOM_WRITEONLY_RENDERING
#define GL_WRITEONLY_RENDERING_QCOM 0x8823 /* 34851 */
#endif

/**
 ** GL_REGAL_ES1_0_compatibility
 **/

#if (defined(GL_REGAL_ES1_0_COMPATIBILITY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_REGAL_ES1_0_COMPATIBILITY)) && !defined(REGAL_NO_ENUM_GL_REGAL_ES1_0_COMPATIBILITY)
#define REGAL_NO_ENUM_GL_REGAL_ES1_0_COMPATIBILITY
#endif

#if (defined(GL_REGAL_ES1_0_COMPATIBILITY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_REGAL_ES1_0_COMPATIBILITY)) && !defined(REGAL_NO_TYPEDEF_GL_REGAL_ES1_0_COMPATIBILITY)
#define REGAL_NO_TYPEDEF_GL_REGAL_ES1_0_COMPATIBILITY
#endif

#if (defined(GL_REGAL_ES1_0_COMPATIBILITY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_REGAL_ES1_0_COMPATIBILITY)) && !defined(REGAL_NO_NAMESPACE_GL_REGAL_ES1_0_COMPATIBILITY)
#define REGAL_NO_NAMESPACE_GL_REGAL_ES1_0_COMPATIBILITY
#endif

#if (defined(GL_REGAL_ES1_0_COMPATIBILITY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_REGAL_ES1_0_COMPATIBILITY)) && !defined(REGAL_NO_PLUGIN_GL_REGAL_ES1_0_COMPATIBILITY)
#define REGAL_NO_PLUGIN_GL_REGAL_ES1_0_COMPATIBILITY
#endif

#if (defined(GL_REGAL_ES1_0_COMPATIBILITY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_REGAL_ES1_0_COMPATIBILITY)) && !defined(REGAL_NO_DECLARATION_GL_REGAL_ES1_0_COMPATIBILITY)
#define REGAL_NO_DECLARATION_GL_REGAL_ES1_0_COMPATIBILITY
#endif

#ifndef GL_REGAL_ES1_0_compatibility
#define GL_REGAL_ES1_0_compatibility 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_REGAL_ES1_0_COMPATIBILITY
typedef void (REGAL_CALL *PFNGLALPHAFUNCXPROC)(GLenum func, GLclampx ref);
typedef void (REGAL_CALL *PFNGLCLEARCOLORXPROC)(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
typedef void (REGAL_CALL *PFNGLCLEARDEPTHXPROC)(GLclampx depth);
typedef void (REGAL_CALL *PFNGLCOLOR4XPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
typedef void (REGAL_CALL *PFNGLDEPTHRANGEXPROC)(GLclampx zNear, GLclampx zFar);
typedef void (REGAL_CALL *PFNGLFOGXPROC)(GLenum pname, GLfixed param);
typedef void (REGAL_CALL *PFNGLFOGXVPROC)(GLenum pname, const GLfixed *params);
typedef void (REGAL_CALL *PFNGLFRUSTUMFPROC)(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
typedef void (REGAL_CALL *PFNGLFRUSTUMXPROC)(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
typedef void (REGAL_CALL *PFNGLLIGHTMODELXPROC)(GLenum pname, GLfixed param);
typedef void (REGAL_CALL *PFNGLLIGHTMODELXVPROC)(GLenum pname, const GLfixed *params);
typedef void (REGAL_CALL *PFNGLLIGHTXPROC)(GLenum light, GLenum pname, GLfixed param);
typedef void (REGAL_CALL *PFNGLLIGHTXVPROC)(GLenum light, GLenum pname, const GLfixed *params);
typedef void (REGAL_CALL *PFNGLLINEWIDTHXPROC)(GLfixed width);
typedef void (REGAL_CALL *PFNGLLOADMATRIXXPROC)(const GLfixed *m);
typedef void (REGAL_CALL *PFNGLMATERIALXPROC)(GLenum face, GLenum pname, GLfixed param);
typedef void (REGAL_CALL *PFNGLMATERIALXVPROC)(GLenum face, GLenum pname, const GLfixed *params);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4XPROC)(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
typedef void (REGAL_CALL *PFNGLMULTMATRIXXPROC)(const GLfixed *m);
typedef void (REGAL_CALL *PFNGLNORMAL3XPROC)(GLfixed nx, GLfixed ny, GLfixed nz);
typedef void (REGAL_CALL *PFNGLORTHOFPROC)(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
typedef void (REGAL_CALL *PFNGLORTHOXPROC)(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
typedef void (REGAL_CALL *PFNGLPOINTSIZEXPROC)(GLfixed size);
typedef void (REGAL_CALL *PFNGLPOLYGONOFFSETXPROC)(GLfixed factor, GLfixed units);
typedef void (REGAL_CALL *PFNGLROTATEXPROC)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
typedef void (REGAL_CALL *PFNGLSAMPLECOVERAGEXPROC)(GLclampx value, GLboolean invert);
typedef void (REGAL_CALL *PFNGLSCALEXPROC)(GLfixed x, GLfixed y, GLfixed z);
typedef void (REGAL_CALL *PFNGLTEXENVXPROC)(GLenum target, GLenum pname, GLfixed param);
typedef void (REGAL_CALL *PFNGLTEXENVXVPROC)(GLenum target, GLenum pname, const GLfixed *params);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERXPROC)(GLenum target, GLenum pname, GLfixed param);
typedef void (REGAL_CALL *PFNGLTRANSLATEXPROC)(GLfixed x, GLfixed y, GLfixed z);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_REGAL_ES1_0_COMPATIBILITY
#define glAlphaFuncx                        rglAlphaFuncx
#define glClearColorx                       rglClearColorx
#define glClearDepthx                       rglClearDepthx
#define glColor4x                           rglColor4x
#define glDepthRangex                       rglDepthRangex
#define glFogx                              rglFogx
#define glFogxv                             rglFogxv
#define glFrustumf                          rglFrustumf
#define glFrustumx                          rglFrustumx
#define glLightModelx                       rglLightModelx
#define glLightModelxv                      rglLightModelxv
#define glLightx                            rglLightx
#define glLightxv                           rglLightxv
#define glLineWidthx                        rglLineWidthx
#define glLoadMatrixx                       rglLoadMatrixx
#define glMaterialx                         rglMaterialx
#define glMaterialxv                        rglMaterialxv
#define glMultMatrixx                       rglMultMatrixx
#define glMultiTexCoord4x                   rglMultiTexCoord4x
#define glNormal3x                          rglNormal3x
#define glOrthof                            rglOrthof
#define glOrthox                            rglOrthox
#define glPointSizex                        rglPointSizex
#define glPolygonOffsetx                    rglPolygonOffsetx
#define glRotatex                           rglRotatex
#define glSampleCoveragex                   rglSampleCoveragex
#define glScalex                            rglScalex
#define glTexEnvx                           rglTexEnvx
#define glTexEnvxv                          rglTexEnvxv
#define glTexParameterx                     rglTexParameterx
#define glTranslatex                        rglTranslatex
#endif

#ifndef REGAL_NO_DECLARATION_GL_REGAL_ES1_0_COMPATIBILITY
REGAL_DECL void REGAL_CALL glAlphaFuncx(GLenum func, GLclampx ref);
REGAL_DECL void REGAL_CALL glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
REGAL_DECL void REGAL_CALL glClearDepthx(GLclampx depth);
REGAL_DECL void REGAL_CALL glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
REGAL_DECL void REGAL_CALL glDepthRangex(GLclampx zNear, GLclampx zFar);
REGAL_DECL void REGAL_CALL glFogx(GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL glFogxv(GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
REGAL_DECL void REGAL_CALL glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
REGAL_DECL void REGAL_CALL glLightModelx(GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL glLightModelxv(GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL glLightx(GLenum light, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL glLightxv(GLenum light, GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL glLineWidthx(GLfixed width);
REGAL_DECL void REGAL_CALL glLoadMatrixx(const GLfixed *m);
REGAL_DECL void REGAL_CALL glMaterialx(GLenum face, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL glMaterialxv(GLenum face, GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL glMultMatrixx(const GLfixed *m);
REGAL_DECL void REGAL_CALL glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
REGAL_DECL void REGAL_CALL glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz);
REGAL_DECL void REGAL_CALL glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
REGAL_DECL void REGAL_CALL glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
REGAL_DECL void REGAL_CALL glPointSizex(GLfixed size);
REGAL_DECL void REGAL_CALL glPolygonOffsetx(GLfixed factor, GLfixed units);
REGAL_DECL void REGAL_CALL glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
REGAL_DECL void REGAL_CALL glSampleCoveragex(GLclampx value, GLboolean invert);
REGAL_DECL void REGAL_CALL glScalex(GLfixed x, GLfixed y, GLfixed z);
REGAL_DECL void REGAL_CALL glTexEnvx(GLenum target, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL glTexParameterx(GLenum target, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL glTranslatex(GLfixed x, GLfixed y, GLfixed z);
#endif

#ifndef REGAL_NO_PLUGIN_GL_REGAL_ES1_0_COMPATIBILITY
REGAL_DECL void REGAL_CALL plugin_glAlphaFuncx(GLenum func, GLclampx ref);
REGAL_DECL void REGAL_CALL plugin_glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha);
REGAL_DECL void REGAL_CALL plugin_glClearDepthx(GLclampx depth);
REGAL_DECL void REGAL_CALL plugin_glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
REGAL_DECL void REGAL_CALL plugin_glDepthRangex(GLclampx zNear, GLclampx zFar);
REGAL_DECL void REGAL_CALL plugin_glFogx(GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL plugin_glFogxv(GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
REGAL_DECL void REGAL_CALL plugin_glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
REGAL_DECL void REGAL_CALL plugin_glLightModelx(GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL plugin_glLightModelxv(GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glLightx(GLenum light, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL plugin_glLightxv(GLenum light, GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glLineWidthx(GLfixed width);
REGAL_DECL void REGAL_CALL plugin_glLoadMatrixx(const GLfixed *m);
REGAL_DECL void REGAL_CALL plugin_glMaterialx(GLenum face, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL plugin_glMaterialxv(GLenum face, GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glMultMatrixx(const GLfixed *m);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
REGAL_DECL void REGAL_CALL plugin_glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz);
REGAL_DECL void REGAL_CALL plugin_glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);
REGAL_DECL void REGAL_CALL plugin_glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar);
REGAL_DECL void REGAL_CALL plugin_glPointSizex(GLfixed size);
REGAL_DECL void REGAL_CALL plugin_glPolygonOffsetx(GLfixed factor, GLfixed units);
REGAL_DECL void REGAL_CALL plugin_glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
REGAL_DECL void REGAL_CALL plugin_glSampleCoveragex(GLclampx value, GLboolean invert);
REGAL_DECL void REGAL_CALL plugin_glScalex(GLfixed x, GLfixed y, GLfixed z);
REGAL_DECL void REGAL_CALL plugin_glTexEnvx(GLenum target, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL plugin_glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glTexParameterx(GLenum target, GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL plugin_glTranslatex(GLfixed x, GLfixed y, GLfixed z);
#endif

/**
 ** GL_REGAL_ES1_1_compatibility
 **/

#if (defined(GL_REGAL_ES1_1_COMPATIBILITY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_REGAL_ES1_1_COMPATIBILITY)) && !defined(REGAL_NO_ENUM_GL_REGAL_ES1_1_COMPATIBILITY)
#define REGAL_NO_ENUM_GL_REGAL_ES1_1_COMPATIBILITY
#endif

#if (defined(GL_REGAL_ES1_1_COMPATIBILITY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_REGAL_ES1_1_COMPATIBILITY)) && !defined(REGAL_NO_TYPEDEF_GL_REGAL_ES1_1_COMPATIBILITY)
#define REGAL_NO_TYPEDEF_GL_REGAL_ES1_1_COMPATIBILITY
#endif

#if (defined(GL_REGAL_ES1_1_COMPATIBILITY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_REGAL_ES1_1_COMPATIBILITY)) && !defined(REGAL_NO_NAMESPACE_GL_REGAL_ES1_1_COMPATIBILITY)
#define REGAL_NO_NAMESPACE_GL_REGAL_ES1_1_COMPATIBILITY
#endif

#if (defined(GL_REGAL_ES1_1_COMPATIBILITY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_REGAL_ES1_1_COMPATIBILITY)) && !defined(REGAL_NO_PLUGIN_GL_REGAL_ES1_1_COMPATIBILITY)
#define REGAL_NO_PLUGIN_GL_REGAL_ES1_1_COMPATIBILITY
#endif

#if (defined(GL_REGAL_ES1_1_COMPATIBILITY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_REGAL_ES1_1_COMPATIBILITY)) && !defined(REGAL_NO_DECLARATION_GL_REGAL_ES1_1_COMPATIBILITY)
#define REGAL_NO_DECLARATION_GL_REGAL_ES1_1_COMPATIBILITY
#endif

#ifndef GL_REGAL_ES1_1_compatibility
#define GL_REGAL_ES1_1_compatibility 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_REGAL_ES1_1_COMPATIBILITY
typedef void (REGAL_CALL *PFNGLCLIPPLANEFPROC)(GLenum plane, const GLfloat *equation);
typedef void (REGAL_CALL *PFNGLCLIPPLANEXPROC)(GLenum plane, const GLfixed *equation);
typedef void (REGAL_CALL *PFNGLGETCLIPPLANEFPROC)(GLenum pname, GLfloat *eqn);
typedef void (REGAL_CALL *PFNGLGETCLIPPLANEXPROC)(GLenum pname, GLfixed *eqn);
typedef void (REGAL_CALL *PFNGLGETFIXEDVPROC)(GLenum pname, GLfixed *params);
typedef void (REGAL_CALL *PFNGLGETLIGHTXVPROC)(GLenum light, GLenum pname, GLfixed *params);
typedef void (REGAL_CALL *PFNGLGETMATERIALXVPROC)(GLenum face, GLenum pname, GLfixed *params);
typedef void (REGAL_CALL *PFNGLGETTEXENVXVPROC)(GLenum env, GLenum pname, GLfixed *params);
typedef void (REGAL_CALL *PFNGLGETTEXPARAMETERXVPROC)(GLenum target, GLenum pname, GLfixed *params);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERXPROC)(GLenum pname, GLfixed param);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERXVPROC)(GLenum pname, const GLfixed *params);
typedef void (REGAL_CALL *PFNGLPOINTSIZEPOINTEROESPROC)(GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERXVPROC)(GLenum target, GLenum pname, const GLfixed *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_REGAL_ES1_1_COMPATIBILITY
#define glClipPlanef                        rglClipPlanef
#define glClipPlanex                        rglClipPlanex
#define glGetClipPlanef                     rglGetClipPlanef
#define glGetClipPlanex                     rglGetClipPlanex
#define glGetFixedv                         rglGetFixedv
#define glGetLightxv                        rglGetLightxv
#define glGetMaterialxv                     rglGetMaterialxv
#define glGetTexEnvxv                       rglGetTexEnvxv
#define glGetTexParameterxv                 rglGetTexParameterxv
#define glPointParameterx                   rglPointParameterx
#define glPointParameterxv                  rglPointParameterxv
#define glPointSizePointerOES               rglPointSizePointerOES
#define glTexParameterxv                    rglTexParameterxv
#endif

#ifndef REGAL_NO_DECLARATION_GL_REGAL_ES1_1_COMPATIBILITY
REGAL_DECL void REGAL_CALL glClipPlanef(GLenum plane, const GLfloat *equation);
REGAL_DECL void REGAL_CALL glClipPlanex(GLenum plane, const GLfixed *equation);
REGAL_DECL void REGAL_CALL glGetClipPlanef(GLenum pname, GLfloat *eqn);
REGAL_DECL void REGAL_CALL glGetClipPlanex(GLenum pname, GLfixed *eqn);
REGAL_DECL void REGAL_CALL glGetFixedv(GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL glGetLightxv(GLenum light, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL glPointParameterx(GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL glPointParameterxv(GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_REGAL_ES1_1_COMPATIBILITY
REGAL_DECL void REGAL_CALL plugin_glClipPlanef(GLenum plane, const GLfloat *equation);
REGAL_DECL void REGAL_CALL plugin_glClipPlanex(GLenum plane, const GLfixed *equation);
REGAL_DECL void REGAL_CALL plugin_glGetClipPlanef(GLenum pname, GLfloat *eqn);
REGAL_DECL void REGAL_CALL plugin_glGetClipPlanex(GLenum pname, GLfixed *eqn);
REGAL_DECL void REGAL_CALL plugin_glGetFixedv(GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glGetLightxv(GLenum light, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glPointParameterx(GLenum pname, GLfixed param);
REGAL_DECL void REGAL_CALL plugin_glPointParameterxv(GLenum pname, const GLfixed *params);
REGAL_DECL void REGAL_CALL plugin_glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params);
#endif

/**
 ** GL_REGAL_enable
 **/

#if (defined(GL_REGAL_ENABLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_REGAL_ENABLE)) && !defined(REGAL_NO_ENUM_GL_REGAL_ENABLE)
#define REGAL_NO_ENUM_GL_REGAL_ENABLE
#endif

#if (defined(GL_REGAL_ENABLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_REGAL_ENABLE)) && !defined(REGAL_NO_TYPEDEF_GL_REGAL_ENABLE)
#define REGAL_NO_TYPEDEF_GL_REGAL_ENABLE
#endif

#if (defined(GL_REGAL_ENABLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_REGAL_ENABLE)) && !defined(REGAL_NO_NAMESPACE_GL_REGAL_ENABLE)
#define REGAL_NO_NAMESPACE_GL_REGAL_ENABLE
#endif

#if (defined(GL_REGAL_ENABLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_REGAL_ENABLE)) && !defined(REGAL_NO_PLUGIN_GL_REGAL_ENABLE)
#define REGAL_NO_PLUGIN_GL_REGAL_ENABLE
#endif

#if (defined(GL_REGAL_ENABLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_REGAL_ENABLE)) && !defined(REGAL_NO_DECLARATION_GL_REGAL_ENABLE)
#define REGAL_NO_DECLARATION_GL_REGAL_ENABLE
#endif

#ifndef GL_REGAL_enable
#define GL_REGAL_enable 1
#endif

#ifndef REGAL_NO_ENUM_GL_REGAL_ENABLE
#define GL_ERROR_REGAL      0x9322     /* 37666 */
#define GL_DEBUG_REGAL      0x9323     /* 37667 */
#define GL_LOG_REGAL        0x9324     /* 37668 */
#define GL_EMULATION_REGAL  0x9325     /* 37669 */
#define GL_DRIVER_REGAL     0x9326     /* 37670 */
#define GL_MISSING_REGAL    0x9360     /* 37728 */
#define GL_TRACE_REGAL      0x9361     /* 37729 */
#define GL_CACHE_REGAL      0x9362     /* 37730 */
#define GL_CODE_REGAL       0x9363     /* 37731 */
#define GL_STATISTICS_REGAL 0x9364     /* 37732 */
#endif

/**
 ** GL_REGAL_error_string
 **/

#if (defined(GL_REGAL_ERROR_STRING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_ENUM_GL_REGAL_ERROR_STRING)
#define REGAL_NO_ENUM_GL_REGAL_ERROR_STRING
#endif

#if (defined(GL_REGAL_ERROR_STRING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_TYPEDEF_GL_REGAL_ERROR_STRING)
#define REGAL_NO_TYPEDEF_GL_REGAL_ERROR_STRING
#endif

#if (defined(GL_REGAL_ERROR_STRING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_NAMESPACE_GL_REGAL_ERROR_STRING)
#define REGAL_NO_NAMESPACE_GL_REGAL_ERROR_STRING
#endif

#if (defined(GL_REGAL_ERROR_STRING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_PLUGIN_GL_REGAL_ERROR_STRING)
#define REGAL_NO_PLUGIN_GL_REGAL_ERROR_STRING
#endif

#if (defined(GL_REGAL_ERROR_STRING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_REGAL_ERROR_STRING)) && !defined(REGAL_NO_DECLARATION_GL_REGAL_ERROR_STRING)
#define REGAL_NO_DECLARATION_GL_REGAL_ERROR_STRING
#endif

#ifndef GL_REGAL_error_string
#define GL_REGAL_error_string 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_REGAL_ERROR_STRING
typedef const GLchar *(REGAL_CALL *PFNGLERRORSTRINGREGALPROC)(GLenum error);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_REGAL_ERROR_STRING
#define glErrorStringREGAL                  rglErrorStringREGAL
#endif

#ifndef REGAL_NO_DECLARATION_GL_REGAL_ERROR_STRING
REGAL_DECL const GLchar *REGAL_CALL glErrorStringREGAL(GLenum error);
#endif

#ifndef REGAL_NO_PLUGIN_GL_REGAL_ERROR_STRING
REGAL_DECL const GLchar *REGAL_CALL plugin_glErrorStringREGAL(GLenum error);
#endif

/**
 ** GL_REGAL_extension_query
 **/

#if (defined(GL_REGAL_EXTENSION_QUERY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_REGAL_EXTENSION_QUERY)) && !defined(REGAL_NO_ENUM_GL_REGAL_EXTENSION_QUERY)
#define REGAL_NO_ENUM_GL_REGAL_EXTENSION_QUERY
#endif

#if (defined(GL_REGAL_EXTENSION_QUERY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_REGAL_EXTENSION_QUERY)) && !defined(REGAL_NO_TYPEDEF_GL_REGAL_EXTENSION_QUERY)
#define REGAL_NO_TYPEDEF_GL_REGAL_EXTENSION_QUERY
#endif

#if (defined(GL_REGAL_EXTENSION_QUERY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_REGAL_EXTENSION_QUERY)) && !defined(REGAL_NO_NAMESPACE_GL_REGAL_EXTENSION_QUERY)
#define REGAL_NO_NAMESPACE_GL_REGAL_EXTENSION_QUERY
#endif

#if (defined(GL_REGAL_EXTENSION_QUERY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_REGAL_EXTENSION_QUERY)) && !defined(REGAL_NO_PLUGIN_GL_REGAL_EXTENSION_QUERY)
#define REGAL_NO_PLUGIN_GL_REGAL_EXTENSION_QUERY
#endif

#if (defined(GL_REGAL_EXTENSION_QUERY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_REGAL_EXTENSION_QUERY)) && !defined(REGAL_NO_DECLARATION_GL_REGAL_EXTENSION_QUERY)
#define REGAL_NO_DECLARATION_GL_REGAL_EXTENSION_QUERY
#endif

#ifndef GL_REGAL_extension_query
#define GL_REGAL_extension_query 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_REGAL_EXTENSION_QUERY
typedef GLboolean (REGAL_CALL *PFNGLGETEXTENSIONREGALPROC)(const GLchar *ext);
typedef GLboolean (REGAL_CALL *PFNGLISSUPPORTEDREGALPROC)(const GLchar *ext);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_REGAL_EXTENSION_QUERY
#define glGetExtensionREGAL                 rglGetExtensionREGAL
#define glIsSupportedREGAL                  rglIsSupportedREGAL
#endif

#ifndef REGAL_NO_DECLARATION_GL_REGAL_EXTENSION_QUERY
REGAL_DECL GLboolean REGAL_CALL glGetExtensionREGAL(const GLchar *ext);
REGAL_DECL GLboolean REGAL_CALL glIsSupportedREGAL(const GLchar *ext);
#endif

#ifndef REGAL_NO_PLUGIN_GL_REGAL_EXTENSION_QUERY
REGAL_DECL GLboolean REGAL_CALL plugin_glGetExtensionREGAL(const GLchar *ext);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsSupportedREGAL(const GLchar *ext);
#endif

/**
 ** GL_REGAL_log
 **/

#if (defined(GL_REGAL_LOG) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_REGAL_LOG)) && !defined(REGAL_NO_ENUM_GL_REGAL_LOG)
#define REGAL_NO_ENUM_GL_REGAL_LOG
#endif

#if (defined(GL_REGAL_LOG) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_REGAL_LOG)) && !defined(REGAL_NO_TYPEDEF_GL_REGAL_LOG)
#define REGAL_NO_TYPEDEF_GL_REGAL_LOG
#endif

#if (defined(GL_REGAL_LOG) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_REGAL_LOG)) && !defined(REGAL_NO_NAMESPACE_GL_REGAL_LOG)
#define REGAL_NO_NAMESPACE_GL_REGAL_LOG
#endif

#if (defined(GL_REGAL_LOG) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_REGAL_LOG)) && !defined(REGAL_NO_PLUGIN_GL_REGAL_LOG)
#define REGAL_NO_PLUGIN_GL_REGAL_LOG
#endif

#if (defined(GL_REGAL_LOG) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_REGAL_LOG)) && !defined(REGAL_NO_DECLARATION_GL_REGAL_LOG)
#define REGAL_NO_DECLARATION_GL_REGAL_LOG
#endif

#ifndef GL_REGAL_log
#define GL_REGAL_log 1
#endif

#ifndef REGAL_NO_ENUM_GL_REGAL_LOG
#define GL_LOG_ERROR_REGAL    0x9319     /* 37657 */
#define GL_LOG_WARNING_REGAL  0x931a     /* 37658 */
#define GL_LOG_INFO_REGAL     0x931b     /* 37659 */
#define GL_LOG_APP_REGAL      0x931c     /* 37660 */
#define GL_LOG_DRIVER_REGAL   0x931d     /* 37661 */
#define GL_LOG_INTERNAL_REGAL 0x931e     /* 37662 */
#define GL_LOG_DEBUG_REGAL    0x931f     /* 37663 */
#define GL_LOG_STATUS_REGAL   0x9320     /* 37664 */
#define GL_LOG_HTTP_REGAL     0x9321     /* 37665 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_REGAL_LOG
typedef void (REGAL_CALL *PFNGLLOGMESSAGECALLBACKREGALPROC)(GLLOGPROCREGAL callback);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_REGAL_LOG
#define glLogMessageCallbackREGAL           rglLogMessageCallbackREGAL
#endif

#ifndef REGAL_NO_DECLARATION_GL_REGAL_LOG
REGAL_DECL void REGAL_CALL glLogMessageCallbackREGAL(GLLOGPROCREGAL callback);
#endif

#ifndef REGAL_NO_PLUGIN_GL_REGAL_LOG
REGAL_DECL void REGAL_CALL plugin_glLogMessageCallbackREGAL(GLLOGPROCREGAL callback);
#endif

/**
 ** GL_REND_screen_coordinates
 **/

#if (defined(GL_REND_SCREEN_COORDINATES) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_REND_SCREEN_COORDINATES)) && !defined(REGAL_NO_ENUM_GL_REND_SCREEN_COORDINATES)
#define REGAL_NO_ENUM_GL_REND_SCREEN_COORDINATES
#endif

#if (defined(GL_REND_SCREEN_COORDINATES) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_REND_SCREEN_COORDINATES)) && !defined(REGAL_NO_TYPEDEF_GL_REND_SCREEN_COORDINATES)
#define REGAL_NO_TYPEDEF_GL_REND_SCREEN_COORDINATES
#endif

#if (defined(GL_REND_SCREEN_COORDINATES) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_REND_SCREEN_COORDINATES)) && !defined(REGAL_NO_NAMESPACE_GL_REND_SCREEN_COORDINATES)
#define REGAL_NO_NAMESPACE_GL_REND_SCREEN_COORDINATES
#endif

#if (defined(GL_REND_SCREEN_COORDINATES) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_REND_SCREEN_COORDINATES)) && !defined(REGAL_NO_PLUGIN_GL_REND_SCREEN_COORDINATES)
#define REGAL_NO_PLUGIN_GL_REND_SCREEN_COORDINATES
#endif

#if (defined(GL_REND_SCREEN_COORDINATES) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_REND_SCREEN_COORDINATES)) && !defined(REGAL_NO_DECLARATION_GL_REND_SCREEN_COORDINATES)
#define REGAL_NO_DECLARATION_GL_REND_SCREEN_COORDINATES
#endif

#ifndef GL_REND_screen_coordinates
#define GL_REND_screen_coordinates 1
#endif

#ifndef REGAL_NO_ENUM_GL_REND_SCREEN_COORDINATES
#define GL_SCREEN_COORDINATES_REND 0x8490     /* 33936 */
#define GL_INVERTED_SCREEN_W_REND  0x8491     /* 33937 */
#endif

/**
 ** GL_S3_s3tc
 **/

#if (defined(GL_S3_S3TC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_S3_S3TC)) && !defined(REGAL_NO_ENUM_GL_S3_S3TC)
#define REGAL_NO_ENUM_GL_S3_S3TC
#endif

#if (defined(GL_S3_S3TC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_S3_S3TC)) && !defined(REGAL_NO_TYPEDEF_GL_S3_S3TC)
#define REGAL_NO_TYPEDEF_GL_S3_S3TC
#endif

#if (defined(GL_S3_S3TC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_S3_S3TC)) && !defined(REGAL_NO_NAMESPACE_GL_S3_S3TC)
#define REGAL_NO_NAMESPACE_GL_S3_S3TC
#endif

#if (defined(GL_S3_S3TC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_S3_S3TC)) && !defined(REGAL_NO_PLUGIN_GL_S3_S3TC)
#define REGAL_NO_PLUGIN_GL_S3_S3TC
#endif

#if (defined(GL_S3_S3TC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_S3_S3TC)) && !defined(REGAL_NO_DECLARATION_GL_S3_S3TC)
#define REGAL_NO_DECLARATION_GL_S3_S3TC
#endif

#ifndef GL_S3_s3tc
#define GL_S3_s3tc 1
#endif

#ifndef REGAL_NO_ENUM_GL_S3_S3TC
#define GL_RGB_S3TC        0x83a0     /* 33696 */
#define GL_RGB4_S3TC       0x83a1     /* 33697 */
#define GL_RGBA_S3TC       0x83a2     /* 33698 */
#define GL_RGBA4_S3TC      0x83a3     /* 33699 */
#define GL_RGBA_DXT5_S3TC  0x83a4     /* 33700 */
#define GL_RGBA4_DXT5_S3TC 0x83a5     /* 33701 */
#endif

/**
 ** GL_SGIS_color_range
 **/

#if (defined(GL_SGIS_COLOR_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_ENUM_GL_SGIS_COLOR_RANGE)
#define REGAL_NO_ENUM_GL_SGIS_COLOR_RANGE
#endif

#if (defined(GL_SGIS_COLOR_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_COLOR_RANGE)
#define REGAL_NO_TYPEDEF_GL_SGIS_COLOR_RANGE
#endif

#if (defined(GL_SGIS_COLOR_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_COLOR_RANGE)
#define REGAL_NO_NAMESPACE_GL_SGIS_COLOR_RANGE
#endif

#if (defined(GL_SGIS_COLOR_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_COLOR_RANGE)
#define REGAL_NO_PLUGIN_GL_SGIS_COLOR_RANGE
#endif

#if (defined(GL_SGIS_COLOR_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_COLOR_RANGE)
#define REGAL_NO_DECLARATION_GL_SGIS_COLOR_RANGE
#endif

#ifndef GL_SGIS_color_range
#define GL_SGIS_color_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIS_COLOR_RANGE
#define GL_EXTENDED_RANGE_SGIS 0x85a5     /* 34213 */
#define GL_MIN_RED_SGIS        0x85a6     /* 34214 */
#define GL_MAX_RED_SGIS        0x85a7     /* 34215 */
#define GL_MIN_GREEN_SGIS      0x85a8     /* 34216 */
#define GL_MAX_GREEN_SGIS      0x85a9     /* 34217 */
#define GL_MIN_BLUE_SGIS       0x85aa     /* 34218 */
#define GL_MAX_BLUE_SGIS       0x85ab     /* 34219 */
#define GL_MIN_ALPHA_SGIS      0x85ac     /* 34220 */
#define GL_MAX_ALPHA_SGIS      0x85ad     /* 34221 */
#endif

/**
 ** GL_SGIS_detail_texture
 **/

#if (defined(GL_SGIS_DETAIL_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_DETAIL_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_SGIS_DETAIL_TEXTURE)
#define REGAL_NO_ENUM_GL_SGIS_DETAIL_TEXTURE
#endif

#if (defined(GL_SGIS_DETAIL_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_DETAIL_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_DETAIL_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_SGIS_DETAIL_TEXTURE
#endif

#if (defined(GL_SGIS_DETAIL_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_DETAIL_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_DETAIL_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_SGIS_DETAIL_TEXTURE
#endif

#if (defined(GL_SGIS_DETAIL_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_DETAIL_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_DETAIL_TEXTURE)
#define REGAL_NO_PLUGIN_GL_SGIS_DETAIL_TEXTURE
#endif

#if (defined(GL_SGIS_DETAIL_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_DETAIL_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_DETAIL_TEXTURE)
#define REGAL_NO_DECLARATION_GL_SGIS_DETAIL_TEXTURE
#endif

#ifndef GL_SGIS_detail_texture
#define GL_SGIS_detail_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIS_DETAIL_TEXTURE
#define GL_DETAIL_TEXTURE_2D_SGIS          0x8095     /* 32917 */
#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS  0x8096     /* 32918 */
#define GL_LINEAR_DETAIL_SGIS              0x8097     /* 32919 */
#define GL_LINEAR_DETAIL_ALPHA_SGIS        0x8098     /* 32920 */
#define GL_LINEAR_DETAIL_COLOR_SGIS        0x8099     /* 32921 */
#define GL_DETAIL_TEXTURE_LEVEL_SGIS       0x809a     /* 32922 */
#define GL_DETAIL_TEXTURE_MODE_SGIS        0x809b     /* 32923 */
#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809c     /* 32924 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_DETAIL_TEXTURE
typedef void (REGAL_CALL *PFNGLDETAILTEXFUNCSGISPROC)(GLenum target, GLsizei n, const GLfloat *points);
typedef void (REGAL_CALL *PFNGLGETDETAILTEXFUNCSGISPROC)(GLenum target, GLfloat *points);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_DETAIL_TEXTURE
#define glDetailTexFuncSGIS                 rglDetailTexFuncSGIS
#define glGetDetailTexFuncSGIS              rglGetDetailTexFuncSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_DETAIL_TEXTURE
REGAL_DECL void REGAL_CALL glDetailTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *points);
REGAL_DECL void REGAL_CALL glGetDetailTexFuncSGIS(GLenum target, GLfloat *points);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_DETAIL_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glDetailTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *points);
REGAL_DECL void REGAL_CALL plugin_glGetDetailTexFuncSGIS(GLenum target, GLfloat *points);
#endif

/**
 ** GL_SGIS_fog_function
 **/

#if (defined(GL_SGIS_FOG_FUNCTION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_FOG_FUNCTION)) && !defined(REGAL_NO_ENUM_GL_SGIS_FOG_FUNCTION)
#define REGAL_NO_ENUM_GL_SGIS_FOG_FUNCTION
#endif

#if (defined(GL_SGIS_FOG_FUNCTION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_FOG_FUNCTION)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_FOG_FUNCTION)
#define REGAL_NO_TYPEDEF_GL_SGIS_FOG_FUNCTION
#endif

#if (defined(GL_SGIS_FOG_FUNCTION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_FOG_FUNCTION)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_FOG_FUNCTION)
#define REGAL_NO_NAMESPACE_GL_SGIS_FOG_FUNCTION
#endif

#if (defined(GL_SGIS_FOG_FUNCTION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_FOG_FUNCTION)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_FOG_FUNCTION)
#define REGAL_NO_PLUGIN_GL_SGIS_FOG_FUNCTION
#endif

#if (defined(GL_SGIS_FOG_FUNCTION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_FOG_FUNCTION)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_FOG_FUNCTION)
#define REGAL_NO_DECLARATION_GL_SGIS_FOG_FUNCTION
#endif

#ifndef GL_SGIS_fog_function
#define GL_SGIS_fog_function 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_FOG_FUNCTION
typedef void (REGAL_CALL *PFNGLFOGFUNCSGISPROC)(GLsizei n, const GLfloat *points);
typedef void (REGAL_CALL *PFNGLGETFOGFUNCSGISPROC)(GLfloat *points);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_FOG_FUNCTION
#define glFogFuncSGIS                       rglFogFuncSGIS
#define glGetFogFuncSGIS                    rglGetFogFuncSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_FOG_FUNCTION
REGAL_DECL void REGAL_CALL glFogFuncSGIS(GLsizei n, const GLfloat *points);
REGAL_DECL void REGAL_CALL glGetFogFuncSGIS(GLfloat *points);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_FOG_FUNCTION
REGAL_DECL void REGAL_CALL plugin_glFogFuncSGIS(GLsizei n, const GLfloat *points);
REGAL_DECL void REGAL_CALL plugin_glGetFogFuncSGIS(GLfloat *points);
#endif

/**
 ** GL_SGIS_generate_mipmap
 **/

#if (defined(GL_SGIS_GENERATE_MIPMAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_GENERATE_MIPMAP)) && !defined(REGAL_NO_ENUM_GL_SGIS_GENERATE_MIPMAP)
#define REGAL_NO_ENUM_GL_SGIS_GENERATE_MIPMAP
#endif

#if (defined(GL_SGIS_GENERATE_MIPMAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_GENERATE_MIPMAP)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_GENERATE_MIPMAP)
#define REGAL_NO_TYPEDEF_GL_SGIS_GENERATE_MIPMAP
#endif

#if (defined(GL_SGIS_GENERATE_MIPMAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_GENERATE_MIPMAP)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_GENERATE_MIPMAP)
#define REGAL_NO_NAMESPACE_GL_SGIS_GENERATE_MIPMAP
#endif

#if (defined(GL_SGIS_GENERATE_MIPMAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_GENERATE_MIPMAP)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_GENERATE_MIPMAP)
#define REGAL_NO_PLUGIN_GL_SGIS_GENERATE_MIPMAP
#endif

#if (defined(GL_SGIS_GENERATE_MIPMAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_GENERATE_MIPMAP)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_GENERATE_MIPMAP)
#define REGAL_NO_DECLARATION_GL_SGIS_GENERATE_MIPMAP
#endif

#ifndef GL_SGIS_generate_mipmap
#define GL_SGIS_generate_mipmap 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIS_GENERATE_MIPMAP
#define GL_GENERATE_MIPMAP_SGIS      0x8191     /* 33169 */
#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192     /* 33170 */
#endif

/**
 ** GL_SGIS_multisample
 **/

#if (defined(GL_SGIS_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GL_SGIS_MULTISAMPLE)
#define REGAL_NO_ENUM_GL_SGIS_MULTISAMPLE
#endif

#if (defined(GL_SGIS_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GL_SGIS_MULTISAMPLE
#endif

#if (defined(GL_SGIS_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GL_SGIS_MULTISAMPLE
#endif

#if (defined(GL_SGIS_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GL_SGIS_MULTISAMPLE
#endif

#if (defined(GL_SGIS_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GL_SGIS_MULTISAMPLE
#endif

#ifndef GL_SGIS_multisample
#define GL_SGIS_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIS_MULTISAMPLE
#define GL_MULTISAMPLE_SGIS          0x809d     /* 32925 */
#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809e     /* 32926 */
#define GL_SAMPLE_ALPHA_TO_ONE_SGIS  0x809f     /* 32927 */
#define GL_SAMPLE_MASK_SGIS          0x80a0     /* 32928 */
#define GL_1PASS_SGIS                0x80a1     /* 32929 */
#define GL_2PASS_0_SGIS              0x80a2     /* 32930 */
#define GL_2PASS_1_SGIS              0x80a3     /* 32931 */
#define GL_4PASS_0_SGIS              0x80a4     /* 32932 */
#define GL_4PASS_1_SGIS              0x80a5     /* 32933 */
#define GL_4PASS_2_SGIS              0x80a6     /* 32934 */
#define GL_4PASS_3_SGIS              0x80a7     /* 32935 */
#define GL_SAMPLE_BUFFERS_SGIS       0x80a8     /* 32936 */
#define GL_SAMPLES_SGIS              0x80a9     /* 32937 */
#define GL_SAMPLE_MASK_VALUE_SGIS    0x80aa     /* 32938 */
#define GL_SAMPLE_MASK_INVERT_SGIS   0x80ab     /* 32939 */
#define GL_SAMPLE_PATTERN_SGIS       0x80ac     /* 32940 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_MULTISAMPLE
typedef void (REGAL_CALL *PFNGLSAMPLEMASKSGISPROC)(GLclampf value, GLboolean invert);
typedef void (REGAL_CALL *PFNGLSAMPLEPATTERNSGISPROC)(GLenum pattern);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_MULTISAMPLE
#define glSampleMaskSGIS                    rglSampleMaskSGIS
#define glSamplePatternSGIS                 rglSamplePatternSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_MULTISAMPLE
REGAL_DECL void REGAL_CALL glSampleMaskSGIS(GLclampf value, GLboolean invert);
REGAL_DECL void REGAL_CALL glSamplePatternSGIS(GLenum pattern);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_MULTISAMPLE
REGAL_DECL void REGAL_CALL plugin_glSampleMaskSGIS(GLclampf value, GLboolean invert);
REGAL_DECL void REGAL_CALL plugin_glSamplePatternSGIS(GLenum pattern);
#endif

/**
 ** GL_SGIS_pixel_texture
 **/

#if (defined(GL_SGIS_PIXEL_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_PIXEL_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_SGIS_PIXEL_TEXTURE)
#define REGAL_NO_ENUM_GL_SGIS_PIXEL_TEXTURE
#endif

#if (defined(GL_SGIS_PIXEL_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_PIXEL_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_PIXEL_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_SGIS_PIXEL_TEXTURE
#endif

#if (defined(GL_SGIS_PIXEL_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_PIXEL_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_PIXEL_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_SGIS_PIXEL_TEXTURE
#endif

#if (defined(GL_SGIS_PIXEL_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_PIXEL_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_PIXEL_TEXTURE)
#define REGAL_NO_PLUGIN_GL_SGIS_PIXEL_TEXTURE
#endif

#if (defined(GL_SGIS_PIXEL_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_PIXEL_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_PIXEL_TEXTURE)
#define REGAL_NO_DECLARATION_GL_SGIS_PIXEL_TEXTURE
#endif

#ifndef GL_SGIS_pixel_texture
#define GL_SGIS_pixel_texture 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_PIXEL_TEXTURE
typedef void (REGAL_CALL *PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLPIXELTEXGENPARAMETERFSGISPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLPIXELTEXGENPARAMETERISGISPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_PIXEL_TEXTURE
#define glGetPixelTexGenParameterfvSGIS     rglGetPixelTexGenParameterfvSGIS
#define glGetPixelTexGenParameterivSGIS     rglGetPixelTexGenParameterivSGIS
#define glPixelTexGenParameterfSGIS         rglPixelTexGenParameterfSGIS
#define glPixelTexGenParameterfvSGIS        rglPixelTexGenParameterfvSGIS
#define glPixelTexGenParameteriSGIS         rglPixelTexGenParameteriSGIS
#define glPixelTexGenParameterivSGIS        rglPixelTexGenParameterivSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_PIXEL_TEXTURE
REGAL_DECL void REGAL_CALL glGetPixelTexGenParameterfvSGIS(GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetPixelTexGenParameterivSGIS(GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glPixelTexGenParameterfSGIS(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glPixelTexGenParameterfvSGIS(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glPixelTexGenParameteriSGIS(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glPixelTexGenParameterivSGIS(GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_PIXEL_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glGetPixelTexGenParameterfvSGIS(GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetPixelTexGenParameterivSGIS(GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glPixelTexGenParameterfSGIS(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPixelTexGenParameterfvSGIS(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glPixelTexGenParameteriSGIS(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glPixelTexGenParameterivSGIS(GLenum pname, const GLint *params);
#endif

/**
 ** GL_SGIS_point_line_texgen
 **/

#if (defined(GL_SGIS_POINT_LINE_TEXGEN) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_POINT_LINE_TEXGEN)) && !defined(REGAL_NO_ENUM_GL_SGIS_POINT_LINE_TEXGEN)
#define REGAL_NO_ENUM_GL_SGIS_POINT_LINE_TEXGEN
#endif

#if (defined(GL_SGIS_POINT_LINE_TEXGEN) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_POINT_LINE_TEXGEN)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_POINT_LINE_TEXGEN)
#define REGAL_NO_TYPEDEF_GL_SGIS_POINT_LINE_TEXGEN
#endif

#if (defined(GL_SGIS_POINT_LINE_TEXGEN) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_POINT_LINE_TEXGEN)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_POINT_LINE_TEXGEN)
#define REGAL_NO_NAMESPACE_GL_SGIS_POINT_LINE_TEXGEN
#endif

#if (defined(GL_SGIS_POINT_LINE_TEXGEN) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_POINT_LINE_TEXGEN)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_POINT_LINE_TEXGEN)
#define REGAL_NO_PLUGIN_GL_SGIS_POINT_LINE_TEXGEN
#endif

#if (defined(GL_SGIS_POINT_LINE_TEXGEN) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_POINT_LINE_TEXGEN)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_POINT_LINE_TEXGEN)
#define REGAL_NO_DECLARATION_GL_SGIS_POINT_LINE_TEXGEN
#endif

#ifndef GL_SGIS_point_line_texgen
#define GL_SGIS_point_line_texgen 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIS_POINT_LINE_TEXGEN
#define GL_EYE_DISTANCE_TO_POINT_SGIS    0x81f0     /* 33264 */
#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81f1     /* 33265 */
#define GL_EYE_DISTANCE_TO_LINE_SGIS     0x81f2     /* 33266 */
#define GL_OBJECT_DISTANCE_TO_LINE_SGIS  0x81f3     /* 33267 */
#define GL_EYE_POINT_SGIS                0x81f4     /* 33268 */
#define GL_OBJECT_POINT_SGIS             0x81f5     /* 33269 */
#define GL_EYE_LINE_SGIS                 0x81f6     /* 33270 */
#define GL_OBJECT_LINE_SGIS              0x81f7     /* 33271 */
#endif

/**
 ** GL_SGIS_point_parameters
 **/

#if (defined(GL_SGIS_POINT_PARAMETERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_POINT_PARAMETERS)) && !defined(REGAL_NO_ENUM_GL_SGIS_POINT_PARAMETERS)
#define REGAL_NO_ENUM_GL_SGIS_POINT_PARAMETERS
#endif

#if (defined(GL_SGIS_POINT_PARAMETERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_POINT_PARAMETERS)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_POINT_PARAMETERS)
#define REGAL_NO_TYPEDEF_GL_SGIS_POINT_PARAMETERS
#endif

#if (defined(GL_SGIS_POINT_PARAMETERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_POINT_PARAMETERS)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_POINT_PARAMETERS)
#define REGAL_NO_NAMESPACE_GL_SGIS_POINT_PARAMETERS
#endif

#if (defined(GL_SGIS_POINT_PARAMETERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_POINT_PARAMETERS)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_POINT_PARAMETERS)
#define REGAL_NO_PLUGIN_GL_SGIS_POINT_PARAMETERS
#endif

#if (defined(GL_SGIS_POINT_PARAMETERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_POINT_PARAMETERS)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_POINT_PARAMETERS)
#define REGAL_NO_DECLARATION_GL_SGIS_POINT_PARAMETERS
#endif

#ifndef GL_SGIS_point_parameters
#define GL_SGIS_point_parameters 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_POINT_PARAMETERS
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERFSGISPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERFVSGISPROC)(GLenum pname, const GLfloat *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_POINT_PARAMETERS
#define glPointParameterfSGIS               rglPointParameterfSGIS
#define glPointParameterfvSGIS              rglPointParameterfvSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_POINT_PARAMETERS
REGAL_DECL void REGAL_CALL glPointParameterfSGIS(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glPointParameterfvSGIS(GLenum pname, const GLfloat *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_POINT_PARAMETERS
REGAL_DECL void REGAL_CALL plugin_glPointParameterfSGIS(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPointParameterfvSGIS(GLenum pname, const GLfloat *params);
#endif

/**
 ** GL_SGIS_sharpen_texture
 **/

#if (defined(GL_SGIS_SHARPEN_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_SHARPEN_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_SGIS_SHARPEN_TEXTURE)
#define REGAL_NO_ENUM_GL_SGIS_SHARPEN_TEXTURE
#endif

#if (defined(GL_SGIS_SHARPEN_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_SHARPEN_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_SHARPEN_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_SGIS_SHARPEN_TEXTURE
#endif

#if (defined(GL_SGIS_SHARPEN_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_SHARPEN_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_SHARPEN_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_SGIS_SHARPEN_TEXTURE
#endif

#if (defined(GL_SGIS_SHARPEN_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_SHARPEN_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_SHARPEN_TEXTURE)
#define REGAL_NO_PLUGIN_GL_SGIS_SHARPEN_TEXTURE
#endif

#if (defined(GL_SGIS_SHARPEN_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_SHARPEN_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_SHARPEN_TEXTURE)
#define REGAL_NO_DECLARATION_GL_SGIS_SHARPEN_TEXTURE
#endif

#ifndef GL_SGIS_sharpen_texture
#define GL_SGIS_sharpen_texture 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_SHARPEN_TEXTURE
typedef void (REGAL_CALL *PFNGLGETSHARPENTEXFUNCSGISPROC)(GLenum target, GLfloat *points);
typedef void (REGAL_CALL *PFNGLSHARPENTEXFUNCSGISPROC)(GLenum target, GLsizei n, const GLfloat *points);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_SHARPEN_TEXTURE
#define glGetSharpenTexFuncSGIS             rglGetSharpenTexFuncSGIS
#define glSharpenTexFuncSGIS                rglSharpenTexFuncSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_SHARPEN_TEXTURE
REGAL_DECL void REGAL_CALL glGetSharpenTexFuncSGIS(GLenum target, GLfloat *points);
REGAL_DECL void REGAL_CALL glSharpenTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *points);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_SHARPEN_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glGetSharpenTexFuncSGIS(GLenum target, GLfloat *points);
REGAL_DECL void REGAL_CALL plugin_glSharpenTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *points);
#endif

/**
 ** GL_SGIS_texture4D
 **/

#if (defined(GL_SGIS_TEXTURE4D) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_TEXTURE4D)) && !defined(REGAL_NO_ENUM_GL_SGIS_TEXTURE4D)
#define REGAL_NO_ENUM_GL_SGIS_TEXTURE4D
#endif

#if (defined(GL_SGIS_TEXTURE4D) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_TEXTURE4D)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE4D)
#define REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE4D
#endif

#if (defined(GL_SGIS_TEXTURE4D) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_TEXTURE4D)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE4D)
#define REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE4D
#endif

#if (defined(GL_SGIS_TEXTURE4D) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_TEXTURE4D)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_TEXTURE4D)
#define REGAL_NO_PLUGIN_GL_SGIS_TEXTURE4D
#endif

#if (defined(GL_SGIS_TEXTURE4D) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_TEXTURE4D)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_TEXTURE4D)
#define REGAL_NO_DECLARATION_GL_SGIS_TEXTURE4D
#endif

#ifndef GL_SGIS_texture4D
#define GL_SGIS_texture4D 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE4D
typedef void (REGAL_CALL *PFNGLTEXIMAGE4DSGISPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXSUBIMAGE4DSGISPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE4D
#define glTexImage4DSGIS                    rglTexImage4DSGIS
#define glTexSubImage4DSGIS                 rglTexSubImage4DSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_TEXTURE4D
REGAL_DECL void REGAL_CALL glTexImage4DSGIS(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTexSubImage4DSGIS(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_TEXTURE4D
REGAL_DECL void REGAL_CALL plugin_glTexImage4DSGIS(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTexSubImage4DSGIS(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels);
#endif

/**
 ** GL_SGIS_texture_border_clamp
 **/

#if (defined(GL_SGIS_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_ENUM_GL_SGIS_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_ENUM_GL_SGIS_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_SGIS_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_SGIS_TEXTURE_BORDER_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_SGIS_TEXTURE_BORDER_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_BORDER_CLAMP
#endif

#if (defined(GL_SGIS_TEXTURE_BORDER_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_TEXTURE_BORDER_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_BORDER_CLAMP)
#define REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_BORDER_CLAMP
#endif

#ifndef GL_SGIS_texture_border_clamp
#define GL_SGIS_texture_border_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIS_TEXTURE_BORDER_CLAMP
#define GL_CLAMP_TO_BORDER_SGIS 0x812d /* 33069 */
#endif

/**
 ** GL_SGIS_texture_color_mask
 **/

#if (defined(GL_SGIS_TEXTURE_COLOR_MASK) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_TEXTURE_COLOR_MASK)) && !defined(REGAL_NO_ENUM_GL_SGIS_TEXTURE_COLOR_MASK)
#define REGAL_NO_ENUM_GL_SGIS_TEXTURE_COLOR_MASK
#endif

#if (defined(GL_SGIS_TEXTURE_COLOR_MASK) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_TEXTURE_COLOR_MASK)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_COLOR_MASK)
#define REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_COLOR_MASK
#endif

#if (defined(GL_SGIS_TEXTURE_COLOR_MASK) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_TEXTURE_COLOR_MASK)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_COLOR_MASK)
#define REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_COLOR_MASK
#endif

#if (defined(GL_SGIS_TEXTURE_COLOR_MASK) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_TEXTURE_COLOR_MASK)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_COLOR_MASK)
#define REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_COLOR_MASK
#endif

#if (defined(GL_SGIS_TEXTURE_COLOR_MASK) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_TEXTURE_COLOR_MASK)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_COLOR_MASK)
#define REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_COLOR_MASK
#endif

#ifndef GL_SGIS_texture_color_mask
#define GL_SGIS_texture_color_mask 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_COLOR_MASK
typedef void (REGAL_CALL *PFNGLTEXTURECOLORMASKSGISPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_COLOR_MASK
#define glTextureColorMaskSGIS              rglTextureColorMaskSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_COLOR_MASK
REGAL_DECL void REGAL_CALL glTextureColorMaskSGIS(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_COLOR_MASK
REGAL_DECL void REGAL_CALL plugin_glTextureColorMaskSGIS(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
#endif

/**
 ** GL_SGIS_texture_edge_clamp
 **/

#if (defined(GL_SGIS_TEXTURE_EDGE_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_ENUM_GL_SGIS_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_ENUM_GL_SGIS_TEXTURE_EDGE_CLAMP
#endif

#if (defined(GL_SGIS_TEXTURE_EDGE_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_EDGE_CLAMP
#endif

#if (defined(GL_SGIS_TEXTURE_EDGE_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_EDGE_CLAMP
#endif

#if (defined(GL_SGIS_TEXTURE_EDGE_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_EDGE_CLAMP
#endif

#if (defined(GL_SGIS_TEXTURE_EDGE_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_TEXTURE_EDGE_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_EDGE_CLAMP)
#define REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_EDGE_CLAMP
#endif

#ifndef GL_SGIS_texture_edge_clamp
#define GL_SGIS_texture_edge_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIS_TEXTURE_EDGE_CLAMP
#define GL_CLAMP_TO_EDGE_SGIS 0x812f /* 33071 */
#endif

/**
 ** GL_SGIS_texture_filter4
 **/

#if (defined(GL_SGIS_TEXTURE_FILTER4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_TEXTURE_FILTER4)) && !defined(REGAL_NO_ENUM_GL_SGIS_TEXTURE_FILTER4)
#define REGAL_NO_ENUM_GL_SGIS_TEXTURE_FILTER4
#endif

#if (defined(GL_SGIS_TEXTURE_FILTER4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_TEXTURE_FILTER4)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_FILTER4)
#define REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_FILTER4
#endif

#if (defined(GL_SGIS_TEXTURE_FILTER4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_TEXTURE_FILTER4)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_FILTER4)
#define REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_FILTER4
#endif

#if (defined(GL_SGIS_TEXTURE_FILTER4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_TEXTURE_FILTER4)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_FILTER4)
#define REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_FILTER4
#endif

#if (defined(GL_SGIS_TEXTURE_FILTER4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_TEXTURE_FILTER4)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_FILTER4)
#define REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_FILTER4
#endif

#ifndef GL_SGIS_texture_filter4
#define GL_SGIS_texture_filter4 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_FILTER4
typedef void (REGAL_CALL *PFNGLGETTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLfloat *weights);
typedef void (REGAL_CALL *PFNGLTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_FILTER4
#define glGetTexFilterFuncSGIS              rglGetTexFilterFuncSGIS
#define glTexFilterFuncSGIS                 rglTexFilterFuncSGIS
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_FILTER4
REGAL_DECL void REGAL_CALL glGetTexFilterFuncSGIS(GLenum target, GLenum filter, GLfloat *weights);
REGAL_DECL void REGAL_CALL glTexFilterFuncSGIS(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_FILTER4
REGAL_DECL void REGAL_CALL plugin_glGetTexFilterFuncSGIS(GLenum target, GLenum filter, GLfloat *weights);
REGAL_DECL void REGAL_CALL plugin_glTexFilterFuncSGIS(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
#endif

/**
 ** GL_SGIS_texture_lod
 **/

#if (defined(GL_SGIS_TEXTURE_LOD) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIS_TEXTURE_LOD)) && !defined(REGAL_NO_ENUM_GL_SGIS_TEXTURE_LOD)
#define REGAL_NO_ENUM_GL_SGIS_TEXTURE_LOD
#endif

#if (defined(GL_SGIS_TEXTURE_LOD) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIS_TEXTURE_LOD)) && !defined(REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_LOD)
#define REGAL_NO_TYPEDEF_GL_SGIS_TEXTURE_LOD
#endif

#if (defined(GL_SGIS_TEXTURE_LOD) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIS_TEXTURE_LOD)) && !defined(REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_LOD)
#define REGAL_NO_NAMESPACE_GL_SGIS_TEXTURE_LOD
#endif

#if (defined(GL_SGIS_TEXTURE_LOD) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIS_TEXTURE_LOD)) && !defined(REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_LOD)
#define REGAL_NO_PLUGIN_GL_SGIS_TEXTURE_LOD
#endif

#if (defined(GL_SGIS_TEXTURE_LOD) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIS_TEXTURE_LOD)) && !defined(REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_LOD)
#define REGAL_NO_DECLARATION_GL_SGIS_TEXTURE_LOD
#endif

#ifndef GL_SGIS_texture_lod
#define GL_SGIS_texture_lod 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIS_TEXTURE_LOD
#define GL_TEXTURE_MIN_LOD_SGIS    0x813a     /* 33082 */
#define GL_TEXTURE_MAX_LOD_SGIS    0x813b     /* 33083 */
#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813c     /* 33084 */
#define GL_TEXTURE_MAX_LEVEL_SGIS  0x813d     /* 33085 */
#endif

/**
 ** GL_SGIX_async
 **/

#if (defined(GL_SGIX_ASYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_ASYNC)) && !defined(REGAL_NO_ENUM_GL_SGIX_ASYNC)
#define REGAL_NO_ENUM_GL_SGIX_ASYNC
#endif

#if (defined(GL_SGIX_ASYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_ASYNC)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_ASYNC)
#define REGAL_NO_TYPEDEF_GL_SGIX_ASYNC
#endif

#if (defined(GL_SGIX_ASYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_ASYNC)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_ASYNC)
#define REGAL_NO_NAMESPACE_GL_SGIX_ASYNC
#endif

#if (defined(GL_SGIX_ASYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_ASYNC)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_ASYNC)
#define REGAL_NO_PLUGIN_GL_SGIX_ASYNC
#endif

#if (defined(GL_SGIX_ASYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_ASYNC)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_ASYNC)
#define REGAL_NO_DECLARATION_GL_SGIX_ASYNC
#endif

#ifndef GL_SGIX_async
#define GL_SGIX_async 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_ASYNC
#define GL_ASYNC_MARKER_SGIX 0x8329 /* 33577 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_ASYNC
typedef GLboolean (REGAL_CALL *PFNGLISASYNCMARKERSGIXPROC)(GLuint marker);
typedef GLint (REGAL_CALL *PFNGLFINISHASYNCSGIXPROC)(GLuint *markerp);
typedef GLint (REGAL_CALL *PFNGLPOLLASYNCSGIXPROC)(GLuint *markerp);
typedef GLuint (REGAL_CALL *PFNGLGENASYNCMARKERSSGIXPROC)(GLsizei range);
typedef void (REGAL_CALL *PFNGLASYNCMARKERSGIXPROC)(GLuint marker);
typedef void (REGAL_CALL *PFNGLDELETEASYNCMARKERSSGIXPROC)(GLuint marker, GLsizei range);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_ASYNC
#define glAsyncMarkerSGIX                   rglAsyncMarkerSGIX
#define glDeleteAsyncMarkersSGIX            rglDeleteAsyncMarkersSGIX
#define glFinishAsyncSGIX                   rglFinishAsyncSGIX
#define glGenAsyncMarkersSGIX               rglGenAsyncMarkersSGIX
#define glIsAsyncMarkerSGIX                 rglIsAsyncMarkerSGIX
#define glPollAsyncSGIX                     rglPollAsyncSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_ASYNC
REGAL_DECL GLboolean REGAL_CALL glIsAsyncMarkerSGIX(GLuint marker);
REGAL_DECL GLint REGAL_CALL glFinishAsyncSGIX(GLuint *markerp);
REGAL_DECL GLint REGAL_CALL glPollAsyncSGIX(GLuint *markerp);
REGAL_DECL GLuint REGAL_CALL glGenAsyncMarkersSGIX(GLsizei range);
REGAL_DECL void REGAL_CALL glAsyncMarkerSGIX(GLuint marker);
REGAL_DECL void REGAL_CALL glDeleteAsyncMarkersSGIX(GLuint marker, GLsizei range);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_ASYNC
REGAL_DECL GLboolean REGAL_CALL plugin_glIsAsyncMarkerSGIX(GLuint marker);
REGAL_DECL GLint REGAL_CALL plugin_glFinishAsyncSGIX(GLuint *markerp);
REGAL_DECL GLint REGAL_CALL plugin_glPollAsyncSGIX(GLuint *markerp);
REGAL_DECL GLuint REGAL_CALL plugin_glGenAsyncMarkersSGIX(GLsizei range);
REGAL_DECL void REGAL_CALL plugin_glAsyncMarkerSGIX(GLuint marker);
REGAL_DECL void REGAL_CALL plugin_glDeleteAsyncMarkersSGIX(GLuint marker, GLsizei range);
#endif

/**
 ** GL_SGIX_async_histogram
 **/

#if (defined(GL_SGIX_ASYNC_HISTOGRAM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_ASYNC_HISTOGRAM)) && !defined(REGAL_NO_ENUM_GL_SGIX_ASYNC_HISTOGRAM)
#define REGAL_NO_ENUM_GL_SGIX_ASYNC_HISTOGRAM
#endif

#if (defined(GL_SGIX_ASYNC_HISTOGRAM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_ASYNC_HISTOGRAM)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_ASYNC_HISTOGRAM)
#define REGAL_NO_TYPEDEF_GL_SGIX_ASYNC_HISTOGRAM
#endif

#if (defined(GL_SGIX_ASYNC_HISTOGRAM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_ASYNC_HISTOGRAM)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_ASYNC_HISTOGRAM)
#define REGAL_NO_NAMESPACE_GL_SGIX_ASYNC_HISTOGRAM
#endif

#if (defined(GL_SGIX_ASYNC_HISTOGRAM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_ASYNC_HISTOGRAM)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_ASYNC_HISTOGRAM)
#define REGAL_NO_PLUGIN_GL_SGIX_ASYNC_HISTOGRAM
#endif

#if (defined(GL_SGIX_ASYNC_HISTOGRAM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_ASYNC_HISTOGRAM)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_ASYNC_HISTOGRAM)
#define REGAL_NO_DECLARATION_GL_SGIX_ASYNC_HISTOGRAM
#endif

#ifndef GL_SGIX_async_histogram
#define GL_SGIX_async_histogram 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_ASYNC_HISTOGRAM
#define GL_ASYNC_HISTOGRAM_SGIX     0x832c     /* 33580 */
#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832d     /* 33581 */
#endif

/**
 ** GL_SGIX_async_pixel
 **/

#if (defined(GL_SGIX_ASYNC_PIXEL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_ASYNC_PIXEL)) && !defined(REGAL_NO_ENUM_GL_SGIX_ASYNC_PIXEL)
#define REGAL_NO_ENUM_GL_SGIX_ASYNC_PIXEL
#endif

#if (defined(GL_SGIX_ASYNC_PIXEL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_ASYNC_PIXEL)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_ASYNC_PIXEL)
#define REGAL_NO_TYPEDEF_GL_SGIX_ASYNC_PIXEL
#endif

#if (defined(GL_SGIX_ASYNC_PIXEL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_ASYNC_PIXEL)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_ASYNC_PIXEL)
#define REGAL_NO_NAMESPACE_GL_SGIX_ASYNC_PIXEL
#endif

#if (defined(GL_SGIX_ASYNC_PIXEL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_ASYNC_PIXEL)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_ASYNC_PIXEL)
#define REGAL_NO_PLUGIN_GL_SGIX_ASYNC_PIXEL
#endif

#if (defined(GL_SGIX_ASYNC_PIXEL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_ASYNC_PIXEL)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_ASYNC_PIXEL)
#define REGAL_NO_DECLARATION_GL_SGIX_ASYNC_PIXEL
#endif

#ifndef GL_SGIX_async_pixel
#define GL_SGIX_async_pixel 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_ASYNC_PIXEL
#define GL_ASYNC_TEX_IMAGE_SGIX       0x835c     /* 33628 */
#define GL_ASYNC_DRAW_PIXELS_SGIX     0x835d     /* 33629 */
#define GL_ASYNC_READ_PIXELS_SGIX     0x835e     /* 33630 */
#define GL_MAX_ASYNC_TEX_IMAGE_SGIX   0x835f     /* 33631 */
#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360     /* 33632 */
#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361     /* 33633 */
#endif

/**
 ** GL_SGIX_blend_alpha_minmax
 **/

#if (defined(GL_SGIX_BLEND_ALPHA_MINMAX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_BLEND_ALPHA_MINMAX)) && !defined(REGAL_NO_ENUM_GL_SGIX_BLEND_ALPHA_MINMAX)
#define REGAL_NO_ENUM_GL_SGIX_BLEND_ALPHA_MINMAX
#endif

#if (defined(GL_SGIX_BLEND_ALPHA_MINMAX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_BLEND_ALPHA_MINMAX)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_BLEND_ALPHA_MINMAX)
#define REGAL_NO_TYPEDEF_GL_SGIX_BLEND_ALPHA_MINMAX
#endif

#if (defined(GL_SGIX_BLEND_ALPHA_MINMAX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_BLEND_ALPHA_MINMAX)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_BLEND_ALPHA_MINMAX)
#define REGAL_NO_NAMESPACE_GL_SGIX_BLEND_ALPHA_MINMAX
#endif

#if (defined(GL_SGIX_BLEND_ALPHA_MINMAX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_BLEND_ALPHA_MINMAX)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_BLEND_ALPHA_MINMAX)
#define REGAL_NO_PLUGIN_GL_SGIX_BLEND_ALPHA_MINMAX
#endif

#if (defined(GL_SGIX_BLEND_ALPHA_MINMAX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_BLEND_ALPHA_MINMAX)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_BLEND_ALPHA_MINMAX)
#define REGAL_NO_DECLARATION_GL_SGIX_BLEND_ALPHA_MINMAX
#endif

#ifndef GL_SGIX_blend_alpha_minmax
#define GL_SGIX_blend_alpha_minmax 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_BLEND_ALPHA_MINMAX
#define GL_ALPHA_MIN_SGIX 0x8320     /* 33568 */
#define GL_ALPHA_MAX_SGIX 0x8321     /* 33569 */
#endif

/**
 ** GL_SGIX_convolution_accuracy
 **/

#if (defined(GL_SGIX_CONVOLUTION_ACCURACY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_CONVOLUTION_ACCURACY)) && !defined(REGAL_NO_ENUM_GL_SGIX_CONVOLUTION_ACCURACY)
#define REGAL_NO_ENUM_GL_SGIX_CONVOLUTION_ACCURACY
#endif

#if (defined(GL_SGIX_CONVOLUTION_ACCURACY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_CONVOLUTION_ACCURACY)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_CONVOLUTION_ACCURACY)
#define REGAL_NO_TYPEDEF_GL_SGIX_CONVOLUTION_ACCURACY
#endif

#if (defined(GL_SGIX_CONVOLUTION_ACCURACY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_CONVOLUTION_ACCURACY)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_CONVOLUTION_ACCURACY)
#define REGAL_NO_NAMESPACE_GL_SGIX_CONVOLUTION_ACCURACY
#endif

#if (defined(GL_SGIX_CONVOLUTION_ACCURACY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_CONVOLUTION_ACCURACY)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_CONVOLUTION_ACCURACY)
#define REGAL_NO_PLUGIN_GL_SGIX_CONVOLUTION_ACCURACY
#endif

#if (defined(GL_SGIX_CONVOLUTION_ACCURACY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_CONVOLUTION_ACCURACY)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_CONVOLUTION_ACCURACY)
#define REGAL_NO_DECLARATION_GL_SGIX_CONVOLUTION_ACCURACY
#endif

#ifndef GL_SGIX_convolution_accuracy
#define GL_SGIX_convolution_accuracy 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_CONVOLUTION_ACCURACY
#define GL_CONVOLUTION_HINT_SGIX 0x8316 /* 33558 */
#endif

/**
 ** GL_SGIX_depth_texture
 **/

#if (defined(GL_SGIX_DEPTH_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_DEPTH_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_SGIX_DEPTH_TEXTURE)
#define REGAL_NO_ENUM_GL_SGIX_DEPTH_TEXTURE
#endif

#if (defined(GL_SGIX_DEPTH_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_DEPTH_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_DEPTH_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_SGIX_DEPTH_TEXTURE
#endif

#if (defined(GL_SGIX_DEPTH_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_DEPTH_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_DEPTH_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_SGIX_DEPTH_TEXTURE
#endif

#if (defined(GL_SGIX_DEPTH_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_DEPTH_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_DEPTH_TEXTURE)
#define REGAL_NO_PLUGIN_GL_SGIX_DEPTH_TEXTURE
#endif

#if (defined(GL_SGIX_DEPTH_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_DEPTH_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_DEPTH_TEXTURE)
#define REGAL_NO_DECLARATION_GL_SGIX_DEPTH_TEXTURE
#endif

#ifndef GL_SGIX_depth_texture
#define GL_SGIX_depth_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_DEPTH_TEXTURE
#define GL_DEPTH_COMPONENT16_SGIX 0x81a5     /* 33189 */
#define GL_DEPTH_COMPONENT24_SGIX 0x81a6     /* 33190 */
#define GL_DEPTH_COMPONENT32_SGIX 0x81a7     /* 33191 */
#endif

/**
 ** GL_SGIX_flush_raster
 **/

#if (defined(GL_SGIX_FLUSH_RASTER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_FLUSH_RASTER)) && !defined(REGAL_NO_ENUM_GL_SGIX_FLUSH_RASTER)
#define REGAL_NO_ENUM_GL_SGIX_FLUSH_RASTER
#endif

#if (defined(GL_SGIX_FLUSH_RASTER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_FLUSH_RASTER)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_FLUSH_RASTER)
#define REGAL_NO_TYPEDEF_GL_SGIX_FLUSH_RASTER
#endif

#if (defined(GL_SGIX_FLUSH_RASTER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_FLUSH_RASTER)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_FLUSH_RASTER)
#define REGAL_NO_NAMESPACE_GL_SGIX_FLUSH_RASTER
#endif

#if (defined(GL_SGIX_FLUSH_RASTER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_FLUSH_RASTER)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_FLUSH_RASTER)
#define REGAL_NO_PLUGIN_GL_SGIX_FLUSH_RASTER
#endif

#if (defined(GL_SGIX_FLUSH_RASTER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_FLUSH_RASTER)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_FLUSH_RASTER)
#define REGAL_NO_DECLARATION_GL_SGIX_FLUSH_RASTER
#endif

#ifndef GL_SGIX_flush_raster
#define GL_SGIX_flush_raster 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_FLUSH_RASTER
typedef void (REGAL_CALL *PFNGLFLUSHRASTERSGIXPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_FLUSH_RASTER
#define glFlushRasterSGIX                   rglFlushRasterSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_FLUSH_RASTER
REGAL_DECL void REGAL_CALL glFlushRasterSGIX(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_FLUSH_RASTER
REGAL_DECL void REGAL_CALL plugin_glFlushRasterSGIX(void);
#endif

/**
 ** GL_SGIX_fog_offset
 **/

#if (defined(GL_SGIX_FOG_OFFSET) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_FOG_OFFSET)) && !defined(REGAL_NO_ENUM_GL_SGIX_FOG_OFFSET)
#define REGAL_NO_ENUM_GL_SGIX_FOG_OFFSET
#endif

#if (defined(GL_SGIX_FOG_OFFSET) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_FOG_OFFSET)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_FOG_OFFSET)
#define REGAL_NO_TYPEDEF_GL_SGIX_FOG_OFFSET
#endif

#if (defined(GL_SGIX_FOG_OFFSET) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_FOG_OFFSET)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_FOG_OFFSET)
#define REGAL_NO_NAMESPACE_GL_SGIX_FOG_OFFSET
#endif

#if (defined(GL_SGIX_FOG_OFFSET) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_FOG_OFFSET)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_FOG_OFFSET)
#define REGAL_NO_PLUGIN_GL_SGIX_FOG_OFFSET
#endif

#if (defined(GL_SGIX_FOG_OFFSET) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_FOG_OFFSET)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_FOG_OFFSET)
#define REGAL_NO_DECLARATION_GL_SGIX_FOG_OFFSET
#endif

#ifndef GL_SGIX_fog_offset
#define GL_SGIX_fog_offset 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_FOG_OFFSET
#define GL_FOG_OFFSET_SGIX       0x8198     /* 33176 */
#define GL_FOG_OFFSET_VALUE_SGIX 0x8199     /* 33177 */
#endif

/**
 ** GL_SGIX_fog_texture
 **/

#if (defined(GL_SGIX_FOG_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_FOG_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_SGIX_FOG_TEXTURE)
#define REGAL_NO_ENUM_GL_SGIX_FOG_TEXTURE
#endif

#if (defined(GL_SGIX_FOG_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_FOG_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_FOG_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_SGIX_FOG_TEXTURE
#endif

#if (defined(GL_SGIX_FOG_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_FOG_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_FOG_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_SGIX_FOG_TEXTURE
#endif

#if (defined(GL_SGIX_FOG_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_FOG_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_FOG_TEXTURE)
#define REGAL_NO_PLUGIN_GL_SGIX_FOG_TEXTURE
#endif

#if (defined(GL_SGIX_FOG_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_FOG_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_FOG_TEXTURE)
#define REGAL_NO_DECLARATION_GL_SGIX_FOG_TEXTURE
#endif

#ifndef GL_SGIX_fog_texture
#define GL_SGIX_fog_texture 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_FOG_TEXTURE
#define GL_FOG_PATCHY_FACTOR_SGIX 0x0
#define GL_FRAGMENT_FOG_SGIX      0x0
#define GL_TEXTURE_FOG_SGIX       0x0
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_FOG_TEXTURE
typedef void (REGAL_CALL *PFNGLTEXTUREFOGSGIXPROC)(GLenum pname);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_FOG_TEXTURE
#define glTextureFogSGIX                    rglTextureFogSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_FOG_TEXTURE
REGAL_DECL void REGAL_CALL glTextureFogSGIX(GLenum pname);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_FOG_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glTextureFogSGIX(GLenum pname);
#endif

/**
 ** GL_SGIX_fragment_lighting
 **/

#if (defined(GL_SGIX_FRAGMENT_LIGHTING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_ENUM_GL_SGIX_FRAGMENT_LIGHTING)
#define REGAL_NO_ENUM_GL_SGIX_FRAGMENT_LIGHTING
#endif

#if (defined(GL_SGIX_FRAGMENT_LIGHTING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_FRAGMENT_LIGHTING)
#define REGAL_NO_TYPEDEF_GL_SGIX_FRAGMENT_LIGHTING
#endif

#if (defined(GL_SGIX_FRAGMENT_LIGHTING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_FRAGMENT_LIGHTING)
#define REGAL_NO_NAMESPACE_GL_SGIX_FRAGMENT_LIGHTING
#endif

#if (defined(GL_SGIX_FRAGMENT_LIGHTING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_FRAGMENT_LIGHTING)
#define REGAL_NO_PLUGIN_GL_SGIX_FRAGMENT_LIGHTING
#endif

#if (defined(GL_SGIX_FRAGMENT_LIGHTING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_FRAGMENT_LIGHTING)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_FRAGMENT_LIGHTING)
#define REGAL_NO_DECLARATION_GL_SGIX_FRAGMENT_LIGHTING
#endif

#ifndef GL_SGIX_fragment_lighting
#define GL_SGIX_fragment_lighting 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_FRAGMENT_LIGHTING
typedef void (REGAL_CALL *PFNGLFRAGMENTCOLORMATERIALSGIXPROC)(GLenum face, GLenum mode);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTFSGIXPROC)(GLenum light, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTISGIXPROC)(GLenum light, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTMODELFSGIXPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTMODELISGIXPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTMATERIALFSGIXPROC)(GLenum face, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLFRAGMENTMATERIALISGIXPROC)(GLenum face, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLGETFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLLIGHTENVISGIXPROC)(GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_FRAGMENT_LIGHTING
#define glFragmentColorMaterialSGIX         rglFragmentColorMaterialSGIX
#define glFragmentLightModelfSGIX           rglFragmentLightModelfSGIX
#define glFragmentLightModelfvSGIX          rglFragmentLightModelfvSGIX
#define glFragmentLightModeliSGIX           rglFragmentLightModeliSGIX
#define glFragmentLightModelivSGIX          rglFragmentLightModelivSGIX
#define glFragmentLightfSGIX                rglFragmentLightfSGIX
#define glFragmentLightfvSGIX               rglFragmentLightfvSGIX
#define glFragmentLightiSGIX                rglFragmentLightiSGIX
#define glFragmentLightivSGIX               rglFragmentLightivSGIX
#define glFragmentMaterialfSGIX             rglFragmentMaterialfSGIX
#define glFragmentMaterialfvSGIX            rglFragmentMaterialfvSGIX
#define glFragmentMaterialiSGIX             rglFragmentMaterialiSGIX
#define glFragmentMaterialivSGIX            rglFragmentMaterialivSGIX
#define glGetFragmentLightfvSGIX            rglGetFragmentLightfvSGIX
#define glGetFragmentLightivSGIX            rglGetFragmentLightivSGIX
#define glGetFragmentMaterialfvSGIX         rglGetFragmentMaterialfvSGIX
#define glGetFragmentMaterialivSGIX         rglGetFragmentMaterialivSGIX
#define glLightEnviSGIX                     rglLightEnviSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_FRAGMENT_LIGHTING
REGAL_DECL void REGAL_CALL glFragmentColorMaterialSGIX(GLenum face, GLenum mode);
REGAL_DECL void REGAL_CALL glFragmentLightModelfSGIX(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glFragmentLightModelfvSGIX(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glFragmentLightModeliSGIX(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glFragmentLightModelivSGIX(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glFragmentLightfSGIX(GLenum light, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glFragmentLightfvSGIX(GLenum light, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glFragmentLightiSGIX(GLenum light, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glFragmentLightivSGIX(GLenum light, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glFragmentMaterialfSGIX(GLenum face, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glFragmentMaterialfvSGIX(GLenum face, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glFragmentMaterialiSGIX(GLenum face, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glFragmentMaterialivSGIX(GLenum face, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glGetFragmentLightfvSGIX(GLenum light, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetFragmentLightivSGIX(GLenum light, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetFragmentMaterialfvSGIX(GLenum face, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetFragmentMaterialivSGIX(GLenum face, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glLightEnviSGIX(GLenum pname, GLint param);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_FRAGMENT_LIGHTING
REGAL_DECL void REGAL_CALL plugin_glFragmentColorMaterialSGIX(GLenum face, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightModelfSGIX(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightModelfvSGIX(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightModeliSGIX(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightModelivSGIX(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightfSGIX(GLenum light, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightfvSGIX(GLenum light, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightiSGIX(GLenum light, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glFragmentLightivSGIX(GLenum light, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentMaterialfSGIX(GLenum face, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glFragmentMaterialfvSGIX(GLenum face, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glFragmentMaterialiSGIX(GLenum face, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glFragmentMaterialivSGIX(GLenum face, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetFragmentLightfvSGIX(GLenum light, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetFragmentLightivSGIX(GLenum light, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetFragmentMaterialfvSGIX(GLenum face, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetFragmentMaterialivSGIX(GLenum face, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glLightEnviSGIX(GLenum pname, GLint param);
#endif

/**
 ** GL_SGIX_fragment_specular_lighting
 **/

#if (defined(GL_SGIX_FRAGMENT_SPECULAR_LIGHTING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)) && !defined(REGAL_NO_ENUM_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)
#define REGAL_NO_ENUM_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING
#endif

#if (defined(GL_SGIX_FRAGMENT_SPECULAR_LIGHTING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)
#define REGAL_NO_TYPEDEF_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING
#endif

#if (defined(GL_SGIX_FRAGMENT_SPECULAR_LIGHTING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)
#define REGAL_NO_NAMESPACE_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING
#endif

#if (defined(GL_SGIX_FRAGMENT_SPECULAR_LIGHTING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)
#define REGAL_NO_PLUGIN_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING
#endif

#if (defined(GL_SGIX_FRAGMENT_SPECULAR_LIGHTING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING)
#define REGAL_NO_DECLARATION_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING
#endif

#ifndef GL_SGIX_fragment_specular_lighting
#define GL_SGIX_fragment_specular_lighting 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_FRAGMENT_SPECULAR_LIGHTING
#define GL_FRAGMENT_LIGHTING_SGIX                         0x8400     /* 33792 */
#define GL_FRAGMENT_COLOR_MATERIAL_SGIX                   0x8401     /* 33793 */
#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX              0x8402     /* 33794 */
#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX         0x8403     /* 33795 */
#define GL_MAX_FRAGMENT_LIGHTS_SGIX                       0x8404     /* 33796 */
#define GL_MAX_ACTIVE_LIGHTS_SGIX                         0x8405     /* 33797 */
#define GL_CURRENT_RASTER_NORMAL_SGIX                     0x8406     /* 33798 */
#define GL_LIGHT_ENV_MODE_SGIX                            0x8407     /* 33799 */
#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX         0x8408     /* 33800 */
#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX             0x8409     /* 33801 */
#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX              0x840a     /* 33802 */
#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840b     /* 33803 */
#define GL_FRAGMENT_LIGHT0_SGIX                           0x840c     /* 33804 */
#define GL_FRAGMENT_LIGHT1_SGIX                           0x840d     /* 33805 */
#define GL_FRAGMENT_LIGHT2_SGIX                           0x840e     /* 33806 */
#define GL_FRAGMENT_LIGHT3_SGIX                           0x840f     /* 33807 */
#define GL_FRAGMENT_LIGHT4_SGIX                           0x8410     /* 33808 */
#define GL_FRAGMENT_LIGHT5_SGIX                           0x8411     /* 33809 */
#define GL_FRAGMENT_LIGHT6_SGIX                           0x8412     /* 33810 */
#define GL_FRAGMENT_LIGHT7_SGIX                           0x8413     /* 33811 */
#endif

/**
 ** GL_SGIX_framezoom
 **/

#if (defined(GL_SGIX_FRAMEZOOM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_FRAMEZOOM)) && !defined(REGAL_NO_ENUM_GL_SGIX_FRAMEZOOM)
#define REGAL_NO_ENUM_GL_SGIX_FRAMEZOOM
#endif

#if (defined(GL_SGIX_FRAMEZOOM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_FRAMEZOOM)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_FRAMEZOOM)
#define REGAL_NO_TYPEDEF_GL_SGIX_FRAMEZOOM
#endif

#if (defined(GL_SGIX_FRAMEZOOM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_FRAMEZOOM)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_FRAMEZOOM)
#define REGAL_NO_NAMESPACE_GL_SGIX_FRAMEZOOM
#endif

#if (defined(GL_SGIX_FRAMEZOOM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_FRAMEZOOM)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_FRAMEZOOM)
#define REGAL_NO_PLUGIN_GL_SGIX_FRAMEZOOM
#endif

#if (defined(GL_SGIX_FRAMEZOOM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_FRAMEZOOM)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_FRAMEZOOM)
#define REGAL_NO_DECLARATION_GL_SGIX_FRAMEZOOM
#endif

#ifndef GL_SGIX_framezoom
#define GL_SGIX_framezoom 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_FRAMEZOOM
typedef void (REGAL_CALL *PFNGLFRAMEZOOMSGIXPROC)(GLint factor);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_FRAMEZOOM
#define glFrameZoomSGIX                     rglFrameZoomSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_FRAMEZOOM
REGAL_DECL void REGAL_CALL glFrameZoomSGIX(GLint factor);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_FRAMEZOOM
REGAL_DECL void REGAL_CALL plugin_glFrameZoomSGIX(GLint factor);
#endif

/**
 ** GL_SGIX_igloo_interface
 **/

#if (defined(GL_SGIX_IGLOO_INTERFACE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_IGLOO_INTERFACE)) && !defined(REGAL_NO_ENUM_GL_SGIX_IGLOO_INTERFACE)
#define REGAL_NO_ENUM_GL_SGIX_IGLOO_INTERFACE
#endif

#if (defined(GL_SGIX_IGLOO_INTERFACE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_IGLOO_INTERFACE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_IGLOO_INTERFACE)
#define REGAL_NO_TYPEDEF_GL_SGIX_IGLOO_INTERFACE
#endif

#if (defined(GL_SGIX_IGLOO_INTERFACE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_IGLOO_INTERFACE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_IGLOO_INTERFACE)
#define REGAL_NO_NAMESPACE_GL_SGIX_IGLOO_INTERFACE
#endif

#if (defined(GL_SGIX_IGLOO_INTERFACE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_IGLOO_INTERFACE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_IGLOO_INTERFACE)
#define REGAL_NO_PLUGIN_GL_SGIX_IGLOO_INTERFACE
#endif

#if (defined(GL_SGIX_IGLOO_INTERFACE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_IGLOO_INTERFACE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_IGLOO_INTERFACE)
#define REGAL_NO_DECLARATION_GL_SGIX_IGLOO_INTERFACE
#endif

#ifndef GL_SGIX_igloo_interface
#define GL_SGIX_igloo_interface 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_IGLOO_INTERFACE
typedef void (REGAL_CALL *PFNGLIGLOOINTERFACESGIXPROC)(GLenum pname, const GLvoid *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_IGLOO_INTERFACE
#define glIglooInterfaceSGIX                rglIglooInterfaceSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_IGLOO_INTERFACE
REGAL_DECL void REGAL_CALL glIglooInterfaceSGIX(GLenum pname, const GLvoid *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_IGLOO_INTERFACE
REGAL_DECL void REGAL_CALL plugin_glIglooInterfaceSGIX(GLenum pname, const GLvoid *params);
#endif

/**
 ** GL_SGIX_instruments
 **/

#if (defined(GL_SGIX_INSTRUMENTS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_INSTRUMENTS)) && !defined(REGAL_NO_ENUM_GL_SGIX_INSTRUMENTS)
#define REGAL_NO_ENUM_GL_SGIX_INSTRUMENTS
#endif

#if (defined(GL_SGIX_INSTRUMENTS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_INSTRUMENTS)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_INSTRUMENTS)
#define REGAL_NO_TYPEDEF_GL_SGIX_INSTRUMENTS
#endif

#if (defined(GL_SGIX_INSTRUMENTS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_INSTRUMENTS)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_INSTRUMENTS)
#define REGAL_NO_NAMESPACE_GL_SGIX_INSTRUMENTS
#endif

#if (defined(GL_SGIX_INSTRUMENTS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_INSTRUMENTS)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_INSTRUMENTS)
#define REGAL_NO_PLUGIN_GL_SGIX_INSTRUMENTS
#endif

#if (defined(GL_SGIX_INSTRUMENTS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_INSTRUMENTS)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_INSTRUMENTS)
#define REGAL_NO_DECLARATION_GL_SGIX_INSTRUMENTS
#endif

#ifndef GL_SGIX_instruments
#define GL_SGIX_instruments 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_INSTRUMENTS
typedef GLint (REGAL_CALL *PFNGLGETINSTRUMENTSSGIXPROC)(void);
typedef GLint (REGAL_CALL *PFNGLPOLLINSTRUMENTSSGIXPROC)(GLint *marker_p);
typedef void (REGAL_CALL *PFNGLINSTRUMENTSBUFFERSGIXPROC)(GLsizei size, GLint *buffer);
typedef void (REGAL_CALL *PFNGLREADINSTRUMENTSSGIXPROC)(GLint marker);
typedef void (REGAL_CALL *PFNGLSTARTINSTRUMENTSSGIXPROC)(void);
typedef void (REGAL_CALL *PFNGLSTOPINSTRUMENTSSGIXPROC)(GLint marker);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_INSTRUMENTS
#define glGetInstrumentsSGIX                rglGetInstrumentsSGIX
#define glInstrumentsBufferSGIX             rglInstrumentsBufferSGIX
#define glPollInstrumentsSGIX               rglPollInstrumentsSGIX
#define glReadInstrumentsSGIX               rglReadInstrumentsSGIX
#define glStartInstrumentsSGIX              rglStartInstrumentsSGIX
#define glStopInstrumentsSGIX               rglStopInstrumentsSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_INSTRUMENTS
REGAL_DECL GLint REGAL_CALL glGetInstrumentsSGIX(void);
REGAL_DECL GLint REGAL_CALL glPollInstrumentsSGIX(GLint *marker_p);
REGAL_DECL void REGAL_CALL glInstrumentsBufferSGIX(GLsizei size, GLint *buffer);
REGAL_DECL void REGAL_CALL glReadInstrumentsSGIX(GLint marker);
REGAL_DECL void REGAL_CALL glStartInstrumentsSGIX(void);
REGAL_DECL void REGAL_CALL glStopInstrumentsSGIX(GLint marker);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_INSTRUMENTS
REGAL_DECL GLint REGAL_CALL plugin_glGetInstrumentsSGIX(void);
REGAL_DECL GLint REGAL_CALL plugin_glPollInstrumentsSGIX(GLint *marker_p);
REGAL_DECL void REGAL_CALL plugin_glInstrumentsBufferSGIX(GLsizei size, GLint *buffer);
REGAL_DECL void REGAL_CALL plugin_glReadInstrumentsSGIX(GLint marker);
REGAL_DECL void REGAL_CALL plugin_glStartInstrumentsSGIX(void);
REGAL_DECL void REGAL_CALL plugin_glStopInstrumentsSGIX(GLint marker);
#endif

/**
 ** GL_SGIX_interlace
 **/

#if (defined(GL_SGIX_INTERLACE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_INTERLACE)) && !defined(REGAL_NO_ENUM_GL_SGIX_INTERLACE)
#define REGAL_NO_ENUM_GL_SGIX_INTERLACE
#endif

#if (defined(GL_SGIX_INTERLACE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_INTERLACE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_INTERLACE)
#define REGAL_NO_TYPEDEF_GL_SGIX_INTERLACE
#endif

#if (defined(GL_SGIX_INTERLACE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_INTERLACE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_INTERLACE)
#define REGAL_NO_NAMESPACE_GL_SGIX_INTERLACE
#endif

#if (defined(GL_SGIX_INTERLACE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_INTERLACE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_INTERLACE)
#define REGAL_NO_PLUGIN_GL_SGIX_INTERLACE
#endif

#if (defined(GL_SGIX_INTERLACE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_INTERLACE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_INTERLACE)
#define REGAL_NO_DECLARATION_GL_SGIX_INTERLACE
#endif

#ifndef GL_SGIX_interlace
#define GL_SGIX_interlace 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_INTERLACE
#define GL_INTERLACE_SGIX 0x8094 /* 32916 */
#endif

/**
 ** GL_SGIX_list_priority
 **/

#if (defined(GL_SGIX_LIST_PRIORITY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_LIST_PRIORITY)) && !defined(REGAL_NO_ENUM_GL_SGIX_LIST_PRIORITY)
#define REGAL_NO_ENUM_GL_SGIX_LIST_PRIORITY
#endif

#if (defined(GL_SGIX_LIST_PRIORITY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_LIST_PRIORITY)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_LIST_PRIORITY)
#define REGAL_NO_TYPEDEF_GL_SGIX_LIST_PRIORITY
#endif

#if (defined(GL_SGIX_LIST_PRIORITY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_LIST_PRIORITY)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_LIST_PRIORITY)
#define REGAL_NO_NAMESPACE_GL_SGIX_LIST_PRIORITY
#endif

#if (defined(GL_SGIX_LIST_PRIORITY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_LIST_PRIORITY)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_LIST_PRIORITY)
#define REGAL_NO_PLUGIN_GL_SGIX_LIST_PRIORITY
#endif

#if (defined(GL_SGIX_LIST_PRIORITY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_LIST_PRIORITY)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_LIST_PRIORITY)
#define REGAL_NO_DECLARATION_GL_SGIX_LIST_PRIORITY
#endif

#ifndef GL_SGIX_list_priority
#define GL_SGIX_list_priority 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_LIST_PRIORITY
typedef void (REGAL_CALL *PFNGLGETLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLLISTPARAMETERFSGIXPROC)(GLuint list, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLLISTPARAMETERISGIXPROC)(GLuint list, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_LIST_PRIORITY
#define glGetListParameterfvSGIX            rglGetListParameterfvSGIX
#define glGetListParameterivSGIX            rglGetListParameterivSGIX
#define glListParameterfSGIX                rglListParameterfSGIX
#define glListParameterfvSGIX               rglListParameterfvSGIX
#define glListParameteriSGIX                rglListParameteriSGIX
#define glListParameterivSGIX               rglListParameterivSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_LIST_PRIORITY
REGAL_DECL void REGAL_CALL glGetListParameterfvSGIX(GLuint list, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetListParameterivSGIX(GLuint list, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glListParameterfSGIX(GLuint list, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glListParameterfvSGIX(GLuint list, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glListParameteriSGIX(GLuint list, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glListParameterivSGIX(GLuint list, GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_LIST_PRIORITY
REGAL_DECL void REGAL_CALL plugin_glGetListParameterfvSGIX(GLuint list, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetListParameterivSGIX(GLuint list, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glListParameterfSGIX(GLuint list, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glListParameterfvSGIX(GLuint list, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glListParameteriSGIX(GLuint list, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glListParameterivSGIX(GLuint list, GLenum pname, const GLint *params);
#endif

/**
 ** GL_SGIX_pixel_texture
 **/

#if (defined(GL_SGIX_PIXEL_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_PIXEL_TEXTURE)) && !defined(REGAL_NO_ENUM_GL_SGIX_PIXEL_TEXTURE)
#define REGAL_NO_ENUM_GL_SGIX_PIXEL_TEXTURE
#endif

#if (defined(GL_SGIX_PIXEL_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_PIXEL_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_PIXEL_TEXTURE)
#define REGAL_NO_TYPEDEF_GL_SGIX_PIXEL_TEXTURE
#endif

#if (defined(GL_SGIX_PIXEL_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_PIXEL_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_PIXEL_TEXTURE)
#define REGAL_NO_NAMESPACE_GL_SGIX_PIXEL_TEXTURE
#endif

#if (defined(GL_SGIX_PIXEL_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_PIXEL_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_PIXEL_TEXTURE)
#define REGAL_NO_PLUGIN_GL_SGIX_PIXEL_TEXTURE
#endif

#if (defined(GL_SGIX_PIXEL_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_PIXEL_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_PIXEL_TEXTURE)
#define REGAL_NO_DECLARATION_GL_SGIX_PIXEL_TEXTURE
#endif

#ifndef GL_SGIX_pixel_texture
#define GL_SGIX_pixel_texture 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_PIXEL_TEXTURE
typedef void (REGAL_CALL *PFNGLPIXELTEXGENSGIXPROC)(GLenum mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_PIXEL_TEXTURE
#define glPixelTexGenSGIX                   rglPixelTexGenSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_PIXEL_TEXTURE
REGAL_DECL void REGAL_CALL glPixelTexGenSGIX(GLenum mode);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_PIXEL_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glPixelTexGenSGIX(GLenum mode);
#endif

/**
 ** GL_SGIX_polynomial_ffd
 **/

#if (defined(GL_SGIX_POLYNOMIAL_FFD) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_POLYNOMIAL_FFD)) && !defined(REGAL_NO_ENUM_GL_SGIX_POLYNOMIAL_FFD)
#define REGAL_NO_ENUM_GL_SGIX_POLYNOMIAL_FFD
#endif

#if (defined(GL_SGIX_POLYNOMIAL_FFD) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_POLYNOMIAL_FFD)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_POLYNOMIAL_FFD)
#define REGAL_NO_TYPEDEF_GL_SGIX_POLYNOMIAL_FFD
#endif

#if (defined(GL_SGIX_POLYNOMIAL_FFD) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_POLYNOMIAL_FFD)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_POLYNOMIAL_FFD)
#define REGAL_NO_NAMESPACE_GL_SGIX_POLYNOMIAL_FFD
#endif

#if (defined(GL_SGIX_POLYNOMIAL_FFD) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_POLYNOMIAL_FFD)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_POLYNOMIAL_FFD)
#define REGAL_NO_PLUGIN_GL_SGIX_POLYNOMIAL_FFD
#endif

#if (defined(GL_SGIX_POLYNOMIAL_FFD) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_POLYNOMIAL_FFD)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_POLYNOMIAL_FFD)
#define REGAL_NO_DECLARATION_GL_SGIX_POLYNOMIAL_FFD
#endif

#ifndef GL_SGIX_polynomial_ffd
#define GL_SGIX_polynomial_ffd 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_POLYNOMIAL_FFD
typedef void (REGAL_CALL *PFNGLDEFORMATIONMAP3DSGIXPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
typedef void (REGAL_CALL *PFNGLDEFORMATIONMAP3FSGIXPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
typedef void (REGAL_CALL *PFNGLDEFORMSGIXPROC)(GLbitfield mask);
typedef void (REGAL_CALL *PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)(GLbitfield mask);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_POLYNOMIAL_FFD
#define glDeformSGIX                        rglDeformSGIX
#define glDeformationMap3dSGIX              rglDeformationMap3dSGIX
#define glDeformationMap3fSGIX              rglDeformationMap3fSGIX
#define glLoadIdentityDeformationMapSGIX    rglLoadIdentityDeformationMapSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_POLYNOMIAL_FFD
REGAL_DECL void REGAL_CALL glDeformSGIX(GLbitfield mask);
REGAL_DECL void REGAL_CALL glDeformationMap3dSGIX(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
REGAL_DECL void REGAL_CALL glDeformationMap3fSGIX(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
REGAL_DECL void REGAL_CALL glLoadIdentityDeformationMapSGIX(GLbitfield mask);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_POLYNOMIAL_FFD
REGAL_DECL void REGAL_CALL plugin_glDeformSGIX(GLbitfield mask);
REGAL_DECL void REGAL_CALL plugin_glDeformationMap3dSGIX(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points);
REGAL_DECL void REGAL_CALL plugin_glDeformationMap3fSGIX(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points);
REGAL_DECL void REGAL_CALL plugin_glLoadIdentityDeformationMapSGIX(GLbitfield mask);
#endif

/**
 ** GL_SGIX_reference_plane
 **/

#if (defined(GL_SGIX_REFERENCE_PLANE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_REFERENCE_PLANE)) && !defined(REGAL_NO_ENUM_GL_SGIX_REFERENCE_PLANE)
#define REGAL_NO_ENUM_GL_SGIX_REFERENCE_PLANE
#endif

#if (defined(GL_SGIX_REFERENCE_PLANE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_REFERENCE_PLANE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_REFERENCE_PLANE)
#define REGAL_NO_TYPEDEF_GL_SGIX_REFERENCE_PLANE
#endif

#if (defined(GL_SGIX_REFERENCE_PLANE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_REFERENCE_PLANE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_REFERENCE_PLANE)
#define REGAL_NO_NAMESPACE_GL_SGIX_REFERENCE_PLANE
#endif

#if (defined(GL_SGIX_REFERENCE_PLANE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_REFERENCE_PLANE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_REFERENCE_PLANE)
#define REGAL_NO_PLUGIN_GL_SGIX_REFERENCE_PLANE
#endif

#if (defined(GL_SGIX_REFERENCE_PLANE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_REFERENCE_PLANE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_REFERENCE_PLANE)
#define REGAL_NO_DECLARATION_GL_SGIX_REFERENCE_PLANE
#endif

#ifndef GL_SGIX_reference_plane
#define GL_SGIX_reference_plane 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_REFERENCE_PLANE
typedef void (REGAL_CALL *PFNGLREFERENCEPLANESGIXPROC)(const GLdouble *equation);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_REFERENCE_PLANE
#define glReferencePlaneSGIX                rglReferencePlaneSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_REFERENCE_PLANE
REGAL_DECL void REGAL_CALL glReferencePlaneSGIX(const GLdouble *equation);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_REFERENCE_PLANE
REGAL_DECL void REGAL_CALL plugin_glReferencePlaneSGIX(const GLdouble *equation);
#endif

/**
 ** GL_SGIX_resample
 **/

#if (defined(GL_SGIX_RESAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_RESAMPLE)) && !defined(REGAL_NO_ENUM_GL_SGIX_RESAMPLE)
#define REGAL_NO_ENUM_GL_SGIX_RESAMPLE
#endif

#if (defined(GL_SGIX_RESAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_RESAMPLE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_RESAMPLE)
#define REGAL_NO_TYPEDEF_GL_SGIX_RESAMPLE
#endif

#if (defined(GL_SGIX_RESAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_RESAMPLE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_RESAMPLE)
#define REGAL_NO_NAMESPACE_GL_SGIX_RESAMPLE
#endif

#if (defined(GL_SGIX_RESAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_RESAMPLE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_RESAMPLE)
#define REGAL_NO_PLUGIN_GL_SGIX_RESAMPLE
#endif

#if (defined(GL_SGIX_RESAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_RESAMPLE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_RESAMPLE)
#define REGAL_NO_DECLARATION_GL_SGIX_RESAMPLE
#endif

#ifndef GL_SGIX_resample
#define GL_SGIX_resample 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_RESAMPLE
#define GL_PACK_RESAMPLE_SGIX      0x842e     /* 33838 */
#define GL_UNPACK_RESAMPLE_SGIX    0x842f     /* 33839 */
#define GL_RESAMPLE_DECIMATE_SGIX  0x8430     /* 33840 */
#define GL_RESAMPLE_REPLICATE_SGIX 0x8433     /* 33843 */
#define GL_RESAMPLE_ZERO_FILL_SGIX 0x8434     /* 33844 */
#endif

/**
 ** GL_SGIX_shadow
 **/

#if (defined(GL_SGIX_SHADOW) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_SHADOW)) && !defined(REGAL_NO_ENUM_GL_SGIX_SHADOW)
#define REGAL_NO_ENUM_GL_SGIX_SHADOW
#endif

#if (defined(GL_SGIX_SHADOW) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_SHADOW)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_SHADOW)
#define REGAL_NO_TYPEDEF_GL_SGIX_SHADOW
#endif

#if (defined(GL_SGIX_SHADOW) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_SHADOW)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_SHADOW)
#define REGAL_NO_NAMESPACE_GL_SGIX_SHADOW
#endif

#if (defined(GL_SGIX_SHADOW) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_SHADOW)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_SHADOW)
#define REGAL_NO_PLUGIN_GL_SGIX_SHADOW
#endif

#if (defined(GL_SGIX_SHADOW) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_SHADOW)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_SHADOW)
#define REGAL_NO_DECLARATION_GL_SGIX_SHADOW
#endif

#ifndef GL_SGIX_shadow
#define GL_SGIX_shadow 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_SHADOW
#define GL_TEXTURE_COMPARE_SGIX          0x819a     /* 33178 */
#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819b     /* 33179 */
#define GL_TEXTURE_LEQUAL_R_SGIX         0x819c     /* 33180 */
#define GL_TEXTURE_GEQUAL_R_SGIX         0x819d     /* 33181 */
#endif

/**
 ** GL_SGIX_shadow_ambient
 **/

#if (defined(GL_SGIX_SHADOW_AMBIENT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_SHADOW_AMBIENT)) && !defined(REGAL_NO_ENUM_GL_SGIX_SHADOW_AMBIENT)
#define REGAL_NO_ENUM_GL_SGIX_SHADOW_AMBIENT
#endif

#if (defined(GL_SGIX_SHADOW_AMBIENT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_SHADOW_AMBIENT)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_SHADOW_AMBIENT)
#define REGAL_NO_TYPEDEF_GL_SGIX_SHADOW_AMBIENT
#endif

#if (defined(GL_SGIX_SHADOW_AMBIENT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_SHADOW_AMBIENT)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_SHADOW_AMBIENT)
#define REGAL_NO_NAMESPACE_GL_SGIX_SHADOW_AMBIENT
#endif

#if (defined(GL_SGIX_SHADOW_AMBIENT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_SHADOW_AMBIENT)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_SHADOW_AMBIENT)
#define REGAL_NO_PLUGIN_GL_SGIX_SHADOW_AMBIENT
#endif

#if (defined(GL_SGIX_SHADOW_AMBIENT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_SHADOW_AMBIENT)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_SHADOW_AMBIENT)
#define REGAL_NO_DECLARATION_GL_SGIX_SHADOW_AMBIENT
#endif

#ifndef GL_SGIX_shadow_ambient
#define GL_SGIX_shadow_ambient 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_SHADOW_AMBIENT
#define GL_SHADOW_AMBIENT_SGIX 0x80bf /* 32959 */
#endif

/**
 ** GL_SGIX_sprite
 **/

#if (defined(GL_SGIX_SPRITE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_SPRITE)) && !defined(REGAL_NO_ENUM_GL_SGIX_SPRITE)
#define REGAL_NO_ENUM_GL_SGIX_SPRITE
#endif

#if (defined(GL_SGIX_SPRITE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_SPRITE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_SPRITE)
#define REGAL_NO_TYPEDEF_GL_SGIX_SPRITE
#endif

#if (defined(GL_SGIX_SPRITE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_SPRITE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_SPRITE)
#define REGAL_NO_NAMESPACE_GL_SGIX_SPRITE
#endif

#if (defined(GL_SGIX_SPRITE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_SPRITE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_SPRITE)
#define REGAL_NO_PLUGIN_GL_SGIX_SPRITE
#endif

#if (defined(GL_SGIX_SPRITE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_SPRITE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_SPRITE)
#define REGAL_NO_DECLARATION_GL_SGIX_SPRITE
#endif

#ifndef GL_SGIX_sprite
#define GL_SGIX_sprite 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_SPRITE
typedef void (REGAL_CALL *PFNGLSPRITEPARAMETERFSGIXPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLSPRITEPARAMETERFVSGIXPROC)(GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLSPRITEPARAMETERISGIXPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLSPRITEPARAMETERIVSGIXPROC)(GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_SPRITE
#define glSpriteParameterfSGIX              rglSpriteParameterfSGIX
#define glSpriteParameterfvSGIX             rglSpriteParameterfvSGIX
#define glSpriteParameteriSGIX              rglSpriteParameteriSGIX
#define glSpriteParameterivSGIX             rglSpriteParameterivSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_SPRITE
REGAL_DECL void REGAL_CALL glSpriteParameterfSGIX(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glSpriteParameterfvSGIX(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glSpriteParameteriSGIX(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glSpriteParameterivSGIX(GLenum pname, const GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_SPRITE
REGAL_DECL void REGAL_CALL plugin_glSpriteParameterfSGIX(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glSpriteParameterfvSGIX(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glSpriteParameteriSGIX(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glSpriteParameterivSGIX(GLenum pname, const GLint *params);
#endif

/**
 ** GL_SGIX_tag_sample_buffer
 **/

#if (defined(GL_SGIX_TAG_SAMPLE_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_TAG_SAMPLE_BUFFER)) && !defined(REGAL_NO_ENUM_GL_SGIX_TAG_SAMPLE_BUFFER)
#define REGAL_NO_ENUM_GL_SGIX_TAG_SAMPLE_BUFFER
#endif

#if (defined(GL_SGIX_TAG_SAMPLE_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_TAG_SAMPLE_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_TAG_SAMPLE_BUFFER)
#define REGAL_NO_TYPEDEF_GL_SGIX_TAG_SAMPLE_BUFFER
#endif

#if (defined(GL_SGIX_TAG_SAMPLE_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_TAG_SAMPLE_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_TAG_SAMPLE_BUFFER)
#define REGAL_NO_NAMESPACE_GL_SGIX_TAG_SAMPLE_BUFFER
#endif

#if (defined(GL_SGIX_TAG_SAMPLE_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_TAG_SAMPLE_BUFFER)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_TAG_SAMPLE_BUFFER)
#define REGAL_NO_PLUGIN_GL_SGIX_TAG_SAMPLE_BUFFER
#endif

#if (defined(GL_SGIX_TAG_SAMPLE_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_TAG_SAMPLE_BUFFER)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_TAG_SAMPLE_BUFFER)
#define REGAL_NO_DECLARATION_GL_SGIX_TAG_SAMPLE_BUFFER
#endif

#ifndef GL_SGIX_tag_sample_buffer
#define GL_SGIX_tag_sample_buffer 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGIX_TAG_SAMPLE_BUFFER
typedef void (REGAL_CALL *PFNGLTAGSAMPLEBUFFERSGIXPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGIX_TAG_SAMPLE_BUFFER
#define glTagSampleBufferSGIX               rglTagSampleBufferSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGIX_TAG_SAMPLE_BUFFER
REGAL_DECL void REGAL_CALL glTagSampleBufferSGIX(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGIX_TAG_SAMPLE_BUFFER
REGAL_DECL void REGAL_CALL plugin_glTagSampleBufferSGIX(void);
#endif

/**
 ** GL_SGIX_texture_coordinate_clamp
 **/

#if (defined(GL_SGIX_TEXTURE_COORDINATE_CLAMP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_TEXTURE_COORDINATE_CLAMP)) && !defined(REGAL_NO_ENUM_GL_SGIX_TEXTURE_COORDINATE_CLAMP)
#define REGAL_NO_ENUM_GL_SGIX_TEXTURE_COORDINATE_CLAMP
#endif

#if (defined(GL_SGIX_TEXTURE_COORDINATE_CLAMP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_TEXTURE_COORDINATE_CLAMP)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_TEXTURE_COORDINATE_CLAMP)
#define REGAL_NO_TYPEDEF_GL_SGIX_TEXTURE_COORDINATE_CLAMP
#endif

#if (defined(GL_SGIX_TEXTURE_COORDINATE_CLAMP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_TEXTURE_COORDINATE_CLAMP)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_TEXTURE_COORDINATE_CLAMP)
#define REGAL_NO_NAMESPACE_GL_SGIX_TEXTURE_COORDINATE_CLAMP
#endif

#if (defined(GL_SGIX_TEXTURE_COORDINATE_CLAMP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_TEXTURE_COORDINATE_CLAMP)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_TEXTURE_COORDINATE_CLAMP)
#define REGAL_NO_PLUGIN_GL_SGIX_TEXTURE_COORDINATE_CLAMP
#endif

#if (defined(GL_SGIX_TEXTURE_COORDINATE_CLAMP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_TEXTURE_COORDINATE_CLAMP)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_TEXTURE_COORDINATE_CLAMP)
#define REGAL_NO_DECLARATION_GL_SGIX_TEXTURE_COORDINATE_CLAMP
#endif

#ifndef GL_SGIX_texture_coordinate_clamp
#define GL_SGIX_texture_coordinate_clamp 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_TEXTURE_COORDINATE_CLAMP
#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369     /* 33641 */
#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836a     /* 33642 */
#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836b     /* 33643 */
#endif

/**
 ** GL_SGIX_texture_multi_buffer
 **/

#if (defined(GL_SGIX_TEXTURE_MULTI_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_TEXTURE_MULTI_BUFFER)) && !defined(REGAL_NO_ENUM_GL_SGIX_TEXTURE_MULTI_BUFFER)
#define REGAL_NO_ENUM_GL_SGIX_TEXTURE_MULTI_BUFFER
#endif

#if (defined(GL_SGIX_TEXTURE_MULTI_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_TEXTURE_MULTI_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_TEXTURE_MULTI_BUFFER)
#define REGAL_NO_TYPEDEF_GL_SGIX_TEXTURE_MULTI_BUFFER
#endif

#if (defined(GL_SGIX_TEXTURE_MULTI_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_TEXTURE_MULTI_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_TEXTURE_MULTI_BUFFER)
#define REGAL_NO_NAMESPACE_GL_SGIX_TEXTURE_MULTI_BUFFER
#endif

#if (defined(GL_SGIX_TEXTURE_MULTI_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_TEXTURE_MULTI_BUFFER)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_TEXTURE_MULTI_BUFFER)
#define REGAL_NO_PLUGIN_GL_SGIX_TEXTURE_MULTI_BUFFER
#endif

#if (defined(GL_SGIX_TEXTURE_MULTI_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_TEXTURE_MULTI_BUFFER)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_TEXTURE_MULTI_BUFFER)
#define REGAL_NO_DECLARATION_GL_SGIX_TEXTURE_MULTI_BUFFER
#endif

#ifndef GL_SGIX_texture_multi_buffer
#define GL_SGIX_texture_multi_buffer 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_TEXTURE_MULTI_BUFFER
#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812e /* 33070 */
#endif

/**
 ** GL_SGIX_texture_range
 **/

#if (defined(GL_SGIX_TEXTURE_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_TEXTURE_RANGE)) && !defined(REGAL_NO_ENUM_GL_SGIX_TEXTURE_RANGE)
#define REGAL_NO_ENUM_GL_SGIX_TEXTURE_RANGE
#endif

#if (defined(GL_SGIX_TEXTURE_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_TEXTURE_RANGE)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_TEXTURE_RANGE)
#define REGAL_NO_TYPEDEF_GL_SGIX_TEXTURE_RANGE
#endif

#if (defined(GL_SGIX_TEXTURE_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_TEXTURE_RANGE)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_TEXTURE_RANGE)
#define REGAL_NO_NAMESPACE_GL_SGIX_TEXTURE_RANGE
#endif

#if (defined(GL_SGIX_TEXTURE_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_TEXTURE_RANGE)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_TEXTURE_RANGE)
#define REGAL_NO_PLUGIN_GL_SGIX_TEXTURE_RANGE
#endif

#if (defined(GL_SGIX_TEXTURE_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_TEXTURE_RANGE)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_TEXTURE_RANGE)
#define REGAL_NO_DECLARATION_GL_SGIX_TEXTURE_RANGE
#endif

#ifndef GL_SGIX_texture_range
#define GL_SGIX_texture_range 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_TEXTURE_RANGE
#define GL_RGB_SIGNED_SGIX                         0x85e0     /* 34272 */
#define GL_RGBA_SIGNED_SGIX                        0x85e1     /* 34273 */
#define GL_ALPHA_SIGNED_SGIX                       0x85e2     /* 34274 */
#define GL_LUMINANCE_SIGNED_SGIX                   0x85e3     /* 34275 */
#define GL_INTENSITY_SIGNED_SGIX                   0x85e4     /* 34276 */
#define GL_LUMINANCE_ALPHA_SIGNED_SGIX             0x85e5     /* 34277 */
#define GL_RGB16_SIGNED_SGIX                       0x85e6     /* 34278 */
#define GL_RGBA16_SIGNED_SGIX                      0x85e7     /* 34279 */
#define GL_ALPHA16_SIGNED_SGIX                     0x85e8     /* 34280 */
#define GL_LUMINANCE16_SIGNED_SGIX                 0x85e9     /* 34281 */
#define GL_INTENSITY16_SIGNED_SGIX                 0x85ea     /* 34282 */
#define GL_LUMINANCE16_ALPHA16_SIGNED_SGIX         0x85eb     /* 34283 */
#define GL_RGB_EXTENDED_RANGE_SGIX                 0x85ec     /* 34284 */
#define GL_RGBA_EXTENDED_RANGE_SGIX                0x85ed     /* 34285 */
#define GL_ALPHA_EXTENDED_RANGE_SGIX               0x85ee     /* 34286 */
#define GL_LUMINANCE_EXTENDED_RANGE_SGIX           0x85ef     /* 34287 */
#define GL_INTENSITY_EXTENDED_RANGE_SGIX           0x85f0     /* 34288 */
#define GL_LUMINANCE_ALPHA_EXTENDED_RANGE_SGIX     0x85f1     /* 34289 */
#define GL_RGB16_EXTENDED_RANGE_SGIX               0x85f2     /* 34290 */
#define GL_RGBA16_EXTENDED_RANGE_SGIX              0x85f3     /* 34291 */
#define GL_ALPHA16_EXTENDED_RANGE_SGIX             0x85f4     /* 34292 */
#define GL_LUMINANCE16_EXTENDED_RANGE_SGIX         0x85f5     /* 34293 */
#define GL_INTENSITY16_EXTENDED_RANGE_SGIX         0x85f6     /* 34294 */
#define GL_LUMINANCE16_ALPHA16_EXTENDED_RANGE_SGIX 0x85f7     /* 34295 */
#define GL_MIN_LUMINANCE_SGIS                      0x85f8     /* 34296 */
#define GL_MAX_LUMINANCE_SGIS                      0x85f9     /* 34297 */
#define GL_MIN_INTENSITY_SGIS                      0x85fa     /* 34298 */
#define GL_MAX_INTENSITY_SGIS                      0x85fb     /* 34299 */
#endif

/**
 ** GL_SGIX_texture_scale_bias
 **/

#if (defined(GL_SGIX_TEXTURE_SCALE_BIAS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_TEXTURE_SCALE_BIAS)) && !defined(REGAL_NO_ENUM_GL_SGIX_TEXTURE_SCALE_BIAS)
#define REGAL_NO_ENUM_GL_SGIX_TEXTURE_SCALE_BIAS
#endif

#if (defined(GL_SGIX_TEXTURE_SCALE_BIAS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_TEXTURE_SCALE_BIAS)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_TEXTURE_SCALE_BIAS)
#define REGAL_NO_TYPEDEF_GL_SGIX_TEXTURE_SCALE_BIAS
#endif

#if (defined(GL_SGIX_TEXTURE_SCALE_BIAS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_TEXTURE_SCALE_BIAS)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_TEXTURE_SCALE_BIAS)
#define REGAL_NO_NAMESPACE_GL_SGIX_TEXTURE_SCALE_BIAS
#endif

#if (defined(GL_SGIX_TEXTURE_SCALE_BIAS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_TEXTURE_SCALE_BIAS)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_TEXTURE_SCALE_BIAS)
#define REGAL_NO_PLUGIN_GL_SGIX_TEXTURE_SCALE_BIAS
#endif

#if (defined(GL_SGIX_TEXTURE_SCALE_BIAS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_TEXTURE_SCALE_BIAS)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_TEXTURE_SCALE_BIAS)
#define REGAL_NO_DECLARATION_GL_SGIX_TEXTURE_SCALE_BIAS
#endif

#ifndef GL_SGIX_texture_scale_bias
#define GL_SGIX_texture_scale_bias 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_TEXTURE_SCALE_BIAS
#define GL_POST_TEXTURE_FILTER_BIAS_SGIX        0x8179     /* 33145 */
#define GL_POST_TEXTURE_FILTER_SCALE_SGIX       0x817a     /* 33146 */
#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX  0x817b     /* 33147 */
#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817c     /* 33148 */
#endif

/**
 ** GL_SGIX_vertex_preclip_hint
 **/

#if (defined(GL_SGIX_VERTEX_PRECLIP_HINT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_VERTEX_PRECLIP_HINT)) && !defined(REGAL_NO_ENUM_GL_SGIX_VERTEX_PRECLIP_HINT)
#define REGAL_NO_ENUM_GL_SGIX_VERTEX_PRECLIP_HINT
#endif

#if (defined(GL_SGIX_VERTEX_PRECLIP_HINT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_VERTEX_PRECLIP_HINT)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_VERTEX_PRECLIP_HINT)
#define REGAL_NO_TYPEDEF_GL_SGIX_VERTEX_PRECLIP_HINT
#endif

#if (defined(GL_SGIX_VERTEX_PRECLIP_HINT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_VERTEX_PRECLIP_HINT)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_VERTEX_PRECLIP_HINT)
#define REGAL_NO_NAMESPACE_GL_SGIX_VERTEX_PRECLIP_HINT
#endif

#if (defined(GL_SGIX_VERTEX_PRECLIP_HINT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_VERTEX_PRECLIP_HINT)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_VERTEX_PRECLIP_HINT)
#define REGAL_NO_PLUGIN_GL_SGIX_VERTEX_PRECLIP_HINT
#endif

#if (defined(GL_SGIX_VERTEX_PRECLIP_HINT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_VERTEX_PRECLIP_HINT)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_VERTEX_PRECLIP_HINT)
#define REGAL_NO_DECLARATION_GL_SGIX_VERTEX_PRECLIP_HINT
#endif

#ifndef GL_SGIX_vertex_preclip_hint
#define GL_SGIX_vertex_preclip_hint 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_VERTEX_PRECLIP_HINT
#define GL_VERTEX_PRECLIP_SGIX      0x83ee     /* 33774 */
#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83ef     /* 33775 */
#endif

/**
 ** GL_SGIX_ycrcb
 **/

#if (defined(GL_SGIX_YCRCB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGIX_YCRCB)) && !defined(REGAL_NO_ENUM_GL_SGIX_YCRCB)
#define REGAL_NO_ENUM_GL_SGIX_YCRCB
#endif

#if (defined(GL_SGIX_YCRCB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGIX_YCRCB)) && !defined(REGAL_NO_TYPEDEF_GL_SGIX_YCRCB)
#define REGAL_NO_TYPEDEF_GL_SGIX_YCRCB
#endif

#if (defined(GL_SGIX_YCRCB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGIX_YCRCB)) && !defined(REGAL_NO_NAMESPACE_GL_SGIX_YCRCB)
#define REGAL_NO_NAMESPACE_GL_SGIX_YCRCB
#endif

#if (defined(GL_SGIX_YCRCB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGIX_YCRCB)) && !defined(REGAL_NO_PLUGIN_GL_SGIX_YCRCB)
#define REGAL_NO_PLUGIN_GL_SGIX_YCRCB
#endif

#if (defined(GL_SGIX_YCRCB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGIX_YCRCB)) && !defined(REGAL_NO_DECLARATION_GL_SGIX_YCRCB)
#define REGAL_NO_DECLARATION_GL_SGIX_YCRCB
#endif

#ifndef GL_SGIX_ycrcb
#define GL_SGIX_ycrcb 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGIX_YCRCB
#define GL_YCRCB_422_SGIX 0x81bb     /* 33211 */
#define GL_YCRCB_444_SGIX 0x81bc     /* 33212 */
#endif

/**
 ** GL_SGI_color_matrix
 **/

#if (defined(GL_SGI_COLOR_MATRIX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGI_COLOR_MATRIX)) && !defined(REGAL_NO_ENUM_GL_SGI_COLOR_MATRIX)
#define REGAL_NO_ENUM_GL_SGI_COLOR_MATRIX
#endif

#if (defined(GL_SGI_COLOR_MATRIX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGI_COLOR_MATRIX)) && !defined(REGAL_NO_TYPEDEF_GL_SGI_COLOR_MATRIX)
#define REGAL_NO_TYPEDEF_GL_SGI_COLOR_MATRIX
#endif

#if (defined(GL_SGI_COLOR_MATRIX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGI_COLOR_MATRIX)) && !defined(REGAL_NO_NAMESPACE_GL_SGI_COLOR_MATRIX)
#define REGAL_NO_NAMESPACE_GL_SGI_COLOR_MATRIX
#endif

#if (defined(GL_SGI_COLOR_MATRIX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGI_COLOR_MATRIX)) && !defined(REGAL_NO_PLUGIN_GL_SGI_COLOR_MATRIX)
#define REGAL_NO_PLUGIN_GL_SGI_COLOR_MATRIX
#endif

#if (defined(GL_SGI_COLOR_MATRIX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGI_COLOR_MATRIX)) && !defined(REGAL_NO_DECLARATION_GL_SGI_COLOR_MATRIX)
#define REGAL_NO_DECLARATION_GL_SGI_COLOR_MATRIX
#endif

#ifndef GL_SGI_color_matrix
#define GL_SGI_color_matrix 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGI_COLOR_MATRIX
#define GL_COLOR_MATRIX_SGI                  0x80b1     /* 32945 */
#define GL_COLOR_MATRIX_STACK_DEPTH_SGI      0x80b2     /* 32946 */
#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI  0x80b3     /* 32947 */
#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI   0x80b4     /* 32948 */
#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80b5     /* 32949 */
#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI  0x80b6     /* 32950 */
#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80b7     /* 32951 */
#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI    0x80b8     /* 32952 */
#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI  0x80b9     /* 32953 */
#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI   0x80ba     /* 32954 */
#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI  0x80bb     /* 32955 */
#endif

/**
 ** GL_SGI_color_table
 **/

#if (defined(GL_SGI_COLOR_TABLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGI_COLOR_TABLE)) && !defined(REGAL_NO_ENUM_GL_SGI_COLOR_TABLE)
#define REGAL_NO_ENUM_GL_SGI_COLOR_TABLE
#endif

#if (defined(GL_SGI_COLOR_TABLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGI_COLOR_TABLE)) && !defined(REGAL_NO_TYPEDEF_GL_SGI_COLOR_TABLE)
#define REGAL_NO_TYPEDEF_GL_SGI_COLOR_TABLE
#endif

#if (defined(GL_SGI_COLOR_TABLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGI_COLOR_TABLE)) && !defined(REGAL_NO_NAMESPACE_GL_SGI_COLOR_TABLE)
#define REGAL_NO_NAMESPACE_GL_SGI_COLOR_TABLE
#endif

#if (defined(GL_SGI_COLOR_TABLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGI_COLOR_TABLE)) && !defined(REGAL_NO_PLUGIN_GL_SGI_COLOR_TABLE)
#define REGAL_NO_PLUGIN_GL_SGI_COLOR_TABLE
#endif

#if (defined(GL_SGI_COLOR_TABLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGI_COLOR_TABLE)) && !defined(REGAL_NO_DECLARATION_GL_SGI_COLOR_TABLE)
#define REGAL_NO_DECLARATION_GL_SGI_COLOR_TABLE
#endif

#ifndef GL_SGI_color_table
#define GL_SGI_color_table 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGI_COLOR_TABLE
#define GL_COLOR_TABLE_SGI                         0x80d0     /* 32976 */
#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI        0x80d1     /* 32977 */
#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI       0x80d2     /* 32978 */
#define GL_PROXY_COLOR_TABLE_SGI                   0x80d3     /* 32979 */
#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI  0x80d4     /* 32980 */
#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80d5     /* 32981 */
#define GL_COLOR_TABLE_SCALE_SGI                   0x80d6     /* 32982 */
#define GL_COLOR_TABLE_BIAS_SGI                    0x80d7     /* 32983 */
#define GL_COLOR_TABLE_FORMAT_SGI                  0x80d8     /* 32984 */
#define GL_COLOR_TABLE_WIDTH_SGI                   0x80d9     /* 32985 */
#define GL_COLOR_TABLE_RED_SIZE_SGI                0x80da     /* 32986 */
#define GL_COLOR_TABLE_GREEN_SIZE_SGI              0x80db     /* 32987 */
#define GL_COLOR_TABLE_BLUE_SIZE_SGI               0x80dc     /* 32988 */
#define GL_COLOR_TABLE_ALPHA_SIZE_SGI              0x80dd     /* 32989 */
#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI          0x80de     /* 32990 */
#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI          0x80df     /* 32991 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SGI_COLOR_TABLE
typedef void (REGAL_CALL *PFNGLCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLCOLORTABLESGIPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
typedef void (REGAL_CALL *PFNGLCOPYCOLORTABLESGIPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETCOLORTABLESGIPROC)(GLenum target, GLenum format, GLenum type, GLvoid *table);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SGI_COLOR_TABLE
#define glColorTableParameterfvSGI          rglColorTableParameterfvSGI
#define glColorTableParameterivSGI          rglColorTableParameterivSGI
#define glColorTableSGI                     rglColorTableSGI
#define glCopyColorTableSGI                 rglCopyColorTableSGI
#define glGetColorTableParameterfvSGI       rglGetColorTableParameterfvSGI
#define glGetColorTableParameterivSGI       rglGetColorTableParameterivSGI
#define glGetColorTableSGI                  rglGetColorTableSGI
#endif

#ifndef REGAL_NO_DECLARATION_GL_SGI_COLOR_TABLE
REGAL_DECL void REGAL_CALL glColorTableParameterfvSGI(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glColorTableParameterivSGI(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glColorTableSGI(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
REGAL_DECL void REGAL_CALL glCopyColorTableSGI(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glGetColorTableParameterfvSGI(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetColorTableParameterivSGI(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetColorTableSGI(GLenum target, GLenum format, GLenum type, GLvoid *table);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SGI_COLOR_TABLE
REGAL_DECL void REGAL_CALL plugin_glColorTableParameterfvSGI(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glColorTableParameterivSGI(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glColorTableSGI(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
REGAL_DECL void REGAL_CALL plugin_glCopyColorTableSGI(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glGetColorTableParameterfvSGI(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetColorTableParameterivSGI(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetColorTableSGI(GLenum target, GLenum format, GLenum type, GLvoid *table);
#endif

/**
 ** GL_SGI_texture_color_table
 **/

#if (defined(GL_SGI_TEXTURE_COLOR_TABLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SGI_TEXTURE_COLOR_TABLE)) && !defined(REGAL_NO_ENUM_GL_SGI_TEXTURE_COLOR_TABLE)
#define REGAL_NO_ENUM_GL_SGI_TEXTURE_COLOR_TABLE
#endif

#if (defined(GL_SGI_TEXTURE_COLOR_TABLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SGI_TEXTURE_COLOR_TABLE)) && !defined(REGAL_NO_TYPEDEF_GL_SGI_TEXTURE_COLOR_TABLE)
#define REGAL_NO_TYPEDEF_GL_SGI_TEXTURE_COLOR_TABLE
#endif

#if (defined(GL_SGI_TEXTURE_COLOR_TABLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SGI_TEXTURE_COLOR_TABLE)) && !defined(REGAL_NO_NAMESPACE_GL_SGI_TEXTURE_COLOR_TABLE)
#define REGAL_NO_NAMESPACE_GL_SGI_TEXTURE_COLOR_TABLE
#endif

#if (defined(GL_SGI_TEXTURE_COLOR_TABLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SGI_TEXTURE_COLOR_TABLE)) && !defined(REGAL_NO_PLUGIN_GL_SGI_TEXTURE_COLOR_TABLE)
#define REGAL_NO_PLUGIN_GL_SGI_TEXTURE_COLOR_TABLE
#endif

#if (defined(GL_SGI_TEXTURE_COLOR_TABLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SGI_TEXTURE_COLOR_TABLE)) && !defined(REGAL_NO_DECLARATION_GL_SGI_TEXTURE_COLOR_TABLE)
#define REGAL_NO_DECLARATION_GL_SGI_TEXTURE_COLOR_TABLE
#endif

#ifndef GL_SGI_texture_color_table
#define GL_SGI_texture_color_table 1
#endif

#ifndef REGAL_NO_ENUM_GL_SGI_TEXTURE_COLOR_TABLE
#define GL_TEXTURE_COLOR_TABLE_SGI       0x80bc     /* 32956 */
#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80bd     /* 32957 */
#endif

/**
 ** GL_SUNX_constant_data
 **/

#if (defined(GL_SUNX_CONSTANT_DATA) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SUNX_CONSTANT_DATA)) && !defined(REGAL_NO_ENUM_GL_SUNX_CONSTANT_DATA)
#define REGAL_NO_ENUM_GL_SUNX_CONSTANT_DATA
#endif

#if (defined(GL_SUNX_CONSTANT_DATA) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SUNX_CONSTANT_DATA)) && !defined(REGAL_NO_TYPEDEF_GL_SUNX_CONSTANT_DATA)
#define REGAL_NO_TYPEDEF_GL_SUNX_CONSTANT_DATA
#endif

#if (defined(GL_SUNX_CONSTANT_DATA) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SUNX_CONSTANT_DATA)) && !defined(REGAL_NO_NAMESPACE_GL_SUNX_CONSTANT_DATA)
#define REGAL_NO_NAMESPACE_GL_SUNX_CONSTANT_DATA
#endif

#if (defined(GL_SUNX_CONSTANT_DATA) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SUNX_CONSTANT_DATA)) && !defined(REGAL_NO_PLUGIN_GL_SUNX_CONSTANT_DATA)
#define REGAL_NO_PLUGIN_GL_SUNX_CONSTANT_DATA
#endif

#if (defined(GL_SUNX_CONSTANT_DATA) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SUNX_CONSTANT_DATA)) && !defined(REGAL_NO_DECLARATION_GL_SUNX_CONSTANT_DATA)
#define REGAL_NO_DECLARATION_GL_SUNX_CONSTANT_DATA
#endif

#ifndef GL_SUNX_constant_data
#define GL_SUNX_constant_data 1
#endif

#ifndef REGAL_NO_ENUM_GL_SUNX_CONSTANT_DATA
#define GL_UNPACK_CONSTANT_DATA_SUNX  0x81d5     /* 33237 */
#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81d6     /* 33238 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SUNX_CONSTANT_DATA
typedef void (REGAL_CALL *PFNGLFINISHTEXTURESUNXPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SUNX_CONSTANT_DATA
#define glFinishTextureSUNX                 rglFinishTextureSUNX
#endif

#ifndef REGAL_NO_DECLARATION_GL_SUNX_CONSTANT_DATA
REGAL_DECL void REGAL_CALL glFinishTextureSUNX(void);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SUNX_CONSTANT_DATA
REGAL_DECL void REGAL_CALL plugin_glFinishTextureSUNX(void);
#endif

/**
 ** GL_SUN_convolution_border_modes
 **/

#if (defined(GL_SUN_CONVOLUTION_BORDER_MODES) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SUN_CONVOLUTION_BORDER_MODES)) && !defined(REGAL_NO_ENUM_GL_SUN_CONVOLUTION_BORDER_MODES)
#define REGAL_NO_ENUM_GL_SUN_CONVOLUTION_BORDER_MODES
#endif

#if (defined(GL_SUN_CONVOLUTION_BORDER_MODES) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SUN_CONVOLUTION_BORDER_MODES)) && !defined(REGAL_NO_TYPEDEF_GL_SUN_CONVOLUTION_BORDER_MODES)
#define REGAL_NO_TYPEDEF_GL_SUN_CONVOLUTION_BORDER_MODES
#endif

#if (defined(GL_SUN_CONVOLUTION_BORDER_MODES) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SUN_CONVOLUTION_BORDER_MODES)) && !defined(REGAL_NO_NAMESPACE_GL_SUN_CONVOLUTION_BORDER_MODES)
#define REGAL_NO_NAMESPACE_GL_SUN_CONVOLUTION_BORDER_MODES
#endif

#if (defined(GL_SUN_CONVOLUTION_BORDER_MODES) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SUN_CONVOLUTION_BORDER_MODES)) && !defined(REGAL_NO_PLUGIN_GL_SUN_CONVOLUTION_BORDER_MODES)
#define REGAL_NO_PLUGIN_GL_SUN_CONVOLUTION_BORDER_MODES
#endif

#if (defined(GL_SUN_CONVOLUTION_BORDER_MODES) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SUN_CONVOLUTION_BORDER_MODES)) && !defined(REGAL_NO_DECLARATION_GL_SUN_CONVOLUTION_BORDER_MODES)
#define REGAL_NO_DECLARATION_GL_SUN_CONVOLUTION_BORDER_MODES
#endif

#ifndef GL_SUN_convolution_border_modes
#define GL_SUN_convolution_border_modes 1
#endif

#ifndef REGAL_NO_ENUM_GL_SUN_CONVOLUTION_BORDER_MODES
#define GL_WRAP_BORDER_SUN 0x81d4 /* 33236 */
#endif

/**
 ** GL_SUN_global_alpha
 **/

#if (defined(GL_SUN_GLOBAL_ALPHA) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SUN_GLOBAL_ALPHA)) && !defined(REGAL_NO_ENUM_GL_SUN_GLOBAL_ALPHA)
#define REGAL_NO_ENUM_GL_SUN_GLOBAL_ALPHA
#endif

#if (defined(GL_SUN_GLOBAL_ALPHA) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SUN_GLOBAL_ALPHA)) && !defined(REGAL_NO_TYPEDEF_GL_SUN_GLOBAL_ALPHA)
#define REGAL_NO_TYPEDEF_GL_SUN_GLOBAL_ALPHA
#endif

#if (defined(GL_SUN_GLOBAL_ALPHA) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SUN_GLOBAL_ALPHA)) && !defined(REGAL_NO_NAMESPACE_GL_SUN_GLOBAL_ALPHA)
#define REGAL_NO_NAMESPACE_GL_SUN_GLOBAL_ALPHA
#endif

#if (defined(GL_SUN_GLOBAL_ALPHA) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SUN_GLOBAL_ALPHA)) && !defined(REGAL_NO_PLUGIN_GL_SUN_GLOBAL_ALPHA)
#define REGAL_NO_PLUGIN_GL_SUN_GLOBAL_ALPHA
#endif

#if (defined(GL_SUN_GLOBAL_ALPHA) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SUN_GLOBAL_ALPHA)) && !defined(REGAL_NO_DECLARATION_GL_SUN_GLOBAL_ALPHA)
#define REGAL_NO_DECLARATION_GL_SUN_GLOBAL_ALPHA
#endif

#ifndef GL_SUN_global_alpha
#define GL_SUN_global_alpha 1
#endif

#ifndef REGAL_NO_ENUM_GL_SUN_GLOBAL_ALPHA
#define GL_GLOBAL_ALPHA_SUN        0x81d9     /* 33241 */
#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81da     /* 33242 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SUN_GLOBAL_ALPHA
typedef void (REGAL_CALL *PFNGLGLOBALALPHAFACTORBSUNPROC)(GLbyte factor);
typedef void (REGAL_CALL *PFNGLGLOBALALPHAFACTORDSUNPROC)(GLdouble factor);
typedef void (REGAL_CALL *PFNGLGLOBALALPHAFACTORFSUNPROC)(GLfloat factor);
typedef void (REGAL_CALL *PFNGLGLOBALALPHAFACTORISUNPROC)(GLint factor);
typedef void (REGAL_CALL *PFNGLGLOBALALPHAFACTORSSUNPROC)(GLshort factor);
typedef void (REGAL_CALL *PFNGLGLOBALALPHAFACTORUBSUNPROC)(GLubyte factor);
typedef void (REGAL_CALL *PFNGLGLOBALALPHAFACTORUISUNPROC)(GLuint factor);
typedef void (REGAL_CALL *PFNGLGLOBALALPHAFACTORUSSUNPROC)(GLushort factor);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SUN_GLOBAL_ALPHA
#define glGlobalAlphaFactorbSUN             rglGlobalAlphaFactorbSUN
#define glGlobalAlphaFactordSUN             rglGlobalAlphaFactordSUN
#define glGlobalAlphaFactorfSUN             rglGlobalAlphaFactorfSUN
#define glGlobalAlphaFactoriSUN             rglGlobalAlphaFactoriSUN
#define glGlobalAlphaFactorsSUN             rglGlobalAlphaFactorsSUN
#define glGlobalAlphaFactorubSUN            rglGlobalAlphaFactorubSUN
#define glGlobalAlphaFactoruiSUN            rglGlobalAlphaFactoruiSUN
#define glGlobalAlphaFactorusSUN            rglGlobalAlphaFactorusSUN
#endif

#ifndef REGAL_NO_DECLARATION_GL_SUN_GLOBAL_ALPHA
REGAL_DECL void REGAL_CALL glGlobalAlphaFactorbSUN(GLbyte factor);
REGAL_DECL void REGAL_CALL glGlobalAlphaFactordSUN(GLdouble factor);
REGAL_DECL void REGAL_CALL glGlobalAlphaFactorfSUN(GLfloat factor);
REGAL_DECL void REGAL_CALL glGlobalAlphaFactoriSUN(GLint factor);
REGAL_DECL void REGAL_CALL glGlobalAlphaFactorsSUN(GLshort factor);
REGAL_DECL void REGAL_CALL glGlobalAlphaFactorubSUN(GLubyte factor);
REGAL_DECL void REGAL_CALL glGlobalAlphaFactoruiSUN(GLuint factor);
REGAL_DECL void REGAL_CALL glGlobalAlphaFactorusSUN(GLushort factor);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SUN_GLOBAL_ALPHA
REGAL_DECL void REGAL_CALL plugin_glGlobalAlphaFactorbSUN(GLbyte factor);
REGAL_DECL void REGAL_CALL plugin_glGlobalAlphaFactordSUN(GLdouble factor);
REGAL_DECL void REGAL_CALL plugin_glGlobalAlphaFactorfSUN(GLfloat factor);
REGAL_DECL void REGAL_CALL plugin_glGlobalAlphaFactoriSUN(GLint factor);
REGAL_DECL void REGAL_CALL plugin_glGlobalAlphaFactorsSUN(GLshort factor);
REGAL_DECL void REGAL_CALL plugin_glGlobalAlphaFactorubSUN(GLubyte factor);
REGAL_DECL void REGAL_CALL plugin_glGlobalAlphaFactoruiSUN(GLuint factor);
REGAL_DECL void REGAL_CALL plugin_glGlobalAlphaFactorusSUN(GLushort factor);
#endif

/**
 ** GL_SUN_mesh_array
 **/

#if (defined(GL_SUN_MESH_ARRAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SUN_MESH_ARRAY)) && !defined(REGAL_NO_ENUM_GL_SUN_MESH_ARRAY)
#define REGAL_NO_ENUM_GL_SUN_MESH_ARRAY
#endif

#if (defined(GL_SUN_MESH_ARRAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SUN_MESH_ARRAY)) && !defined(REGAL_NO_TYPEDEF_GL_SUN_MESH_ARRAY)
#define REGAL_NO_TYPEDEF_GL_SUN_MESH_ARRAY
#endif

#if (defined(GL_SUN_MESH_ARRAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SUN_MESH_ARRAY)) && !defined(REGAL_NO_NAMESPACE_GL_SUN_MESH_ARRAY)
#define REGAL_NO_NAMESPACE_GL_SUN_MESH_ARRAY
#endif

#if (defined(GL_SUN_MESH_ARRAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SUN_MESH_ARRAY)) && !defined(REGAL_NO_PLUGIN_GL_SUN_MESH_ARRAY)
#define REGAL_NO_PLUGIN_GL_SUN_MESH_ARRAY
#endif

#if (defined(GL_SUN_MESH_ARRAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SUN_MESH_ARRAY)) && !defined(REGAL_NO_DECLARATION_GL_SUN_MESH_ARRAY)
#define REGAL_NO_DECLARATION_GL_SUN_MESH_ARRAY
#endif

#ifndef GL_SUN_mesh_array
#define GL_SUN_mesh_array 1
#endif

#ifndef REGAL_NO_ENUM_GL_SUN_MESH_ARRAY
#define GL_QUAD_MESH_SUN     0x8614     /* 34324 */
#define GL_TRIANGLE_MESH_SUN 0x8615     /* 34325 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SUN_MESH_ARRAY
typedef void (REGAL_CALL *PFNGLDRAWMESHARRAYSSUNPROC)(GLenum mode, GLint first, GLsizei count, GLsizei width);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SUN_MESH_ARRAY
#define glDrawMeshArraysSUN                 rglDrawMeshArraysSUN
#endif

#ifndef REGAL_NO_DECLARATION_GL_SUN_MESH_ARRAY
REGAL_DECL void REGAL_CALL glDrawMeshArraysSUN(GLenum mode, GLint first, GLsizei count, GLsizei width);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SUN_MESH_ARRAY
REGAL_DECL void REGAL_CALL plugin_glDrawMeshArraysSUN(GLenum mode, GLint first, GLsizei count, GLsizei width);
#endif

/**
 ** GL_SUN_read_video_pixels
 **/

#if (defined(GL_SUN_READ_VIDEO_PIXELS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SUN_READ_VIDEO_PIXELS)) && !defined(REGAL_NO_ENUM_GL_SUN_READ_VIDEO_PIXELS)
#define REGAL_NO_ENUM_GL_SUN_READ_VIDEO_PIXELS
#endif

#if (defined(GL_SUN_READ_VIDEO_PIXELS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SUN_READ_VIDEO_PIXELS)) && !defined(REGAL_NO_TYPEDEF_GL_SUN_READ_VIDEO_PIXELS)
#define REGAL_NO_TYPEDEF_GL_SUN_READ_VIDEO_PIXELS
#endif

#if (defined(GL_SUN_READ_VIDEO_PIXELS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SUN_READ_VIDEO_PIXELS)) && !defined(REGAL_NO_NAMESPACE_GL_SUN_READ_VIDEO_PIXELS)
#define REGAL_NO_NAMESPACE_GL_SUN_READ_VIDEO_PIXELS
#endif

#if (defined(GL_SUN_READ_VIDEO_PIXELS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SUN_READ_VIDEO_PIXELS)) && !defined(REGAL_NO_PLUGIN_GL_SUN_READ_VIDEO_PIXELS)
#define REGAL_NO_PLUGIN_GL_SUN_READ_VIDEO_PIXELS
#endif

#if (defined(GL_SUN_READ_VIDEO_PIXELS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SUN_READ_VIDEO_PIXELS)) && !defined(REGAL_NO_DECLARATION_GL_SUN_READ_VIDEO_PIXELS)
#define REGAL_NO_DECLARATION_GL_SUN_READ_VIDEO_PIXELS
#endif

#ifndef GL_SUN_read_video_pixels
#define GL_SUN_read_video_pixels 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SUN_READ_VIDEO_PIXELS
typedef void (REGAL_CALL *PFNGLREADVIDEOPIXELSSUNPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SUN_READ_VIDEO_PIXELS
#define glReadVideoPixelsSUN                rglReadVideoPixelsSUN
#endif

#ifndef REGAL_NO_DECLARATION_GL_SUN_READ_VIDEO_PIXELS
REGAL_DECL void REGAL_CALL glReadVideoPixelsSUN(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SUN_READ_VIDEO_PIXELS
REGAL_DECL void REGAL_CALL plugin_glReadVideoPixelsSUN(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
#endif

/**
 ** GL_SUN_slice_accum
 **/

#if (defined(GL_SUN_SLICE_ACCUM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SUN_SLICE_ACCUM)) && !defined(REGAL_NO_ENUM_GL_SUN_SLICE_ACCUM)
#define REGAL_NO_ENUM_GL_SUN_SLICE_ACCUM
#endif

#if (defined(GL_SUN_SLICE_ACCUM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SUN_SLICE_ACCUM)) && !defined(REGAL_NO_TYPEDEF_GL_SUN_SLICE_ACCUM)
#define REGAL_NO_TYPEDEF_GL_SUN_SLICE_ACCUM
#endif

#if (defined(GL_SUN_SLICE_ACCUM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SUN_SLICE_ACCUM)) && !defined(REGAL_NO_NAMESPACE_GL_SUN_SLICE_ACCUM)
#define REGAL_NO_NAMESPACE_GL_SUN_SLICE_ACCUM
#endif

#if (defined(GL_SUN_SLICE_ACCUM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SUN_SLICE_ACCUM)) && !defined(REGAL_NO_PLUGIN_GL_SUN_SLICE_ACCUM)
#define REGAL_NO_PLUGIN_GL_SUN_SLICE_ACCUM
#endif

#if (defined(GL_SUN_SLICE_ACCUM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SUN_SLICE_ACCUM)) && !defined(REGAL_NO_DECLARATION_GL_SUN_SLICE_ACCUM)
#define REGAL_NO_DECLARATION_GL_SUN_SLICE_ACCUM
#endif

#ifndef GL_SUN_slice_accum
#define GL_SUN_slice_accum 1
#endif

#ifndef REGAL_NO_ENUM_GL_SUN_SLICE_ACCUM
#define GL_SLICE_ACCUM_SUN 0x85cc /* 34252 */
#endif

/**
 ** GL_SUN_triangle_list
 **/

#if (defined(GL_SUN_TRIANGLE_LIST) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SUN_TRIANGLE_LIST)) && !defined(REGAL_NO_ENUM_GL_SUN_TRIANGLE_LIST)
#define REGAL_NO_ENUM_GL_SUN_TRIANGLE_LIST
#endif

#if (defined(GL_SUN_TRIANGLE_LIST) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SUN_TRIANGLE_LIST)) && !defined(REGAL_NO_TYPEDEF_GL_SUN_TRIANGLE_LIST)
#define REGAL_NO_TYPEDEF_GL_SUN_TRIANGLE_LIST
#endif

#if (defined(GL_SUN_TRIANGLE_LIST) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SUN_TRIANGLE_LIST)) && !defined(REGAL_NO_NAMESPACE_GL_SUN_TRIANGLE_LIST)
#define REGAL_NO_NAMESPACE_GL_SUN_TRIANGLE_LIST
#endif

#if (defined(GL_SUN_TRIANGLE_LIST) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SUN_TRIANGLE_LIST)) && !defined(REGAL_NO_PLUGIN_GL_SUN_TRIANGLE_LIST)
#define REGAL_NO_PLUGIN_GL_SUN_TRIANGLE_LIST
#endif

#if (defined(GL_SUN_TRIANGLE_LIST) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SUN_TRIANGLE_LIST)) && !defined(REGAL_NO_DECLARATION_GL_SUN_TRIANGLE_LIST)
#define REGAL_NO_DECLARATION_GL_SUN_TRIANGLE_LIST
#endif

#ifndef GL_SUN_triangle_list
#define GL_SUN_triangle_list 1
#endif

#ifndef REGAL_NO_ENUM_GL_SUN_TRIANGLE_LIST
#define GL_RESTART_SUN                        0x1
#define GL_REPLACE_MIDDLE_SUN                 0x2
#define GL_REPLACE_OLDEST_SUN                 0x3
#define GL_TRIANGLE_LIST_SUN                  0x81d7     /* 33239 */
#define GL_REPLACEMENT_CODE_SUN               0x81d8     /* 33240 */
#define GL_REPLACEMENT_CODE_ARRAY_SUN         0x85c0     /* 34240 */
#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN    0x85c1     /* 34241 */
#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN  0x85c2     /* 34242 */
#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85c3     /* 34243 */
#define GL_R1UI_V3F_SUN                       0x85c4     /* 34244 */
#define GL_R1UI_C4UB_V3F_SUN                  0x85c5     /* 34245 */
#define GL_R1UI_C3F_V3F_SUN                   0x85c6     /* 34246 */
#define GL_R1UI_N3F_V3F_SUN                   0x85c7     /* 34247 */
#define GL_R1UI_C4F_N3F_V3F_SUN               0x85c8     /* 34248 */
#define GL_R1UI_T2F_V3F_SUN                   0x85c9     /* 34249 */
#define GL_R1UI_T2F_N3F_V3F_SUN               0x85ca     /* 34250 */
#define GL_R1UI_T2F_C4F_N3F_V3F_SUN           0x85cb     /* 34251 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SUN_TRIANGLE_LIST
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEPOINTERSUNPROC)(GLenum type, GLsizei stride, const GLvoid **pointer);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUBSUNPROC)(GLubyte code);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUBVSUNPROC)(const GLubyte *code);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUISUNPROC)(GLuint code);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUIVSUNPROC)(const GLuint *code);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUSSUNPROC)(GLushort code);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUSVSUNPROC)(const GLushort *code);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SUN_TRIANGLE_LIST
#define glReplacementCodePointerSUN         rglReplacementCodePointerSUN
#define glReplacementCodeubSUN              rglReplacementCodeubSUN
#define glReplacementCodeubvSUN             rglReplacementCodeubvSUN
#define glReplacementCodeuiSUN              rglReplacementCodeuiSUN
#define glReplacementCodeuivSUN             rglReplacementCodeuivSUN
#define glReplacementCodeusSUN              rglReplacementCodeusSUN
#define glReplacementCodeusvSUN             rglReplacementCodeusvSUN
#endif

#ifndef REGAL_NO_DECLARATION_GL_SUN_TRIANGLE_LIST
REGAL_DECL void REGAL_CALL glReplacementCodePointerSUN(GLenum type, GLsizei stride, const GLvoid **pointer);
REGAL_DECL void REGAL_CALL glReplacementCodeubSUN(GLubyte code);
REGAL_DECL void REGAL_CALL glReplacementCodeubvSUN(const GLubyte *code);
REGAL_DECL void REGAL_CALL glReplacementCodeuiSUN(GLuint code);
REGAL_DECL void REGAL_CALL glReplacementCodeuivSUN(const GLuint *code);
REGAL_DECL void REGAL_CALL glReplacementCodeusSUN(GLushort code);
REGAL_DECL void REGAL_CALL glReplacementCodeusvSUN(const GLushort *code);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SUN_TRIANGLE_LIST
REGAL_DECL void REGAL_CALL plugin_glReplacementCodePointerSUN(GLenum type, GLsizei stride, const GLvoid **pointer);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeubSUN(GLubyte code);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeubvSUN(const GLubyte *code);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiSUN(GLuint code);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuivSUN(const GLuint *code);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeusSUN(GLushort code);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeusvSUN(const GLushort *code);
#endif

/**
 ** GL_SUN_vertex
 **/

#if (defined(GL_SUN_VERTEX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_SUN_VERTEX)) && !defined(REGAL_NO_ENUM_GL_SUN_VERTEX)
#define REGAL_NO_ENUM_GL_SUN_VERTEX
#endif

#if (defined(GL_SUN_VERTEX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_SUN_VERTEX)) && !defined(REGAL_NO_TYPEDEF_GL_SUN_VERTEX)
#define REGAL_NO_TYPEDEF_GL_SUN_VERTEX
#endif

#if (defined(GL_SUN_VERTEX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_SUN_VERTEX)) && !defined(REGAL_NO_NAMESPACE_GL_SUN_VERTEX)
#define REGAL_NO_NAMESPACE_GL_SUN_VERTEX
#endif

#if (defined(GL_SUN_VERTEX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_SUN_VERTEX)) && !defined(REGAL_NO_PLUGIN_GL_SUN_VERTEX)
#define REGAL_NO_PLUGIN_GL_SUN_VERTEX
#endif

#if (defined(GL_SUN_VERTEX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_SUN_VERTEX)) && !defined(REGAL_NO_DECLARATION_GL_SUN_VERTEX)
#define REGAL_NO_DECLARATION_GL_SUN_VERTEX
#endif

#ifndef GL_SUN_vertex
#define GL_SUN_vertex 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_SUN_VERTEX
typedef void (REGAL_CALL *PFNGLCOLOR3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLCOLOR3FVERTEX3FVSUNPROC)(const GLfloat *c, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *c, const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLCOLOR4UBVERTEX2FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLCOLOR4UBVERTEX2FVSUNPROC)(const GLubyte *c, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLCOLOR4UBVERTEX3FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLCOLOR4UBVERTEX3FVSUNPROC)(const GLubyte *c, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLNORMAL3FVERTEX3FSUNPROC)(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *c, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)(const GLuint *rc, const GLubyte *c, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *tc, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)(GLuint rc, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)(const GLuint *rc, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *c, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)(const GLfloat *tc, const GLubyte *c, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FVERTEX3FVSUNPROC)(const GLfloat *tc, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD4FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLTEXCOORD4FVERTEX4FVSUNPROC)(const GLfloat *tc, const GLfloat *v);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_SUN_VERTEX
#define glColor3fVertex3fSUN                rglColor3fVertex3fSUN
#define glColor3fVertex3fvSUN               rglColor3fVertex3fvSUN
#define glColor4fNormal3fVertex3fSUN        rglColor4fNormal3fVertex3fSUN
#define glColor4fNormal3fVertex3fvSUN       rglColor4fNormal3fVertex3fvSUN
#define glColor4ubVertex2fSUN               rglColor4ubVertex2fSUN
#define glColor4ubVertex2fvSUN              rglColor4ubVertex2fvSUN
#define glColor4ubVertex3fSUN               rglColor4ubVertex3fSUN
#define glColor4ubVertex3fvSUN              rglColor4ubVertex3fvSUN
#define glNormal3fVertex3fSUN               rglNormal3fVertex3fSUN
#define glNormal3fVertex3fvSUN              rglNormal3fVertex3fvSUN
#define glReplacementCodeuiColor3fVertex3fSUN rglReplacementCodeuiColor3fVertex3fSUN
#define glReplacementCodeuiColor3fVertex3fvSUN rglReplacementCodeuiColor3fVertex3fvSUN
#define glReplacementCodeuiColor4fNormal3fVertex3fSUN rglReplacementCodeuiColor4fNormal3fVertex3fSUN
#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN rglReplacementCodeuiColor4fNormal3fVertex3fvSUN
#define glReplacementCodeuiColor4ubVertex3fSUN rglReplacementCodeuiColor4ubVertex3fSUN
#define glReplacementCodeuiColor4ubVertex3fvSUN rglReplacementCodeuiColor4ubVertex3fvSUN
#define glReplacementCodeuiNormal3fVertex3fSUN rglReplacementCodeuiNormal3fVertex3fSUN
#define glReplacementCodeuiNormal3fVertex3fvSUN rglReplacementCodeuiNormal3fVertex3fvSUN
#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN rglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN
#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN rglReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN
#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN rglReplacementCodeuiTexCoord2fNormal3fVertex3fSUN
#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN rglReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN
#define glReplacementCodeuiTexCoord2fVertex3fSUN rglReplacementCodeuiTexCoord2fVertex3fSUN
#define glReplacementCodeuiTexCoord2fVertex3fvSUN rglReplacementCodeuiTexCoord2fVertex3fvSUN
#define glReplacementCodeuiVertex3fSUN      rglReplacementCodeuiVertex3fSUN
#define glReplacementCodeuiVertex3fvSUN     rglReplacementCodeuiVertex3fvSUN
#define glTexCoord2fColor3fVertex3fSUN      rglTexCoord2fColor3fVertex3fSUN
#define glTexCoord2fColor3fVertex3fvSUN     rglTexCoord2fColor3fVertex3fvSUN
#define glTexCoord2fColor4fNormal3fVertex3fSUN rglTexCoord2fColor4fNormal3fVertex3fSUN
#define glTexCoord2fColor4fNormal3fVertex3fvSUN rglTexCoord2fColor4fNormal3fVertex3fvSUN
#define glTexCoord2fColor4ubVertex3fSUN     rglTexCoord2fColor4ubVertex3fSUN
#define glTexCoord2fColor4ubVertex3fvSUN    rglTexCoord2fColor4ubVertex3fvSUN
#define glTexCoord2fNormal3fVertex3fSUN     rglTexCoord2fNormal3fVertex3fSUN
#define glTexCoord2fNormal3fVertex3fvSUN    rglTexCoord2fNormal3fVertex3fvSUN
#define glTexCoord2fVertex3fSUN             rglTexCoord2fVertex3fSUN
#define glTexCoord2fVertex3fvSUN            rglTexCoord2fVertex3fvSUN
#define glTexCoord4fColor4fNormal3fVertex4fSUN rglTexCoord4fColor4fNormal3fVertex4fSUN
#define glTexCoord4fColor4fNormal3fVertex4fvSUN rglTexCoord4fColor4fNormal3fVertex4fvSUN
#define glTexCoord4fVertex4fSUN             rglTexCoord4fVertex4fSUN
#define glTexCoord4fVertex4fvSUN            rglTexCoord4fVertex4fvSUN
#endif

#ifndef REGAL_NO_DECLARATION_GL_SUN_VERTEX
REGAL_DECL void REGAL_CALL glColor3fVertex3fSUN(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glColor3fVertex3fvSUN(const GLfloat *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL glColor4fNormal3fVertex3fSUN(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glColor4fNormal3fVertex3fvSUN(const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glColor4ubVertex2fSUN(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glColor4ubVertex2fvSUN(const GLubyte *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL glColor4ubVertex3fSUN(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glColor4ubVertex3fvSUN(const GLubyte *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL glNormal3fVertex3fSUN(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glNormal3fVertex3fvSUN(const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glReplacementCodeuiColor3fVertex3fSUN(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glReplacementCodeuiColor3fVertex3fvSUN(const GLuint *rc, const GLfloat *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL glReplacementCodeuiColor4fNormal3fVertex3fSUN(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glReplacementCodeuiColor4fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glReplacementCodeuiColor4ubVertex3fSUN(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glReplacementCodeuiColor4ubVertex3fvSUN(const GLuint *rc, const GLubyte *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL glReplacementCodeuiNormal3fVertex3fSUN(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glReplacementCodeuiNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glReplacementCodeuiTexCoord2fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glReplacementCodeuiTexCoord2fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *v);
REGAL_DECL void REGAL_CALL glReplacementCodeuiVertex3fSUN(GLuint rc, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glReplacementCodeuiVertex3fvSUN(const GLuint *rc, const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord2fColor3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glTexCoord2fColor3fVertex3fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord2fColor4fNormal3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glTexCoord2fColor4fNormal3fVertex3fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord2fColor4ubVertex3fSUN(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glTexCoord2fColor4ubVertex3fvSUN(const GLfloat *tc, const GLubyte *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord2fNormal3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glTexCoord2fNormal3fVertex3fvSUN(const GLfloat *tc, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord2fVertex3fSUN(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glTexCoord2fVertex3fvSUN(const GLfloat *tc, const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord4fColor4fNormal3fVertex4fSUN(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glTexCoord4fColor4fNormal3fVertex4fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord4fVertex4fSUN(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glTexCoord4fVertex4fvSUN(const GLfloat *tc, const GLfloat *v);
#endif

#ifndef REGAL_NO_PLUGIN_GL_SUN_VERTEX
REGAL_DECL void REGAL_CALL plugin_glColor3fVertex3fSUN(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glColor3fVertex3fvSUN(const GLfloat *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glColor4fNormal3fVertex3fSUN(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glColor4fNormal3fVertex3fvSUN(const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glColor4ubVertex2fSUN(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glColor4ubVertex2fvSUN(const GLubyte *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glColor4ubVertex3fSUN(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glColor4ubVertex3fvSUN(const GLubyte *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glNormal3fVertex3fSUN(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glNormal3fVertex3fvSUN(const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiColor3fVertex3fSUN(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiColor3fVertex3fvSUN(const GLuint *rc, const GLfloat *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiColor4fNormal3fVertex3fSUN(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiColor4fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiColor4ubVertex3fSUN(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiColor4ubVertex3fvSUN(const GLuint *rc, const GLubyte *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiNormal3fVertex3fSUN(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiTexCoord2fVertex3fSUN(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiTexCoord2fVertex3fvSUN(const GLuint *rc, const GLfloat *tc, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiVertex3fSUN(GLuint rc, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glReplacementCodeuiVertex3fvSUN(const GLuint *rc, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fColor3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fColor3fVertex3fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fColor4fNormal3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fColor4fNormal3fVertex3fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fColor4ubVertex3fSUN(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fColor4ubVertex3fvSUN(const GLfloat *tc, const GLubyte *c, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fNormal3fVertex3fSUN(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fNormal3fVertex3fvSUN(const GLfloat *tc, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fVertex3fSUN(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fVertex3fvSUN(const GLfloat *tc, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4fColor4fNormal3fVertex4fSUN(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4fColor4fNormal3fVertex4fvSUN(const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4fVertex4fSUN(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4fVertex4fvSUN(const GLfloat *tc, const GLfloat *v);
#endif

/**
 ** GL_VERSION_1_0
 **/

#if (defined(GL_VERSION_1_0) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_1_0)) && !defined(REGAL_NO_ENUM_GL_VERSION_1_0)
#define REGAL_NO_ENUM_GL_VERSION_1_0
#endif

#if (defined(GL_VERSION_1_0) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_1_0)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_1_0)
#define REGAL_NO_TYPEDEF_GL_VERSION_1_0
#endif

#if (defined(GL_VERSION_1_0) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_1_0)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_1_0)
#define REGAL_NO_NAMESPACE_GL_VERSION_1_0
#endif

#if (defined(GL_VERSION_1_0) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_1_0)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_1_0)
#define REGAL_NO_PLUGIN_GL_VERSION_1_0
#endif

#if (defined(GL_VERSION_1_0) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_1_0)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_1_0)
#define REGAL_NO_DECLARATION_GL_VERSION_1_0
#endif

#ifndef GL_VERSION_1_0
#define GL_VERSION_1_0 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_1_0
typedef GLboolean (REGAL_CALL *PFNGLISENABLEDPROC)(GLenum cap);
typedef GLboolean (REGAL_CALL *PFNGLISLISTPROC)(GLuint list);
typedef GLenum (REGAL_CALL *PFNGLGETERRORPROC)(void);
typedef GLint (REGAL_CALL *PFNGLRENDERMODEPROC)(GLenum mode);
typedef GLuint (REGAL_CALL *PFNGLGENLISTSPROC)(GLsizei range);
typedef const GLubyte *(REGAL_CALL *PFNGLGETSTRINGPROC)(GLenum name);
typedef void (REGAL_CALL *PFNGLACCUMPROC)(GLenum op, GLfloat value);
typedef void (REGAL_CALL *PFNGLALPHAFUNCPROC)(GLenum func, GLclampf ref);
typedef void (REGAL_CALL *PFNGLBEGINPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLBITMAPPROC)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
typedef void (REGAL_CALL *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
typedef void (REGAL_CALL *PFNGLCALLLISTPROC)(GLuint list);
typedef void (REGAL_CALL *PFNGLCALLLISTSPROC)(GLsizei n, GLenum type, const GLvoid *lists);
typedef void (REGAL_CALL *PFNGLCLEARACCUMPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
typedef void (REGAL_CALL *PFNGLCLEARCOLORPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
typedef void (REGAL_CALL *PFNGLCLEARDEPTHPROC)(GLclampd depth);
typedef void (REGAL_CALL *PFNGLCLEARINDEXPROC)(GLfloat c);
typedef void (REGAL_CALL *PFNGLCLEARPROC)(GLbitfield mask);
typedef void (REGAL_CALL *PFNGLCLEARSTENCILPROC)(GLint s);
typedef void (REGAL_CALL *PFNGLCLIPPLANEPROC)(GLenum plane, const GLdouble *equation);
typedef void (REGAL_CALL *PFNGLCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue);
typedef void (REGAL_CALL *PFNGLCOLOR3BVPROC)(const GLbyte *v);
typedef void (REGAL_CALL *PFNGLCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue);
typedef void (REGAL_CALL *PFNGLCOLOR3DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue);
typedef void (REGAL_CALL *PFNGLCOLOR3FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLCOLOR3IPROC)(GLint red, GLint green, GLint blue);
typedef void (REGAL_CALL *PFNGLCOLOR3IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue);
typedef void (REGAL_CALL *PFNGLCOLOR3SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue);
typedef void (REGAL_CALL *PFNGLCOLOR3UBVPROC)(const GLubyte *v);
typedef void (REGAL_CALL *PFNGLCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue);
typedef void (REGAL_CALL *PFNGLCOLOR3UIVPROC)(const GLuint *v);
typedef void (REGAL_CALL *PFNGLCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue);
typedef void (REGAL_CALL *PFNGLCOLOR3USVPROC)(const GLushort *v);
typedef void (REGAL_CALL *PFNGLCOLOR4BPROC)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4BVPROC)(const GLbyte *v);
typedef void (REGAL_CALL *PFNGLCOLOR4DPROC)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLCOLOR4IPROC)(GLint red, GLint green, GLint blue, GLint alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLCOLOR4SPROC)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4UBVPROC)(const GLubyte *v);
typedef void (REGAL_CALL *PFNGLCOLOR4UIPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4UIVPROC)(const GLuint *v);
typedef void (REGAL_CALL *PFNGLCOLOR4USPROC)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
typedef void (REGAL_CALL *PFNGLCOLOR4USVPROC)(const GLushort *v);
typedef void (REGAL_CALL *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
typedef void (REGAL_CALL *PFNGLCOLORMATERIALPROC)(GLenum face, GLenum mode);
typedef void (REGAL_CALL *PFNGLCOPYPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
typedef void (REGAL_CALL *PFNGLCULLFACEPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLDELETELISTSPROC)(GLuint list, GLsizei range);
typedef void (REGAL_CALL *PFNGLDEPTHFUNCPROC)(GLenum func);
typedef void (REGAL_CALL *PFNGLDEPTHMASKPROC)(GLboolean flag);
typedef void (REGAL_CALL *PFNGLDEPTHRANGEPROC)(GLclampd zNear, GLclampd zFar);
typedef void (REGAL_CALL *PFNGLDISABLEPROC)(GLenum cap);
typedef void (REGAL_CALL *PFNGLDRAWBUFFERPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLDRAWPIXELSPROC)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLEDGEFLAGPROC)(GLboolean flag);
typedef void (REGAL_CALL *PFNGLEDGEFLAGVPROC)(const GLboolean *flag);
typedef void (REGAL_CALL *PFNGLENABLEPROC)(GLenum cap);
typedef void (REGAL_CALL *PFNGLENDLISTPROC)(void);
typedef void (REGAL_CALL *PFNGLENDPROC)(void);
typedef void (REGAL_CALL *PFNGLEVALCOORD1DPROC)(GLdouble u);
typedef void (REGAL_CALL *PFNGLEVALCOORD1DVPROC)(const GLdouble *u);
typedef void (REGAL_CALL *PFNGLEVALCOORD1FPROC)(GLfloat u);
typedef void (REGAL_CALL *PFNGLEVALCOORD1FVPROC)(const GLfloat *u);
typedef void (REGAL_CALL *PFNGLEVALCOORD2DPROC)(GLdouble u, GLdouble v);
typedef void (REGAL_CALL *PFNGLEVALCOORD2DVPROC)(const GLdouble *u);
typedef void (REGAL_CALL *PFNGLEVALCOORD2FPROC)(GLfloat u, GLfloat v);
typedef void (REGAL_CALL *PFNGLEVALCOORD2FVPROC)(const GLfloat *u);
typedef void (REGAL_CALL *PFNGLEVALMESH1PROC)(GLenum mode, GLint i1, GLint i2);
typedef void (REGAL_CALL *PFNGLEVALMESH2PROC)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
typedef void (REGAL_CALL *PFNGLEVALPOINT1PROC)(GLint i);
typedef void (REGAL_CALL *PFNGLEVALPOINT2PROC)(GLint i, GLint j);
typedef void (REGAL_CALL *PFNGLFEEDBACKBUFFERPROC)(GLsizei size, GLenum type, GLfloat *buffer);
typedef void (REGAL_CALL *PFNGLFINISHPROC)(void);
typedef void (REGAL_CALL *PFNGLFLUSHPROC)(void);
typedef void (REGAL_CALL *PFNGLFOGFPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLFOGFVPROC)(GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLFOGIPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLFOGIVPROC)(GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLFRONTFACEPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLFRUSTUMPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
typedef void (REGAL_CALL *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean *params);
typedef void (REGAL_CALL *PFNGLGETCLIPPLANEPROC)(GLenum plane, GLdouble *equation);
typedef void (REGAL_CALL *PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETINTEGERVPROC)(GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETLIGHTIVPROC)(GLenum light, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETMAPDVPROC)(GLenum target, GLenum query, GLdouble *v);
typedef void (REGAL_CALL *PFNGLGETMAPFVPROC)(GLenum target, GLenum query, GLfloat *v);
typedef void (REGAL_CALL *PFNGLGETMAPIVPROC)(GLenum target, GLenum query, GLint *v);
typedef void (REGAL_CALL *PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETMATERIALIVPROC)(GLenum face, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETPIXELMAPFVPROC)(GLenum map, GLfloat *values);
typedef void (REGAL_CALL *PFNGLGETPIXELMAPUIVPROC)(GLenum map, GLuint *values);
typedef void (REGAL_CALL *PFNGLGETPIXELMAPUSVPROC)(GLenum map, GLushort *values);
typedef void (REGAL_CALL *PFNGLGETPOLYGONSTIPPLEPROC)(GLubyte *mask);
typedef void (REGAL_CALL *PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETTEXGENDVPROC)(GLenum coord, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETTEXGENFVPROC)(GLenum coord, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETTEXGENIVPROC)(GLenum coord, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLHINTPROC)(GLenum target, GLenum mode);
typedef void (REGAL_CALL *PFNGLINDEXDPROC)(GLdouble c);
typedef void (REGAL_CALL *PFNGLINDEXDVPROC)(const GLdouble *c);
typedef void (REGAL_CALL *PFNGLINDEXFPROC)(GLfloat c);
typedef void (REGAL_CALL *PFNGLINDEXFVPROC)(const GLfloat *c);
typedef void (REGAL_CALL *PFNGLINDEXIPROC)(GLint c);
typedef void (REGAL_CALL *PFNGLINDEXIVPROC)(const GLint *c);
typedef void (REGAL_CALL *PFNGLINDEXMASKPROC)(GLuint mask);
typedef void (REGAL_CALL *PFNGLINDEXSPROC)(GLshort c);
typedef void (REGAL_CALL *PFNGLINDEXSVPROC)(const GLshort *c);
typedef void (REGAL_CALL *PFNGLINITNAMESPROC)(void);
typedef void (REGAL_CALL *PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLLIGHTIPROC)(GLenum light, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLLIGHTIVPROC)(GLenum light, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLLIGHTMODELIPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLLIGHTMODELIVPROC)(GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLLINESTIPPLEPROC)(GLint factor, GLushort pattern);
typedef void (REGAL_CALL *PFNGLLINEWIDTHPROC)(GLfloat width);
typedef void (REGAL_CALL *PFNGLLISTBASEPROC)(GLuint base);
typedef void (REGAL_CALL *PFNGLLOADIDENTITYPROC)(void);
typedef void (REGAL_CALL *PFNGLLOADMATRIXDPROC)(const GLdouble *m);
typedef void (REGAL_CALL *PFNGLLOADMATRIXFPROC)(const GLfloat *m);
typedef void (REGAL_CALL *PFNGLLOADNAMEPROC)(GLuint name);
typedef void (REGAL_CALL *PFNGLLOGICOPPROC)(GLenum opcode);
typedef void (REGAL_CALL *PFNGLMAP1DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
typedef void (REGAL_CALL *PFNGLMAP1FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
typedef void (REGAL_CALL *PFNGLMAP2DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
typedef void (REGAL_CALL *PFNGLMAP2FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
typedef void (REGAL_CALL *PFNGLMAPGRID1DPROC)(GLint un, GLdouble u1, GLdouble u2);
typedef void (REGAL_CALL *PFNGLMAPGRID1FPROC)(GLint un, GLfloat u1, GLfloat u2);
typedef void (REGAL_CALL *PFNGLMAPGRID2DPROC)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
typedef void (REGAL_CALL *PFNGLMAPGRID2FPROC)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
typedef void (REGAL_CALL *PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLMATERIALIPROC)(GLenum face, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLMATERIALIVPROC)(GLenum face, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLMATRIXMODEPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLMULTMATRIXDPROC)(const GLdouble *m);
typedef void (REGAL_CALL *PFNGLMULTMATRIXFPROC)(const GLfloat *m);
typedef void (REGAL_CALL *PFNGLNEWLISTPROC)(GLuint list, GLenum mode);
typedef void (REGAL_CALL *PFNGLNORMAL3BPROC)(GLbyte nx, GLbyte ny, GLbyte nz);
typedef void (REGAL_CALL *PFNGLNORMAL3BVPROC)(const GLbyte *v);
typedef void (REGAL_CALL *PFNGLNORMAL3DPROC)(GLdouble nx, GLdouble ny, GLdouble nz);
typedef void (REGAL_CALL *PFNGLNORMAL3DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz);
typedef void (REGAL_CALL *PFNGLNORMAL3FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLNORMAL3IPROC)(GLint nx, GLint ny, GLint nz);
typedef void (REGAL_CALL *PFNGLNORMAL3IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLNORMAL3SPROC)(GLshort nx, GLshort ny, GLshort nz);
typedef void (REGAL_CALL *PFNGLNORMAL3SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLORTHOPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
typedef void (REGAL_CALL *PFNGLPASSTHROUGHPROC)(GLfloat token);
typedef void (REGAL_CALL *PFNGLPIXELMAPFVPROC)(GLenum map, GLsizei mapsize, const GLfloat *values);
typedef void (REGAL_CALL *PFNGLPIXELMAPUIVPROC)(GLenum map, GLsizei mapsize, const GLuint *values);
typedef void (REGAL_CALL *PFNGLPIXELMAPUSVPROC)(GLenum map, GLsizei mapsize, const GLushort *values);
typedef void (REGAL_CALL *PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLPIXELTRANSFERFPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLPIXELTRANSFERIPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLPIXELZOOMPROC)(GLfloat xfactor, GLfloat yfactor);
typedef void (REGAL_CALL *PFNGLPOINTSIZEPROC)(GLfloat size);
typedef void (REGAL_CALL *PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode);
typedef void (REGAL_CALL *PFNGLPOLYGONSTIPPLEPROC)(const GLubyte *mask);
typedef void (REGAL_CALL *PFNGLPOPATTRIBPROC)(void);
typedef void (REGAL_CALL *PFNGLPOPMATRIXPROC)(void);
typedef void (REGAL_CALL *PFNGLPOPNAMEPROC)(void);
typedef void (REGAL_CALL *PFNGLPUSHATTRIBPROC)(GLbitfield mask);
typedef void (REGAL_CALL *PFNGLPUSHMATRIXPROC)(void);
typedef void (REGAL_CALL *PFNGLPUSHNAMEPROC)(GLuint name);
typedef void (REGAL_CALL *PFNGLRASTERPOS2DPROC)(GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLRASTERPOS2DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS2FPROC)(GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLRASTERPOS2FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS2IPROC)(GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLRASTERPOS2IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS2SPROC)(GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLRASTERPOS2SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLRASTERPOS3DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLRASTERPOS3FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS3IPROC)(GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLRASTERPOS3IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS3SPROC)(GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLRASTERPOS3SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLRASTERPOS4DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLRASTERPOS4FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS4IPROC)(GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLRASTERPOS4IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLRASTERPOS4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (REGAL_CALL *PFNGLRASTERPOS4SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLREADBUFFERPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLRECTDPROC)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
typedef void (REGAL_CALL *PFNGLRECTDVPROC)(const GLdouble *v1, const GLdouble *v2);
typedef void (REGAL_CALL *PFNGLRECTFPROC)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
typedef void (REGAL_CALL *PFNGLRECTFVPROC)(const GLfloat *v1, const GLfloat *v2);
typedef void (REGAL_CALL *PFNGLRECTIPROC)(GLint x1, GLint y1, GLint x2, GLint y2);
typedef void (REGAL_CALL *PFNGLRECTIVPROC)(const GLint *v1, const GLint *v2);
typedef void (REGAL_CALL *PFNGLRECTSPROC)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
typedef void (REGAL_CALL *PFNGLRECTSVPROC)(const GLshort *v1, const GLshort *v2);
typedef void (REGAL_CALL *PFNGLROTATEDPROC)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLSCALEDPROC)(GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLSELECTBUFFERPROC)(GLsizei size, GLuint *buffer);
typedef void (REGAL_CALL *PFNGLSHADEMODELPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
typedef void (REGAL_CALL *PFNGLSTENCILMASKPROC)(GLuint mask);
typedef void (REGAL_CALL *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
typedef void (REGAL_CALL *PFNGLTEXCOORD1DPROC)(GLdouble s);
typedef void (REGAL_CALL *PFNGLTEXCOORD1DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD1FPROC)(GLfloat s);
typedef void (REGAL_CALL *PFNGLTEXCOORD1FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD1IPROC)(GLint s);
typedef void (REGAL_CALL *PFNGLTEXCOORD1IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD1SPROC)(GLshort s);
typedef void (REGAL_CALL *PFNGLTEXCOORD1SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2DPROC)(GLdouble s, GLdouble t);
typedef void (REGAL_CALL *PFNGLTEXCOORD2DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t);
typedef void (REGAL_CALL *PFNGLTEXCOORD2FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2IPROC)(GLint s, GLint t);
typedef void (REGAL_CALL *PFNGLTEXCOORD2IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD2SPROC)(GLshort s, GLshort t);
typedef void (REGAL_CALL *PFNGLTEXCOORD2SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD3DPROC)(GLdouble s, GLdouble t, GLdouble r);
typedef void (REGAL_CALL *PFNGLTEXCOORD3DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD3FPROC)(GLfloat s, GLfloat t, GLfloat r);
typedef void (REGAL_CALL *PFNGLTEXCOORD3FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD3IPROC)(GLint s, GLint t, GLint r);
typedef void (REGAL_CALL *PFNGLTEXCOORD3IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD3SPROC)(GLshort s, GLshort t, GLshort r);
typedef void (REGAL_CALL *PFNGLTEXCOORD3SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD4DPROC)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
typedef void (REGAL_CALL *PFNGLTEXCOORD4DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD4FPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
typedef void (REGAL_CALL *PFNGLTEXCOORD4FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD4IPROC)(GLint s, GLint t, GLint r, GLint q);
typedef void (REGAL_CALL *PFNGLTEXCOORD4IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLTEXCOORD4SPROC)(GLshort s, GLshort t, GLshort r, GLshort q);
typedef void (REGAL_CALL *PFNGLTEXCOORD4SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLTEXGENDPROC)(GLenum coord, GLenum pname, GLdouble param);
typedef void (REGAL_CALL *PFNGLTEXGENDVPROC)(GLenum coord, GLenum pname, const GLdouble *params);
typedef void (REGAL_CALL *PFNGLTEXGENFPROC)(GLenum coord, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLTEXGENFVPROC)(GLenum coord, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLTEXGENIPROC)(GLenum coord, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLTEXGENIVPROC)(GLenum coord, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLTRANSLATEDPROC)(GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLVERTEX2DPROC)(GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLVERTEX2DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLVERTEX2FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEX2IPROC)(GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLVERTEX2IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEX2SPROC)(GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLVERTEX2SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEX3DPROC)(GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLVERTEX3DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEX3FPROC)(GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLVERTEX3FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEX3IPROC)(GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLVERTEX3IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEX3SPROC)(GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLVERTEX3SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEX4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLVERTEX4DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEX4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLVERTEX4FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEX4IPROC)(GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLVERTEX4IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEX4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (REGAL_CALL *PFNGLVERTEX4SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_1_0
#define glAccum                             rglAccum
#define glAlphaFunc                         rglAlphaFunc
#define glBegin                             rglBegin
#define glBitmap                            rglBitmap
#define glBlendFunc                         rglBlendFunc
#define glCallList                          rglCallList
#define glCallLists                         rglCallLists
#define glClear                             rglClear
#define glClearAccum                        rglClearAccum
#define glClearColor                        rglClearColor
#define glClearDepth                        rglClearDepth
#define glClearIndex                        rglClearIndex
#define glClearStencil                      rglClearStencil
#define glClipPlane                         rglClipPlane
#define glColor3b                           rglColor3b
#define glColor3bv                          rglColor3bv
#define glColor3d                           rglColor3d
#define glColor3dv                          rglColor3dv
#define glColor3f                           rglColor3f
#define glColor3fv                          rglColor3fv
#define glColor3i                           rglColor3i
#define glColor3iv                          rglColor3iv
#define glColor3s                           rglColor3s
#define glColor3sv                          rglColor3sv
#define glColor3ub                          rglColor3ub
#define glColor3ubv                         rglColor3ubv
#define glColor3ui                          rglColor3ui
#define glColor3uiv                         rglColor3uiv
#define glColor3us                          rglColor3us
#define glColor3usv                         rglColor3usv
#define glColor4b                           rglColor4b
#define glColor4bv                          rglColor4bv
#define glColor4d                           rglColor4d
#define glColor4dv                          rglColor4dv
#define glColor4f                           rglColor4f
#define glColor4fv                          rglColor4fv
#define glColor4i                           rglColor4i
#define glColor4iv                          rglColor4iv
#define glColor4s                           rglColor4s
#define glColor4sv                          rglColor4sv
#define glColor4ub                          rglColor4ub
#define glColor4ubv                         rglColor4ubv
#define glColor4ui                          rglColor4ui
#define glColor4uiv                         rglColor4uiv
#define glColor4us                          rglColor4us
#define glColor4usv                         rglColor4usv
#define glColorMask                         rglColorMask
#define glColorMaterial                     rglColorMaterial
#define glCopyPixels                        rglCopyPixels
#define glCullFace                          rglCullFace
#define glDeleteLists                       rglDeleteLists
#define glDepthFunc                         rglDepthFunc
#define glDepthMask                         rglDepthMask
#define glDepthRange                        rglDepthRange
#define glDisable                           rglDisable
#define glDrawBuffer                        rglDrawBuffer
#define glDrawPixels                        rglDrawPixels
#define glEdgeFlag                          rglEdgeFlag
#define glEdgeFlagv                         rglEdgeFlagv
#define glEnable                            rglEnable
#define glEnd                               rglEnd
#define glEndList                           rglEndList
#define glEvalCoord1d                       rglEvalCoord1d
#define glEvalCoord1dv                      rglEvalCoord1dv
#define glEvalCoord1f                       rglEvalCoord1f
#define glEvalCoord1fv                      rglEvalCoord1fv
#define glEvalCoord2d                       rglEvalCoord2d
#define glEvalCoord2dv                      rglEvalCoord2dv
#define glEvalCoord2f                       rglEvalCoord2f
#define glEvalCoord2fv                      rglEvalCoord2fv
#define glEvalMesh1                         rglEvalMesh1
#define glEvalMesh2                         rglEvalMesh2
#define glEvalPoint1                        rglEvalPoint1
#define glEvalPoint2                        rglEvalPoint2
#define glFeedbackBuffer                    rglFeedbackBuffer
#define glFinish                            rglFinish
#define glFlush                             rglFlush
#define glFogf                              rglFogf
#define glFogfv                             rglFogfv
#define glFogi                              rglFogi
#define glFogiv                             rglFogiv
#define glFrontFace                         rglFrontFace
#define glFrustum                           rglFrustum
#define glGenLists                          rglGenLists
#define glGetBooleanv                       rglGetBooleanv
#define glGetClipPlane                      rglGetClipPlane
#define glGetDoublev                        rglGetDoublev
#define glGetError                          rglGetError
#define glGetFloatv                         rglGetFloatv
#define glGetIntegerv                       rglGetIntegerv
#define glGetLightfv                        rglGetLightfv
#define glGetLightiv                        rglGetLightiv
#define glGetMapdv                          rglGetMapdv
#define glGetMapfv                          rglGetMapfv
#define glGetMapiv                          rglGetMapiv
#define glGetMaterialfv                     rglGetMaterialfv
#define glGetMaterialiv                     rglGetMaterialiv
#define glGetPixelMapfv                     rglGetPixelMapfv
#define glGetPixelMapuiv                    rglGetPixelMapuiv
#define glGetPixelMapusv                    rglGetPixelMapusv
#define glGetPolygonStipple                 rglGetPolygonStipple
#define glGetString                         rglGetString
#define glGetTexEnvfv                       rglGetTexEnvfv
#define glGetTexEnviv                       rglGetTexEnviv
#define glGetTexGendv                       rglGetTexGendv
#define glGetTexGenfv                       rglGetTexGenfv
#define glGetTexGeniv                       rglGetTexGeniv
#define glGetTexImage                       rglGetTexImage
#define glGetTexLevelParameterfv            rglGetTexLevelParameterfv
#define glGetTexLevelParameteriv            rglGetTexLevelParameteriv
#define glGetTexParameterfv                 rglGetTexParameterfv
#define glGetTexParameteriv                 rglGetTexParameteriv
#define glHint                              rglHint
#define glIndexMask                         rglIndexMask
#define glIndexd                            rglIndexd
#define glIndexdv                           rglIndexdv
#define glIndexf                            rglIndexf
#define glIndexfv                           rglIndexfv
#define glIndexi                            rglIndexi
#define glIndexiv                           rglIndexiv
#define glIndexs                            rglIndexs
#define glIndexsv                           rglIndexsv
#define glInitNames                         rglInitNames
#define glIsEnabled                         rglIsEnabled
#define glIsList                            rglIsList
#define glLightModelf                       rglLightModelf
#define glLightModelfv                      rglLightModelfv
#define glLightModeli                       rglLightModeli
#define glLightModeliv                      rglLightModeliv
#define glLightf                            rglLightf
#define glLightfv                           rglLightfv
#define glLighti                            rglLighti
#define glLightiv                           rglLightiv
#define glLineStipple                       rglLineStipple
#define glLineWidth                         rglLineWidth
#define glListBase                          rglListBase
#define glLoadIdentity                      rglLoadIdentity
#define glLoadMatrixd                       rglLoadMatrixd
#define glLoadMatrixf                       rglLoadMatrixf
#define glLoadName                          rglLoadName
#define glLogicOp                           rglLogicOp
#define glMap1d                             rglMap1d
#define glMap1f                             rglMap1f
#define glMap2d                             rglMap2d
#define glMap2f                             rglMap2f
#define glMapGrid1d                         rglMapGrid1d
#define glMapGrid1f                         rglMapGrid1f
#define glMapGrid2d                         rglMapGrid2d
#define glMapGrid2f                         rglMapGrid2f
#define glMaterialf                         rglMaterialf
#define glMaterialfv                        rglMaterialfv
#define glMateriali                         rglMateriali
#define glMaterialiv                        rglMaterialiv
#define glMatrixMode                        rglMatrixMode
#define glMultMatrixd                       rglMultMatrixd
#define glMultMatrixf                       rglMultMatrixf
#define glNewList                           rglNewList
#define glNormal3b                          rglNormal3b
#define glNormal3bv                         rglNormal3bv
#define glNormal3d                          rglNormal3d
#define glNormal3dv                         rglNormal3dv
#define glNormal3f                          rglNormal3f
#define glNormal3fv                         rglNormal3fv
#define glNormal3i                          rglNormal3i
#define glNormal3iv                         rglNormal3iv
#define glNormal3s                          rglNormal3s
#define glNormal3sv                         rglNormal3sv
#define glOrtho                             rglOrtho
#define glPassThrough                       rglPassThrough
#define glPixelMapfv                        rglPixelMapfv
#define glPixelMapuiv                       rglPixelMapuiv
#define glPixelMapusv                       rglPixelMapusv
#define glPixelStoref                       rglPixelStoref
#define glPixelStorei                       rglPixelStorei
#define glPixelTransferf                    rglPixelTransferf
#define glPixelTransferi                    rglPixelTransferi
#define glPixelZoom                         rglPixelZoom
#define glPointSize                         rglPointSize
#define glPolygonMode                       rglPolygonMode
#define glPolygonStipple                    rglPolygonStipple
#define glPopAttrib                         rglPopAttrib
#define glPopMatrix                         rglPopMatrix
#define glPopName                           rglPopName
#define glPushAttrib                        rglPushAttrib
#define glPushMatrix                        rglPushMatrix
#define glPushName                          rglPushName
#define glRasterPos2d                       rglRasterPos2d
#define glRasterPos2dv                      rglRasterPos2dv
#define glRasterPos2f                       rglRasterPos2f
#define glRasterPos2fv                      rglRasterPos2fv
#define glRasterPos2i                       rglRasterPos2i
#define glRasterPos2iv                      rglRasterPos2iv
#define glRasterPos2s                       rglRasterPos2s
#define glRasterPos2sv                      rglRasterPos2sv
#define glRasterPos3d                       rglRasterPos3d
#define glRasterPos3dv                      rglRasterPos3dv
#define glRasterPos3f                       rglRasterPos3f
#define glRasterPos3fv                      rglRasterPos3fv
#define glRasterPos3i                       rglRasterPos3i
#define glRasterPos3iv                      rglRasterPos3iv
#define glRasterPos3s                       rglRasterPos3s
#define glRasterPos3sv                      rglRasterPos3sv
#define glRasterPos4d                       rglRasterPos4d
#define glRasterPos4dv                      rglRasterPos4dv
#define glRasterPos4f                       rglRasterPos4f
#define glRasterPos4fv                      rglRasterPos4fv
#define glRasterPos4i                       rglRasterPos4i
#define glRasterPos4iv                      rglRasterPos4iv
#define glRasterPos4s                       rglRasterPos4s
#define glRasterPos4sv                      rglRasterPos4sv
#define glReadBuffer                        rglReadBuffer
#define glReadPixels                        rglReadPixels
#define glRectd                             rglRectd
#define glRectdv                            rglRectdv
#define glRectf                             rglRectf
#define glRectfv                            rglRectfv
#define glRecti                             rglRecti
#define glRectiv                            rglRectiv
#define glRects                             rglRects
#define glRectsv                            rglRectsv
#define glRenderMode                        rglRenderMode
#define glRotated                           rglRotated
#define glRotatef                           rglRotatef
#define glScaled                            rglScaled
#define glScalef                            rglScalef
#define glScissor                           rglScissor
#define glSelectBuffer                      rglSelectBuffer
#define glShadeModel                        rglShadeModel
#define glStencilFunc                       rglStencilFunc
#define glStencilMask                       rglStencilMask
#define glStencilOp                         rglStencilOp
#define glTexCoord1d                        rglTexCoord1d
#define glTexCoord1dv                       rglTexCoord1dv
#define glTexCoord1f                        rglTexCoord1f
#define glTexCoord1fv                       rglTexCoord1fv
#define glTexCoord1i                        rglTexCoord1i
#define glTexCoord1iv                       rglTexCoord1iv
#define glTexCoord1s                        rglTexCoord1s
#define glTexCoord1sv                       rglTexCoord1sv
#define glTexCoord2d                        rglTexCoord2d
#define glTexCoord2dv                       rglTexCoord2dv
#define glTexCoord2f                        rglTexCoord2f
#define glTexCoord2fv                       rglTexCoord2fv
#define glTexCoord2i                        rglTexCoord2i
#define glTexCoord2iv                       rglTexCoord2iv
#define glTexCoord2s                        rglTexCoord2s
#define glTexCoord2sv                       rglTexCoord2sv
#define glTexCoord3d                        rglTexCoord3d
#define glTexCoord3dv                       rglTexCoord3dv
#define glTexCoord3f                        rglTexCoord3f
#define glTexCoord3fv                       rglTexCoord3fv
#define glTexCoord3i                        rglTexCoord3i
#define glTexCoord3iv                       rglTexCoord3iv
#define glTexCoord3s                        rglTexCoord3s
#define glTexCoord3sv                       rglTexCoord3sv
#define glTexCoord4d                        rglTexCoord4d
#define glTexCoord4dv                       rglTexCoord4dv
#define glTexCoord4f                        rglTexCoord4f
#define glTexCoord4fv                       rglTexCoord4fv
#define glTexCoord4i                        rglTexCoord4i
#define glTexCoord4iv                       rglTexCoord4iv
#define glTexCoord4s                        rglTexCoord4s
#define glTexCoord4sv                       rglTexCoord4sv
#define glTexEnvf                           rglTexEnvf
#define glTexEnvfv                          rglTexEnvfv
#define glTexEnvi                           rglTexEnvi
#define glTexEnviv                          rglTexEnviv
#define glTexGend                           rglTexGend
#define glTexGendv                          rglTexGendv
#define glTexGenf                           rglTexGenf
#define glTexGenfv                          rglTexGenfv
#define glTexGeni                           rglTexGeni
#define glTexGeniv                          rglTexGeniv
#define glTexImage1D                        rglTexImage1D
#define glTexImage2D                        rglTexImage2D
#define glTexParameterf                     rglTexParameterf
#define glTexParameterfv                    rglTexParameterfv
#define glTexParameteri                     rglTexParameteri
#define glTexParameteriv                    rglTexParameteriv
#define glTranslated                        rglTranslated
#define glTranslatef                        rglTranslatef
#define glVertex2d                          rglVertex2d
#define glVertex2dv                         rglVertex2dv
#define glVertex2f                          rglVertex2f
#define glVertex2fv                         rglVertex2fv
#define glVertex2i                          rglVertex2i
#define glVertex2iv                         rglVertex2iv
#define glVertex2s                          rglVertex2s
#define glVertex2sv                         rglVertex2sv
#define glVertex3d                          rglVertex3d
#define glVertex3dv                         rglVertex3dv
#define glVertex3f                          rglVertex3f
#define glVertex3fv                         rglVertex3fv
#define glVertex3i                          rglVertex3i
#define glVertex3iv                         rglVertex3iv
#define glVertex3s                          rglVertex3s
#define glVertex3sv                         rglVertex3sv
#define glVertex4d                          rglVertex4d
#define glVertex4dv                         rglVertex4dv
#define glVertex4f                          rglVertex4f
#define glVertex4fv                         rglVertex4fv
#define glVertex4i                          rglVertex4i
#define glVertex4iv                         rglVertex4iv
#define glVertex4s                          rglVertex4s
#define glVertex4sv                         rglVertex4sv
#define glViewport                          rglViewport
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_1_0
REGAL_DECL GLboolean REGAL_CALL glIsEnabled(GLenum cap);
REGAL_DECL GLboolean REGAL_CALL glIsList(GLuint list);
REGAL_DECL GLenum REGAL_CALL glGetError(void);
REGAL_DECL GLint REGAL_CALL glRenderMode(GLenum mode);
REGAL_DECL GLuint REGAL_CALL glGenLists(GLsizei range);
REGAL_DECL const GLubyte *REGAL_CALL glGetString(GLenum name);
REGAL_DECL void REGAL_CALL glAccum(GLenum op, GLfloat value);
REGAL_DECL void REGAL_CALL glAlphaFunc(GLenum func, GLclampf ref);
REGAL_DECL void REGAL_CALL glBegin(GLenum mode);
REGAL_DECL void REGAL_CALL glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
REGAL_DECL void REGAL_CALL glBlendFunc(GLenum sfactor, GLenum dfactor);
REGAL_DECL void REGAL_CALL glCallList(GLuint list);
REGAL_DECL void REGAL_CALL glCallLists(GLsizei n, GLenum type, const GLvoid *lists);
REGAL_DECL void REGAL_CALL glClear(GLbitfield mask);
REGAL_DECL void REGAL_CALL glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
REGAL_DECL void REGAL_CALL glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
REGAL_DECL void REGAL_CALL glClearDepth(GLclampd depth);
REGAL_DECL void REGAL_CALL glClearIndex(GLfloat c);
REGAL_DECL void REGAL_CALL glClearStencil(GLint s);
REGAL_DECL void REGAL_CALL glClipPlane(GLenum plane, const GLdouble *equation);
REGAL_DECL void REGAL_CALL glColor3b(GLbyte red, GLbyte green, GLbyte blue);
REGAL_DECL void REGAL_CALL glColor3bv(const GLbyte *v);
REGAL_DECL void REGAL_CALL glColor3d(GLdouble red, GLdouble green, GLdouble blue);
REGAL_DECL void REGAL_CALL glColor3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glColor3f(GLfloat red, GLfloat green, GLfloat blue);
REGAL_DECL void REGAL_CALL glColor3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glColor3i(GLint red, GLint green, GLint blue);
REGAL_DECL void REGAL_CALL glColor3iv(const GLint *v);
REGAL_DECL void REGAL_CALL glColor3s(GLshort red, GLshort green, GLshort blue);
REGAL_DECL void REGAL_CALL glColor3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glColor3ub(GLubyte red, GLubyte green, GLubyte blue);
REGAL_DECL void REGAL_CALL glColor3ubv(const GLubyte *v);
REGAL_DECL void REGAL_CALL glColor3ui(GLuint red, GLuint green, GLuint blue);
REGAL_DECL void REGAL_CALL glColor3uiv(const GLuint *v);
REGAL_DECL void REGAL_CALL glColor3us(GLushort red, GLushort green, GLushort blue);
REGAL_DECL void REGAL_CALL glColor3usv(const GLushort *v);
REGAL_DECL void REGAL_CALL glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
REGAL_DECL void REGAL_CALL glColor4bv(const GLbyte *v);
REGAL_DECL void REGAL_CALL glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
REGAL_DECL void REGAL_CALL glColor4dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
REGAL_DECL void REGAL_CALL glColor4fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glColor4i(GLint red, GLint green, GLint blue, GLint alpha);
REGAL_DECL void REGAL_CALL glColor4iv(const GLint *v);
REGAL_DECL void REGAL_CALL glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha);
REGAL_DECL void REGAL_CALL glColor4sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
REGAL_DECL void REGAL_CALL glColor4ubv(const GLubyte *v);
REGAL_DECL void REGAL_CALL glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha);
REGAL_DECL void REGAL_CALL glColor4uiv(const GLuint *v);
REGAL_DECL void REGAL_CALL glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha);
REGAL_DECL void REGAL_CALL glColor4usv(const GLushort *v);
REGAL_DECL void REGAL_CALL glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
REGAL_DECL void REGAL_CALL glColorMaterial(GLenum face, GLenum mode);
REGAL_DECL void REGAL_CALL glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
REGAL_DECL void REGAL_CALL glCullFace(GLenum mode);
REGAL_DECL void REGAL_CALL glDeleteLists(GLuint list, GLsizei range);
REGAL_DECL void REGAL_CALL glDepthFunc(GLenum func);
REGAL_DECL void REGAL_CALL glDepthMask(GLboolean flag);
REGAL_DECL void REGAL_CALL glDepthRange(GLclampd zNear, GLclampd zFar);
REGAL_DECL void REGAL_CALL glDisable(GLenum cap);
REGAL_DECL void REGAL_CALL glDrawBuffer(GLenum mode);
REGAL_DECL void REGAL_CALL glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glEdgeFlag(GLboolean flag);
REGAL_DECL void REGAL_CALL glEdgeFlagv(const GLboolean *flag);
REGAL_DECL void REGAL_CALL glEnable(GLenum cap);
REGAL_DECL void REGAL_CALL glEnd(void);
REGAL_DECL void REGAL_CALL glEndList(void);
REGAL_DECL void REGAL_CALL glEvalCoord1d(GLdouble u);
REGAL_DECL void REGAL_CALL glEvalCoord1dv(const GLdouble *u);
REGAL_DECL void REGAL_CALL glEvalCoord1f(GLfloat u);
REGAL_DECL void REGAL_CALL glEvalCoord1fv(const GLfloat *u);
REGAL_DECL void REGAL_CALL glEvalCoord2d(GLdouble u, GLdouble v);
REGAL_DECL void REGAL_CALL glEvalCoord2dv(const GLdouble *u);
REGAL_DECL void REGAL_CALL glEvalCoord2f(GLfloat u, GLfloat v);
REGAL_DECL void REGAL_CALL glEvalCoord2fv(const GLfloat *u);
REGAL_DECL void REGAL_CALL glEvalMesh1(GLenum mode, GLint i1, GLint i2);
REGAL_DECL void REGAL_CALL glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
REGAL_DECL void REGAL_CALL glEvalPoint1(GLint i);
REGAL_DECL void REGAL_CALL glEvalPoint2(GLint i, GLint j);
REGAL_DECL void REGAL_CALL glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer);
REGAL_DECL void REGAL_CALL glFinish(void);
REGAL_DECL void REGAL_CALL glFlush(void);
REGAL_DECL void REGAL_CALL glFogf(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glFogfv(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glFogi(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glFogiv(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glFrontFace(GLenum mode);
REGAL_DECL void REGAL_CALL glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
REGAL_DECL void REGAL_CALL glGetBooleanv(GLenum pname, GLboolean *params);
REGAL_DECL void REGAL_CALL glGetClipPlane(GLenum plane, GLdouble *equation);
REGAL_DECL void REGAL_CALL glGetDoublev(GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetFloatv(GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetIntegerv(GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetLightfv(GLenum light, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetLightiv(GLenum light, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetMapdv(GLenum target, GLenum query, GLdouble *v);
REGAL_DECL void REGAL_CALL glGetMapfv(GLenum target, GLenum query, GLfloat *v);
REGAL_DECL void REGAL_CALL glGetMapiv(GLenum target, GLenum query, GLint *v);
REGAL_DECL void REGAL_CALL glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetMaterialiv(GLenum face, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetPixelMapfv(GLenum map, GLfloat *values);
REGAL_DECL void REGAL_CALL glGetPixelMapuiv(GLenum map, GLuint *values);
REGAL_DECL void REGAL_CALL glGetPixelMapusv(GLenum map, GLushort *values);
REGAL_DECL void REGAL_CALL glGetPolygonStipple(GLubyte *mask);
REGAL_DECL void REGAL_CALL glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetTexEnviv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetTexGeniv(GLenum coord, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
REGAL_DECL void REGAL_CALL glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glHint(GLenum target, GLenum mode);
REGAL_DECL void REGAL_CALL glIndexMask(GLuint mask);
REGAL_DECL void REGAL_CALL glIndexd(GLdouble c);
REGAL_DECL void REGAL_CALL glIndexdv(const GLdouble *c);
REGAL_DECL void REGAL_CALL glIndexf(GLfloat c);
REGAL_DECL void REGAL_CALL glIndexfv(const GLfloat *c);
REGAL_DECL void REGAL_CALL glIndexi(GLint c);
REGAL_DECL void REGAL_CALL glIndexiv(const GLint *c);
REGAL_DECL void REGAL_CALL glIndexs(GLshort c);
REGAL_DECL void REGAL_CALL glIndexsv(const GLshort *c);
REGAL_DECL void REGAL_CALL glInitNames(void);
REGAL_DECL void REGAL_CALL glLightModelf(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glLightModelfv(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glLightModeli(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glLightModeliv(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glLightf(GLenum light, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glLightfv(GLenum light, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glLighti(GLenum light, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glLightiv(GLenum light, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glLineStipple(GLint factor, GLushort pattern);
REGAL_DECL void REGAL_CALL glLineWidth(GLfloat width);
REGAL_DECL void REGAL_CALL glListBase(GLuint base);
REGAL_DECL void REGAL_CALL glLoadIdentity(void);
REGAL_DECL void REGAL_CALL glLoadMatrixd(const GLdouble *m);
REGAL_DECL void REGAL_CALL glLoadMatrixf(const GLfloat *m);
REGAL_DECL void REGAL_CALL glLoadName(GLuint name);
REGAL_DECL void REGAL_CALL glLogicOp(GLenum opcode);
REGAL_DECL void REGAL_CALL glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
REGAL_DECL void REGAL_CALL glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
REGAL_DECL void REGAL_CALL glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
REGAL_DECL void REGAL_CALL glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
REGAL_DECL void REGAL_CALL glMapGrid1d(GLint un, GLdouble u1, GLdouble u2);
REGAL_DECL void REGAL_CALL glMapGrid1f(GLint un, GLfloat u1, GLfloat u2);
REGAL_DECL void REGAL_CALL glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
REGAL_DECL void REGAL_CALL glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
REGAL_DECL void REGAL_CALL glMaterialf(GLenum face, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glMaterialfv(GLenum face, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glMateriali(GLenum face, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glMaterialiv(GLenum face, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glMatrixMode(GLenum mode);
REGAL_DECL void REGAL_CALL glMultMatrixd(const GLdouble *m);
REGAL_DECL void REGAL_CALL glMultMatrixf(const GLfloat *m);
REGAL_DECL void REGAL_CALL glNewList(GLuint list, GLenum mode);
REGAL_DECL void REGAL_CALL glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz);
REGAL_DECL void REGAL_CALL glNormal3bv(const GLbyte *v);
REGAL_DECL void REGAL_CALL glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz);
REGAL_DECL void REGAL_CALL glNormal3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz);
REGAL_DECL void REGAL_CALL glNormal3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glNormal3i(GLint nx, GLint ny, GLint nz);
REGAL_DECL void REGAL_CALL glNormal3iv(const GLint *v);
REGAL_DECL void REGAL_CALL glNormal3s(GLshort nx, GLshort ny, GLshort nz);
REGAL_DECL void REGAL_CALL glNormal3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
REGAL_DECL void REGAL_CALL glPassThrough(GLfloat token);
REGAL_DECL void REGAL_CALL glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values);
REGAL_DECL void REGAL_CALL glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values);
REGAL_DECL void REGAL_CALL glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values);
REGAL_DECL void REGAL_CALL glPixelStoref(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glPixelStorei(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glPixelTransferf(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glPixelTransferi(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glPixelZoom(GLfloat xfactor, GLfloat yfactor);
REGAL_DECL void REGAL_CALL glPointSize(GLfloat size);
REGAL_DECL void REGAL_CALL glPolygonMode(GLenum face, GLenum mode);
REGAL_DECL void REGAL_CALL glPolygonStipple(const GLubyte *mask);
REGAL_DECL void REGAL_CALL glPopAttrib(void);
REGAL_DECL void REGAL_CALL glPopMatrix(void);
REGAL_DECL void REGAL_CALL glPopName(void);
REGAL_DECL void REGAL_CALL glPushAttrib(GLbitfield mask);
REGAL_DECL void REGAL_CALL glPushMatrix(void);
REGAL_DECL void REGAL_CALL glPushName(GLuint name);
REGAL_DECL void REGAL_CALL glRasterPos2d(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glRasterPos2dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glRasterPos2f(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glRasterPos2fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glRasterPos2i(GLint x, GLint y);
REGAL_DECL void REGAL_CALL glRasterPos2iv(const GLint *v);
REGAL_DECL void REGAL_CALL glRasterPos2s(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glRasterPos2sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glRasterPos3d(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glRasterPos3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glRasterPos3f(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glRasterPos3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glRasterPos3i(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glRasterPos3iv(const GLint *v);
REGAL_DECL void REGAL_CALL glRasterPos3s(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glRasterPos3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glRasterPos4dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glRasterPos4fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glRasterPos4i(GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glRasterPos4iv(const GLint *v);
REGAL_DECL void REGAL_CALL glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL glRasterPos4sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glReadBuffer(GLenum mode);
REGAL_DECL void REGAL_CALL glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
REGAL_DECL void REGAL_CALL glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
REGAL_DECL void REGAL_CALL glRectdv(const GLdouble *v1, const GLdouble *v2);
REGAL_DECL void REGAL_CALL glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
REGAL_DECL void REGAL_CALL glRectfv(const GLfloat *v1, const GLfloat *v2);
REGAL_DECL void REGAL_CALL glRecti(GLint x1, GLint y1, GLint x2, GLint y2);
REGAL_DECL void REGAL_CALL glRectiv(const GLint *v1, const GLint *v2);
REGAL_DECL void REGAL_CALL glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
REGAL_DECL void REGAL_CALL glRectsv(const GLshort *v1, const GLshort *v2);
REGAL_DECL void REGAL_CALL glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glScaled(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glScalef(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glSelectBuffer(GLsizei size, GLuint *buffer);
REGAL_DECL void REGAL_CALL glShadeModel(GLenum mode);
REGAL_DECL void REGAL_CALL glStencilFunc(GLenum func, GLint ref, GLuint mask);
REGAL_DECL void REGAL_CALL glStencilMask(GLuint mask);
REGAL_DECL void REGAL_CALL glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
REGAL_DECL void REGAL_CALL glTexCoord1d(GLdouble s);
REGAL_DECL void REGAL_CALL glTexCoord1dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glTexCoord1f(GLfloat s);
REGAL_DECL void REGAL_CALL glTexCoord1fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord1i(GLint s);
REGAL_DECL void REGAL_CALL glTexCoord1iv(const GLint *v);
REGAL_DECL void REGAL_CALL glTexCoord1s(GLshort s);
REGAL_DECL void REGAL_CALL glTexCoord1sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glTexCoord2d(GLdouble s, GLdouble t);
REGAL_DECL void REGAL_CALL glTexCoord2dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glTexCoord2f(GLfloat s, GLfloat t);
REGAL_DECL void REGAL_CALL glTexCoord2fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord2i(GLint s, GLint t);
REGAL_DECL void REGAL_CALL glTexCoord2iv(const GLint *v);
REGAL_DECL void REGAL_CALL glTexCoord2s(GLshort s, GLshort t);
REGAL_DECL void REGAL_CALL glTexCoord2sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glTexCoord3d(GLdouble s, GLdouble t, GLdouble r);
REGAL_DECL void REGAL_CALL glTexCoord3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glTexCoord3f(GLfloat s, GLfloat t, GLfloat r);
REGAL_DECL void REGAL_CALL glTexCoord3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord3i(GLint s, GLint t, GLint r);
REGAL_DECL void REGAL_CALL glTexCoord3iv(const GLint *v);
REGAL_DECL void REGAL_CALL glTexCoord3s(GLshort s, GLshort t, GLshort r);
REGAL_DECL void REGAL_CALL glTexCoord3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
REGAL_DECL void REGAL_CALL glTexCoord4dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
REGAL_DECL void REGAL_CALL glTexCoord4fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glTexCoord4i(GLint s, GLint t, GLint r, GLint q);
REGAL_DECL void REGAL_CALL glTexCoord4iv(const GLint *v);
REGAL_DECL void REGAL_CALL glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q);
REGAL_DECL void REGAL_CALL glTexCoord4sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glTexEnvf(GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glTexEnvi(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glTexEnviv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glTexGend(GLenum coord, GLenum pname, GLdouble param);
REGAL_DECL void REGAL_CALL glTexGendv(GLenum coord, GLenum pname, const GLdouble *params);
REGAL_DECL void REGAL_CALL glTexGenf(GLenum coord, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glTexGenfv(GLenum coord, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glTexGeni(GLenum coord, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glTexGeniv(GLenum coord, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTexParameterf(GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glTexParameteri(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glTexParameteriv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glTranslated(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glTranslatef(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glVertex2d(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glVertex2dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertex2f(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glVertex2fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertex2i(GLint x, GLint y);
REGAL_DECL void REGAL_CALL glVertex2iv(const GLint *v);
REGAL_DECL void REGAL_CALL glVertex2s(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glVertex2sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glVertex3d(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glVertex3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertex3f(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glVertex3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertex3i(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glVertex3iv(const GLint *v);
REGAL_DECL void REGAL_CALL glVertex3s(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glVertex3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glVertex4dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glVertex4fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertex4i(GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glVertex4iv(const GLint *v);
REGAL_DECL void REGAL_CALL glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL glVertex4sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_1_0
REGAL_DECL GLboolean REGAL_CALL plugin_glIsEnabled(GLenum cap);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsList(GLuint list);
REGAL_DECL GLenum REGAL_CALL plugin_glGetError(void);
REGAL_DECL GLint REGAL_CALL plugin_glRenderMode(GLenum mode);
REGAL_DECL GLuint REGAL_CALL plugin_glGenLists(GLsizei range);
REGAL_DECL const GLubyte *REGAL_CALL plugin_glGetString(GLenum name);
REGAL_DECL void REGAL_CALL plugin_glAccum(GLenum op, GLfloat value);
REGAL_DECL void REGAL_CALL plugin_glAlphaFunc(GLenum func, GLclampf ref);
REGAL_DECL void REGAL_CALL plugin_glBegin(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glBitmap(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
REGAL_DECL void REGAL_CALL plugin_glBlendFunc(GLenum sfactor, GLenum dfactor);
REGAL_DECL void REGAL_CALL plugin_glCallList(GLuint list);
REGAL_DECL void REGAL_CALL plugin_glCallLists(GLsizei n, GLenum type, const GLvoid *lists);
REGAL_DECL void REGAL_CALL plugin_glClear(GLbitfield mask);
REGAL_DECL void REGAL_CALL plugin_glClearAccum(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
REGAL_DECL void REGAL_CALL plugin_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
REGAL_DECL void REGAL_CALL plugin_glClearDepth(GLclampd depth);
REGAL_DECL void REGAL_CALL plugin_glClearIndex(GLfloat c);
REGAL_DECL void REGAL_CALL plugin_glClearStencil(GLint s);
REGAL_DECL void REGAL_CALL plugin_glClipPlane(GLenum plane, const GLdouble *equation);
REGAL_DECL void REGAL_CALL plugin_glColor3b(GLbyte red, GLbyte green, GLbyte blue);
REGAL_DECL void REGAL_CALL plugin_glColor3bv(const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glColor3d(GLdouble red, GLdouble green, GLdouble blue);
REGAL_DECL void REGAL_CALL plugin_glColor3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glColor3f(GLfloat red, GLfloat green, GLfloat blue);
REGAL_DECL void REGAL_CALL plugin_glColor3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glColor3i(GLint red, GLint green, GLint blue);
REGAL_DECL void REGAL_CALL plugin_glColor3iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glColor3s(GLshort red, GLshort green, GLshort blue);
REGAL_DECL void REGAL_CALL plugin_glColor3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glColor3ub(GLubyte red, GLubyte green, GLubyte blue);
REGAL_DECL void REGAL_CALL plugin_glColor3ubv(const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glColor3ui(GLuint red, GLuint green, GLuint blue);
REGAL_DECL void REGAL_CALL plugin_glColor3uiv(const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glColor3us(GLushort red, GLushort green, GLushort blue);
REGAL_DECL void REGAL_CALL plugin_glColor3usv(const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glColor4b(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4bv(const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glColor4d(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glColor4i(GLint red, GLint green, GLint blue, GLint alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glColor4s(GLshort red, GLshort green, GLshort blue, GLshort alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4ubv(const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glColor4ui(GLuint red, GLuint green, GLuint blue, GLuint alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4uiv(const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glColor4us(GLushort red, GLushort green, GLushort blue, GLushort alpha);
REGAL_DECL void REGAL_CALL plugin_glColor4usv(const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
REGAL_DECL void REGAL_CALL plugin_glColorMaterial(GLenum face, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glCopyPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
REGAL_DECL void REGAL_CALL plugin_glCullFace(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glDeleteLists(GLuint list, GLsizei range);
REGAL_DECL void REGAL_CALL plugin_glDepthFunc(GLenum func);
REGAL_DECL void REGAL_CALL plugin_glDepthMask(GLboolean flag);
REGAL_DECL void REGAL_CALL plugin_glDepthRange(GLclampd zNear, GLclampd zFar);
REGAL_DECL void REGAL_CALL plugin_glDisable(GLenum cap);
REGAL_DECL void REGAL_CALL plugin_glDrawBuffer(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glDrawPixels(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glEdgeFlag(GLboolean flag);
REGAL_DECL void REGAL_CALL plugin_glEdgeFlagv(const GLboolean *flag);
REGAL_DECL void REGAL_CALL plugin_glEnable(GLenum cap);
REGAL_DECL void REGAL_CALL plugin_glEnd(void);
REGAL_DECL void REGAL_CALL plugin_glEndList(void);
REGAL_DECL void REGAL_CALL plugin_glEvalCoord1d(GLdouble u);
REGAL_DECL void REGAL_CALL plugin_glEvalCoord1dv(const GLdouble *u);
REGAL_DECL void REGAL_CALL plugin_glEvalCoord1f(GLfloat u);
REGAL_DECL void REGAL_CALL plugin_glEvalCoord1fv(const GLfloat *u);
REGAL_DECL void REGAL_CALL plugin_glEvalCoord2d(GLdouble u, GLdouble v);
REGAL_DECL void REGAL_CALL plugin_glEvalCoord2dv(const GLdouble *u);
REGAL_DECL void REGAL_CALL plugin_glEvalCoord2f(GLfloat u, GLfloat v);
REGAL_DECL void REGAL_CALL plugin_glEvalCoord2fv(const GLfloat *u);
REGAL_DECL void REGAL_CALL plugin_glEvalMesh1(GLenum mode, GLint i1, GLint i2);
REGAL_DECL void REGAL_CALL plugin_glEvalMesh2(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
REGAL_DECL void REGAL_CALL plugin_glEvalPoint1(GLint i);
REGAL_DECL void REGAL_CALL plugin_glEvalPoint2(GLint i, GLint j);
REGAL_DECL void REGAL_CALL plugin_glFeedbackBuffer(GLsizei size, GLenum type, GLfloat *buffer);
REGAL_DECL void REGAL_CALL plugin_glFinish(void);
REGAL_DECL void REGAL_CALL plugin_glFlush(void);
REGAL_DECL void REGAL_CALL plugin_glFogf(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glFogfv(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glFogi(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glFogiv(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glFrontFace(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
REGAL_DECL void REGAL_CALL plugin_glGetBooleanv(GLenum pname, GLboolean *params);
REGAL_DECL void REGAL_CALL plugin_glGetClipPlane(GLenum plane, GLdouble *equation);
REGAL_DECL void REGAL_CALL plugin_glGetDoublev(GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetFloatv(GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetIntegerv(GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetLightfv(GLenum light, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetLightiv(GLenum light, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetMapdv(GLenum target, GLenum query, GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glGetMapfv(GLenum target, GLenum query, GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glGetMapiv(GLenum target, GLenum query, GLint *v);
REGAL_DECL void REGAL_CALL plugin_glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetMaterialiv(GLenum face, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetPixelMapfv(GLenum map, GLfloat *values);
REGAL_DECL void REGAL_CALL plugin_glGetPixelMapuiv(GLenum map, GLuint *values);
REGAL_DECL void REGAL_CALL plugin_glGetPixelMapusv(GLenum map, GLushort *values);
REGAL_DECL void REGAL_CALL plugin_glGetPolygonStipple(GLubyte *mask);
REGAL_DECL void REGAL_CALL plugin_glGetTexEnvfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexEnviv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexGendv(GLenum coord, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexGenfv(GLenum coord, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexGeniv(GLenum coord, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexImage(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glGetTexLevelParameterfv(GLenum target, GLint level, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexLevelParameteriv(GLenum target, GLint level, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glHint(GLenum target, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glIndexMask(GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glIndexd(GLdouble c);
REGAL_DECL void REGAL_CALL plugin_glIndexdv(const GLdouble *c);
REGAL_DECL void REGAL_CALL plugin_glIndexf(GLfloat c);
REGAL_DECL void REGAL_CALL plugin_glIndexfv(const GLfloat *c);
REGAL_DECL void REGAL_CALL plugin_glIndexi(GLint c);
REGAL_DECL void REGAL_CALL plugin_glIndexiv(const GLint *c);
REGAL_DECL void REGAL_CALL plugin_glIndexs(GLshort c);
REGAL_DECL void REGAL_CALL plugin_glIndexsv(const GLshort *c);
REGAL_DECL void REGAL_CALL plugin_glInitNames(void);
REGAL_DECL void REGAL_CALL plugin_glLightModelf(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glLightModelfv(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glLightModeli(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glLightModeliv(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glLightf(GLenum light, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glLightfv(GLenum light, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glLighti(GLenum light, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glLightiv(GLenum light, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glLineStipple(GLint factor, GLushort pattern);
REGAL_DECL void REGAL_CALL plugin_glLineWidth(GLfloat width);
REGAL_DECL void REGAL_CALL plugin_glListBase(GLuint base);
REGAL_DECL void REGAL_CALL plugin_glLoadIdentity(void);
REGAL_DECL void REGAL_CALL plugin_glLoadMatrixd(const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glLoadMatrixf(const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glLoadName(GLuint name);
REGAL_DECL void REGAL_CALL plugin_glLogicOp(GLenum opcode);
REGAL_DECL void REGAL_CALL plugin_glMap1d(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
REGAL_DECL void REGAL_CALL plugin_glMap1f(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
REGAL_DECL void REGAL_CALL plugin_glMap2d(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
REGAL_DECL void REGAL_CALL plugin_glMap2f(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
REGAL_DECL void REGAL_CALL plugin_glMapGrid1d(GLint un, GLdouble u1, GLdouble u2);
REGAL_DECL void REGAL_CALL plugin_glMapGrid1f(GLint un, GLfloat u1, GLfloat u2);
REGAL_DECL void REGAL_CALL plugin_glMapGrid2d(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
REGAL_DECL void REGAL_CALL plugin_glMapGrid2f(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
REGAL_DECL void REGAL_CALL plugin_glMaterialf(GLenum face, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glMateriali(GLenum face, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glMaterialiv(GLenum face, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glMatrixMode(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glMultMatrixd(const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glMultMatrixf(const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glNewList(GLuint list, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glNormal3b(GLbyte nx, GLbyte ny, GLbyte nz);
REGAL_DECL void REGAL_CALL plugin_glNormal3bv(const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glNormal3d(GLdouble nx, GLdouble ny, GLdouble nz);
REGAL_DECL void REGAL_CALL plugin_glNormal3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz);
REGAL_DECL void REGAL_CALL plugin_glNormal3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glNormal3i(GLint nx, GLint ny, GLint nz);
REGAL_DECL void REGAL_CALL plugin_glNormal3iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glNormal3s(GLshort nx, GLshort ny, GLshort nz);
REGAL_DECL void REGAL_CALL plugin_glNormal3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glOrtho(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
REGAL_DECL void REGAL_CALL plugin_glPassThrough(GLfloat token);
REGAL_DECL void REGAL_CALL plugin_glPixelMapfv(GLenum map, GLsizei mapsize, const GLfloat *values);
REGAL_DECL void REGAL_CALL plugin_glPixelMapuiv(GLenum map, GLsizei mapsize, const GLuint *values);
REGAL_DECL void REGAL_CALL plugin_glPixelMapusv(GLenum map, GLsizei mapsize, const GLushort *values);
REGAL_DECL void REGAL_CALL plugin_glPixelStoref(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPixelStorei(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glPixelTransferf(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPixelTransferi(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glPixelZoom(GLfloat xfactor, GLfloat yfactor);
REGAL_DECL void REGAL_CALL plugin_glPointSize(GLfloat size);
REGAL_DECL void REGAL_CALL plugin_glPolygonMode(GLenum face, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glPolygonStipple(const GLubyte *mask);
REGAL_DECL void REGAL_CALL plugin_glPopAttrib(void);
REGAL_DECL void REGAL_CALL plugin_glPopMatrix(void);
REGAL_DECL void REGAL_CALL plugin_glPopName(void);
REGAL_DECL void REGAL_CALL plugin_glPushAttrib(GLbitfield mask);
REGAL_DECL void REGAL_CALL plugin_glPushMatrix(void);
REGAL_DECL void REGAL_CALL plugin_glPushName(GLuint name);
REGAL_DECL void REGAL_CALL plugin_glRasterPos2d(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glRasterPos2dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos2f(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glRasterPos2fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos2i(GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glRasterPos2iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos2s(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glRasterPos2sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos3d(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glRasterPos3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos3f(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glRasterPos3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos3i(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glRasterPos3iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos3s(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glRasterPos3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glRasterPos4dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glRasterPos4fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos4i(GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glRasterPos4iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glRasterPos4s(GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL plugin_glRasterPos4sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glReadBuffer(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glRectd(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
REGAL_DECL void REGAL_CALL plugin_glRectdv(const GLdouble *v1, const GLdouble *v2);
REGAL_DECL void REGAL_CALL plugin_glRectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
REGAL_DECL void REGAL_CALL plugin_glRectfv(const GLfloat *v1, const GLfloat *v2);
REGAL_DECL void REGAL_CALL plugin_glRecti(GLint x1, GLint y1, GLint x2, GLint y2);
REGAL_DECL void REGAL_CALL plugin_glRectiv(const GLint *v1, const GLint *v2);
REGAL_DECL void REGAL_CALL plugin_glRects(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
REGAL_DECL void REGAL_CALL plugin_glRectsv(const GLshort *v1, const GLshort *v2);
REGAL_DECL void REGAL_CALL plugin_glRotated(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glScaled(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glScalef(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glSelectBuffer(GLsizei size, GLuint *buffer);
REGAL_DECL void REGAL_CALL plugin_glShadeModel(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glStencilFunc(GLenum func, GLint ref, GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glStencilMask(GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1d(GLdouble s);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1f(GLfloat s);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1i(GLint s);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1s(GLshort s);
REGAL_DECL void REGAL_CALL plugin_glTexCoord1sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2d(GLdouble s, GLdouble t);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2f(GLfloat s, GLfloat t);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2i(GLint s, GLint t);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2s(GLshort s, GLshort t);
REGAL_DECL void REGAL_CALL plugin_glTexCoord2sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3d(GLdouble s, GLdouble t, GLdouble r);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3f(GLfloat s, GLfloat t, GLfloat r);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3i(GLint s, GLint t, GLint r);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3s(GLshort s, GLshort t, GLshort r);
REGAL_DECL void REGAL_CALL plugin_glTexCoord3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4d(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4f(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4i(GLint s, GLint t, GLint r, GLint q);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4s(GLshort s, GLshort t, GLshort r, GLshort q);
REGAL_DECL void REGAL_CALL plugin_glTexCoord4sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glTexEnvf(GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glTexEnvi(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glTexEnviv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glTexGend(GLenum coord, GLenum pname, GLdouble param);
REGAL_DECL void REGAL_CALL plugin_glTexGendv(GLenum coord, GLenum pname, const GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glTexGenf(GLenum coord, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glTexGenfv(GLenum coord, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glTexGeni(GLenum coord, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glTexGeniv(GLenum coord, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glTexImage1D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTexParameterf(GLenum target, GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glTexParameteri(GLenum target, GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glTexParameteriv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glTranslated(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glTranslatef(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glVertex2d(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glVertex2dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertex2f(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glVertex2fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertex2i(GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glVertex2iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertex2s(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glVertex2sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertex3d(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glVertex3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertex3f(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glVertex3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertex3i(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glVertex3iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertex3s(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glVertex3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertex4d(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glVertex4dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertex4f(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glVertex4fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertex4i(GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glVertex4iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertex4s(GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL plugin_glVertex4sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
#endif

/**
 ** GL_VERSION_1_1
 **/

#if (defined(GL_VERSION_1_1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_1_1)) && !defined(REGAL_NO_ENUM_GL_VERSION_1_1)
#define REGAL_NO_ENUM_GL_VERSION_1_1
#endif

#if (defined(GL_VERSION_1_1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_1_1)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_1_1)
#define REGAL_NO_TYPEDEF_GL_VERSION_1_1
#endif

#if (defined(GL_VERSION_1_1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_1_1)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_1_1)
#define REGAL_NO_NAMESPACE_GL_VERSION_1_1
#endif

#if (defined(GL_VERSION_1_1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_1_1)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_1_1)
#define REGAL_NO_PLUGIN_GL_VERSION_1_1
#endif

#if (defined(GL_VERSION_1_1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_1_1)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_1_1)
#define REGAL_NO_DECLARATION_GL_VERSION_1_1
#endif

#ifndef GL_VERSION_1_1
#define GL_VERSION_1_1 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_1_1
#define GL_FALSE                         0x0
#define GL_NONE                          0x0
#define GL_NO_ERROR                      0x0
#define GL_POINTS                        0x0
#define GL_ZERO                          0x0
#define GL_CLIENT_PIXEL_STORE_BIT        0x1
#define GL_CURRENT_BIT                   0x1
#define GL_LINES                         0x1
#define GL_ONE                           0x1
#define GL_TRUE                          0x1
#define GL_POLYGON_STIPPLE_BIT           0x10                           /* 16 */
#define GL_ACCUM                         0x100                          /* 256 */
#define GL_DEPTH_BUFFER_BIT              0x100                          /* 256 */
#define GL_TEXTURE_WIDTH                 0x1000                         /* 4096 */
#define GL_TRANSFORM_BIT                 0x1000                         /* 4096 */
#define GL_EVAL_BIT                      0x10000                        /* 65536 */
#define GL_TEXTURE_HEIGHT                0x1001                         /* 4097 */
#define GL_TEXTURE_INTERNAL_FORMAT       0x1003                         /* 4099 */
#define GL_TEXTURE_BORDER_COLOR          0x1004                         /* 4100 */
#define GL_TEXTURE_BORDER                0x1005                         /* 4101 */
#define GL_LOAD                          0x101                          /* 257 */
#define GL_RETURN                        0x102                          /* 258 */
#define GL_MULT                          0x103                          /* 259 */
#define GL_ADD                           0x104                          /* 260 */
#define GL_DONT_CARE                     0x1100                         /* 4352 */
#define GL_FASTEST                       0x1101                         /* 4353 */
#define GL_NICEST                        0x1102                         /* 4354 */
#define GL_AMBIENT                       0x1200                         /* 4608 */
#define GL_DIFFUSE                       0x1201                         /* 4609 */
#define GL_SPECULAR                      0x1202                         /* 4610 */
#define GL_POSITION                      0x1203                         /* 4611 */
#define GL_SPOT_DIRECTION                0x1204                         /* 4612 */
#define GL_SPOT_EXPONENT                 0x1205                         /* 4613 */
#define GL_SPOT_CUTOFF                   0x1206                         /* 4614 */
#define GL_CONSTANT_ATTENUATION          0x1207                         /* 4615 */
#define GL_LINEAR_ATTENUATION            0x1208                         /* 4616 */
#define GL_QUADRATIC_ATTENUATION         0x1209                         /* 4617 */
#define GL_COMPILE                       0x1300                         /* 4864 */
#define GL_COMPILE_AND_EXECUTE           0x1301                         /* 4865 */
#define GL_BYTE                          0x1400                         /* 5120 */
#define GL_UNSIGNED_BYTE                 0x1401                         /* 5121 */
#define GL_SHORT                         0x1402                         /* 5122 */
#define GL_UNSIGNED_SHORT                0x1403                         /* 5123 */
#define GL_INT                           0x1404                         /* 5124 */
#define GL_UNSIGNED_INT                  0x1405                         /* 5125 */
#define GL_FLOAT                         0x1406                         /* 5126 */
#define GL_2_BYTES                       0x1407                         /* 5127 */
#define GL_3_BYTES                       0x1408                         /* 5128 */
#define GL_4_BYTES                       0x1409                         /* 5129 */
#define GL_DOUBLE                        0x140a                         /* 5130 */
#define GL_CLEAR                         0x1500                         /* 5376 */
#define GL_AND                           0x1501                         /* 5377 */
#define GL_AND_REVERSE                   0x1502                         /* 5378 */
#define GL_COPY                          0x1503                         /* 5379 */
#define GL_AND_INVERTED                  0x1504                         /* 5380 */
#define GL_NOOP                          0x1505                         /* 5381 */
#define GL_XOR                           0x1506                         /* 5382 */
#define GL_OR                            0x1507                         /* 5383 */
#define GL_NOR                           0x1508                         /* 5384 */
#define GL_EQUIV                         0x1509                         /* 5385 */
#define GL_INVERT                        0x150a                         /* 5386 */
#define GL_OR_REVERSE                    0x150b                         /* 5387 */
#define GL_COPY_INVERTED                 0x150c                         /* 5388 */
#define GL_OR_INVERTED                   0x150d                         /* 5389 */
#define GL_NAND                          0x150e                         /* 5390 */
#define GL_SET                           0x150f                         /* 5391 */
#define GL_EMISSION                      0x1600                         /* 5632 */
#define GL_SHININESS                     0x1601                         /* 5633 */
#define GL_AMBIENT_AND_DIFFUSE           0x1602                         /* 5634 */
#define GL_COLOR_INDEXES                 0x1603                         /* 5635 */
#define GL_MODELVIEW                     0x1700                         /* 5888 */
#define GL_PROJECTION                    0x1701                         /* 5889 */
#define GL_TEXTURE                       0x1702                         /* 5890 */
#define GL_COLOR                         0x1800                         /* 6144 */
#define GL_DEPTH                         0x1801                         /* 6145 */
#define GL_STENCIL                       0x1802                         /* 6146 */
#define GL_COLOR_INDEX                   0x1900                         /* 6400 */
#define GL_STENCIL_INDEX                 0x1901                         /* 6401 */
#define GL_DEPTH_COMPONENT               0x1902                         /* 6402 */
#define GL_RED                           0x1903                         /* 6403 */
#define GL_GREEN                         0x1904                         /* 6404 */
#define GL_BLUE                          0x1905                         /* 6405 */
#define GL_ALPHA                         0x1906                         /* 6406 */
#define GL_RGB                           0x1907                         /* 6407 */
#define GL_RGBA                          0x1908                         /* 6408 */
#define GL_LUMINANCE                     0x1909                         /* 6409 */
#define GL_LUMINANCE_ALPHA               0x190a                         /* 6410 */
#define GL_BITMAP                        0x1a00                         /* 6656 */
#define GL_POINT                         0x1b00                         /* 6912 */
#define GL_LINE                          0x1b01                         /* 6913 */
#define GL_FILL                          0x1b02                         /* 6914 */
#define GL_RENDER                        0x1c00                         /* 7168 */
#define GL_FEEDBACK                      0x1c01                         /* 7169 */
#define GL_SELECT                        0x1c02                         /* 7170 */
#define GL_FLAT                          0x1d00                         /* 7424 */
#define GL_SMOOTH                        0x1d01                         /* 7425 */
#define GL_KEEP                          0x1e00                         /* 7680 */
#define GL_REPLACE                       0x1e01                         /* 7681 */
#define GL_INCR                          0x1e02                         /* 7682 */
#define GL_DECR                          0x1e03                         /* 7683 */
#define GL_VENDOR                        0x1f00                         /* 7936 */
#define GL_RENDERER                      0x1f01                         /* 7937 */
#define GL_VERSION                       0x1f02                         /* 7938 */
#define GL_EXTENSIONS                    0x1f03                         /* 7939 */
#define GL_CLIENT_VERTEX_ARRAY_BIT       0x2
#define GL_LINE_LOOP                     0x2
#define GL_POINT_BIT                     0x2
#define GL_PIXEL_MODE_BIT                0x20                           /* 32 */
#define GL_ACCUM_BUFFER_BIT              0x200                          /* 512 */
#define GL_NEVER                         0x200                          /* 512 */
#define GL_ENABLE_BIT                    0x2000                         /* 8192 */
#define GL_S                             0x2000                         /* 8192 */
#define GL_LIST_BIT                      0x20000                        /* 131072 */
#define GL_T                             0x2001                         /* 8193 */
#define GL_R                             0x2002                         /* 8194 */
#define GL_Q                             0x2003                         /* 8195 */
#define GL_LESS                          0x201                          /* 513 */
#define GL_EQUAL                         0x202                          /* 514 */
#define GL_LEQUAL                        0x203                          /* 515 */
#define GL_GREATER                       0x204                          /* 516 */
#define GL_NOTEQUAL                      0x205                          /* 517 */
#define GL_GEQUAL                        0x206                          /* 518 */
#define GL_ALWAYS                        0x207                          /* 519 */
#define GL_MODULATE                      0x2100                         /* 8448 */
#define GL_DECAL                         0x2101                         /* 8449 */
#define GL_TEXTURE_ENV_MODE              0x2200                         /* 8704 */
#define GL_TEXTURE_ENV_COLOR             0x2201                         /* 8705 */
#define GL_TEXTURE_ENV                   0x2300                         /* 8960 */
#define GL_EYE_LINEAR                    0x2400                         /* 9216 */
#define GL_OBJECT_LINEAR                 0x2401                         /* 9217 */
#define GL_SPHERE_MAP                    0x2402                         /* 9218 */
#define GL_TEXTURE_GEN_MODE              0x2500                         /* 9472 */
#define GL_OBJECT_PLANE                  0x2501                         /* 9473 */
#define GL_EYE_PLANE                     0x2502                         /* 9474 */
#define GL_NEAREST                       0x2600                         /* 9728 */
#define GL_LINEAR                        0x2601                         /* 9729 */
#define GL_NEAREST_MIPMAP_NEAREST        0x2700                         /* 9984 */
#define GL_LINEAR_MIPMAP_NEAREST         0x2701                         /* 9985 */
#define GL_NEAREST_MIPMAP_LINEAR         0x2702                         /* 9986 */
#define GL_LINEAR_MIPMAP_LINEAR          0x2703                         /* 9987 */
#define GL_TEXTURE_MAG_FILTER            0x2800                         /* 10240 */
#define GL_TEXTURE_MIN_FILTER            0x2801                         /* 10241 */
#define GL_TEXTURE_WRAP_S                0x2802                         /* 10242 */
#define GL_TEXTURE_WRAP_T                0x2803                         /* 10243 */
#define GL_CLAMP                         0x2900                         /* 10496 */
#define GL_REPEAT                        0x2901                         /* 10497 */
#define GL_POLYGON_OFFSET_UNITS          0x2a00                         /* 10752 */
#define GL_POLYGON_OFFSET_POINT          0x2a01                         /* 10753 */
#define GL_POLYGON_OFFSET_LINE           0x2a02                         /* 10754 */
#define GL_R3_G3_B2                      0x2a10                         /* 10768 */
#define GL_V2F                           0x2a20                         /* 10784 */
#define GL_V3F                           0x2a21                         /* 10785 */
#define GL_C4UB_V2F                      0x2a22                         /* 10786 */
#define GL_C4UB_V3F                      0x2a23                         /* 10787 */
#define GL_C3F_V3F                       0x2a24                         /* 10788 */
#define GL_N3F_V3F                       0x2a25                         /* 10789 */
#define GL_C4F_N3F_V3F                   0x2a26                         /* 10790 */
#define GL_T2F_V3F                       0x2a27                         /* 10791 */
#define GL_T4F_V4F                       0x2a28                         /* 10792 */
#define GL_T2F_C4UB_V3F                  0x2a29                         /* 10793 */
#define GL_T2F_C3F_V3F                   0x2a2a                         /* 10794 */
#define GL_T2F_N3F_V3F                   0x2a2b                         /* 10795 */
#define GL_T2F_C4F_N3F_V3F               0x2a2c                         /* 10796 */
#define GL_T4F_C4F_N3F_V4F               0x2a2d                         /* 10797 */
#define GL_LINE_STRIP                    0x3
#define GL_SRC_COLOR                     0x300                          /* 768 */
#define GL_CLIP_PLANE0                   0x3000                         /* 12288 */
#define GL_CLIP_PLANE1                   0x3001                         /* 12289 */
#define GL_CLIP_PLANE2                   0x3002                         /* 12290 */
#define GL_CLIP_PLANE3                   0x3003                         /* 12291 */
#define GL_CLIP_PLANE4                   0x3004                         /* 12292 */
#define GL_CLIP_PLANE5                   0x3005                         /* 12293 */
#define GL_CLIP_PLANE6                   0x3006                         /* 12294 */
#define GL_CLIP_PLANE7                   0x3007                         /* 12295 */
#define GL_ONE_MINUS_SRC_COLOR           0x301                          /* 769 */
#define GL_SRC_ALPHA                     0x302                          /* 770 */
#define GL_ONE_MINUS_SRC_ALPHA           0x303                          /* 771 */
#define GL_DST_ALPHA                     0x304                          /* 772 */
#define GL_ONE_MINUS_DST_ALPHA           0x305                          /* 773 */
#define GL_DST_COLOR                     0x306                          /* 774 */
#define GL_ONE_MINUS_DST_COLOR           0x307                          /* 775 */
#define GL_SRC_ALPHA_SATURATE            0x308                          /* 776 */
#define GL_LINE_BIT                      0x4
#define GL_TRIANGLES                     0x4
#define GL_LIGHTING_BIT                  0x40                           /* 64 */
#define GL_FRONT_LEFT                    0x400                          /* 1024 */
#define GL_STENCIL_BUFFER_BIT            0x400                          /* 1024 */
#define GL_COLOR_BUFFER_BIT              0x4000                         /* 16384 */
#define GL_LIGHT0                        0x4000                         /* 16384 */
#define GL_TEXTURE_BIT                   0x40000                        /* 262144 */
#define GL_LIGHT1                        0x4001                         /* 16385 */
#define GL_LIGHT2                        0x4002                         /* 16386 */
#define GL_LIGHT3                        0x4003                         /* 16387 */
#define GL_LIGHT4                        0x4004                         /* 16388 */
#define GL_LIGHT5                        0x4005                         /* 16389 */
#define GL_LIGHT6                        0x4006                         /* 16390 */
#define GL_LIGHT7                        0x4007                         /* 16391 */
#define GL_FRONT_RIGHT                   0x401                          /* 1025 */
#define GL_BACK_LEFT                     0x402                          /* 1026 */
#define GL_BACK_RIGHT                    0x403                          /* 1027 */
#define GL_FRONT                         0x404                          /* 1028 */
#define GL_BACK                          0x405                          /* 1029 */
#define GL_LEFT                          0x406                          /* 1030 */
#define GL_RIGHT                         0x407                          /* 1031 */
#define GL_FRONT_AND_BACK                0x408                          /* 1032 */
#define GL_AUX0                          0x409                          /* 1033 */
#define GL_AUX1                          0x40a                          /* 1034 */
#define GL_AUX2                          0x40b                          /* 1035 */
#define GL_AUX3                          0x40c                          /* 1036 */
#define GL_TRIANGLE_STRIP                0x5
#define GL_INVALID_ENUM                  0x500                          /* 1280 */
#define GL_INVALID_VALUE                 0x501                          /* 1281 */
#define GL_INVALID_OPERATION             0x502                          /* 1282 */
#define GL_STACK_OVERFLOW                0x503                          /* 1283 */
#define GL_STACK_UNDERFLOW               0x504                          /* 1284 */
#define GL_OUT_OF_MEMORY                 0x505                          /* 1285 */
#define GL_TRIANGLE_FAN                  0x6
#define GL_2D                            0x600                          /* 1536 */
#define GL_3D                            0x601                          /* 1537 */
#define GL_3D_COLOR                      0x602                          /* 1538 */
#define GL_3D_COLOR_TEXTURE              0x603                          /* 1539 */
#define GL_4D_COLOR_TEXTURE              0x604                          /* 1540 */
#define GL_QUADS                         0x7
#define GL_PASS_THROUGH_TOKEN            0x700                          /* 1792 */
#define GL_POINT_TOKEN                   0x701                          /* 1793 */
#define GL_LINE_TOKEN                    0x702                          /* 1794 */
#define GL_POLYGON_TOKEN                 0x703                          /* 1795 */
#define GL_BITMAP_TOKEN                  0x704                          /* 1796 */
#define GL_DRAW_PIXEL_TOKEN              0x705                          /* 1797 */
#define GL_COPY_PIXEL_TOKEN              0x706                          /* 1798 */
#define GL_LINE_RESET_TOKEN              0x707                          /* 1799 */
#define GL_POLYGON_BIT                   0x8
#define GL_QUAD_STRIP                    0x8
#define GL_FOG_BIT                       0x80                           /* 128 */
#define GL_EXP                           0x800                          /* 2048 */
#define GL_VIEWPORT_BIT                  0x800                          /* 2048 */
#define GL_HINT_BIT                      0x8000                         /* 32768 */
#define GL_SCISSOR_BIT                   0x80000                        /* 524288 */
#define GL_EXP2                          0x801                          /* 2049 */
#define GL_POLYGON_OFFSET_FILL           0x8037                         /* 32823 */
#define GL_POLYGON_OFFSET_FACTOR         0x8038                         /* 32824 */
#define GL_ALPHA4                        0x803b                         /* 32827 */
#define GL_ALPHA8                        0x803c                         /* 32828 */
#define GL_ALPHA12                       0x803d                         /* 32829 */
#define GL_ALPHA16                       0x803e                         /* 32830 */
#define GL_LUMINANCE4                    0x803f                         /* 32831 */
#define GL_LUMINANCE8                    0x8040                         /* 32832 */
#define GL_LUMINANCE12                   0x8041                         /* 32833 */
#define GL_LUMINANCE16                   0x8042                         /* 32834 */
#define GL_LUMINANCE4_ALPHA4             0x8043                         /* 32835 */
#define GL_LUMINANCE6_ALPHA2             0x8044                         /* 32836 */
#define GL_LUMINANCE8_ALPHA8             0x8045                         /* 32837 */
#define GL_LUMINANCE12_ALPHA4            0x8046                         /* 32838 */
#define GL_LUMINANCE12_ALPHA12           0x8047                         /* 32839 */
#define GL_LUMINANCE16_ALPHA16           0x8048                         /* 32840 */
#define GL_INTENSITY                     0x8049                         /* 32841 */
#define GL_INTENSITY4                    0x804a                         /* 32842 */
#define GL_INTENSITY8                    0x804b                         /* 32843 */
#define GL_INTENSITY12                   0x804c                         /* 32844 */
#define GL_INTENSITY16                   0x804d                         /* 32845 */
#define GL_RGB4                          0x804f                         /* 32847 */
#define GL_RGB5                          0x8050                         /* 32848 */
#define GL_RGB8                          0x8051                         /* 32849 */
#define GL_RGB10                         0x8052                         /* 32850 */
#define GL_RGB12                         0x8053                         /* 32851 */
#define GL_RGB16                         0x8054                         /* 32852 */
#define GL_RGBA2                         0x8055                         /* 32853 */
#define GL_RGBA4                         0x8056                         /* 32854 */
#define GL_RGB5_A1                       0x8057                         /* 32855 */
#define GL_RGBA8                         0x8058                         /* 32856 */
#define GL_RGB10_A2                      0x8059                         /* 32857 */
#define GL_RGBA12                        0x805a                         /* 32858 */
#define GL_RGBA16                        0x805b                         /* 32859 */
#define GL_TEXTURE_RED_SIZE              0x805c                         /* 32860 */
#define GL_TEXTURE_GREEN_SIZE            0x805d                         /* 32861 */
#define GL_TEXTURE_BLUE_SIZE             0x805e                         /* 32862 */
#define GL_TEXTURE_ALPHA_SIZE            0x805f                         /* 32863 */
#define GL_TEXTURE_LUMINANCE_SIZE        0x8060                         /* 32864 */
#define GL_TEXTURE_INTENSITY_SIZE        0x8061                         /* 32865 */
#define GL_PROXY_TEXTURE_1D              0x8063                         /* 32867 */
#define GL_PROXY_TEXTURE_2D              0x8064                         /* 32868 */
#define GL_TEXTURE_PRIORITY              0x8066                         /* 32870 */
#define GL_TEXTURE_RESIDENT              0x8067                         /* 32871 */
#define GL_TEXTURE_BINDING_1D            0x8068                         /* 32872 */
#define GL_TEXTURE_BINDING_2D            0x8069                         /* 32873 */
#define GL_VERTEX_ARRAY                  0x8074                         /* 32884 */
#define GL_NORMAL_ARRAY                  0x8075                         /* 32885 */
#define GL_COLOR_ARRAY                   0x8076                         /* 32886 */
#define GL_INDEX_ARRAY                   0x8077                         /* 32887 */
#define GL_TEXTURE_COORD_ARRAY           0x8078                         /* 32888 */
#define GL_EDGE_FLAG_ARRAY               0x8079                         /* 32889 */
#define GL_VERTEX_ARRAY_SIZE             0x807a                         /* 32890 */
#define GL_VERTEX_ARRAY_TYPE             0x807b                         /* 32891 */
#define GL_VERTEX_ARRAY_STRIDE           0x807c                         /* 32892 */
#define GL_NORMAL_ARRAY_TYPE             0x807e                         /* 32894 */
#define GL_NORMAL_ARRAY_STRIDE           0x807f                         /* 32895 */
#define GL_COLOR_ARRAY_SIZE              0x8081                         /* 32897 */
#define GL_COLOR_ARRAY_TYPE              0x8082                         /* 32898 */
#define GL_COLOR_ARRAY_STRIDE            0x8083                         /* 32899 */
#define GL_INDEX_ARRAY_TYPE              0x8085                         /* 32901 */
#define GL_INDEX_ARRAY_STRIDE            0x8086                         /* 32902 */
#define GL_TEXTURE_COORD_ARRAY_SIZE      0x8088                         /* 32904 */
#define GL_TEXTURE_COORD_ARRAY_TYPE      0x8089                         /* 32905 */
#define GL_TEXTURE_COORD_ARRAY_STRIDE    0x808a                         /* 32906 */
#define GL_EDGE_FLAG_ARRAY_STRIDE        0x808c                         /* 32908 */
#define GL_VERTEX_ARRAY_POINTER          0x808e                         /* 32910 */
#define GL_NORMAL_ARRAY_POINTER          0x808f                         /* 32911 */
#define GL_COLOR_ARRAY_POINTER           0x8090                         /* 32912 */
#define GL_INDEX_ARRAY_POINTER           0x8091                         /* 32913 */
#define GL_TEXTURE_COORD_ARRAY_POINTER   0x8092                         /* 32914 */
#define GL_EDGE_FLAG_ARRAY_POINTER       0x8093                         /* 32915 */
#define GL_POLYGON                       0x9
#define GL_CW                            0x900                          /* 2304 */
#define GL_CCW                           0x901                          /* 2305 */
#define GL_COEFF                         0xa00                          /* 2560 */
#define GL_ORDER                         0xa01                          /* 2561 */
#define GL_DOMAIN                        0xa02                          /* 2562 */
#define GL_CURRENT_COLOR                 0xb00                          /* 2816 */
#define GL_CURRENT_INDEX                 0xb01                          /* 2817 */
#define GL_CURRENT_NORMAL                0xb02                          /* 2818 */
#define GL_CURRENT_TEXTURE_COORDS        0xb03                          /* 2819 */
#define GL_CURRENT_RASTER_COLOR          0xb04                          /* 2820 */
#define GL_CURRENT_RASTER_INDEX          0xb05                          /* 2821 */
#define GL_CURRENT_RASTER_TEXTURE_COORDS 0xb06                          /* 2822 */
#define GL_CURRENT_RASTER_POSITION       0xb07                          /* 2823 */
#define GL_CURRENT_RASTER_POSITION_VALID 0xb08                          /* 2824 */
#define GL_CURRENT_RASTER_DISTANCE       0xb09                          /* 2825 */
#define GL_POINT_SMOOTH                  0xb10                          /* 2832 */
#define GL_POINT_SIZE                    0xb11                          /* 2833 */
#define GL_POINT_SIZE_RANGE              0xb12                          /* 2834 */
#define GL_POINT_SIZE_GRANULARITY        0xb13                          /* 2835 */
#define GL_LINE_SMOOTH                   0xb20                          /* 2848 */
#define GL_LINE_WIDTH                    0xb21                          /* 2849 */
#define GL_LINE_WIDTH_RANGE              0xb22                          /* 2850 */
#define GL_LINE_WIDTH_GRANULARITY        0xb23                          /* 2851 */
#define GL_LINE_STIPPLE                  0xb24                          /* 2852 */
#define GL_LINE_STIPPLE_PATTERN          0xb25                          /* 2853 */
#define GL_LINE_STIPPLE_REPEAT           0xb26                          /* 2854 */
#define GL_LIST_MODE                     0xb30                          /* 2864 */
#define GL_MAX_LIST_NESTING              0xb31                          /* 2865 */
#define GL_LIST_BASE                     0xb32                          /* 2866 */
#define GL_LIST_INDEX                    0xb33                          /* 2867 */
#define GL_POLYGON_MODE                  0xb40                          /* 2880 */
#define GL_POLYGON_SMOOTH                0xb41                          /* 2881 */
#define GL_POLYGON_STIPPLE               0xb42                          /* 2882 */
#define GL_EDGE_FLAG                     0xb43                          /* 2883 */
#define GL_CULL_FACE                     0xb44                          /* 2884 */
#define GL_CULL_FACE_MODE                0xb45                          /* 2885 */
#define GL_FRONT_FACE                    0xb46                          /* 2886 */
#define GL_LIGHTING                      0xb50                          /* 2896 */
#define GL_LIGHT_MODEL_LOCAL_VIEWER      0xb51                          /* 2897 */
#define GL_LIGHT_MODEL_TWO_SIDE          0xb52                          /* 2898 */
#define GL_LIGHT_MODEL_AMBIENT           0xb53                          /* 2899 */
#define GL_SHADE_MODEL                   0xb54                          /* 2900 */
#define GL_COLOR_MATERIAL_FACE           0xb55                          /* 2901 */
#define GL_COLOR_MATERIAL_PARAMETER      0xb56                          /* 2902 */
#define GL_COLOR_MATERIAL                0xb57                          /* 2903 */
#define GL_FOG                           0xb60                          /* 2912 */
#define GL_FOG_INDEX                     0xb61                          /* 2913 */
#define GL_FOG_DENSITY                   0xb62                          /* 2914 */
#define GL_FOG_START                     0xb63                          /* 2915 */
#define GL_FOG_END                       0xb64                          /* 2916 */
#define GL_FOG_MODE                      0xb65                          /* 2917 */
#define GL_FOG_COLOR                     0xb66                          /* 2918 */
#define GL_DEPTH_RANGE                   0xb70                          /* 2928 */
#define GL_DEPTH_TEST                    0xb71                          /* 2929 */
#define GL_DEPTH_WRITEMASK               0xb72                          /* 2930 */
#define GL_DEPTH_CLEAR_VALUE             0xb73                          /* 2931 */
#define GL_DEPTH_FUNC                    0xb74                          /* 2932 */
#define GL_ACCUM_CLEAR_VALUE             0xb80                          /* 2944 */
#define GL_STENCIL_TEST                  0xb90                          /* 2960 */
#define GL_STENCIL_CLEAR_VALUE           0xb91                          /* 2961 */
#define GL_STENCIL_FUNC                  0xb92                          /* 2962 */
#define GL_STENCIL_VALUE_MASK            0xb93                          /* 2963 */
#define GL_STENCIL_FAIL                  0xb94                          /* 2964 */
#define GL_STENCIL_PASS_DEPTH_FAIL       0xb95                          /* 2965 */
#define GL_STENCIL_PASS_DEPTH_PASS       0xb96                          /* 2966 */
#define GL_STENCIL_REF                   0xb97                          /* 2967 */
#define GL_STENCIL_WRITEMASK             0xb98                          /* 2968 */
#define GL_MATRIX_MODE                   0xba0                          /* 2976 */
#define GL_NORMALIZE                     0xba1                          /* 2977 */
#define GL_VIEWPORT                      0xba2                          /* 2978 */
#define GL_MODELVIEW_STACK_DEPTH         0xba3                          /* 2979 */
#define GL_PROJECTION_STACK_DEPTH        0xba4                          /* 2980 */
#define GL_TEXTURE_STACK_DEPTH           0xba5                          /* 2981 */
#define GL_MODELVIEW_MATRIX              0xba6                          /* 2982 */
#define GL_PROJECTION_MATRIX             0xba7                          /* 2983 */
#define GL_TEXTURE_MATRIX                0xba8                          /* 2984 */
#define GL_ATTRIB_STACK_DEPTH            0xbb0                          /* 2992 */
#define GL_CLIENT_ATTRIB_STACK_DEPTH     0xbb1                          /* 2993 */
#define GL_ALPHA_TEST                    0xbc0                          /* 3008 */
#define GL_ALPHA_TEST_FUNC               0xbc1                          /* 3009 */
#define GL_ALPHA_TEST_REF                0xbc2                          /* 3010 */
#define GL_DITHER                        0xbd0                          /* 3024 */
#define GL_BLEND_DST                     0xbe0                          /* 3040 */
#define GL_BLEND_SRC                     0xbe1                          /* 3041 */
#define GL_BLEND                         0xbe2                          /* 3042 */
#define GL_LOGIC_OP_MODE                 0xbf0                          /* 3056 */
#define GL_INDEX_LOGIC_OP                0xbf1                          /* 3057 */
#define GL_COLOR_LOGIC_OP                0xbf2                          /* 3058 */
#define GL_AUX_BUFFERS                   0xc00                          /* 3072 */
#define GL_DRAW_BUFFER                   0xc01                          /* 3073 */
#define GL_READ_BUFFER                   0xc02                          /* 3074 */
#define GL_SCISSOR_BOX                   0xc10                          /* 3088 */
#define GL_SCISSOR_TEST                  0xc11                          /* 3089 */
#define GL_INDEX_CLEAR_VALUE             0xc20                          /* 3104 */
#define GL_INDEX_WRITEMASK               0xc21                          /* 3105 */
#define GL_COLOR_CLEAR_VALUE             0xc22                          /* 3106 */
#define GL_COLOR_WRITEMASK               0xc23                          /* 3107 */
#define GL_INDEX_MODE                    0xc30                          /* 3120 */
#define GL_RGBA_MODE                     0xc31                          /* 3121 */
#define GL_DOUBLEBUFFER                  0xc32                          /* 3122 */
#define GL_STEREO                        0xc33                          /* 3123 */
#define GL_RENDER_MODE                   0xc40                          /* 3136 */
#define GL_PERSPECTIVE_CORRECTION_HINT   0xc50                          /* 3152 */
#define GL_POINT_SMOOTH_HINT             0xc51                          /* 3153 */
#define GL_LINE_SMOOTH_HINT              0xc52                          /* 3154 */
#define GL_POLYGON_SMOOTH_HINT           0xc53                          /* 3155 */
#define GL_FOG_HINT                      0xc54                          /* 3156 */
#define GL_TEXTURE_GEN_S                 0xc60                          /* 3168 */
#define GL_TEXTURE_GEN_T                 0xc61                          /* 3169 */
#define GL_TEXTURE_GEN_R                 0xc62                          /* 3170 */
#define GL_TEXTURE_GEN_Q                 0xc63                          /* 3171 */
#define GL_PIXEL_MAP_I_TO_I              0xc70                          /* 3184 */
#define GL_PIXEL_MAP_S_TO_S              0xc71                          /* 3185 */
#define GL_PIXEL_MAP_I_TO_R              0xc72                          /* 3186 */
#define GL_PIXEL_MAP_I_TO_G              0xc73                          /* 3187 */
#define GL_PIXEL_MAP_I_TO_B              0xc74                          /* 3188 */
#define GL_PIXEL_MAP_I_TO_A              0xc75                          /* 3189 */
#define GL_PIXEL_MAP_R_TO_R              0xc76                          /* 3190 */
#define GL_PIXEL_MAP_G_TO_G              0xc77                          /* 3191 */
#define GL_PIXEL_MAP_B_TO_B              0xc78                          /* 3192 */
#define GL_PIXEL_MAP_A_TO_A              0xc79                          /* 3193 */
#define GL_PIXEL_MAP_I_TO_I_SIZE         0xcb0                          /* 3248 */
#define GL_PIXEL_MAP_S_TO_S_SIZE         0xcb1                          /* 3249 */
#define GL_PIXEL_MAP_I_TO_R_SIZE         0xcb2                          /* 3250 */
#define GL_PIXEL_MAP_I_TO_G_SIZE         0xcb3                          /* 3251 */
#define GL_PIXEL_MAP_I_TO_B_SIZE         0xcb4                          /* 3252 */
#define GL_PIXEL_MAP_I_TO_A_SIZE         0xcb5                          /* 3253 */
#define GL_PIXEL_MAP_R_TO_R_SIZE         0xcb6                          /* 3254 */
#define GL_PIXEL_MAP_G_TO_G_SIZE         0xcb7                          /* 3255 */
#define GL_PIXEL_MAP_B_TO_B_SIZE         0xcb8                          /* 3256 */
#define GL_PIXEL_MAP_A_TO_A_SIZE         0xcb9                          /* 3257 */
#define GL_UNPACK_SWAP_BYTES             0xcf0                          /* 3312 */
#define GL_UNPACK_LSB_FIRST              0xcf1                          /* 3313 */
#define GL_UNPACK_ROW_LENGTH             0xcf2                          /* 3314 */
#define GL_UNPACK_SKIP_ROWS              0xcf3                          /* 3315 */
#define GL_UNPACK_SKIP_PIXELS            0xcf4                          /* 3316 */
#define GL_UNPACK_ALIGNMENT              0xcf5                          /* 3317 */
#define GL_PACK_SWAP_BYTES               0xd00                          /* 3328 */
#define GL_PACK_LSB_FIRST                0xd01                          /* 3329 */
#define GL_PACK_ROW_LENGTH               0xd02                          /* 3330 */
#define GL_PACK_SKIP_ROWS                0xd03                          /* 3331 */
#define GL_PACK_SKIP_PIXELS              0xd04                          /* 3332 */
#define GL_PACK_ALIGNMENT                0xd05                          /* 3333 */
#define GL_MAP_COLOR                     0xd10                          /* 3344 */
#define GL_MAP_STENCIL                   0xd11                          /* 3345 */
#define GL_INDEX_SHIFT                   0xd12                          /* 3346 */
#define GL_INDEX_OFFSET                  0xd13                          /* 3347 */
#define GL_RED_SCALE                     0xd14                          /* 3348 */
#define GL_RED_BIAS                      0xd15                          /* 3349 */
#define GL_ZOOM_X                        0xd16                          /* 3350 */
#define GL_ZOOM_Y                        0xd17                          /* 3351 */
#define GL_GREEN_SCALE                   0xd18                          /* 3352 */
#define GL_GREEN_BIAS                    0xd19                          /* 3353 */
#define GL_BLUE_SCALE                    0xd1a                          /* 3354 */
#define GL_BLUE_BIAS                     0xd1b                          /* 3355 */
#define GL_ALPHA_SCALE                   0xd1c                          /* 3356 */
#define GL_ALPHA_BIAS                    0xd1d                          /* 3357 */
#define GL_DEPTH_SCALE                   0xd1e                          /* 3358 */
#define GL_DEPTH_BIAS                    0xd1f                          /* 3359 */
#define GL_MAX_EVAL_ORDER                0xd30                          /* 3376 */
#define GL_MAX_LIGHTS                    0xd31                          /* 3377 */
#define GL_MAX_CLIP_PLANES               0xd32                          /* 3378 */
#define GL_MAX_TEXTURE_SIZE              0xd33                          /* 3379 */
#define GL_MAX_PIXEL_MAP_TABLE           0xd34                          /* 3380 */
#define GL_MAX_ATTRIB_STACK_DEPTH        0xd35                          /* 3381 */
#define GL_MAX_MODELVIEW_STACK_DEPTH     0xd36                          /* 3382 */
#define GL_MAX_NAME_STACK_DEPTH          0xd37                          /* 3383 */
#define GL_MAX_PROJECTION_STACK_DEPTH    0xd38                          /* 3384 */
#define GL_MAX_TEXTURE_STACK_DEPTH       0xd39                          /* 3385 */
#define GL_MAX_VIEWPORT_DIMS             0xd3a                          /* 3386 */
#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0xd3b                          /* 3387 */
#define GL_SUBPIXEL_BITS                 0xd50                          /* 3408 */
#define GL_INDEX_BITS                    0xd51                          /* 3409 */
#define GL_RED_BITS                      0xd52                          /* 3410 */
#define GL_GREEN_BITS                    0xd53                          /* 3411 */
#define GL_BLUE_BITS                     0xd54                          /* 3412 */
#define GL_ALPHA_BITS                    0xd55                          /* 3413 */
#define GL_DEPTH_BITS                    0xd56                          /* 3414 */
#define GL_STENCIL_BITS                  0xd57                          /* 3415 */
#define GL_ACCUM_RED_BITS                0xd58                          /* 3416 */
#define GL_ACCUM_GREEN_BITS              0xd59                          /* 3417 */
#define GL_ACCUM_BLUE_BITS               0xd5a                          /* 3418 */
#define GL_ACCUM_ALPHA_BITS              0xd5b                          /* 3419 */
#define GL_NAME_STACK_DEPTH              0xd70                          /* 3440 */
#define GL_AUTO_NORMAL                   0xd80                          /* 3456 */
#define GL_MAP1_COLOR_4                  0xd90                          /* 3472 */
#define GL_MAP1_INDEX                    0xd91                          /* 3473 */
#define GL_MAP1_NORMAL                   0xd92                          /* 3474 */
#define GL_MAP1_TEXTURE_COORD_1          0xd93                          /* 3475 */
#define GL_MAP1_TEXTURE_COORD_2          0xd94                          /* 3476 */
#define GL_MAP1_TEXTURE_COORD_3          0xd95                          /* 3477 */
#define GL_MAP1_TEXTURE_COORD_4          0xd96                          /* 3478 */
#define GL_MAP1_VERTEX_3                 0xd97                          /* 3479 */
#define GL_MAP1_VERTEX_4                 0xd98                          /* 3480 */
#define GL_MAP2_COLOR_4                  0xdb0                          /* 3504 */
#define GL_MAP2_INDEX                    0xdb1                          /* 3505 */
#define GL_MAP2_NORMAL                   0xdb2                          /* 3506 */
#define GL_MAP2_TEXTURE_COORD_1          0xdb3                          /* 3507 */
#define GL_MAP2_TEXTURE_COORD_2          0xdb4                          /* 3508 */
#define GL_MAP2_TEXTURE_COORD_3          0xdb5                          /* 3509 */
#define GL_MAP2_TEXTURE_COORD_4          0xdb6                          /* 3510 */
#define GL_MAP2_VERTEX_3                 0xdb7                          /* 3511 */
#define GL_MAP2_VERTEX_4                 0xdb8                          /* 3512 */
#define GL_MAP1_GRID_DOMAIN              0xdd0                          /* 3536 */
#define GL_MAP1_GRID_SEGMENTS            0xdd1                          /* 3537 */
#define GL_MAP2_GRID_DOMAIN              0xdd2                          /* 3538 */
#define GL_MAP2_GRID_SEGMENTS            0xdd3                          /* 3539 */
#define GL_TEXTURE_1D                    0xde0                          /* 3552 */
#define GL_TEXTURE_2D                    0xde1                          /* 3553 */
#define GL_FEEDBACK_BUFFER_POINTER       0xdf0                          /* 3568 */
#define GL_FEEDBACK_BUFFER_SIZE          0xdf1                          /* 3569 */
#define GL_FEEDBACK_BUFFER_TYPE          0xdf2                          /* 3570 */
#define GL_SELECTION_BUFFER_POINTER      0xdf3                          /* 3571 */
#define GL_SELECTION_BUFFER_SIZE         0xdf4                          /* 3572 */
#define GL_ALL_ATTRIB_BITS               0xfffff                        /* 1048575 */
#define GL_CLIENT_ALL_ATTRIB_BITS        0xffffffff                     /* 4294967295 */
#define GL_LOGIC_OP                      GL_INDEX_LOGIC_OP
#define GL_TEXTURE_COMPONENTS            GL_TEXTURE_INTERNAL_FORMAT
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_1_1
typedef GLboolean (REGAL_CALL *PFNGLARETEXTURESRESIDENTPROC)(GLsizei n, const GLuint *textures, GLboolean *residences);
typedef GLboolean (REGAL_CALL *PFNGLISTEXTUREPROC)(GLuint texture);
typedef void (REGAL_CALL *PFNGLARRAYELEMENTPROC)(GLint index);
typedef void (REGAL_CALL *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
typedef void (REGAL_CALL *PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
typedef void (REGAL_CALL *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
typedef void (REGAL_CALL *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
typedef void (REGAL_CALL *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint *textures);
typedef void (REGAL_CALL *PFNGLDISABLECLIENTSTATEPROC)(GLenum cap);
typedef void (REGAL_CALL *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
typedef void (REGAL_CALL *PFNGLEDGEFLAGPOINTERPROC)(GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLENABLECLIENTSTATEPROC)(GLenum cap);
typedef void (REGAL_CALL *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint *textures);
typedef void (REGAL_CALL *PFNGLGETPOINTERVPROC)(GLenum pname, GLvoid **params);
typedef void (REGAL_CALL *PFNGLINDEXPOINTERPROC)(GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLINDEXUBPROC)(GLubyte c);
typedef void (REGAL_CALL *PFNGLINDEXUBVPROC)(const GLubyte *c);
typedef void (REGAL_CALL *PFNGLINTERLEAVEDARRAYSPROC)(GLenum format, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
typedef void (REGAL_CALL *PFNGLPOPCLIENTATTRIBPROC)(void);
typedef void (REGAL_CALL *PFNGLPRIORITIZETEXTURESPROC)(GLsizei n, const GLuint *textures, const GLclampf *priorities);
typedef void (REGAL_CALL *PFNGLPUSHCLIENTATTRIBPROC)(GLbitfield mask);
typedef void (REGAL_CALL *PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_1_1
#define glAreTexturesResident               rglAreTexturesResident
#define glArrayElement                      rglArrayElement
#define glBindTexture                       rglBindTexture
#define glColorPointer                      rglColorPointer
#define glCopyTexImage1D                    rglCopyTexImage1D
#define glCopyTexImage2D                    rglCopyTexImage2D
#define glCopyTexSubImage1D                 rglCopyTexSubImage1D
#define glCopyTexSubImage2D                 rglCopyTexSubImage2D
#define glDeleteTextures                    rglDeleteTextures
#define glDisableClientState                rglDisableClientState
#define glDrawArrays                        rglDrawArrays
#define glDrawElements                      rglDrawElements
#define glEdgeFlagPointer                   rglEdgeFlagPointer
#define glEnableClientState                 rglEnableClientState
#define glGenTextures                       rglGenTextures
#define glGetPointerv                       rglGetPointerv
#define glIndexPointer                      rglIndexPointer
#define glIndexub                           rglIndexub
#define glIndexubv                          rglIndexubv
#define glInterleavedArrays                 rglInterleavedArrays
#define glIsTexture                         rglIsTexture
#define glNormalPointer                     rglNormalPointer
#define glPolygonOffset                     rglPolygonOffset
#define glPopClientAttrib                   rglPopClientAttrib
#define glPrioritizeTextures                rglPrioritizeTextures
#define glPushClientAttrib                  rglPushClientAttrib
#define glTexCoordPointer                   rglTexCoordPointer
#define glTexSubImage1D                     rglTexSubImage1D
#define glTexSubImage2D                     rglTexSubImage2D
#define glVertexPointer                     rglVertexPointer
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_1_1
REGAL_DECL GLboolean REGAL_CALL glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences);
REGAL_DECL GLboolean REGAL_CALL glIsTexture(GLuint texture);
REGAL_DECL void REGAL_CALL glArrayElement(GLint index);
REGAL_DECL void REGAL_CALL glBindTexture(GLenum target, GLuint texture);
REGAL_DECL void REGAL_CALL glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
REGAL_DECL void REGAL_CALL glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
REGAL_DECL void REGAL_CALL glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glDeleteTextures(GLsizei n, const GLuint *textures);
REGAL_DECL void REGAL_CALL glDisableClientState(GLenum cap);
REGAL_DECL void REGAL_CALL glDrawArrays(GLenum mode, GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
REGAL_DECL void REGAL_CALL glEdgeFlagPointer(GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glEnableClientState(GLenum cap);
REGAL_DECL void REGAL_CALL glGenTextures(GLsizei n, GLuint *textures);
REGAL_DECL void REGAL_CALL glGetPointerv(GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL glIndexPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glIndexub(GLubyte c);
REGAL_DECL void REGAL_CALL glIndexubv(const GLubyte *c);
REGAL_DECL void REGAL_CALL glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glPolygonOffset(GLfloat factor, GLfloat units);
REGAL_DECL void REGAL_CALL glPopClientAttrib(void);
REGAL_DECL void REGAL_CALL glPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities);
REGAL_DECL void REGAL_CALL glPushClientAttrib(GLbitfield mask);
REGAL_DECL void REGAL_CALL glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_1_1
REGAL_DECL GLboolean REGAL_CALL plugin_glAreTexturesResident(GLsizei n, const GLuint *textures, GLboolean *residences);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsTexture(GLuint texture);
REGAL_DECL void REGAL_CALL plugin_glArrayElement(GLint index);
REGAL_DECL void REGAL_CALL plugin_glBindTexture(GLenum target, GLuint texture);
REGAL_DECL void REGAL_CALL plugin_glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glCopyTexImage1D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
REGAL_DECL void REGAL_CALL plugin_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
REGAL_DECL void REGAL_CALL plugin_glCopyTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
REGAL_DECL void REGAL_CALL plugin_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glDeleteTextures(GLsizei n, const GLuint *textures);
REGAL_DECL void REGAL_CALL plugin_glDisableClientState(GLenum cap);
REGAL_DECL void REGAL_CALL plugin_glDrawArrays(GLenum mode, GLint first, GLsizei count);
REGAL_DECL void REGAL_CALL plugin_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
REGAL_DECL void REGAL_CALL plugin_glEdgeFlagPointer(GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glEnableClientState(GLenum cap);
REGAL_DECL void REGAL_CALL plugin_glGenTextures(GLsizei n, GLuint *textures);
REGAL_DECL void REGAL_CALL plugin_glGetPointerv(GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL plugin_glIndexPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glIndexub(GLubyte c);
REGAL_DECL void REGAL_CALL plugin_glIndexubv(const GLubyte *c);
REGAL_DECL void REGAL_CALL plugin_glInterleavedArrays(GLenum format, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glPolygonOffset(GLfloat factor, GLfloat units);
REGAL_DECL void REGAL_CALL plugin_glPopClientAttrib(void);
REGAL_DECL void REGAL_CALL plugin_glPrioritizeTextures(GLsizei n, const GLuint *textures, const GLclampf *priorities);
REGAL_DECL void REGAL_CALL plugin_glPushClientAttrib(GLbitfield mask);
REGAL_DECL void REGAL_CALL plugin_glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_VERSION_1_2
 **/

#if (defined(GL_VERSION_1_2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_1_2)) && !defined(REGAL_NO_ENUM_GL_VERSION_1_2)
#define REGAL_NO_ENUM_GL_VERSION_1_2
#endif

#if (defined(GL_VERSION_1_2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_1_2)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_1_2)
#define REGAL_NO_TYPEDEF_GL_VERSION_1_2
#endif

#if (defined(GL_VERSION_1_2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_1_2)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_1_2)
#define REGAL_NO_NAMESPACE_GL_VERSION_1_2
#endif

#if (defined(GL_VERSION_1_2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_1_2)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_1_2)
#define REGAL_NO_PLUGIN_GL_VERSION_1_2
#endif

#if (defined(GL_VERSION_1_2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_1_2)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_1_2)
#define REGAL_NO_DECLARATION_GL_VERSION_1_2
#endif

#ifndef GL_VERSION_1_2
#define GL_VERSION_1_2 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_1_2
#define GL_UNSIGNED_BYTE_3_3_2           0x8032     /* 32818 */
#define GL_UNSIGNED_SHORT_4_4_4_4        0x8033     /* 32819 */
#define GL_UNSIGNED_SHORT_5_5_5_1        0x8034     /* 32820 */
#define GL_UNSIGNED_INT_8_8_8_8          0x8035     /* 32821 */
#define GL_UNSIGNED_INT_10_10_10_2       0x8036     /* 32822 */
#define GL_RESCALE_NORMAL                0x803a     /* 32826 */
#define GL_TEXTURE_BINDING_3D            0x806a     /* 32874 */
#define GL_PACK_SKIP_IMAGES              0x806b     /* 32875 */
#define GL_PACK_IMAGE_HEIGHT             0x806c     /* 32876 */
#define GL_UNPACK_SKIP_IMAGES            0x806d     /* 32877 */
#define GL_UNPACK_IMAGE_HEIGHT           0x806e     /* 32878 */
#define GL_TEXTURE_3D                    0x806f     /* 32879 */
#define GL_PROXY_TEXTURE_3D              0x8070     /* 32880 */
#define GL_TEXTURE_DEPTH                 0x8071     /* 32881 */
#define GL_TEXTURE_WRAP_R                0x8072     /* 32882 */
#define GL_MAX_3D_TEXTURE_SIZE           0x8073     /* 32883 */
#define GL_BGR                           0x80e0     /* 32992 */
#define GL_BGRA                          0x80e1     /* 32993 */
#define GL_MAX_ELEMENTS_VERTICES         0x80e8     /* 33000 */
#define GL_MAX_ELEMENTS_INDICES          0x80e9     /* 33001 */
#define GL_CLAMP_TO_EDGE                 0x812f     /* 33071 */
#define GL_TEXTURE_MIN_LOD               0x813a     /* 33082 */
#define GL_TEXTURE_MAX_LOD               0x813b     /* 33083 */
#define GL_TEXTURE_BASE_LEVEL            0x813c     /* 33084 */
#define GL_TEXTURE_MAX_LEVEL             0x813d     /* 33085 */
#define GL_LIGHT_MODEL_COLOR_CONTROL     0x81f8     /* 33272 */
#define GL_SINGLE_COLOR                  0x81f9     /* 33273 */
#define GL_SEPARATE_SPECULAR_COLOR       0x81fa     /* 33274 */
#define GL_UNSIGNED_BYTE_2_3_3_REV       0x8362     /* 33634 */
#define GL_UNSIGNED_SHORT_5_6_5          0x8363     /* 33635 */
#define GL_UNSIGNED_SHORT_5_6_5_REV      0x8364     /* 33636 */
#define GL_UNSIGNED_SHORT_4_4_4_4_REV    0x8365     /* 33637 */
#define GL_UNSIGNED_SHORT_1_5_5_5_REV    0x8366     /* 33638 */
#define GL_UNSIGNED_INT_8_8_8_8_REV      0x8367     /* 33639 */
#define GL_UNSIGNED_INT_2_10_10_10_REV   0x8368     /* 33640 */
#define GL_ALIASED_POINT_SIZE_RANGE      0x846d     /* 33901 */
#define GL_ALIASED_LINE_WIDTH_RANGE      0x846e     /* 33902 */
#define GL_SMOOTH_POINT_SIZE_RANGE       0xb12      /* 2834 */
#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0xb13      /* 2835 */
#define GL_SMOOTH_LINE_WIDTH_RANGE       0xb22      /* 2850 */
#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0xb23      /* 2851 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_1_2
typedef void (REGAL_CALL *PFNGLBLENDCOLORPROC)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONPROC)(GLenum mode);
typedef void (REGAL_CALL *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
typedef void (REGAL_CALL *PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
typedef void (REGAL_CALL *PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
typedef void (REGAL_CALL *PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_1_2
#define glBlendColor                        rglBlendColor
#define glBlendEquation                     rglBlendEquation
#define glCopyTexSubImage3D                 rglCopyTexSubImage3D
#define glDrawRangeElements                 rglDrawRangeElements
#define glTexImage3D                        rglTexImage3D
#define glTexSubImage3D                     rglTexSubImage3D
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_1_2
REGAL_DECL void REGAL_CALL glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
REGAL_DECL void REGAL_CALL glBlendEquation(GLenum mode);
REGAL_DECL void REGAL_CALL glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
REGAL_DECL void REGAL_CALL glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_1_2
REGAL_DECL void REGAL_CALL plugin_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
REGAL_DECL void REGAL_CALL plugin_glBlendEquation(GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
REGAL_DECL void REGAL_CALL plugin_glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices);
REGAL_DECL void REGAL_CALL plugin_glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
REGAL_DECL void REGAL_CALL plugin_glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
#endif

/**
 ** GL_VERSION_1_3
 **/

#if (defined(GL_VERSION_1_3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_1_3)) && !defined(REGAL_NO_ENUM_GL_VERSION_1_3)
#define REGAL_NO_ENUM_GL_VERSION_1_3
#endif

#if (defined(GL_VERSION_1_3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_1_3)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_1_3)
#define REGAL_NO_TYPEDEF_GL_VERSION_1_3
#endif

#if (defined(GL_VERSION_1_3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_1_3)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_1_3)
#define REGAL_NO_NAMESPACE_GL_VERSION_1_3
#endif

#if (defined(GL_VERSION_1_3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_1_3)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_1_3)
#define REGAL_NO_PLUGIN_GL_VERSION_1_3
#endif

#if (defined(GL_VERSION_1_3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_1_3)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_1_3)
#define REGAL_NO_DECLARATION_GL_VERSION_1_3
#endif

#ifndef GL_VERSION_1_3
#define GL_VERSION_1_3 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_1_3
#define GL_MULTISAMPLE_BIT                0x20000000     /* 536870912 */
#define GL_MULTISAMPLE                    0x809d         /* 32925 */
#define GL_SAMPLE_ALPHA_TO_COVERAGE       0x809e         /* 32926 */
#define GL_SAMPLE_ALPHA_TO_ONE            0x809f         /* 32927 */
#define GL_SAMPLE_COVERAGE                0x80a0         /* 32928 */
#define GL_SAMPLE_BUFFERS                 0x80a8         /* 32936 */
#define GL_SAMPLES                        0x80a9         /* 32937 */
#define GL_SAMPLE_COVERAGE_VALUE          0x80aa         /* 32938 */
#define GL_SAMPLE_COVERAGE_INVERT         0x80ab         /* 32939 */
#define GL_CLAMP_TO_BORDER                0x812d         /* 33069 */
#define GL_TEXTURE0                       0x84c0         /* 33984 */
#define GL_TEXTURE1                       0x84c1         /* 33985 */
#define GL_TEXTURE2                       0x84c2         /* 33986 */
#define GL_TEXTURE3                       0x84c3         /* 33987 */
#define GL_TEXTURE4                       0x84c4         /* 33988 */
#define GL_TEXTURE5                       0x84c5         /* 33989 */
#define GL_TEXTURE6                       0x84c6         /* 33990 */
#define GL_TEXTURE7                       0x84c7         /* 33991 */
#define GL_TEXTURE8                       0x84c8         /* 33992 */
#define GL_TEXTURE9                       0x84c9         /* 33993 */
#define GL_TEXTURE10                      0x84ca         /* 33994 */
#define GL_TEXTURE11                      0x84cb         /* 33995 */
#define GL_TEXTURE12                      0x84cc         /* 33996 */
#define GL_TEXTURE13                      0x84cd         /* 33997 */
#define GL_TEXTURE14                      0x84ce         /* 33998 */
#define GL_TEXTURE15                      0x84cf         /* 33999 */
#define GL_TEXTURE16                      0x84d0         /* 34000 */
#define GL_TEXTURE17                      0x84d1         /* 34001 */
#define GL_TEXTURE18                      0x84d2         /* 34002 */
#define GL_TEXTURE19                      0x84d3         /* 34003 */
#define GL_TEXTURE20                      0x84d4         /* 34004 */
#define GL_TEXTURE21                      0x84d5         /* 34005 */
#define GL_TEXTURE22                      0x84d6         /* 34006 */
#define GL_TEXTURE23                      0x84d7         /* 34007 */
#define GL_TEXTURE24                      0x84d8         /* 34008 */
#define GL_TEXTURE25                      0x84d9         /* 34009 */
#define GL_TEXTURE26                      0x84da         /* 34010 */
#define GL_TEXTURE27                      0x84db         /* 34011 */
#define GL_TEXTURE28                      0x84dc         /* 34012 */
#define GL_TEXTURE29                      0x84dd         /* 34013 */
#define GL_TEXTURE30                      0x84de         /* 34014 */
#define GL_TEXTURE31                      0x84df         /* 34015 */
#define GL_ACTIVE_TEXTURE                 0x84e0         /* 34016 */
#define GL_CLIENT_ACTIVE_TEXTURE          0x84e1         /* 34017 */
#define GL_MAX_TEXTURE_UNITS              0x84e2         /* 34018 */
#define GL_TRANSPOSE_MODELVIEW_MATRIX     0x84e3         /* 34019 */
#define GL_TRANSPOSE_PROJECTION_MATRIX    0x84e4         /* 34020 */
#define GL_TRANSPOSE_TEXTURE_MATRIX       0x84e5         /* 34021 */
#define GL_TRANSPOSE_COLOR_MATRIX         0x84e6         /* 34022 */
#define GL_SUBTRACT                       0x84e7         /* 34023 */
#define GL_COMPRESSED_ALPHA               0x84e9         /* 34025 */
#define GL_COMPRESSED_LUMINANCE           0x84ea         /* 34026 */
#define GL_COMPRESSED_LUMINANCE_ALPHA     0x84eb         /* 34027 */
#define GL_COMPRESSED_INTENSITY           0x84ec         /* 34028 */
#define GL_COMPRESSED_RGB                 0x84ed         /* 34029 */
#define GL_COMPRESSED_RGBA                0x84ee         /* 34030 */
#define GL_TEXTURE_COMPRESSION_HINT       0x84ef         /* 34031 */
#define GL_NORMAL_MAP                     0x8511         /* 34065 */
#define GL_REFLECTION_MAP                 0x8512         /* 34066 */
#define GL_TEXTURE_CUBE_MAP               0x8513         /* 34067 */
#define GL_TEXTURE_BINDING_CUBE_MAP       0x8514         /* 34068 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_X    0x8515         /* 34069 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X    0x8516         /* 34070 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y    0x8517         /* 34071 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y    0x8518         /* 34072 */
#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z    0x8519         /* 34073 */
#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z    0x851a         /* 34074 */
#define GL_PROXY_TEXTURE_CUBE_MAP         0x851b         /* 34075 */
#define GL_MAX_CUBE_MAP_TEXTURE_SIZE      0x851c         /* 34076 */
#define GL_COMBINE                        0x8570         /* 34160 */
#define GL_COMBINE_RGB                    0x8571         /* 34161 */
#define GL_COMBINE_ALPHA                  0x8572         /* 34162 */
#define GL_RGB_SCALE                      0x8573         /* 34163 */
#define GL_ADD_SIGNED                     0x8574         /* 34164 */
#define GL_INTERPOLATE                    0x8575         /* 34165 */
#define GL_CONSTANT                       0x8576         /* 34166 */
#define GL_PRIMARY_COLOR                  0x8577         /* 34167 */
#define GL_PREVIOUS                       0x8578         /* 34168 */
#define GL_SOURCE0_RGB                    0x8580         /* 34176 */
#define GL_SOURCE1_RGB                    0x8581         /* 34177 */
#define GL_SOURCE2_RGB                    0x8582         /* 34178 */
#define GL_SOURCE0_ALPHA                  0x8588         /* 34184 */
#define GL_SOURCE1_ALPHA                  0x8589         /* 34185 */
#define GL_SOURCE2_ALPHA                  0x858a         /* 34186 */
#define GL_OPERAND0_RGB                   0x8590         /* 34192 */
#define GL_OPERAND1_RGB                   0x8591         /* 34193 */
#define GL_OPERAND2_RGB                   0x8592         /* 34194 */
#define GL_OPERAND0_ALPHA                 0x8598         /* 34200 */
#define GL_OPERAND1_ALPHA                 0x8599         /* 34201 */
#define GL_OPERAND2_ALPHA                 0x859a         /* 34202 */
#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE  0x86a0         /* 34464 */
#define GL_TEXTURE_COMPRESSED             0x86a1         /* 34465 */
#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86a2         /* 34466 */
#define GL_COMPRESSED_TEXTURE_FORMATS     0x86a3         /* 34467 */
#define GL_DOT3_RGB                       0x86ae         /* 34478 */
#define GL_DOT3_RGBA                      0x86af         /* 34479 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_1_3
typedef void (REGAL_CALL *PFNGLACTIVETEXTUREPROC)(GLenum texture);
typedef void (REGAL_CALL *PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod, GLvoid *img);
typedef void (REGAL_CALL *PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble *m);
typedef void (REGAL_CALL *PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat *m);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint *v);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
typedef void (REGAL_CALL *PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort *v);
typedef void (REGAL_CALL *PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble *m);
typedef void (REGAL_CALL *PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat *m);
typedef void (REGAL_CALL *PFNGLSAMPLECOVERAGEPROC)(GLclampf value, GLboolean invert);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_1_3
#define glActiveTexture                     rglActiveTexture
#define glClientActiveTexture               rglClientActiveTexture
#define glCompressedTexImage1D              rglCompressedTexImage1D
#define glCompressedTexImage2D              rglCompressedTexImage2D
#define glCompressedTexImage3D              rglCompressedTexImage3D
#define glCompressedTexSubImage1D           rglCompressedTexSubImage1D
#define glCompressedTexSubImage2D           rglCompressedTexSubImage2D
#define glCompressedTexSubImage3D           rglCompressedTexSubImage3D
#define glGetCompressedTexImage             rglGetCompressedTexImage
#define glLoadTransposeMatrixd              rglLoadTransposeMatrixd
#define glLoadTransposeMatrixf              rglLoadTransposeMatrixf
#define glMultTransposeMatrixd              rglMultTransposeMatrixd
#define glMultTransposeMatrixf              rglMultTransposeMatrixf
#define glMultiTexCoord1d                   rglMultiTexCoord1d
#define glMultiTexCoord1dv                  rglMultiTexCoord1dv
#define glMultiTexCoord1f                   rglMultiTexCoord1f
#define glMultiTexCoord1fv                  rglMultiTexCoord1fv
#define glMultiTexCoord1i                   rglMultiTexCoord1i
#define glMultiTexCoord1iv                  rglMultiTexCoord1iv
#define glMultiTexCoord1s                   rglMultiTexCoord1s
#define glMultiTexCoord1sv                  rglMultiTexCoord1sv
#define glMultiTexCoord2d                   rglMultiTexCoord2d
#define glMultiTexCoord2dv                  rglMultiTexCoord2dv
#define glMultiTexCoord2f                   rglMultiTexCoord2f
#define glMultiTexCoord2fv                  rglMultiTexCoord2fv
#define glMultiTexCoord2i                   rglMultiTexCoord2i
#define glMultiTexCoord2iv                  rglMultiTexCoord2iv
#define glMultiTexCoord2s                   rglMultiTexCoord2s
#define glMultiTexCoord2sv                  rglMultiTexCoord2sv
#define glMultiTexCoord3d                   rglMultiTexCoord3d
#define glMultiTexCoord3dv                  rglMultiTexCoord3dv
#define glMultiTexCoord3f                   rglMultiTexCoord3f
#define glMultiTexCoord3fv                  rglMultiTexCoord3fv
#define glMultiTexCoord3i                   rglMultiTexCoord3i
#define glMultiTexCoord3iv                  rglMultiTexCoord3iv
#define glMultiTexCoord3s                   rglMultiTexCoord3s
#define glMultiTexCoord3sv                  rglMultiTexCoord3sv
#define glMultiTexCoord4d                   rglMultiTexCoord4d
#define glMultiTexCoord4dv                  rglMultiTexCoord4dv
#define glMultiTexCoord4f                   rglMultiTexCoord4f
#define glMultiTexCoord4fv                  rglMultiTexCoord4fv
#define glMultiTexCoord4i                   rglMultiTexCoord4i
#define glMultiTexCoord4iv                  rglMultiTexCoord4iv
#define glMultiTexCoord4s                   rglMultiTexCoord4s
#define glMultiTexCoord4sv                  rglMultiTexCoord4sv
#define glSampleCoverage                    rglSampleCoverage
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_1_3
REGAL_DECL void REGAL_CALL glActiveTexture(GLenum texture);
REGAL_DECL void REGAL_CALL glClientActiveTexture(GLenum texture);
REGAL_DECL void REGAL_CALL glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL glGetCompressedTexImage(GLenum target, GLint lod, GLvoid *img);
REGAL_DECL void REGAL_CALL glLoadTransposeMatrixd(const GLdouble *m);
REGAL_DECL void REGAL_CALL glLoadTransposeMatrixf(const GLfloat *m);
REGAL_DECL void REGAL_CALL glMultTransposeMatrixd(const GLdouble *m);
REGAL_DECL void REGAL_CALL glMultTransposeMatrixf(const GLfloat *m);
REGAL_DECL void REGAL_CALL glMultiTexCoord1d(GLenum target, GLdouble s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1dv(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord1f(GLenum target, GLfloat s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1fv(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord1i(GLenum target, GLint s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1iv(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord1s(GLenum target, GLshort s);
REGAL_DECL void REGAL_CALL glMultiTexCoord1sv(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2d(GLenum target, GLdouble s, GLdouble t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2dv(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2fv(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2i(GLenum target, GLint s, GLint t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2iv(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord2s(GLenum target, GLshort s, GLshort t);
REGAL_DECL void REGAL_CALL glMultiTexCoord2sv(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3dv(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3fv(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3iv(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r);
REGAL_DECL void REGAL_CALL glMultiTexCoord3sv(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4dv(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4fv(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4iv(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL glMultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
REGAL_DECL void REGAL_CALL glMultiTexCoord4sv(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL glSampleCoverage(GLclampf value, GLboolean invert);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_1_3
REGAL_DECL void REGAL_CALL plugin_glActiveTexture(GLenum texture);
REGAL_DECL void REGAL_CALL plugin_glClientActiveTexture(GLenum texture);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexImage1D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexSubImage1D(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glGetCompressedTexImage(GLenum target, GLint lod, GLvoid *img);
REGAL_DECL void REGAL_CALL plugin_glLoadTransposeMatrixd(const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glLoadTransposeMatrixf(const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glMultTransposeMatrixd(const GLdouble *m);
REGAL_DECL void REGAL_CALL plugin_glMultTransposeMatrixf(const GLfloat *m);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1d(GLenum target, GLdouble s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1dv(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1f(GLenum target, GLfloat s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1fv(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1i(GLenum target, GLint s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1iv(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1s(GLenum target, GLshort s);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord1sv(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2d(GLenum target, GLdouble s, GLdouble t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2dv(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2f(GLenum target, GLfloat s, GLfloat t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2fv(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2i(GLenum target, GLint s, GLint t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2iv(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2s(GLenum target, GLshort s, GLshort t);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord2sv(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3d(GLenum target, GLdouble s, GLdouble t, GLdouble r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3dv(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3f(GLenum target, GLfloat s, GLfloat t, GLfloat r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3fv(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3i(GLenum target, GLint s, GLint t, GLint r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3iv(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3s(GLenum target, GLshort s, GLshort t, GLshort r);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord3sv(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4d(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4dv(GLenum target, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4fv(GLenum target, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4i(GLenum target, GLint s, GLint t, GLint r, GLint q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4iv(GLenum target, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4s(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
REGAL_DECL void REGAL_CALL plugin_glMultiTexCoord4sv(GLenum target, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glSampleCoverage(GLclampf value, GLboolean invert);
#endif

/**
 ** GL_VERSION_1_4
 **/

#if (defined(GL_VERSION_1_4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_1_4)) && !defined(REGAL_NO_ENUM_GL_VERSION_1_4)
#define REGAL_NO_ENUM_GL_VERSION_1_4
#endif

#if (defined(GL_VERSION_1_4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_1_4)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_1_4)
#define REGAL_NO_TYPEDEF_GL_VERSION_1_4
#endif

#if (defined(GL_VERSION_1_4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_1_4)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_1_4)
#define REGAL_NO_NAMESPACE_GL_VERSION_1_4
#endif

#if (defined(GL_VERSION_1_4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_1_4)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_1_4)
#define REGAL_NO_PLUGIN_GL_VERSION_1_4
#endif

#if (defined(GL_VERSION_1_4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_1_4)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_1_4)
#define REGAL_NO_DECLARATION_GL_VERSION_1_4
#endif

#ifndef GL_VERSION_1_4
#define GL_VERSION_1_4 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_1_4
#define GL_BLEND_DST_RGB                 0x80c8     /* 32968 */
#define GL_BLEND_SRC_RGB                 0x80c9     /* 32969 */
#define GL_BLEND_DST_ALPHA               0x80ca     /* 32970 */
#define GL_BLEND_SRC_ALPHA               0x80cb     /* 32971 */
#define GL_POINT_SIZE_MIN                0x8126     /* 33062 */
#define GL_POINT_SIZE_MAX                0x8127     /* 33063 */
#define GL_POINT_FADE_THRESHOLD_SIZE     0x8128     /* 33064 */
#define GL_POINT_DISTANCE_ATTENUATION    0x8129     /* 33065 */
#define GL_GENERATE_MIPMAP               0x8191     /* 33169 */
#define GL_GENERATE_MIPMAP_HINT          0x8192     /* 33170 */
#define GL_DEPTH_COMPONENT16             0x81a5     /* 33189 */
#define GL_DEPTH_COMPONENT24             0x81a6     /* 33190 */
#define GL_DEPTH_COMPONENT32             0x81a7     /* 33191 */
#define GL_MIRRORED_REPEAT               0x8370     /* 33648 */
#define GL_FOG_COORDINATE_SOURCE         0x8450     /* 33872 */
#define GL_FOG_COORDINATE                0x8451     /* 33873 */
#define GL_FRAGMENT_DEPTH                0x8452     /* 33874 */
#define GL_CURRENT_FOG_COORDINATE        0x8453     /* 33875 */
#define GL_FOG_COORDINATE_ARRAY_TYPE     0x8454     /* 33876 */
#define GL_FOG_COORDINATE_ARRAY_STRIDE   0x8455     /* 33877 */
#define GL_FOG_COORDINATE_ARRAY_POINTER  0x8456     /* 33878 */
#define GL_FOG_COORDINATE_ARRAY          0x8457     /* 33879 */
#define GL_COLOR_SUM                     0x8458     /* 33880 */
#define GL_CURRENT_SECONDARY_COLOR       0x8459     /* 33881 */
#define GL_SECONDARY_COLOR_ARRAY_SIZE    0x845a     /* 33882 */
#define GL_SECONDARY_COLOR_ARRAY_TYPE    0x845b     /* 33883 */
#define GL_SECONDARY_COLOR_ARRAY_STRIDE  0x845c     /* 33884 */
#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845d     /* 33885 */
#define GL_SECONDARY_COLOR_ARRAY         0x845e     /* 33886 */
#define GL_MAX_TEXTURE_LOD_BIAS          0x84fd     /* 34045 */
#define GL_TEXTURE_FILTER_CONTROL        0x8500     /* 34048 */
#define GL_TEXTURE_LOD_BIAS              0x8501     /* 34049 */
#define GL_INCR_WRAP                     0x8507     /* 34055 */
#define GL_DECR_WRAP                     0x8508     /* 34056 */
#define GL_TEXTURE_DEPTH_SIZE            0x884a     /* 34890 */
#define GL_DEPTH_TEXTURE_MODE            0x884b     /* 34891 */
#define GL_TEXTURE_COMPARE_MODE          0x884c     /* 34892 */
#define GL_TEXTURE_COMPARE_FUNC          0x884d     /* 34893 */
#define GL_COMPARE_R_TO_TEXTURE          0x884e     /* 34894 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_1_4
typedef void (REGAL_CALL *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
typedef void (REGAL_CALL *PFNGLFOGCOORDDPROC)(GLdouble coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDDVPROC)(const GLdouble *coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDFPROC)(GLfloat coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDFVPROC)(const GLfloat *coord);
typedef void (REGAL_CALL *PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat *params);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param);
typedef void (REGAL_CALL *PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3IVPROC)(const GLint *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3SVPROC)(const GLshort *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLOR3USVPROC)(const GLushort *v);
typedef void (REGAL_CALL *PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2DVPROC)(const GLdouble *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2FVPROC)(const GLfloat *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2IPROC)(GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2IVPROC)(const GLint *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLWINDOWPOS2SVPROC)(const GLshort *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3DVPROC)(const GLdouble *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3FVPROC)(const GLfloat *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3IVPROC)(const GLint *p);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLWINDOWPOS3SVPROC)(const GLshort *p);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_1_4
#define glBlendFuncSeparate                 rglBlendFuncSeparate
#define glFogCoordPointer                   rglFogCoordPointer
#define glFogCoordd                         rglFogCoordd
#define glFogCoorddv                        rglFogCoorddv
#define glFogCoordf                         rglFogCoordf
#define glFogCoordfv                        rglFogCoordfv
#define glMultiDrawArrays                   rglMultiDrawArrays
#define glMultiDrawElements                 rglMultiDrawElements
#define glPointParameterf                   rglPointParameterf
#define glPointParameterfv                  rglPointParameterfv
#define glPointParameteri                   rglPointParameteri
#define glPointParameteriv                  rglPointParameteriv
#define glSecondaryColor3b                  rglSecondaryColor3b
#define glSecondaryColor3bv                 rglSecondaryColor3bv
#define glSecondaryColor3d                  rglSecondaryColor3d
#define glSecondaryColor3dv                 rglSecondaryColor3dv
#define glSecondaryColor3f                  rglSecondaryColor3f
#define glSecondaryColor3fv                 rglSecondaryColor3fv
#define glSecondaryColor3i                  rglSecondaryColor3i
#define glSecondaryColor3iv                 rglSecondaryColor3iv
#define glSecondaryColor3s                  rglSecondaryColor3s
#define glSecondaryColor3sv                 rglSecondaryColor3sv
#define glSecondaryColor3ub                 rglSecondaryColor3ub
#define glSecondaryColor3ubv                rglSecondaryColor3ubv
#define glSecondaryColor3ui                 rglSecondaryColor3ui
#define glSecondaryColor3uiv                rglSecondaryColor3uiv
#define glSecondaryColor3us                 rglSecondaryColor3us
#define glSecondaryColor3usv                rglSecondaryColor3usv
#define glSecondaryColorPointer             rglSecondaryColorPointer
#define glWindowPos2d                       rglWindowPos2d
#define glWindowPos2dv                      rglWindowPos2dv
#define glWindowPos2f                       rglWindowPos2f
#define glWindowPos2fv                      rglWindowPos2fv
#define glWindowPos2i                       rglWindowPos2i
#define glWindowPos2iv                      rglWindowPos2iv
#define glWindowPos2s                       rglWindowPos2s
#define glWindowPos2sv                      rglWindowPos2sv
#define glWindowPos3d                       rglWindowPos3d
#define glWindowPos3dv                      rglWindowPos3dv
#define glWindowPos3f                       rglWindowPos3f
#define glWindowPos3fv                      rglWindowPos3fv
#define glWindowPos3i                       rglWindowPos3i
#define glWindowPos3iv                      rglWindowPos3iv
#define glWindowPos3s                       rglWindowPos3s
#define glWindowPos3sv                      rglWindowPos3sv
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_1_4
REGAL_DECL void REGAL_CALL glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
REGAL_DECL void REGAL_CALL glFogCoordPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glFogCoordd(GLdouble coord);
REGAL_DECL void REGAL_CALL glFogCoorddv(const GLdouble *coord);
REGAL_DECL void REGAL_CALL glFogCoordf(GLfloat coord);
REGAL_DECL void REGAL_CALL glFogCoordfv(const GLfloat *coord);
REGAL_DECL void REGAL_CALL glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
REGAL_DECL void REGAL_CALL glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount);
REGAL_DECL void REGAL_CALL glPointParameterf(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL glPointParameterfv(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL glPointParameteri(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL glPointParameteriv(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glSecondaryColor3b(GLbyte red, GLbyte green, GLbyte blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3bv(const GLbyte *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3d(GLdouble red, GLdouble green, GLdouble blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3f(GLfloat red, GLfloat green, GLfloat blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3i(GLint red, GLint green, GLint blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3iv(const GLint *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3s(GLshort red, GLshort green, GLshort blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3ubv(const GLubyte *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3ui(GLuint red, GLuint green, GLuint blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3uiv(const GLuint *v);
REGAL_DECL void REGAL_CALL glSecondaryColor3us(GLushort red, GLushort green, GLushort blue);
REGAL_DECL void REGAL_CALL glSecondaryColor3usv(const GLushort *v);
REGAL_DECL void REGAL_CALL glSecondaryColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL glWindowPos2d(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glWindowPos2dv(const GLdouble *p);
REGAL_DECL void REGAL_CALL glWindowPos2f(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glWindowPos2fv(const GLfloat *p);
REGAL_DECL void REGAL_CALL glWindowPos2i(GLint x, GLint y);
REGAL_DECL void REGAL_CALL glWindowPos2iv(const GLint *p);
REGAL_DECL void REGAL_CALL glWindowPos2s(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glWindowPos2sv(const GLshort *p);
REGAL_DECL void REGAL_CALL glWindowPos3d(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glWindowPos3dv(const GLdouble *p);
REGAL_DECL void REGAL_CALL glWindowPos3f(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glWindowPos3fv(const GLfloat *p);
REGAL_DECL void REGAL_CALL glWindowPos3i(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glWindowPos3iv(const GLint *p);
REGAL_DECL void REGAL_CALL glWindowPos3s(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glWindowPos3sv(const GLshort *p);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_1_4
REGAL_DECL void REGAL_CALL plugin_glBlendFuncSeparate(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
REGAL_DECL void REGAL_CALL plugin_glFogCoordPointer(GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glFogCoordd(GLdouble coord);
REGAL_DECL void REGAL_CALL plugin_glFogCoorddv(const GLdouble *coord);
REGAL_DECL void REGAL_CALL plugin_glFogCoordf(GLfloat coord);
REGAL_DECL void REGAL_CALL plugin_glFogCoordfv(const GLfloat *coord);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawArrays(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glMultiDrawElements(GLenum mode, const GLsizei *count, GLenum type, const GLvoid * const *indices, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glPointParameterf(GLenum pname, GLfloat param);
REGAL_DECL void REGAL_CALL plugin_glPointParameterfv(GLenum pname, const GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glPointParameteri(GLenum pname, GLint param);
REGAL_DECL void REGAL_CALL plugin_glPointParameteriv(GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3b(GLbyte red, GLbyte green, GLbyte blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3bv(const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3d(GLdouble red, GLdouble green, GLdouble blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3dv(const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3f(GLfloat red, GLfloat green, GLfloat blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3fv(const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3i(GLint red, GLint green, GLint blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3iv(const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3s(GLshort red, GLshort green, GLshort blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3sv(const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3ub(GLubyte red, GLubyte green, GLubyte blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3ubv(const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3ui(GLuint red, GLuint green, GLuint blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3uiv(const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3us(GLushort red, GLushort green, GLushort blue);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColor3usv(const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glSecondaryColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2d(GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2dv(const GLdouble *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2f(GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2fv(const GLfloat *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2i(GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2iv(const GLint *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2s(GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glWindowPos2sv(const GLshort *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3d(GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3dv(const GLdouble *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3f(GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3fv(const GLfloat *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3i(GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3iv(const GLint *p);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3s(GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glWindowPos3sv(const GLshort *p);
#endif

/**
 ** GL_VERSION_1_5
 **/

#if (defined(GL_VERSION_1_5) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_1_5)) && !defined(REGAL_NO_ENUM_GL_VERSION_1_5)
#define REGAL_NO_ENUM_GL_VERSION_1_5
#endif

#if (defined(GL_VERSION_1_5) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_1_5)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_1_5)
#define REGAL_NO_TYPEDEF_GL_VERSION_1_5
#endif

#if (defined(GL_VERSION_1_5) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_1_5)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_1_5)
#define REGAL_NO_NAMESPACE_GL_VERSION_1_5
#endif

#if (defined(GL_VERSION_1_5) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_1_5)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_1_5)
#define REGAL_NO_PLUGIN_GL_VERSION_1_5
#endif

#if (defined(GL_VERSION_1_5) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_1_5)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_1_5)
#define REGAL_NO_DECLARATION_GL_VERSION_1_5
#endif

#ifndef GL_VERSION_1_5
#define GL_VERSION_1_5 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_1_5
#define GL_BUFFER_SIZE                          0x8764                                     /* 34660 */
#define GL_BUFFER_USAGE                         0x8765                                     /* 34661 */
#define GL_QUERY_COUNTER_BITS                   0x8864                                     /* 34916 */
#define GL_CURRENT_QUERY                        0x8865                                     /* 34917 */
#define GL_QUERY_RESULT                         0x8866                                     /* 34918 */
#define GL_QUERY_RESULT_AVAILABLE               0x8867                                     /* 34919 */
#define GL_ARRAY_BUFFER                         0x8892                                     /* 34962 */
#define GL_ELEMENT_ARRAY_BUFFER                 0x8893                                     /* 34963 */
#define GL_ARRAY_BUFFER_BINDING                 0x8894                                     /* 34964 */
#define GL_ELEMENT_ARRAY_BUFFER_BINDING         0x8895                                     /* 34965 */
#define GL_VERTEX_ARRAY_BUFFER_BINDING          0x8896                                     /* 34966 */
#define GL_NORMAL_ARRAY_BUFFER_BINDING          0x8897                                     /* 34967 */
#define GL_COLOR_ARRAY_BUFFER_BINDING           0x8898                                     /* 34968 */
#define GL_INDEX_ARRAY_BUFFER_BINDING           0x8899                                     /* 34969 */
#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING   0x889a                                     /* 34970 */
#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING       0x889b                                     /* 34971 */
#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889c                                     /* 34972 */
#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING  0x889d                                     /* 34973 */
#define GL_WEIGHT_ARRAY_BUFFER_BINDING          0x889e                                     /* 34974 */
#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING   0x889f                                     /* 34975 */
#define GL_READ_ONLY                            0x88b8                                     /* 35000 */
#define GL_WRITE_ONLY                           0x88b9                                     /* 35001 */
#define GL_READ_WRITE                           0x88ba                                     /* 35002 */
#define GL_BUFFER_ACCESS                        0x88bb                                     /* 35003 */
#define GL_BUFFER_MAPPED                        0x88bc                                     /* 35004 */
#define GL_BUFFER_MAP_POINTER                   0x88bd                                     /* 35005 */
#define GL_STREAM_DRAW                          0x88e0                                     /* 35040 */
#define GL_STREAM_READ                          0x88e1                                     /* 35041 */
#define GL_STREAM_COPY                          0x88e2                                     /* 35042 */
#define GL_STATIC_DRAW                          0x88e4                                     /* 35044 */
#define GL_STATIC_READ                          0x88e5                                     /* 35045 */
#define GL_STATIC_COPY                          0x88e6                                     /* 35046 */
#define GL_DYNAMIC_DRAW                         0x88e8                                     /* 35048 */
#define GL_DYNAMIC_READ                         0x88e9                                     /* 35049 */
#define GL_DYNAMIC_COPY                         0x88ea                                     /* 35050 */
#define GL_SAMPLES_PASSED                       0x8914                                     /* 35092 */
#define GL_CURRENT_FOG_COORD                    GL_CURRENT_FOG_COORDINATE
#define GL_FOG_COORD                            GL_FOG_COORDINATE
#define GL_FOG_COORD_ARRAY                      GL_FOG_COORDINATE_ARRAY
#define GL_FOG_COORD_ARRAY_BUFFER_BINDING       GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING
#define GL_FOG_COORD_ARRAY_POINTER              GL_FOG_COORDINATE_ARRAY_POINTER
#define GL_FOG_COORD_ARRAY_STRIDE               GL_FOG_COORDINATE_ARRAY_STRIDE
#define GL_FOG_COORD_ARRAY_TYPE                 GL_FOG_COORDINATE_ARRAY_TYPE
#define GL_FOG_COORD_SRC                        GL_FOG_COORDINATE_SOURCE
#define GL_SRC0_ALPHA                           GL_SOURCE0_ALPHA
#define GL_SRC0_RGB                             GL_SOURCE0_RGB
#define GL_SRC1_ALPHA                           GL_SOURCE1_ALPHA
#define GL_SRC1_RGB                             GL_SOURCE1_RGB
#define GL_SRC2_ALPHA                           GL_SOURCE2_ALPHA
#define GL_SRC2_RGB                             GL_SOURCE2_RGB
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_1_5
typedef GLboolean (REGAL_CALL *PFNGLISBUFFERPROC)(GLuint buffer);
typedef GLboolean (REGAL_CALL *PFNGLISQUERYPROC)(GLuint id);
typedef GLboolean (REGAL_CALL *PFNGLUNMAPBUFFERPROC)(GLenum target);
typedef GLvoid *(REGAL_CALL *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access);
typedef void (REGAL_CALL *PFNGLBEGINQUERYPROC)(GLenum target, GLuint id);
typedef void (REGAL_CALL *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
typedef void (REGAL_CALL *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
typedef void (REGAL_CALL *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
typedef void (REGAL_CALL *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint *buffers);
typedef void (REGAL_CALL *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint *ids);
typedef void (REGAL_CALL *PFNGLENDQUERYPROC)(GLenum target);
typedef void (REGAL_CALL *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint *buffers);
typedef void (REGAL_CALL *PFNGLGENQUERIESPROC)(GLsizei n, GLuint *ids);
typedef void (REGAL_CALL *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, GLvoid **params);
typedef void (REGAL_CALL *PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
typedef void (REGAL_CALL *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint *params);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_1_5
#define glBeginQuery                        rglBeginQuery
#define glBindBuffer                        rglBindBuffer
#define glBufferData                        rglBufferData
#define glBufferSubData                     rglBufferSubData
#define glDeleteBuffers                     rglDeleteBuffers
#define glDeleteQueries                     rglDeleteQueries
#define glEndQuery                          rglEndQuery
#define glGenBuffers                        rglGenBuffers
#define glGenQueries                        rglGenQueries
#define glGetBufferParameteriv              rglGetBufferParameteriv
#define glGetBufferPointerv                 rglGetBufferPointerv
#define glGetBufferSubData                  rglGetBufferSubData
#define glGetQueryObjectiv                  rglGetQueryObjectiv
#define glGetQueryObjectuiv                 rglGetQueryObjectuiv
#define glGetQueryiv                        rglGetQueryiv
#define glIsBuffer                          rglIsBuffer
#define glIsQuery                           rglIsQuery
#define glMapBuffer                         rglMapBuffer
#define glUnmapBuffer                       rglUnmapBuffer
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_1_5
REGAL_DECL GLboolean REGAL_CALL glIsBuffer(GLuint buffer);
REGAL_DECL GLboolean REGAL_CALL glIsQuery(GLuint id);
REGAL_DECL GLboolean REGAL_CALL glUnmapBuffer(GLenum target);
REGAL_DECL GLvoid *REGAL_CALL glMapBuffer(GLenum target, GLenum access);
REGAL_DECL void REGAL_CALL glBeginQuery(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL glBindBuffer(GLenum target, GLuint buffer);
REGAL_DECL void REGAL_CALL glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
REGAL_DECL void REGAL_CALL glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
REGAL_DECL void REGAL_CALL glDeleteBuffers(GLsizei n, const GLuint *buffers);
REGAL_DECL void REGAL_CALL glDeleteQueries(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL glEndQuery(GLenum target);
REGAL_DECL void REGAL_CALL glGenBuffers(GLsizei n, GLuint *buffers);
REGAL_DECL void REGAL_CALL glGenQueries(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetBufferPointerv(GLenum target, GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
REGAL_DECL void REGAL_CALL glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glGetQueryiv(GLenum target, GLenum pname, GLint *params);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_1_5
REGAL_DECL GLboolean REGAL_CALL plugin_glIsBuffer(GLuint buffer);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsQuery(GLuint id);
REGAL_DECL GLboolean REGAL_CALL plugin_glUnmapBuffer(GLenum target);
REGAL_DECL GLvoid *REGAL_CALL plugin_glMapBuffer(GLenum target, GLenum access);
REGAL_DECL void REGAL_CALL plugin_glBeginQuery(GLenum target, GLuint id);
REGAL_DECL void REGAL_CALL plugin_glBindBuffer(GLenum target, GLuint buffer);
REGAL_DECL void REGAL_CALL plugin_glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage);
REGAL_DECL void REGAL_CALL plugin_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glDeleteBuffers(GLsizei n, const GLuint *buffers);
REGAL_DECL void REGAL_CALL plugin_glDeleteQueries(GLsizei n, const GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glEndQuery(GLenum target);
REGAL_DECL void REGAL_CALL plugin_glGenBuffers(GLsizei n, GLuint *buffers);
REGAL_DECL void REGAL_CALL plugin_glGenQueries(GLsizei n, GLuint *ids);
REGAL_DECL void REGAL_CALL plugin_glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetBufferPointerv(GLenum target, GLenum pname, GLvoid **params);
REGAL_DECL void REGAL_CALL plugin_glGetBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data);
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetQueryiv(GLenum target, GLenum pname, GLint *params);
#endif

/**
 ** GL_VERSION_2_0
 **/

#if (defined(GL_VERSION_2_0) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_2_0)) && !defined(REGAL_NO_ENUM_GL_VERSION_2_0)
#define REGAL_NO_ENUM_GL_VERSION_2_0
#endif

#if (defined(GL_VERSION_2_0) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_2_0)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_2_0)
#define REGAL_NO_TYPEDEF_GL_VERSION_2_0
#endif

#if (defined(GL_VERSION_2_0) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_2_0)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_2_0)
#define REGAL_NO_NAMESPACE_GL_VERSION_2_0
#endif

#if (defined(GL_VERSION_2_0) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_2_0)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_2_0)
#define REGAL_NO_PLUGIN_GL_VERSION_2_0
#endif

#if (defined(GL_VERSION_2_0) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_2_0)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_2_0)
#define REGAL_NO_DECLARATION_GL_VERSION_2_0
#endif

#ifndef GL_VERSION_2_0
#define GL_VERSION_2_0 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_2_0
#define GL_VERTEX_ATTRIB_ARRAY_ENABLED      0x8622                /* 34338 */
#define GL_VERTEX_ATTRIB_ARRAY_SIZE         0x8623                /* 34339 */
#define GL_VERTEX_ATTRIB_ARRAY_STRIDE       0x8624                /* 34340 */
#define GL_VERTEX_ATTRIB_ARRAY_TYPE         0x8625                /* 34341 */
#define GL_CURRENT_VERTEX_ATTRIB            0x8626                /* 34342 */
#define GL_VERTEX_PROGRAM_POINT_SIZE        0x8642                /* 34370 */
#define GL_VERTEX_PROGRAM_TWO_SIDE          0x8643                /* 34371 */
#define GL_VERTEX_ATTRIB_ARRAY_POINTER      0x8645                /* 34373 */
#define GL_STENCIL_BACK_FUNC                0x8800                /* 34816 */
#define GL_STENCIL_BACK_FAIL                0x8801                /* 34817 */
#define GL_STENCIL_BACK_PASS_DEPTH_FAIL     0x8802                /* 34818 */
#define GL_STENCIL_BACK_PASS_DEPTH_PASS     0x8803                /* 34819 */
#define GL_MAX_DRAW_BUFFERS                 0x8824                /* 34852 */
#define GL_DRAW_BUFFER0                     0x8825                /* 34853 */
#define GL_DRAW_BUFFER1                     0x8826                /* 34854 */
#define GL_DRAW_BUFFER2                     0x8827                /* 34855 */
#define GL_DRAW_BUFFER3                     0x8828                /* 34856 */
#define GL_DRAW_BUFFER4                     0x8829                /* 34857 */
#define GL_DRAW_BUFFER5                     0x882a                /* 34858 */
#define GL_DRAW_BUFFER6                     0x882b                /* 34859 */
#define GL_DRAW_BUFFER7                     0x882c                /* 34860 */
#define GL_DRAW_BUFFER8                     0x882d                /* 34861 */
#define GL_DRAW_BUFFER9                     0x882e                /* 34862 */
#define GL_DRAW_BUFFER10                    0x882f                /* 34863 */
#define GL_DRAW_BUFFER11                    0x8830                /* 34864 */
#define GL_DRAW_BUFFER12                    0x8831                /* 34865 */
#define GL_DRAW_BUFFER13                    0x8832                /* 34866 */
#define GL_DRAW_BUFFER14                    0x8833                /* 34867 */
#define GL_DRAW_BUFFER15                    0x8834                /* 34868 */
#define GL_BLEND_EQUATION_ALPHA             0x883d                /* 34877 */
#define GL_POINT_SPRITE                     0x8861                /* 34913 */
#define GL_COORD_REPLACE                    0x8862                /* 34914 */
#define GL_MAX_VERTEX_ATTRIBS               0x8869                /* 34921 */
#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED   0x886a                /* 34922 */
#define GL_MAX_TEXTURE_COORDS               0x8871                /* 34929 */
#define GL_MAX_TEXTURE_IMAGE_UNITS          0x8872                /* 34930 */
#define GL_FRAGMENT_SHADER                  0x8b30                /* 35632 */
#define GL_VERTEX_SHADER                    0x8b31                /* 35633 */
#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS  0x8b49                /* 35657 */
#define GL_MAX_VERTEX_UNIFORM_COMPONENTS    0x8b4a                /* 35658 */
#define GL_MAX_VARYING_FLOATS               0x8b4b                /* 35659 */
#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS   0x8b4c                /* 35660 */
#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8b4d                /* 35661 */
#define GL_SHADER_TYPE                      0x8b4f                /* 35663 */
#define GL_FLOAT_VEC2                       0x8b50                /* 35664 */
#define GL_FLOAT_VEC3                       0x8b51                /* 35665 */
#define GL_FLOAT_VEC4                       0x8b52                /* 35666 */
#define GL_INT_VEC2                         0x8b53                /* 35667 */
#define GL_INT_VEC3                         0x8b54                /* 35668 */
#define GL_INT_VEC4                         0x8b55                /* 35669 */
#define GL_BOOL                             0x8b56                /* 35670 */
#define GL_BOOL_VEC2                        0x8b57                /* 35671 */
#define GL_BOOL_VEC3                        0x8b58                /* 35672 */
#define GL_BOOL_VEC4                        0x8b59                /* 35673 */
#define GL_FLOAT_MAT2                       0x8b5a                /* 35674 */
#define GL_FLOAT_MAT3                       0x8b5b                /* 35675 */
#define GL_FLOAT_MAT4                       0x8b5c                /* 35676 */
#define GL_SAMPLER_1D                       0x8b5d                /* 35677 */
#define GL_SAMPLER_2D                       0x8b5e                /* 35678 */
#define GL_SAMPLER_3D                       0x8b5f                /* 35679 */
#define GL_SAMPLER_CUBE                     0x8b60                /* 35680 */
#define GL_SAMPLER_1D_SHADOW                0x8b61                /* 35681 */
#define GL_SAMPLER_2D_SHADOW                0x8b62                /* 35682 */
#define GL_DELETE_STATUS                    0x8b80                /* 35712 */
#define GL_COMPILE_STATUS                   0x8b81                /* 35713 */
#define GL_LINK_STATUS                      0x8b82                /* 35714 */
#define GL_VALIDATE_STATUS                  0x8b83                /* 35715 */
#define GL_INFO_LOG_LENGTH                  0x8b84                /* 35716 */
#define GL_ATTACHED_SHADERS                 0x8b85                /* 35717 */
#define GL_ACTIVE_UNIFORMS                  0x8b86                /* 35718 */
#define GL_ACTIVE_UNIFORM_MAX_LENGTH        0x8b87                /* 35719 */
#define GL_SHADER_SOURCE_LENGTH             0x8b88                /* 35720 */
#define GL_ACTIVE_ATTRIBUTES                0x8b89                /* 35721 */
#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH      0x8b8a                /* 35722 */
#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT  0x8b8b                /* 35723 */
#define GL_SHADING_LANGUAGE_VERSION         0x8b8c                /* 35724 */
#define GL_CURRENT_PROGRAM                  0x8b8d                /* 35725 */
#define GL_POINT_SPRITE_COORD_ORIGIN        0x8ca0                /* 36000 */
#define GL_LOWER_LEFT                       0x8ca1                /* 36001 */
#define GL_UPPER_LEFT                       0x8ca2                /* 36002 */
#define GL_STENCIL_BACK_REF                 0x8ca3                /* 36003 */
#define GL_STENCIL_BACK_VALUE_MASK          0x8ca4                /* 36004 */
#define GL_STENCIL_BACK_WRITEMASK           0x8ca5                /* 36005 */
#define GL_BLEND_EQUATION_RGB               GL_BLEND_EQUATION
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_2_0
typedef GLboolean (REGAL_CALL *PFNGLISPROGRAMPROC)(GLuint program);
typedef GLboolean (REGAL_CALL *PFNGLISSHADERPROC)(GLuint shader);
typedef GLint (REGAL_CALL *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar *name);
typedef GLint (REGAL_CALL *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar *name);
typedef GLuint (REGAL_CALL *PFNGLCREATEPROGRAMPROC)(void);
typedef GLuint (REGAL_CALL *PFNGLCREATESHADERPROC)(GLenum type);
typedef void (REGAL_CALL *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
typedef void (REGAL_CALL *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar *name);
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
typedef void (REGAL_CALL *PFNGLCOMPILESHADERPROC)(GLuint shader);
typedef void (REGAL_CALL *PFNGLDELETEPROGRAMPROC)(GLuint program);
typedef void (REGAL_CALL *PFNGLDELETESHADERPROC)(GLuint shader);
typedef void (REGAL_CALL *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
typedef void (REGAL_CALL *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
typedef void (REGAL_CALL *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum *bufs);
typedef void (REGAL_CALL *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
typedef void (REGAL_CALL *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
typedef void (REGAL_CALL *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
typedef void (REGAL_CALL *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
typedef void (REGAL_CALL *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
typedef void (REGAL_CALL *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
typedef void (REGAL_CALL *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
typedef void (REGAL_CALL *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, GLvoid **pointer);
typedef void (REGAL_CALL *PFNGLLINKPROGRAMPROC)(GLuint program);
typedef void (REGAL_CALL *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar * const *string, const GLint *length);
typedef void (REGAL_CALL *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
typedef void (REGAL_CALL *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
typedef void (REGAL_CALL *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
typedef void (REGAL_CALL *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
typedef void (REGAL_CALL *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
typedef void (REGAL_CALL *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
typedef void (REGAL_CALL *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
typedef void (REGAL_CALL *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
typedef void (REGAL_CALL *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
typedef void (REGAL_CALL *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
typedef void (REGAL_CALL *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
typedef void (REGAL_CALL *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUSEPROGRAMPROC)(GLuint program);
typedef void (REGAL_CALL *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_2_0
#define glAttachShader                      rglAttachShader
#define glBindAttribLocation                rglBindAttribLocation
#define glBlendEquationSeparate             rglBlendEquationSeparate
#define glCompileShader                     rglCompileShader
#define glCreateProgram                     rglCreateProgram
#define glCreateShader                      rglCreateShader
#define glDeleteProgram                     rglDeleteProgram
#define glDeleteShader                      rglDeleteShader
#define glDetachShader                      rglDetachShader
#define glDisableVertexAttribArray          rglDisableVertexAttribArray
#define glDrawBuffers                       rglDrawBuffers
#define glEnableVertexAttribArray           rglEnableVertexAttribArray
#define glGetActiveAttrib                   rglGetActiveAttrib
#define glGetActiveUniform                  rglGetActiveUniform
#define glGetAttachedShaders                rglGetAttachedShaders
#define glGetAttribLocation                 rglGetAttribLocation
#define glGetProgramInfoLog                 rglGetProgramInfoLog
#define glGetProgramiv                      rglGetProgramiv
#define glGetShaderInfoLog                  rglGetShaderInfoLog
#define glGetShaderSource                   rglGetShaderSource
#define glGetShaderiv                       rglGetShaderiv
#define glGetUniformLocation                rglGetUniformLocation
#define glGetUniformfv                      rglGetUniformfv
#define glGetUniformiv                      rglGetUniformiv
#define glGetVertexAttribPointerv           rglGetVertexAttribPointerv
#define glGetVertexAttribdv                 rglGetVertexAttribdv
#define glGetVertexAttribfv                 rglGetVertexAttribfv
#define glGetVertexAttribiv                 rglGetVertexAttribiv
#define glIsProgram                         rglIsProgram
#define glIsShader                          rglIsShader
#define glLinkProgram                       rglLinkProgram
#define glShaderSource                      rglShaderSource
#define glStencilFuncSeparate               rglStencilFuncSeparate
#define glStencilMaskSeparate               rglStencilMaskSeparate
#define glStencilOpSeparate                 rglStencilOpSeparate
#define glUniform1f                         rglUniform1f
#define glUniform1fv                        rglUniform1fv
#define glUniform1i                         rglUniform1i
#define glUniform1iv                        rglUniform1iv
#define glUniform2f                         rglUniform2f
#define glUniform2fv                        rglUniform2fv
#define glUniform2i                         rglUniform2i
#define glUniform2iv                        rglUniform2iv
#define glUniform3f                         rglUniform3f
#define glUniform3fv                        rglUniform3fv
#define glUniform3i                         rglUniform3i
#define glUniform3iv                        rglUniform3iv
#define glUniform4f                         rglUniform4f
#define glUniform4fv                        rglUniform4fv
#define glUniform4i                         rglUniform4i
#define glUniform4iv                        rglUniform4iv
#define glUniformMatrix2fv                  rglUniformMatrix2fv
#define glUniformMatrix3fv                  rglUniformMatrix3fv
#define glUniformMatrix4fv                  rglUniformMatrix4fv
#define glUseProgram                        rglUseProgram
#define glValidateProgram                   rglValidateProgram
#define glVertexAttrib1d                    rglVertexAttrib1d
#define glVertexAttrib1dv                   rglVertexAttrib1dv
#define glVertexAttrib1f                    rglVertexAttrib1f
#define glVertexAttrib1fv                   rglVertexAttrib1fv
#define glVertexAttrib1s                    rglVertexAttrib1s
#define glVertexAttrib1sv                   rglVertexAttrib1sv
#define glVertexAttrib2d                    rglVertexAttrib2d
#define glVertexAttrib2dv                   rglVertexAttrib2dv
#define glVertexAttrib2f                    rglVertexAttrib2f
#define glVertexAttrib2fv                   rglVertexAttrib2fv
#define glVertexAttrib2s                    rglVertexAttrib2s
#define glVertexAttrib2sv                   rglVertexAttrib2sv
#define glVertexAttrib3d                    rglVertexAttrib3d
#define glVertexAttrib3dv                   rglVertexAttrib3dv
#define glVertexAttrib3f                    rglVertexAttrib3f
#define glVertexAttrib3fv                   rglVertexAttrib3fv
#define glVertexAttrib3s                    rglVertexAttrib3s
#define glVertexAttrib3sv                   rglVertexAttrib3sv
#define glVertexAttrib4Nbv                  rglVertexAttrib4Nbv
#define glVertexAttrib4Niv                  rglVertexAttrib4Niv
#define glVertexAttrib4Nsv                  rglVertexAttrib4Nsv
#define glVertexAttrib4Nub                  rglVertexAttrib4Nub
#define glVertexAttrib4Nubv                 rglVertexAttrib4Nubv
#define glVertexAttrib4Nuiv                 rglVertexAttrib4Nuiv
#define glVertexAttrib4Nusv                 rglVertexAttrib4Nusv
#define glVertexAttrib4bv                   rglVertexAttrib4bv
#define glVertexAttrib4d                    rglVertexAttrib4d
#define glVertexAttrib4dv                   rglVertexAttrib4dv
#define glVertexAttrib4f                    rglVertexAttrib4f
#define glVertexAttrib4fv                   rglVertexAttrib4fv
#define glVertexAttrib4iv                   rglVertexAttrib4iv
#define glVertexAttrib4s                    rglVertexAttrib4s
#define glVertexAttrib4sv                   rglVertexAttrib4sv
#define glVertexAttrib4ubv                  rglVertexAttrib4ubv
#define glVertexAttrib4uiv                  rglVertexAttrib4uiv
#define glVertexAttrib4usv                  rglVertexAttrib4usv
#define glVertexAttribPointer               rglVertexAttribPointer
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_2_0
REGAL_DECL GLboolean REGAL_CALL glIsProgram(GLuint program);
REGAL_DECL GLboolean REGAL_CALL glIsShader(GLuint shader);
REGAL_DECL GLint REGAL_CALL glGetAttribLocation(GLuint program, const GLchar *name);
REGAL_DECL GLint REGAL_CALL glGetUniformLocation(GLuint program, const GLchar *name);
REGAL_DECL GLuint REGAL_CALL glCreateProgram(void);
REGAL_DECL GLuint REGAL_CALL glCreateShader(GLenum type);
REGAL_DECL void REGAL_CALL glAttachShader(GLuint program, GLuint shader);
REGAL_DECL void REGAL_CALL glBindAttribLocation(GLuint program, GLuint index, const GLchar *name);
REGAL_DECL void REGAL_CALL glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
REGAL_DECL void REGAL_CALL glCompileShader(GLuint shader);
REGAL_DECL void REGAL_CALL glDeleteProgram(GLuint program);
REGAL_DECL void REGAL_CALL glDeleteShader(GLuint shader);
REGAL_DECL void REGAL_CALL glDetachShader(GLuint program, GLuint shader);
REGAL_DECL void REGAL_CALL glDisableVertexAttribArray(GLuint index);
REGAL_DECL void REGAL_CALL glDrawBuffers(GLsizei n, const GLenum *bufs);
REGAL_DECL void REGAL_CALL glEnableVertexAttribArray(GLuint index);
REGAL_DECL void REGAL_CALL glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
REGAL_DECL void REGAL_CALL glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
REGAL_DECL void REGAL_CALL glGetProgramiv(GLuint program, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
REGAL_DECL void REGAL_CALL glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
REGAL_DECL void REGAL_CALL glGetShaderiv(GLuint shader, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetUniformfv(GLuint program, GLint location, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetUniformiv(GLuint program, GLint location, GLint *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer);
REGAL_DECL void REGAL_CALL glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glLinkProgram(GLuint program);
REGAL_DECL void REGAL_CALL glShaderSource(GLuint shader, GLsizei count, const GLchar * const *string, const GLint *length);
REGAL_DECL void REGAL_CALL glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
REGAL_DECL void REGAL_CALL glStencilMaskSeparate(GLenum face, GLuint mask);
REGAL_DECL void REGAL_CALL glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
REGAL_DECL void REGAL_CALL glUniform1f(GLint location, GLfloat v0);
REGAL_DECL void REGAL_CALL glUniform1fv(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniform1i(GLint location, GLint v0);
REGAL_DECL void REGAL_CALL glUniform1iv(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glUniform2f(GLint location, GLfloat v0, GLfloat v1);
REGAL_DECL void REGAL_CALL glUniform2fv(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniform2i(GLint location, GLint v0, GLint v1);
REGAL_DECL void REGAL_CALL glUniform2iv(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
REGAL_DECL void REGAL_CALL glUniform3fv(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);
REGAL_DECL void REGAL_CALL glUniform3iv(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
REGAL_DECL void REGAL_CALL glUniform4fv(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
REGAL_DECL void REGAL_CALL glUniform4iv(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUseProgram(GLuint program);
REGAL_DECL void REGAL_CALL glValidateProgram(GLuint program);
REGAL_DECL void REGAL_CALL glVertexAttrib1d(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL glVertexAttrib1dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib1f(GLuint index, GLfloat x);
REGAL_DECL void REGAL_CALL glVertexAttrib1fv(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib1s(GLuint index, GLshort x);
REGAL_DECL void REGAL_CALL glVertexAttrib1sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL glVertexAttrib2dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL glVertexAttrib2fv(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib2s(GLuint index, GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL glVertexAttrib2sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL glVertexAttrib3dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL glVertexAttrib3fv(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL glVertexAttrib3sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4Nbv(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4Niv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4Nsv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
REGAL_DECL void REGAL_CALL glVertexAttrib4Nubv(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4Nuiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4Nusv(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4bv(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL glVertexAttrib4dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL glVertexAttrib4fv(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL glVertexAttrib4sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4ubv(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttrib4usv(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_2_0
REGAL_DECL GLboolean REGAL_CALL plugin_glIsProgram(GLuint program);
REGAL_DECL GLboolean REGAL_CALL plugin_glIsShader(GLuint shader);
REGAL_DECL GLint REGAL_CALL plugin_glGetAttribLocation(GLuint program, const GLchar *name);
REGAL_DECL GLint REGAL_CALL plugin_glGetUniformLocation(GLuint program, const GLchar *name);
REGAL_DECL GLuint REGAL_CALL plugin_glCreateProgram(void);
REGAL_DECL GLuint REGAL_CALL plugin_glCreateShader(GLenum type);
REGAL_DECL void REGAL_CALL plugin_glAttachShader(GLuint program, GLuint shader);
REGAL_DECL void REGAL_CALL plugin_glBindAttribLocation(GLuint program, GLuint index, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
REGAL_DECL void REGAL_CALL plugin_glCompileShader(GLuint shader);
REGAL_DECL void REGAL_CALL plugin_glDeleteProgram(GLuint program);
REGAL_DECL void REGAL_CALL plugin_glDeleteShader(GLuint shader);
REGAL_DECL void REGAL_CALL plugin_glDetachShader(GLuint program, GLuint shader);
REGAL_DECL void REGAL_CALL plugin_glDisableVertexAttribArray(GLuint index);
REGAL_DECL void REGAL_CALL plugin_glDrawBuffers(GLsizei n, const GLenum *bufs);
REGAL_DECL void REGAL_CALL plugin_glEnableVertexAttribArray(GLuint index);
REGAL_DECL void REGAL_CALL plugin_glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetActiveUniform(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetAttachedShaders(GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders);
REGAL_DECL void REGAL_CALL plugin_glGetProgramInfoLog(GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
REGAL_DECL void REGAL_CALL plugin_glGetProgramiv(GLuint program, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog);
REGAL_DECL void REGAL_CALL plugin_glGetShaderSource(GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source);
REGAL_DECL void REGAL_CALL plugin_glGetShaderiv(GLuint shader, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetUniformfv(GLuint program, GLint location, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetUniformiv(GLuint program, GLint location, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid **pointer);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribdv(GLuint index, GLenum pname, GLdouble *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribiv(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glLinkProgram(GLuint program);
REGAL_DECL void REGAL_CALL plugin_glShaderSource(GLuint shader, GLsizei count, const GLchar * const *string, const GLint *length);
REGAL_DECL void REGAL_CALL plugin_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glStencilMaskSeparate(GLenum face, GLuint mask);
REGAL_DECL void REGAL_CALL plugin_glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
REGAL_DECL void REGAL_CALL plugin_glUniform1f(GLint location, GLfloat v0);
REGAL_DECL void REGAL_CALL plugin_glUniform1fv(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniform1i(GLint location, GLint v0);
REGAL_DECL void REGAL_CALL plugin_glUniform1iv(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2f(GLint location, GLfloat v0, GLfloat v1);
REGAL_DECL void REGAL_CALL plugin_glUniform2fv(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2i(GLint location, GLint v0, GLint v1);
REGAL_DECL void REGAL_CALL plugin_glUniform2iv(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
REGAL_DECL void REGAL_CALL plugin_glUniform3fv(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);
REGAL_DECL void REGAL_CALL plugin_glUniform3iv(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
REGAL_DECL void REGAL_CALL plugin_glUniform4fv(GLint location, GLsizei count, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
REGAL_DECL void REGAL_CALL plugin_glUniform4iv(GLint location, GLsizei count, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUseProgram(GLuint program);
REGAL_DECL void REGAL_CALL plugin_glValidateProgram(GLuint program);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1d(GLuint index, GLdouble x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1f(GLuint index, GLfloat x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1fv(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1s(GLuint index, GLshort x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib1sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2d(GLuint index, GLdouble x, GLdouble y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2f(GLuint index, GLfloat x, GLfloat y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2fv(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2s(GLuint index, GLshort x, GLshort y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib2sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3d(GLuint index, GLdouble x, GLdouble y, GLdouble z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3fv(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3s(GLuint index, GLshort x, GLshort y, GLshort z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib3sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4Nbv(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4Niv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4Nsv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4Nub(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4Nubv(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4Nuiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4Nusv(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4bv(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4d(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4dv(GLuint index, const GLdouble *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4fv(GLuint index, const GLfloat *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4s(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4ubv(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttrib4usv(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_VERSION_2_1
 **/

#if (defined(GL_VERSION_2_1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_2_1)) && !defined(REGAL_NO_ENUM_GL_VERSION_2_1)
#define REGAL_NO_ENUM_GL_VERSION_2_1
#endif

#if (defined(GL_VERSION_2_1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_2_1)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_2_1)
#define REGAL_NO_TYPEDEF_GL_VERSION_2_1
#endif

#if (defined(GL_VERSION_2_1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_2_1)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_2_1)
#define REGAL_NO_NAMESPACE_GL_VERSION_2_1
#endif

#if (defined(GL_VERSION_2_1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_2_1)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_2_1)
#define REGAL_NO_PLUGIN_GL_VERSION_2_1
#endif

#if (defined(GL_VERSION_2_1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_2_1)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_2_1)
#define REGAL_NO_DECLARATION_GL_VERSION_2_1
#endif

#ifndef GL_VERSION_2_1
#define GL_VERSION_2_1 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_2_1
#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845f     /* 33887 */
#define GL_PIXEL_PACK_BUFFER              0x88eb     /* 35051 */
#define GL_PIXEL_UNPACK_BUFFER            0x88ec     /* 35052 */
#define GL_PIXEL_PACK_BUFFER_BINDING      0x88ed     /* 35053 */
#define GL_PIXEL_UNPACK_BUFFER_BINDING    0x88ef     /* 35055 */
#define GL_FLOAT_MAT2x3                   0x8b65     /* 35685 */
#define GL_FLOAT_MAT2x4                   0x8b66     /* 35686 */
#define GL_FLOAT_MAT3x2                   0x8b67     /* 35687 */
#define GL_FLOAT_MAT3x4                   0x8b68     /* 35688 */
#define GL_FLOAT_MAT4x2                   0x8b69     /* 35689 */
#define GL_FLOAT_MAT4x3                   0x8b6a     /* 35690 */
#define GL_SRGB                           0x8c40     /* 35904 */
#define GL_SRGB8                          0x8c41     /* 35905 */
#define GL_SRGB_ALPHA                     0x8c42     /* 35906 */
#define GL_SRGB8_ALPHA8                   0x8c43     /* 35907 */
#define GL_SLUMINANCE_ALPHA               0x8c44     /* 35908 */
#define GL_SLUMINANCE8_ALPHA8             0x8c45     /* 35909 */
#define GL_SLUMINANCE                     0x8c46     /* 35910 */
#define GL_SLUMINANCE8                    0x8c47     /* 35911 */
#define GL_COMPRESSED_SRGB                0x8c48     /* 35912 */
#define GL_COMPRESSED_SRGB_ALPHA          0x8c49     /* 35913 */
#define GL_COMPRESSED_SLUMINANCE          0x8c4a     /* 35914 */
#define GL_COMPRESSED_SLUMINANCE_ALPHA    0x8c4b     /* 35915 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_2_1
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_2_1
#define glUniformMatrix2x3fv                rglUniformMatrix2x3fv
#define glUniformMatrix2x4fv                rglUniformMatrix2x4fv
#define glUniformMatrix3x2fv                rglUniformMatrix3x2fv
#define glUniformMatrix3x4fv                rglUniformMatrix3x4fv
#define glUniformMatrix4x2fv                rglUniformMatrix4x2fv
#define glUniformMatrix4x3fv                rglUniformMatrix4x3fv
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_2_1
REGAL_DECL void REGAL_CALL glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_2_1
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
#endif

/**
 ** GL_VERSION_3_0
 **/

#if (defined(GL_VERSION_3_0) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_3_0)) && !defined(REGAL_NO_ENUM_GL_VERSION_3_0)
#define REGAL_NO_ENUM_GL_VERSION_3_0
#endif

#if (defined(GL_VERSION_3_0) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_3_0)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_3_0)
#define REGAL_NO_TYPEDEF_GL_VERSION_3_0
#endif

#if (defined(GL_VERSION_3_0) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_3_0)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_3_0)
#define REGAL_NO_NAMESPACE_GL_VERSION_3_0
#endif

#if (defined(GL_VERSION_3_0) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_3_0)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_3_0)
#define REGAL_NO_PLUGIN_GL_VERSION_3_0
#endif

#if (defined(GL_VERSION_3_0) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_3_0)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_3_0)
#define REGAL_NO_DECLARATION_GL_VERSION_3_0
#endif

#ifndef GL_VERSION_3_0
#define GL_VERSION_3_0 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_3_0
#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT           0x1
#define GL_MAJOR_VERSION                                 0x821b                          /* 33307 */
#define GL_MINOR_VERSION                                 0x821c                          /* 33308 */
#define GL_NUM_EXTENSIONS                                0x821d                          /* 33309 */
#define GL_CONTEXT_FLAGS                                 0x821e                          /* 33310 */
#define GL_DEPTH_BUFFER                                  0x8223                          /* 33315 */
#define GL_STENCIL_BUFFER                                0x8224                          /* 33316 */
#define GL_RGBA32F                                       0x8814                          /* 34836 */
#define GL_RGB32F                                        0x8815                          /* 34837 */
#define GL_RGBA16F                                       0x881a                          /* 34842 */
#define GL_RGB16F                                        0x881b                          /* 34843 */
#define GL_VERTEX_ATTRIB_ARRAY_INTEGER                   0x88fd                          /* 35069 */
#define GL_MAX_ARRAY_TEXTURE_LAYERS                      0x88ff                          /* 35071 */
#define GL_MIN_PROGRAM_TEXEL_OFFSET                      0x8904                          /* 35076 */
#define GL_MAX_PROGRAM_TEXEL_OFFSET                      0x8905                          /* 35077 */
#define GL_CLAMP_VERTEX_COLOR                            0x891a                          /* 35098 */
#define GL_CLAMP_FRAGMENT_COLOR                          0x891b                          /* 35099 */
#define GL_CLAMP_READ_COLOR                              0x891c                          /* 35100 */
#define GL_FIXED_ONLY                                    0x891d                          /* 35101 */
#define GL_TEXTURE_RED_TYPE                              0x8c10                          /* 35856 */
#define GL_TEXTURE_GREEN_TYPE                            0x8c11                          /* 35857 */
#define GL_TEXTURE_BLUE_TYPE                             0x8c12                          /* 35858 */
#define GL_TEXTURE_ALPHA_TYPE                            0x8c13                          /* 35859 */
#define GL_TEXTURE_LUMINANCE_TYPE                        0x8c14                          /* 35860 */
#define GL_TEXTURE_INTENSITY_TYPE                        0x8c15                          /* 35861 */
#define GL_TEXTURE_DEPTH_TYPE                            0x8c16                          /* 35862 */
#define GL_TEXTURE_1D_ARRAY                              0x8c18                          /* 35864 */
#define GL_PROXY_TEXTURE_1D_ARRAY                        0x8c19                          /* 35865 */
#define GL_TEXTURE_2D_ARRAY                              0x8c1a                          /* 35866 */
#define GL_PROXY_TEXTURE_2D_ARRAY                        0x8c1b                          /* 35867 */
#define GL_TEXTURE_BINDING_1D_ARRAY                      0x8c1c                          /* 35868 */
#define GL_TEXTURE_BINDING_2D_ARRAY                      0x8c1d                          /* 35869 */
#define GL_R11F_G11F_B10F                                0x8c3a                          /* 35898 */
#define GL_UNSIGNED_INT_10F_11F_11F_REV                  0x8c3b                          /* 35899 */
#define GL_RGB9_E5                                       0x8c3d                          /* 35901 */
#define GL_UNSIGNED_INT_5_9_9_9_REV                      0x8c3e                          /* 35902 */
#define GL_TEXTURE_SHARED_SIZE                           0x8c3f                          /* 35903 */
#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH         0x8c76                          /* 35958 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE                0x8c7f                          /* 35967 */
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS    0x8c80                          /* 35968 */
#define GL_TRANSFORM_FEEDBACK_VARYINGS                   0x8c83                          /* 35971 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_START               0x8c84                          /* 35972 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE                0x8c85                          /* 35973 */
#define GL_PRIMITIVES_GENERATED                          0x8c87                          /* 35975 */
#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN         0x8c88                          /* 35976 */
#define GL_RASTERIZER_DISCARD                            0x8c89                          /* 35977 */
#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8c8a                          /* 35978 */
#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS       0x8c8b                          /* 35979 */
#define GL_INTERLEAVED_ATTRIBS                           0x8c8c                          /* 35980 */
#define GL_SEPARATE_ATTRIBS                              0x8c8d                          /* 35981 */
#define GL_TRANSFORM_FEEDBACK_BUFFER                     0x8c8e                          /* 35982 */
#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING             0x8c8f                          /* 35983 */
#define GL_RGBA32UI                                      0x8d70                          /* 36208 */
#define GL_RGB32UI                                       0x8d71                          /* 36209 */
#define GL_RGBA16UI                                      0x8d76                          /* 36214 */
#define GL_RGB16UI                                       0x8d77                          /* 36215 */
#define GL_RGBA8UI                                       0x8d7c                          /* 36220 */
#define GL_RGB8UI                                        0x8d7d                          /* 36221 */
#define GL_RGBA32I                                       0x8d82                          /* 36226 */
#define GL_RGB32I                                        0x8d83                          /* 36227 */
#define GL_RGBA16I                                       0x8d88                          /* 36232 */
#define GL_RGB16I                                        0x8d89                          /* 36233 */
#define GL_RGBA8I                                        0x8d8e                          /* 36238 */
#define GL_RGB8I                                         0x8d8f                          /* 36239 */
#define GL_RED_INTEGER                                   0x8d94                          /* 36244 */
#define GL_GREEN_INTEGER                                 0x8d95                          /* 36245 */
#define GL_BLUE_INTEGER                                  0x8d96                          /* 36246 */
#define GL_ALPHA_INTEGER                                 0x8d97                          /* 36247 */
#define GL_RGB_INTEGER                                   0x8d98                          /* 36248 */
#define GL_RGBA_INTEGER                                  0x8d99                          /* 36249 */
#define GL_BGR_INTEGER                                   0x8d9a                          /* 36250 */
#define GL_BGRA_INTEGER                                  0x8d9b                          /* 36251 */
#define GL_SAMPLER_1D_ARRAY                              0x8dc0                          /* 36288 */
#define GL_SAMPLER_2D_ARRAY                              0x8dc1                          /* 36289 */
#define GL_SAMPLER_1D_ARRAY_SHADOW                       0x8dc3                          /* 36291 */
#define GL_SAMPLER_2D_ARRAY_SHADOW                       0x8dc4                          /* 36292 */
#define GL_SAMPLER_CUBE_SHADOW                           0x8dc5                          /* 36293 */
#define GL_UNSIGNED_INT_VEC2                             0x8dc6                          /* 36294 */
#define GL_UNSIGNED_INT_VEC3                             0x8dc7                          /* 36295 */
#define GL_UNSIGNED_INT_VEC4                             0x8dc8                          /* 36296 */
#define GL_INT_SAMPLER_1D                                0x8dc9                          /* 36297 */
#define GL_INT_SAMPLER_2D                                0x8dca                          /* 36298 */
#define GL_INT_SAMPLER_3D                                0x8dcb                          /* 36299 */
#define GL_INT_SAMPLER_CUBE                              0x8dcc                          /* 36300 */
#define GL_INT_SAMPLER_1D_ARRAY                          0x8dce                          /* 36302 */
#define GL_INT_SAMPLER_2D_ARRAY                          0x8dcf                          /* 36303 */
#define GL_UNSIGNED_INT_SAMPLER_1D                       0x8dd1                          /* 36305 */
#define GL_UNSIGNED_INT_SAMPLER_2D                       0x8dd2                          /* 36306 */
#define GL_UNSIGNED_INT_SAMPLER_3D                       0x8dd3                          /* 36307 */
#define GL_UNSIGNED_INT_SAMPLER_CUBE                     0x8dd4                          /* 36308 */
#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY                 0x8dd6                          /* 36310 */
#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY                 0x8dd7                          /* 36311 */
#define GL_QUERY_WAIT                                    0x8e13                          /* 36371 */
#define GL_QUERY_NO_WAIT                                 0x8e14                          /* 36372 */
#define GL_QUERY_BY_REGION_WAIT                          0x8e15                          /* 36373 */
#define GL_QUERY_BY_REGION_NO_WAIT                       0x8e16                          /* 36374 */
#define GL_CLIP_DISTANCE0                                GL_CLIP_PLANE0
#define GL_CLIP_DISTANCE1                                GL_CLIP_PLANE1
#define GL_CLIP_DISTANCE2                                GL_CLIP_PLANE2
#define GL_CLIP_DISTANCE3                                GL_CLIP_PLANE3
#define GL_CLIP_DISTANCE4                                GL_CLIP_PLANE4
#define GL_CLIP_DISTANCE5                                GL_CLIP_PLANE5
#define GL_CLIP_DISTANCE6                                GL_CLIP_PLANE6
#define GL_CLIP_DISTANCE7                                GL_CLIP_PLANE7
#define GL_COMPARE_REF_TO_TEXTURE                        GL_COMPARE_R_TO_TEXTURE_ARB
#define GL_MAX_CLIP_DISTANCES                            GL_MAX_CLIP_PLANES
#define GL_MAX_VARYING_COMPONENTS                        GL_MAX_VARYING_FLOATS
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_3_0
typedef GLboolean (REGAL_CALL *PFNGLISENABLEDIPROC)(GLenum target, GLuint index);
typedef GLint (REGAL_CALL *PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar *name);
typedef const GLubyte *(REGAL_CALL *PFNGLGETSTRINGIPROC)(GLenum name, GLuint index);
typedef void (REGAL_CALL *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
typedef void (REGAL_CALL *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
typedef void (REGAL_CALL *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar *name);
typedef void (REGAL_CALL *PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp);
typedef void (REGAL_CALL *PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
typedef void (REGAL_CALL *PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat *value);
typedef void (REGAL_CALL *PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint *value);
typedef void (REGAL_CALL *PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint *value);
typedef void (REGAL_CALL *PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
typedef void (REGAL_CALL *PFNGLDISABLEIPROC)(GLenum cap, GLuint index);
typedef void (REGAL_CALL *PFNGLENABLEIPROC)(GLenum cap, GLuint index);
typedef void (REGAL_CALL *PFNGLENDCONDITIONALRENDERPROC)(void);
typedef void (REGAL_CALL *PFNGLENDTRANSFORMFEEDBACKPROC)(void);
typedef void (REGAL_CALL *PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean *data);
typedef void (REGAL_CALL *PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
typedef void (REGAL_CALL *PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint *params);
typedef void (REGAL_CALL *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint *params);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint *params);
typedef void (REGAL_CALL *PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint *params);
typedef void (REGAL_CALL *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar * const *varyings, GLenum bufferMode);
typedef void (REGAL_CALL *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0);
typedef void (REGAL_CALL *PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1);
typedef void (REGAL_CALL *PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
typedef void (REGAL_CALL *PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
typedef void (REGAL_CALL *PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint *value);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort *v);
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_3_0
#define glBeginConditionalRender            rglBeginConditionalRender
#define glBeginTransformFeedback            rglBeginTransformFeedback
#define glBindFragDataLocation              rglBindFragDataLocation
#define glClampColor                        rglClampColor
#define glClearBufferfi                     rglClearBufferfi
#define glClearBufferfv                     rglClearBufferfv
#define glClearBufferiv                     rglClearBufferiv
#define glClearBufferuiv                    rglClearBufferuiv
#define glColorMaski                        rglColorMaski
#define glDisablei                          rglDisablei
#define glEnablei                           rglEnablei
#define glEndConditionalRender              rglEndConditionalRender
#define glEndTransformFeedback              rglEndTransformFeedback
#define glGetBooleani_v                     rglGetBooleani_v
#define glGetFragDataLocation               rglGetFragDataLocation
#define glGetStringi                        rglGetStringi
#define glGetTexParameterIiv                rglGetTexParameterIiv
#define glGetTexParameterIuiv               rglGetTexParameterIuiv
#define glGetTransformFeedbackVarying       rglGetTransformFeedbackVarying
#define glGetUniformuiv                     rglGetUniformuiv
#define glGetVertexAttribIiv                rglGetVertexAttribIiv
#define glGetVertexAttribIuiv               rglGetVertexAttribIuiv
#define glIsEnabledi                        rglIsEnabledi
#define glTexParameterIiv                   rglTexParameterIiv
#define glTexParameterIuiv                  rglTexParameterIuiv
#define glTransformFeedbackVaryings         rglTransformFeedbackVaryings
#define glUniform1ui                        rglUniform1ui
#define glUniform1uiv                       rglUniform1uiv
#define glUniform2ui                        rglUniform2ui
#define glUniform2uiv                       rglUniform2uiv
#define glUniform3ui                        rglUniform3ui
#define glUniform3uiv                       rglUniform3uiv
#define glUniform4ui                        rglUniform4ui
#define glUniform4uiv                       rglUniform4uiv
#define glVertexAttribI1i                   rglVertexAttribI1i
#define glVertexAttribI1iv                  rglVertexAttribI1iv
#define glVertexAttribI1ui                  rglVertexAttribI1ui
#define glVertexAttribI1uiv                 rglVertexAttribI1uiv
#define glVertexAttribI2i                   rglVertexAttribI2i
#define glVertexAttribI2iv                  rglVertexAttribI2iv
#define glVertexAttribI2ui                  rglVertexAttribI2ui
#define glVertexAttribI2uiv                 rglVertexAttribI2uiv
#define glVertexAttribI3i                   rglVertexAttribI3i
#define glVertexAttribI3iv                  rglVertexAttribI3iv
#define glVertexAttribI3ui                  rglVertexAttribI3ui
#define glVertexAttribI3uiv                 rglVertexAttribI3uiv
#define glVertexAttribI4bv                  rglVertexAttribI4bv
#define glVertexAttribI4i                   rglVertexAttribI4i
#define glVertexAttribI4iv                  rglVertexAttribI4iv
#define glVertexAttribI4sv                  rglVertexAttribI4sv
#define glVertexAttribI4ubv                 rglVertexAttribI4ubv
#define glVertexAttribI4ui                  rglVertexAttribI4ui
#define glVertexAttribI4uiv                 rglVertexAttribI4uiv
#define glVertexAttribI4usv                 rglVertexAttribI4usv
#define glVertexAttribIPointer              rglVertexAttribIPointer
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_3_0
REGAL_DECL GLboolean REGAL_CALL glIsEnabledi(GLenum target, GLuint index);
REGAL_DECL GLint REGAL_CALL glGetFragDataLocation(GLuint program, const GLchar *name);
REGAL_DECL const GLubyte *REGAL_CALL glGetStringi(GLenum name, GLuint index);
REGAL_DECL void REGAL_CALL glBeginConditionalRender(GLuint id, GLenum mode);
REGAL_DECL void REGAL_CALL glBeginTransformFeedback(GLenum primitiveMode);
REGAL_DECL void REGAL_CALL glBindFragDataLocation(GLuint program, GLuint color, const GLchar *name);
REGAL_DECL void REGAL_CALL glClampColor(GLenum target, GLenum clamp);
REGAL_DECL void REGAL_CALL glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
REGAL_DECL void REGAL_CALL glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value);
REGAL_DECL void REGAL_CALL glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value);
REGAL_DECL void REGAL_CALL glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value);
REGAL_DECL void REGAL_CALL glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
REGAL_DECL void REGAL_CALL glDisablei(GLenum cap, GLuint index);
REGAL_DECL void REGAL_CALL glEnablei(GLenum cap, GLuint index);
REGAL_DECL void REGAL_CALL glEndConditionalRender(void);
REGAL_DECL void REGAL_CALL glEndTransformFeedback(void);
REGAL_DECL void REGAL_CALL glGetBooleani_v(GLenum target, GLuint index, GLboolean *data);
REGAL_DECL void REGAL_CALL glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL glGetUniformuiv(GLuint program, GLint location, GLuint *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL glTexParameterIiv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL glTexParameterIuiv(GLenum target, GLenum pname, const GLuint *params);
REGAL_DECL void REGAL_CALL glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar * const *varyings, GLenum bufferMode);
REGAL_DECL void REGAL_CALL glUniform1ui(GLint location, GLuint v0);
REGAL_DECL void REGAL_CALL glUniform1uiv(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glUniform2ui(GLint location, GLuint v0, GLuint v1);
REGAL_DECL void REGAL_CALL glUniform2uiv(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
REGAL_DECL void REGAL_CALL glUniform3uiv(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
REGAL_DECL void REGAL_CALL glUniform4uiv(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL glVertexAttribI1i(GLuint index, GLint x);
REGAL_DECL void REGAL_CALL glVertexAttribI1iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI1ui(GLuint index, GLuint x);
REGAL_DECL void REGAL_CALL glVertexAttribI1uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI2i(GLuint index, GLint x, GLint y);
REGAL_DECL void REGAL_CALL glVertexAttribI2iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI2ui(GLuint index, GLuint x, GLuint y);
REGAL_DECL void REGAL_CALL glVertexAttribI2uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL glVertexAttribI3iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z);
REGAL_DECL void REGAL_CALL glVertexAttribI3uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4bv(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL glVertexAttribI4iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4ubv(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL glVertexAttribI4uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL glVertexAttribI4usv(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_3_0
REGAL_DECL GLboolean REGAL_CALL plugin_glIsEnabledi(GLenum target, GLuint index);
REGAL_DECL GLint REGAL_CALL plugin_glGetFragDataLocation(GLuint program, const GLchar *name);
REGAL_DECL const GLubyte *REGAL_CALL plugin_glGetStringi(GLenum name, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glBeginConditionalRender(GLuint id, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glBeginTransformFeedback(GLenum primitiveMode);
REGAL_DECL void REGAL_CALL plugin_glBindFragDataLocation(GLuint program, GLuint color, const GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glClampColor(GLenum target, GLenum clamp);
REGAL_DECL void REGAL_CALL plugin_glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
REGAL_DECL void REGAL_CALL plugin_glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat *value);
REGAL_DECL void REGAL_CALL plugin_glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint *value);
REGAL_DECL void REGAL_CALL plugin_glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glColorMaski(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
REGAL_DECL void REGAL_CALL plugin_glDisablei(GLenum cap, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glEnablei(GLenum cap, GLuint index);
REGAL_DECL void REGAL_CALL plugin_glEndConditionalRender(void);
REGAL_DECL void REGAL_CALL plugin_glEndTransformFeedback(void);
REGAL_DECL void REGAL_CALL plugin_glGetBooleani_v(GLenum target, GLuint index, GLboolean *data);
REGAL_DECL void REGAL_CALL plugin_glGetTexParameterIiv(GLenum target, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTexParameterIuiv(GLenum target, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name);
REGAL_DECL void REGAL_CALL plugin_glGetUniformuiv(GLuint program, GLint location, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribIiv(GLuint index, GLenum pname, GLint *params);
REGAL_DECL void REGAL_CALL plugin_glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glTexParameterIiv(GLenum target, GLenum pname, const GLint *params);
REGAL_DECL void REGAL_CALL plugin_glTexParameterIuiv(GLenum target, GLenum pname, const GLuint *params);
REGAL_DECL void REGAL_CALL plugin_glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar * const *varyings, GLenum bufferMode);
REGAL_DECL void REGAL_CALL plugin_glUniform1ui(GLint location, GLuint v0);
REGAL_DECL void REGAL_CALL plugin_glUniform1uiv(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform2ui(GLint location, GLuint v0, GLuint v1);
REGAL_DECL void REGAL_CALL plugin_glUniform2uiv(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
REGAL_DECL void REGAL_CALL plugin_glUniform3uiv(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
REGAL_DECL void REGAL_CALL plugin_glUniform4uiv(GLint location, GLsizei count, const GLuint *value);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI1i(GLuint index, GLint x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI1iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI1ui(GLuint index, GLuint x);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI1uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI2i(GLuint index, GLint x, GLint y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI2iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI2ui(GLuint index, GLuint x, GLuint y);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI2uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI3i(GLuint index, GLint x, GLint y, GLint z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI3iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI3ui(GLuint index, GLuint x, GLuint y, GLuint z);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI3uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4bv(GLuint index, const GLbyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4iv(GLuint index, const GLint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4sv(GLuint index, const GLshort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4ubv(GLuint index, const GLubyte *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4uiv(GLuint index, const GLuint *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribI4usv(GLuint index, const GLushort *v);
REGAL_DECL void REGAL_CALL plugin_glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
#endif

/**
 ** GL_VERSION_3_1
 **/

#if (defined(GL_VERSION_3_1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_3_1)) && !defined(REGAL_NO_ENUM_GL_VERSION_3_1)
#define REGAL_NO_ENUM_GL_VERSION_3_1
#endif

#if (defined(GL_VERSION_3_1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_3_1)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_3_1)
#define REGAL_NO_TYPEDEF_GL_VERSION_3_1
#endif

#if (defined(GL_VERSION_3_1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_3_1)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_3_1)
#define REGAL_NO_NAMESPACE_GL_VERSION_3_1
#endif

#if (defined(GL_VERSION_3_1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_3_1)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_3_1)
#define REGAL_NO_PLUGIN_GL_VERSION_3_1
#endif

#if (defined(GL_VERSION_3_1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_3_1)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_3_1)
#define REGAL_NO_DECLARATION_GL_VERSION_3_1
#endif

#ifndef GL_VERSION_3_1
#define GL_VERSION_3_1 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_3_1
#define GL_TEXTURE_RECTANGLE                 0x84f5     /* 34037 */
#define GL_TEXTURE_BINDING_RECTANGLE         0x84f6     /* 34038 */
#define GL_PROXY_TEXTURE_RECTANGLE           0x84f7     /* 34039 */
#define GL_MAX_RECTANGLE_TEXTURE_SIZE        0x84f8     /* 34040 */
#define GL_SAMPLER_2D_RECT                   0x8b63     /* 35683 */
#define GL_SAMPLER_2D_RECT_SHADOW            0x8b64     /* 35684 */
#define GL_TEXTURE_BUFFER                    0x8c2a     /* 35882 */
#define GL_MAX_TEXTURE_BUFFER_SIZE           0x8c2b     /* 35883 */
#define GL_TEXTURE_BINDING_BUFFER            0x8c2c     /* 35884 */
#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8c2d     /* 35885 */
#define GL_TEXTURE_BUFFER_FORMAT             0x8c2e     /* 35886 */
#define GL_SAMPLER_BUFFER                    0x8dc2     /* 36290 */
#define GL_INT_SAMPLER_2D_RECT               0x8dcd     /* 36301 */
#define GL_INT_SAMPLER_BUFFER                0x8dd0     /* 36304 */
#define GL_UNSIGNED_INT_SAMPLER_2D_RECT      0x8dd5     /* 36309 */
#define GL_UNSIGNED_INT_SAMPLER_BUFFER       0x8dd8     /* 36312 */
#define GL_PRIMITIVE_RESTART                 0x8f9d     /* 36765 */
#define GL_PRIMITIVE_RESTART_INDEX           0x8f9e     /* 36766 */
#define GL_BUFFER_ACCESS_FLAGS               0x911f     /* 37151 */
#define GL_BUFFER_MAP_LENGTH                 0x9120     /* 37152 */
#define GL_BUFFER_MAP_OFFSET                 0x9121     /* 37153 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_3_1
typedef void (REGAL_CALL *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
typedef void (REGAL_CALL *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index);
typedef void (REGAL_CALL *PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_3_1
#define glDrawArraysInstanced               rglDrawArraysInstanced
#define glDrawElementsInstanced             rglDrawElementsInstanced
#define glPrimitiveRestartIndex             rglPrimitiveRestartIndex
#define glTexBuffer                         rglTexBuffer
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_3_1
REGAL_DECL void REGAL_CALL glDrawArraysInstanced(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
REGAL_DECL void REGAL_CALL glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
REGAL_DECL void REGAL_CALL glPrimitiveRestartIndex(GLuint index);
REGAL_DECL void REGAL_CALL glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_3_1
REGAL_DECL void REGAL_CALL plugin_glDrawArraysInstanced(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount);
REGAL_DECL void REGAL_CALL plugin_glPrimitiveRestartIndex(GLuint index);
REGAL_DECL void REGAL_CALL plugin_glTexBuffer(GLenum target, GLenum internalformat, GLuint buffer);
#endif

/**
 ** GL_VERSION_3_2
 **/

#if (defined(GL_VERSION_3_2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_3_2)) && !defined(REGAL_NO_ENUM_GL_VERSION_3_2)
#define REGAL_NO_ENUM_GL_VERSION_3_2
#endif

#if (defined(GL_VERSION_3_2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_3_2)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_3_2)
#define REGAL_NO_TYPEDEF_GL_VERSION_3_2
#endif

#if (defined(GL_VERSION_3_2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_3_2)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_3_2)
#define REGAL_NO_NAMESPACE_GL_VERSION_3_2
#endif

#if (defined(GL_VERSION_3_2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_3_2)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_3_2)
#define REGAL_NO_PLUGIN_GL_VERSION_3_2
#endif

#if (defined(GL_VERSION_3_2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_3_2)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_3_2)
#define REGAL_NO_DECLARATION_GL_VERSION_3_2
#endif

#ifndef GL_VERSION_3_2
#define GL_VERSION_3_2 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_3_2
#define GL_CONTEXT_CORE_PROFILE_BIT             0x1
#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT    0x2
#define GL_PROGRAM_POINT_SIZE                   0x8642     /* 34370 */
#define GL_GEOMETRY_VERTICES_OUT                0x8916     /* 35094 */
#define GL_GEOMETRY_INPUT_TYPE                  0x8917     /* 35095 */
#define GL_GEOMETRY_OUTPUT_TYPE                 0x8918     /* 35096 */
#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS     0x8c29     /* 35881 */
#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED       0x8da7     /* 36263 */
#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8da8     /* 36264 */
#define GL_GEOMETRY_SHADER                      0x8dd9     /* 36313 */
#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS      0x8ddf     /* 36319 */
#define GL_MAX_GEOMETRY_OUTPUT_VERTICES         0x8de0     /* 36320 */
#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8de1     /* 36321 */
#define GL_MAX_VERTEX_OUTPUT_COMPONENTS         0x9122     /* 37154 */
#define GL_MAX_GEOMETRY_INPUT_COMPONENTS        0x9123     /* 37155 */
#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS       0x9124     /* 37156 */
#define GL_MAX_FRAGMENT_INPUT_COMPONENTS        0x9125     /* 37157 */
#define GL_CONTEXT_PROFILE_MASK                 0x9126     /* 37158 */
#define GL_LINES_ADJACENCY                      0xa        /* 10 */
#define GL_LINE_STRIP_ADJACENCY                 0xb        /* 11 */
#define GL_TRIANGLES_ADJACENCY                  0xc        /* 12 */
#define GL_TRIANGLE_STRIP_ADJACENCY             0xd        /* 13 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_3_2
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTUREFACEPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
typedef void (REGAL_CALL *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
typedef void (REGAL_CALL *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 *params);
typedef void (REGAL_CALL *PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 *data);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_3_2
#define glFramebufferTexture                rglFramebufferTexture
#define glFramebufferTextureFace            rglFramebufferTextureFace
#define glGetBufferParameteri64v            rglGetBufferParameteri64v
#define glGetInteger64i_v                   rglGetInteger64i_v
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_3_2
REGAL_DECL void REGAL_CALL glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL glFramebufferTextureFace(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
REGAL_DECL void REGAL_CALL glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
REGAL_DECL void REGAL_CALL glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_3_2
REGAL_DECL void REGAL_CALL plugin_glFramebufferTexture(GLenum target, GLenum attachment, GLuint texture, GLint level);
REGAL_DECL void REGAL_CALL plugin_glFramebufferTextureFace(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
REGAL_DECL void REGAL_CALL plugin_glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64 *params);
REGAL_DECL void REGAL_CALL plugin_glGetInteger64i_v(GLenum target, GLuint index, GLint64 *data);
#endif

/**
 ** GL_VERSION_3_3
 **/

#if (defined(GL_VERSION_3_3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_3_3)) && !defined(REGAL_NO_ENUM_GL_VERSION_3_3)
#define REGAL_NO_ENUM_GL_VERSION_3_3
#endif

#if (defined(GL_VERSION_3_3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_3_3)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_3_3)
#define REGAL_NO_TYPEDEF_GL_VERSION_3_3
#endif

#if (defined(GL_VERSION_3_3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_3_3)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_3_3)
#define REGAL_NO_NAMESPACE_GL_VERSION_3_3
#endif

#if (defined(GL_VERSION_3_3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_3_3)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_3_3)
#define REGAL_NO_PLUGIN_GL_VERSION_3_3
#endif

#if (defined(GL_VERSION_3_3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_3_3)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_3_3)
#define REGAL_NO_DECLARATION_GL_VERSION_3_3
#endif

#ifndef GL_VERSION_3_3
#define GL_VERSION_3_3 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_3_3
#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88fe /* 35070 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_3_3
typedef void (REGAL_CALL *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_3_3
#define glVertexAttribDivisor               rglVertexAttribDivisor
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_3_3
REGAL_DECL void REGAL_CALL glVertexAttribDivisor(GLuint index, GLuint divisor);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_3_3
REGAL_DECL void REGAL_CALL plugin_glVertexAttribDivisor(GLuint index, GLuint divisor);
#endif

/**
 ** GL_VERSION_4_0
 **/

#if (defined(GL_VERSION_4_0) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_4_0)) && !defined(REGAL_NO_ENUM_GL_VERSION_4_0)
#define REGAL_NO_ENUM_GL_VERSION_4_0
#endif

#if (defined(GL_VERSION_4_0) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_4_0)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_4_0)
#define REGAL_NO_TYPEDEF_GL_VERSION_4_0
#endif

#if (defined(GL_VERSION_4_0) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_4_0)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_4_0)
#define REGAL_NO_NAMESPACE_GL_VERSION_4_0
#endif

#if (defined(GL_VERSION_4_0) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_4_0)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_4_0)
#define REGAL_NO_PLUGIN_GL_VERSION_4_0
#endif

#if (defined(GL_VERSION_4_0) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_4_0)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_4_0)
#define REGAL_NO_DECLARATION_GL_VERSION_4_0
#endif

#ifndef GL_VERSION_4_0
#define GL_VERSION_4_0 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_4_0
#define GL_SAMPLE_SHADING                        0x8c36     /* 35894 */
#define GL_MIN_SAMPLE_SHADING_VALUE              0x8c37     /* 35895 */
#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET     0x8e5e     /* 36446 */
#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET     0x8e5f     /* 36447 */
#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS 0x8f9f     /* 36767 */
#define GL_TEXTURE_CUBE_MAP_ARRAY                0x9009     /* 36873 */
#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY        0x900a     /* 36874 */
#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY          0x900b     /* 36875 */
#define GL_SAMPLER_CUBE_MAP_ARRAY                0x900c     /* 36876 */
#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW         0x900d     /* 36877 */
#define GL_INT_SAMPLER_CUBE_MAP_ARRAY            0x900e     /* 36878 */
#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY   0x900f     /* 36879 */
#endif

#ifndef REGAL_NO_TYPEDEF_GL_VERSION_4_0
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode);
typedef void (REGAL_CALL *PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
typedef void (REGAL_CALL *PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst);
typedef void (REGAL_CALL *PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_VERSION_4_0
#define glBlendEquationSeparatei            rglBlendEquationSeparatei
#define glBlendEquationi                    rglBlendEquationi
#define glBlendFuncSeparatei                rglBlendFuncSeparatei
#define glBlendFunci                        rglBlendFunci
#endif

#ifndef REGAL_NO_DECLARATION_GL_VERSION_4_0
REGAL_DECL void REGAL_CALL glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
REGAL_DECL void REGAL_CALL glBlendEquationi(GLuint buf, GLenum mode);
REGAL_DECL void REGAL_CALL glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
REGAL_DECL void REGAL_CALL glBlendFunci(GLuint buf, GLenum src, GLenum dst);
#endif

#ifndef REGAL_NO_PLUGIN_GL_VERSION_4_0
REGAL_DECL void REGAL_CALL plugin_glBlendEquationSeparatei(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
REGAL_DECL void REGAL_CALL plugin_glBlendEquationi(GLuint buf, GLenum mode);
REGAL_DECL void REGAL_CALL plugin_glBlendFuncSeparatei(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
REGAL_DECL void REGAL_CALL plugin_glBlendFunci(GLuint buf, GLenum src, GLenum dst);
#endif

/**
 ** GL_VERSION_4_2
 **/

#if (defined(GL_VERSION_4_2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_4_2)) && !defined(REGAL_NO_ENUM_GL_VERSION_4_2)
#define REGAL_NO_ENUM_GL_VERSION_4_2
#endif

#if (defined(GL_VERSION_4_2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_4_2)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_4_2)
#define REGAL_NO_TYPEDEF_GL_VERSION_4_2
#endif

#if (defined(GL_VERSION_4_2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_4_2)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_4_2)
#define REGAL_NO_NAMESPACE_GL_VERSION_4_2
#endif

#if (defined(GL_VERSION_4_2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_4_2)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_4_2)
#define REGAL_NO_PLUGIN_GL_VERSION_4_2
#endif

#if (defined(GL_VERSION_4_2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_4_2)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_4_2)
#define REGAL_NO_DECLARATION_GL_VERSION_4_2
#endif

#ifndef GL_VERSION_4_2
#define GL_VERSION_4_2 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_4_2
#define GL_COMPRESSED_RGBA_BPTC_UNORM         0x8e8c     /* 36492 */
#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM   0x8e8d     /* 36493 */
#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT   0x8e8e     /* 36494 */
#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT 0x8e8f     /* 36495 */
#endif

/**
 ** GL_VERSION_4_3
 **/

#if (defined(GL_VERSION_4_3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VERSION_4_3)) && !defined(REGAL_NO_ENUM_GL_VERSION_4_3)
#define REGAL_NO_ENUM_GL_VERSION_4_3
#endif

#if (defined(GL_VERSION_4_3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VERSION_4_3)) && !defined(REGAL_NO_TYPEDEF_GL_VERSION_4_3)
#define REGAL_NO_TYPEDEF_GL_VERSION_4_3
#endif

#if (defined(GL_VERSION_4_3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VERSION_4_3)) && !defined(REGAL_NO_NAMESPACE_GL_VERSION_4_3)
#define REGAL_NO_NAMESPACE_GL_VERSION_4_3
#endif

#if (defined(GL_VERSION_4_3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VERSION_4_3)) && !defined(REGAL_NO_PLUGIN_GL_VERSION_4_3)
#define REGAL_NO_PLUGIN_GL_VERSION_4_3
#endif

#if (defined(GL_VERSION_4_3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VERSION_4_3)) && !defined(REGAL_NO_DECLARATION_GL_VERSION_4_3)
#define REGAL_NO_DECLARATION_GL_VERSION_4_3
#endif

#ifndef GL_VERSION_4_3
#define GL_VERSION_4_3 1
#endif

#ifndef REGAL_NO_ENUM_GL_VERSION_4_3
#define GL_NUM_SHADING_LANGUAGE_VERSIONS 0x82e9     /* 33513 */
#define GL_VERTEX_ATTRIB_ARRAY_LONG      0x874e     /* 34638 */
#endif

/**
 ** GL_VIV_shader_binary
 **/

#if (defined(GL_VIV_SHADER_BINARY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VIV_SHADER_BINARY)) && !defined(REGAL_NO_ENUM_GL_VIV_SHADER_BINARY)
#define REGAL_NO_ENUM_GL_VIV_SHADER_BINARY
#endif

#if (defined(GL_VIV_SHADER_BINARY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VIV_SHADER_BINARY)) && !defined(REGAL_NO_TYPEDEF_GL_VIV_SHADER_BINARY)
#define REGAL_NO_TYPEDEF_GL_VIV_SHADER_BINARY
#endif

#if (defined(GL_VIV_SHADER_BINARY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VIV_SHADER_BINARY)) && !defined(REGAL_NO_NAMESPACE_GL_VIV_SHADER_BINARY)
#define REGAL_NO_NAMESPACE_GL_VIV_SHADER_BINARY
#endif

#if (defined(GL_VIV_SHADER_BINARY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VIV_SHADER_BINARY)) && !defined(REGAL_NO_PLUGIN_GL_VIV_SHADER_BINARY)
#define REGAL_NO_PLUGIN_GL_VIV_SHADER_BINARY
#endif

#if (defined(GL_VIV_SHADER_BINARY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VIV_SHADER_BINARY)) && !defined(REGAL_NO_DECLARATION_GL_VIV_SHADER_BINARY)
#define REGAL_NO_DECLARATION_GL_VIV_SHADER_BINARY
#endif

#ifndef GL_VIV_shader_binary
#define GL_VIV_shader_binary 1
#endif

#ifndef REGAL_NO_ENUM_GL_VIV_SHADER_BINARY
#define GL_SHADER_BINARY_VIV 0x8fc4 /* 36804 */
#endif

/**
 ** GL_WIN_phong_shading
 **/

#if (defined(GL_WIN_PHONG_SHADING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_WIN_PHONG_SHADING)) && !defined(REGAL_NO_ENUM_GL_WIN_PHONG_SHADING)
#define REGAL_NO_ENUM_GL_WIN_PHONG_SHADING
#endif

#if (defined(GL_WIN_PHONG_SHADING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_WIN_PHONG_SHADING)) && !defined(REGAL_NO_TYPEDEF_GL_WIN_PHONG_SHADING)
#define REGAL_NO_TYPEDEF_GL_WIN_PHONG_SHADING
#endif

#if (defined(GL_WIN_PHONG_SHADING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_WIN_PHONG_SHADING)) && !defined(REGAL_NO_NAMESPACE_GL_WIN_PHONG_SHADING)
#define REGAL_NO_NAMESPACE_GL_WIN_PHONG_SHADING
#endif

#if (defined(GL_WIN_PHONG_SHADING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_WIN_PHONG_SHADING)) && !defined(REGAL_NO_PLUGIN_GL_WIN_PHONG_SHADING)
#define REGAL_NO_PLUGIN_GL_WIN_PHONG_SHADING
#endif

#if (defined(GL_WIN_PHONG_SHADING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_WIN_PHONG_SHADING)) && !defined(REGAL_NO_DECLARATION_GL_WIN_PHONG_SHADING)
#define REGAL_NO_DECLARATION_GL_WIN_PHONG_SHADING
#endif

#ifndef GL_WIN_phong_shading
#define GL_WIN_phong_shading 1
#endif

#ifndef REGAL_NO_ENUM_GL_WIN_PHONG_SHADING
#define GL_PHONG_WIN      0x80ea     /* 33002 */
#define GL_PHONG_HINT_WIN 0x80eb     /* 33003 */
#endif

/**
 ** GL_WIN_specular_fog
 **/

#if (defined(GL_WIN_SPECULAR_FOG) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_WIN_SPECULAR_FOG)) && !defined(REGAL_NO_ENUM_GL_WIN_SPECULAR_FOG)
#define REGAL_NO_ENUM_GL_WIN_SPECULAR_FOG
#endif

#if (defined(GL_WIN_SPECULAR_FOG) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_WIN_SPECULAR_FOG)) && !defined(REGAL_NO_TYPEDEF_GL_WIN_SPECULAR_FOG)
#define REGAL_NO_TYPEDEF_GL_WIN_SPECULAR_FOG
#endif

#if (defined(GL_WIN_SPECULAR_FOG) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_WIN_SPECULAR_FOG)) && !defined(REGAL_NO_NAMESPACE_GL_WIN_SPECULAR_FOG)
#define REGAL_NO_NAMESPACE_GL_WIN_SPECULAR_FOG
#endif

#if (defined(GL_WIN_SPECULAR_FOG) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_WIN_SPECULAR_FOG)) && !defined(REGAL_NO_PLUGIN_GL_WIN_SPECULAR_FOG)
#define REGAL_NO_PLUGIN_GL_WIN_SPECULAR_FOG
#endif

#if (defined(GL_WIN_SPECULAR_FOG) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_WIN_SPECULAR_FOG)) && !defined(REGAL_NO_DECLARATION_GL_WIN_SPECULAR_FOG)
#define REGAL_NO_DECLARATION_GL_WIN_SPECULAR_FOG
#endif

#ifndef GL_WIN_specular_fog
#define GL_WIN_specular_fog 1
#endif

#ifndef REGAL_NO_ENUM_GL_WIN_SPECULAR_FOG
#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80ec /* 33004 */
#endif

/**
 ** GL_WIN_swap_hint
 **/

#if (defined(GL_WIN_SWAP_HINT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_WIN_SWAP_HINT)) && !defined(REGAL_NO_ENUM_GL_WIN_SWAP_HINT)
#define REGAL_NO_ENUM_GL_WIN_SWAP_HINT
#endif

#if (defined(GL_WIN_SWAP_HINT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_WIN_SWAP_HINT)) && !defined(REGAL_NO_TYPEDEF_GL_WIN_SWAP_HINT)
#define REGAL_NO_TYPEDEF_GL_WIN_SWAP_HINT
#endif

#if (defined(GL_WIN_SWAP_HINT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_WIN_SWAP_HINT)) && !defined(REGAL_NO_NAMESPACE_GL_WIN_SWAP_HINT)
#define REGAL_NO_NAMESPACE_GL_WIN_SWAP_HINT
#endif

#if (defined(GL_WIN_SWAP_HINT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_WIN_SWAP_HINT)) && !defined(REGAL_NO_PLUGIN_GL_WIN_SWAP_HINT)
#define REGAL_NO_PLUGIN_GL_WIN_SWAP_HINT
#endif

#if (defined(GL_WIN_SWAP_HINT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_WIN_SWAP_HINT)) && !defined(REGAL_NO_DECLARATION_GL_WIN_SWAP_HINT)
#define REGAL_NO_DECLARATION_GL_WIN_SWAP_HINT
#endif

#ifndef GL_WIN_swap_hint
#define GL_WIN_swap_hint 1
#endif

#ifndef REGAL_NO_TYPEDEF_GL_WIN_SWAP_HINT
typedef void (REGAL_CALL *PFNGLADDSWAPHINTRECTWINPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_NAMESPACE_GL_WIN_SWAP_HINT
#define glAddSwapHintRectWIN                rglAddSwapHintRectWIN
#endif

#ifndef REGAL_NO_DECLARATION_GL_WIN_SWAP_HINT
REGAL_DECL void REGAL_CALL glAddSwapHintRectWIN(GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#ifndef REGAL_NO_PLUGIN_GL_WIN_SWAP_HINT
REGAL_DECL void REGAL_CALL plugin_glAddSwapHintRectWIN(GLint x, GLint y, GLsizei width, GLsizei height);
#endif

#if REGAL_SYS_WGL
#if REGAL_SYS_WGL_DECLARE_WGL

/**
 ** WGL_3DL_stereo_control
 **/

#if (defined(WGL_3DL_STEREO_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_3DL_STEREO_CONTROL)) && !defined(REGAL_NO_ENUM_WGL_3DL_STEREO_CONTROL)
#define REGAL_NO_ENUM_WGL_3DL_STEREO_CONTROL
#endif

#if (defined(WGL_3DL_STEREO_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_3DL_STEREO_CONTROL)) && !defined(REGAL_NO_TYPEDEF_WGL_3DL_STEREO_CONTROL)
#define REGAL_NO_TYPEDEF_WGL_3DL_STEREO_CONTROL
#endif

#if (defined(WGL_3DL_STEREO_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_3DL_STEREO_CONTROL)) && !defined(REGAL_NO_NAMESPACE_WGL_3DL_STEREO_CONTROL)
#define REGAL_NO_NAMESPACE_WGL_3DL_STEREO_CONTROL
#endif

#if (defined(WGL_3DL_STEREO_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_3DL_STEREO_CONTROL)) && !defined(REGAL_NO_PLUGIN_WGL_3DL_STEREO_CONTROL)
#define REGAL_NO_PLUGIN_WGL_3DL_STEREO_CONTROL
#endif

#if (defined(WGL_3DL_STEREO_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_3DL_STEREO_CONTROL)) && !defined(REGAL_NO_DECLARATION_WGL_3DL_STEREO_CONTROL)
#define REGAL_NO_DECLARATION_WGL_3DL_STEREO_CONTROL
#endif

#ifndef WGL_3DL_stereo_control
#define WGL_3DL_stereo_control 1
#endif

#ifndef REGAL_NO_ENUM_WGL_3DL_STEREO_CONTROL
#define WGL_STEREO_EMITTER_ENABLE_3DL  0x2055     /* 8277 */
#define WGL_STEREO_EMITTER_DISABLE_3DL 0x2056     /* 8278 */
#define WGL_STEREO_POLARITY_NORMAL_3DL 0x2057     /* 8279 */
#define WGL_STEREO_POLARITY_INVERT_3DL 0x2058     /* 8280 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_3DL_STEREO_CONTROL
typedef BOOL (REGAL_CALL *PFNWGLSETSTEREOEMITTERSTATE3DLPROC)(HDC hDC, UINT uState);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_3DL_STEREO_CONTROL
#define wglSetStereoEmitterState3DL         rwglSetStereoEmitterState3DL
#endif

#ifndef REGAL_NO_DECLARATION_WGL_3DL_STEREO_CONTROL
REGAL_DECL BOOL REGAL_CALL wglSetStereoEmitterState3DL(HDC hDC, UINT uState);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_3DL_STEREO_CONTROL
REGAL_DECL BOOL REGAL_CALL plugin_wglSetStereoEmitterState3DL(HDC hDC, UINT uState);
#endif

/**
 ** WGL_AMD_gpu_association
 **/

#if (defined(WGL_AMD_GPU_ASSOCIATION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_ENUM_WGL_AMD_GPU_ASSOCIATION)
#define REGAL_NO_ENUM_WGL_AMD_GPU_ASSOCIATION
#endif

#if (defined(WGL_AMD_GPU_ASSOCIATION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_TYPEDEF_WGL_AMD_GPU_ASSOCIATION)
#define REGAL_NO_TYPEDEF_WGL_AMD_GPU_ASSOCIATION
#endif

#if (defined(WGL_AMD_GPU_ASSOCIATION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_NAMESPACE_WGL_AMD_GPU_ASSOCIATION)
#define REGAL_NO_NAMESPACE_WGL_AMD_GPU_ASSOCIATION
#endif

#if (defined(WGL_AMD_GPU_ASSOCIATION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_PLUGIN_WGL_AMD_GPU_ASSOCIATION)
#define REGAL_NO_PLUGIN_WGL_AMD_GPU_ASSOCIATION
#endif

#if (defined(WGL_AMD_GPU_ASSOCIATION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_DECLARATION_WGL_AMD_GPU_ASSOCIATION)
#define REGAL_NO_DECLARATION_WGL_AMD_GPU_ASSOCIATION
#endif

#ifndef WGL_AMD_gpu_association
#define WGL_AMD_gpu_association 1
#endif

#ifndef REGAL_NO_ENUM_WGL_AMD_GPU_ASSOCIATION
#define WGL_GPU_VENDOR_AMD                0x1f00     /* 7936 */
#define WGL_GPU_RENDERER_STRING_AMD       0x1f01     /* 7937 */
#define WGL_GPU_OPENGL_VERSION_STRING_AMD 0x1f02     /* 7938 */
#define WGL_GPU_FASTEST_TARGET_GPUS_AMD   0x21a2     /* 8610 */
#define WGL_GPU_RAM_AMD                   0x21a3     /* 8611 */
#define WGL_GPU_CLOCK_AMD                 0x21a4     /* 8612 */
#define WGL_GPU_NUM_PIPES_AMD             0x21a5     /* 8613 */
#define WGL_GPU_NUM_SIMD_AMD              0x21a6     /* 8614 */
#define WGL_GPU_NUM_RB_AMD                0x21a7     /* 8615 */
#define WGL_GPU_NUM_SPI_AMD               0x21a8     /* 8616 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_AMD_GPU_ASSOCIATION
typedef BOOL (REGAL_CALL *PFNWGLDELETEASSOCIATEDCONTEXTAMDPROC)(HGLRC hglrc);
typedef BOOL (REGAL_CALL *PFNWGLMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(HGLRC hglrc);
typedef HGLRC (REGAL_CALL *PFNWGLCREATEASSOCIATEDCONTEXTAMDPROC)(UINT id);
typedef HGLRC (REGAL_CALL *PFNWGLCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)(UINT id, HGLRC hShareContext, const int *attribList);
typedef HGLRC (REGAL_CALL *PFNWGLGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
typedef INT (REGAL_CALL *PFNWGLGETGPUINFOAMDPROC)(UINT id, int property, GLenum dataType, UINT size, void *data);
typedef UINT (REGAL_CALL *PFNWGLGETCONTEXTGPUIDAMDPROC)(HGLRC hglrc);
typedef UINT (REGAL_CALL *PFNWGLGETGPUIDSAMDPROC)(UINT maxCount, UINT *ids);
typedef VOID (REGAL_CALL *PFNWGLBLITCONTEXTFRAMEBUFFERAMDPROC)(HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_AMD_GPU_ASSOCIATION
#define wglBlitContextFramebufferAMD        rwglBlitContextFramebufferAMD
#define wglCreateAssociatedContextAMD       rwglCreateAssociatedContextAMD
#define wglCreateAssociatedContextAttribsAMD rwglCreateAssociatedContextAttribsAMD
#define wglDeleteAssociatedContextAMD       rwglDeleteAssociatedContextAMD
#define wglGetContextGPUIDAMD               rwglGetContextGPUIDAMD
#define wglGetCurrentAssociatedContextAMD   rwglGetCurrentAssociatedContextAMD
#define wglGetGPUIDsAMD                     rwglGetGPUIDsAMD
#define wglGetGPUInfoAMD                    rwglGetGPUInfoAMD
#define wglMakeAssociatedContextCurrentAMD  rwglMakeAssociatedContextCurrentAMD
#endif

#ifndef REGAL_NO_DECLARATION_WGL_AMD_GPU_ASSOCIATION
REGAL_DECL BOOL REGAL_CALL wglDeleteAssociatedContextAMD(HGLRC hglrc);
REGAL_DECL BOOL REGAL_CALL wglMakeAssociatedContextCurrentAMD(HGLRC hglrc);
REGAL_DECL HGLRC REGAL_CALL wglCreateAssociatedContextAMD(UINT id);
REGAL_DECL HGLRC REGAL_CALL wglCreateAssociatedContextAttribsAMD(UINT id, HGLRC hShareContext, const int *attribList);
REGAL_DECL HGLRC REGAL_CALL wglGetCurrentAssociatedContextAMD(void);
REGAL_DECL INT REGAL_CALL wglGetGPUInfoAMD(UINT id, int property, GLenum dataType, UINT size, void *data);
REGAL_DECL UINT REGAL_CALL wglGetContextGPUIDAMD(HGLRC hglrc);
REGAL_DECL UINT REGAL_CALL wglGetGPUIDsAMD(UINT maxCount, UINT *ids);
REGAL_DECL VOID REGAL_CALL wglBlitContextFramebufferAMD(HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_AMD_GPU_ASSOCIATION
REGAL_DECL BOOL REGAL_CALL plugin_wglDeleteAssociatedContextAMD(HGLRC hglrc);
REGAL_DECL BOOL REGAL_CALL plugin_wglMakeAssociatedContextCurrentAMD(HGLRC hglrc);
REGAL_DECL HGLRC REGAL_CALL plugin_wglCreateAssociatedContextAMD(UINT id);
REGAL_DECL HGLRC REGAL_CALL plugin_wglCreateAssociatedContextAttribsAMD(UINT id, HGLRC hShareContext, const int *attribList);
REGAL_DECL HGLRC REGAL_CALL plugin_wglGetCurrentAssociatedContextAMD(void);
REGAL_DECL INT REGAL_CALL plugin_wglGetGPUInfoAMD(UINT id, int property, GLenum dataType, UINT size, void *data);
REGAL_DECL UINT REGAL_CALL plugin_wglGetContextGPUIDAMD(HGLRC hglrc);
REGAL_DECL UINT REGAL_CALL plugin_wglGetGPUIDsAMD(UINT maxCount, UINT *ids);
REGAL_DECL VOID REGAL_CALL plugin_wglBlitContextFramebufferAMD(HGLRC dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

/**
 ** WGL_ARB_buffer_region
 **/

#if (defined(WGL_ARB_BUFFER_REGION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_BUFFER_REGION)) && !defined(REGAL_NO_ENUM_WGL_ARB_BUFFER_REGION)
#define REGAL_NO_ENUM_WGL_ARB_BUFFER_REGION
#endif

#if (defined(WGL_ARB_BUFFER_REGION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_BUFFER_REGION)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_BUFFER_REGION)
#define REGAL_NO_TYPEDEF_WGL_ARB_BUFFER_REGION
#endif

#if (defined(WGL_ARB_BUFFER_REGION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_BUFFER_REGION)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_BUFFER_REGION)
#define REGAL_NO_NAMESPACE_WGL_ARB_BUFFER_REGION
#endif

#if (defined(WGL_ARB_BUFFER_REGION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_BUFFER_REGION)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_BUFFER_REGION)
#define REGAL_NO_PLUGIN_WGL_ARB_BUFFER_REGION
#endif

#if (defined(WGL_ARB_BUFFER_REGION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_BUFFER_REGION)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_BUFFER_REGION)
#define REGAL_NO_DECLARATION_WGL_ARB_BUFFER_REGION
#endif

#ifndef WGL_ARB_buffer_region
#define WGL_ARB_buffer_region 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_BUFFER_REGION
#define WGL_FRONT_COLOR_BUFFER_BIT_ARB 0x1
#define WGL_BACK_COLOR_BUFFER_BIT_ARB  0x2
#define WGL_DEPTH_BUFFER_BIT_ARB       0x4
#define WGL_STENCIL_BUFFER_BIT_ARB     0x8
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_ARB_BUFFER_REGION
typedef BOOL (REGAL_CALL *PFNWGLRESTOREBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
typedef BOOL (REGAL_CALL *PFNWGLSAVEBUFFERREGIONARBPROC)(HANDLE hRegion, int x, int y, int width, int height);
typedef HANDLE (REGAL_CALL *PFNWGLCREATEBUFFERREGIONARBPROC)(HDC hDC, int iLayerPlane, UINT uType);
typedef VOID (REGAL_CALL *PFNWGLDELETEBUFFERREGIONARBPROC)(HANDLE hRegion);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_ARB_BUFFER_REGION
#define wglCreateBufferRegionARB            rwglCreateBufferRegionARB
#define wglDeleteBufferRegionARB            rwglDeleteBufferRegionARB
#define wglRestoreBufferRegionARB           rwglRestoreBufferRegionARB
#define wglSaveBufferRegionARB              rwglSaveBufferRegionARB
#endif

#ifndef REGAL_NO_DECLARATION_WGL_ARB_BUFFER_REGION
REGAL_DECL BOOL REGAL_CALL wglRestoreBufferRegionARB(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
REGAL_DECL BOOL REGAL_CALL wglSaveBufferRegionARB(HANDLE hRegion, int x, int y, int width, int height);
REGAL_DECL HANDLE REGAL_CALL wglCreateBufferRegionARB(HDC hDC, int iLayerPlane, UINT uType);
REGAL_DECL VOID REGAL_CALL wglDeleteBufferRegionARB(HANDLE hRegion);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_ARB_BUFFER_REGION
REGAL_DECL BOOL REGAL_CALL plugin_wglRestoreBufferRegionARB(HANDLE hRegion, int x, int y, int width, int height, int xSrc, int ySrc);
REGAL_DECL BOOL REGAL_CALL plugin_wglSaveBufferRegionARB(HANDLE hRegion, int x, int y, int width, int height);
REGAL_DECL HANDLE REGAL_CALL plugin_wglCreateBufferRegionARB(HDC hDC, int iLayerPlane, UINT uType);
REGAL_DECL VOID REGAL_CALL plugin_wglDeleteBufferRegionARB(HANDLE hRegion);
#endif

/**
 ** WGL_ARB_create_context
 **/

#if (defined(WGL_ARB_CREATE_CONTEXT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT)
#define REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_CREATE_CONTEXT)
#define REGAL_NO_TYPEDEF_WGL_ARB_CREATE_CONTEXT
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_CREATE_CONTEXT)
#define REGAL_NO_NAMESPACE_WGL_ARB_CREATE_CONTEXT
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_CREATE_CONTEXT)
#define REGAL_NO_PLUGIN_WGL_ARB_CREATE_CONTEXT
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_CREATE_CONTEXT)
#define REGAL_NO_DECLARATION_WGL_ARB_CREATE_CONTEXT
#endif

#ifndef WGL_ARB_create_context
#define WGL_ARB_create_context 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT
#define WGL_CONTEXT_DEBUG_BIT_ARB              0x1
#define WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x2
#define WGL_CONTEXT_MAJOR_VERSION_ARB          0x2091     /* 8337 */
#define WGL_CONTEXT_MINOR_VERSION_ARB          0x2092     /* 8338 */
#define WGL_CONTEXT_LAYER_PLANE_ARB            0x2093     /* 8339 */
#define WGL_CONTEXT_FLAGS_ARB                  0x2094     /* 8340 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_ARB_CREATE_CONTEXT
typedef HGLRC (REGAL_CALL *PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hDC, HGLRC hShareContext, const int *piAttribList);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_ARB_CREATE_CONTEXT
#define wglCreateContextAttribsARB          rwglCreateContextAttribsARB
#endif

#ifndef REGAL_NO_DECLARATION_WGL_ARB_CREATE_CONTEXT
REGAL_DECL HGLRC REGAL_CALL wglCreateContextAttribsARB(HDC hDC, HGLRC hShareContext, const int *piAttribList);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_ARB_CREATE_CONTEXT
REGAL_DECL HGLRC REGAL_CALL plugin_wglCreateContextAttribsARB(HDC hDC, HGLRC hShareContext, const int *piAttribList);
#endif

/**
 ** WGL_ARB_create_context_profile
 **/

#if (defined(WGL_ARB_CREATE_CONTEXT_PROFILE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT_PROFILE
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT_PROFILE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_TYPEDEF_WGL_ARB_CREATE_CONTEXT_PROFILE
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT_PROFILE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_NAMESPACE_WGL_ARB_CREATE_CONTEXT_PROFILE
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT_PROFILE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_PLUGIN_WGL_ARB_CREATE_CONTEXT_PROFILE
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT_PROFILE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_DECLARATION_WGL_ARB_CREATE_CONTEXT_PROFILE
#endif

#ifndef WGL_ARB_create_context_profile
#define WGL_ARB_create_context_profile 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT_PROFILE
#define WGL_CONTEXT_CORE_PROFILE_BIT_ARB          0x1
#define WGL_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x2
#define WGL_CONTEXT_PROFILE_MASK_ARB              0x9126     /* 37158 */
#endif

/**
 ** WGL_ARB_create_context_robustness
 **/

#if (defined(WGL_ARB_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_TYPEDEF_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT_ROBUSTNESS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_NAMESPACE_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT_ROBUSTNESS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_PLUGIN_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(WGL_ARB_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_DECLARATION_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#ifndef WGL_ARB_create_context_robustness
#define WGL_ARB_create_context_robustness 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_CREATE_CONTEXT_ROBUSTNESS
#define WGL_CONTEXT_ROBUST_ACCESS_BIT_ARB           0x4
#define WGL_LOSE_CONTEXT_ON_RESET_ARB               0x8252     /* 33362 */
#define WGL_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256     /* 33366 */
#define WGL_NO_RESET_NOTIFICATION_ARB               0x8261     /* 33377 */
#endif

/**
 ** WGL_ARB_extensions_string
 **/

#if (defined(WGL_ARB_EXTENSIONS_STRING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_EXTENSIONS_STRING)) && !defined(REGAL_NO_ENUM_WGL_ARB_EXTENSIONS_STRING)
#define REGAL_NO_ENUM_WGL_ARB_EXTENSIONS_STRING
#endif

#if (defined(WGL_ARB_EXTENSIONS_STRING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_EXTENSIONS_STRING)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_EXTENSIONS_STRING)
#define REGAL_NO_TYPEDEF_WGL_ARB_EXTENSIONS_STRING
#endif

#if (defined(WGL_ARB_EXTENSIONS_STRING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_EXTENSIONS_STRING)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_EXTENSIONS_STRING)
#define REGAL_NO_NAMESPACE_WGL_ARB_EXTENSIONS_STRING
#endif

#if (defined(WGL_ARB_EXTENSIONS_STRING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_EXTENSIONS_STRING)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_EXTENSIONS_STRING)
#define REGAL_NO_PLUGIN_WGL_ARB_EXTENSIONS_STRING
#endif

#if (defined(WGL_ARB_EXTENSIONS_STRING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_EXTENSIONS_STRING)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_EXTENSIONS_STRING)
#define REGAL_NO_DECLARATION_WGL_ARB_EXTENSIONS_STRING
#endif

#ifndef WGL_ARB_extensions_string
#define WGL_ARB_extensions_string 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_ARB_EXTENSIONS_STRING
typedef const char *(REGAL_CALL *PFNWGLGETEXTENSIONSSTRINGARBPROC)(HDC hDC);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_ARB_EXTENSIONS_STRING
#define wglGetExtensionsStringARB           rwglGetExtensionsStringARB
#endif

#ifndef REGAL_NO_DECLARATION_WGL_ARB_EXTENSIONS_STRING
REGAL_DECL const char *REGAL_CALL wglGetExtensionsStringARB(HDC hDC);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_ARB_EXTENSIONS_STRING
REGAL_DECL const char *REGAL_CALL plugin_wglGetExtensionsStringARB(HDC hDC);
#endif

/**
 ** WGL_ARB_framebuffer_sRGB
 **/

#if (defined(WGL_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_ENUM_WGL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_ENUM_WGL_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(WGL_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_TYPEDEF_WGL_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(WGL_ARB_FRAMEBUFFER_SRGB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_NAMESPACE_WGL_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(WGL_ARB_FRAMEBUFFER_SRGB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_PLUGIN_WGL_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(WGL_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_DECLARATION_WGL_ARB_FRAMEBUFFER_SRGB
#endif

#ifndef WGL_ARB_framebuffer_sRGB
#define WGL_ARB_framebuffer_sRGB 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_FRAMEBUFFER_SRGB
#define WGL_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20a9 /* 8361 */
#endif

/**
 ** WGL_ARB_make_current_read
 **/

#if (defined(WGL_ARB_MAKE_CURRENT_READ) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_MAKE_CURRENT_READ)) && !defined(REGAL_NO_ENUM_WGL_ARB_MAKE_CURRENT_READ)
#define REGAL_NO_ENUM_WGL_ARB_MAKE_CURRENT_READ
#endif

#if (defined(WGL_ARB_MAKE_CURRENT_READ) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_MAKE_CURRENT_READ)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_MAKE_CURRENT_READ)
#define REGAL_NO_TYPEDEF_WGL_ARB_MAKE_CURRENT_READ
#endif

#if (defined(WGL_ARB_MAKE_CURRENT_READ) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_MAKE_CURRENT_READ)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_MAKE_CURRENT_READ)
#define REGAL_NO_NAMESPACE_WGL_ARB_MAKE_CURRENT_READ
#endif

#if (defined(WGL_ARB_MAKE_CURRENT_READ) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_MAKE_CURRENT_READ)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_MAKE_CURRENT_READ)
#define REGAL_NO_PLUGIN_WGL_ARB_MAKE_CURRENT_READ
#endif

#if (defined(WGL_ARB_MAKE_CURRENT_READ) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_MAKE_CURRENT_READ)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_MAKE_CURRENT_READ)
#define REGAL_NO_DECLARATION_WGL_ARB_MAKE_CURRENT_READ
#endif

#ifndef WGL_ARB_make_current_read
#define WGL_ARB_make_current_read 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_MAKE_CURRENT_READ
#define ERROR_INVALID_PIXEL_TYPE_ARB           0x2043     /* 8259 */
#define ERROR_INCOMPATIBLE_DEVICE_CONTEXTS_ARB 0x2054     /* 8276 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_ARB_MAKE_CURRENT_READ
typedef BOOL (REGAL_CALL *PFNWGLMAKECONTEXTCURRENTARBPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
typedef HDC (REGAL_CALL *PFNWGLGETCURRENTREADDCARBPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_ARB_MAKE_CURRENT_READ
#define wglGetCurrentReadDCARB              rwglGetCurrentReadDCARB
#define wglMakeContextCurrentARB            rwglMakeContextCurrentARB
#endif

#ifndef REGAL_NO_DECLARATION_WGL_ARB_MAKE_CURRENT_READ
REGAL_DECL BOOL REGAL_CALL wglMakeContextCurrentARB(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
REGAL_DECL HDC REGAL_CALL wglGetCurrentReadDCARB(void);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_ARB_MAKE_CURRENT_READ
REGAL_DECL BOOL REGAL_CALL plugin_wglMakeContextCurrentARB(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
REGAL_DECL HDC REGAL_CALL plugin_wglGetCurrentReadDCARB(void);
#endif

/**
 ** WGL_ARB_multisample
 **/

#if (defined(WGL_ARB_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_WGL_ARB_MULTISAMPLE)
#define REGAL_NO_ENUM_WGL_ARB_MULTISAMPLE
#endif

#if (defined(WGL_ARB_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_WGL_ARB_MULTISAMPLE
#endif

#if (defined(WGL_ARB_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_WGL_ARB_MULTISAMPLE
#endif

#if (defined(WGL_ARB_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_MULTISAMPLE)
#define REGAL_NO_PLUGIN_WGL_ARB_MULTISAMPLE
#endif

#if (defined(WGL_ARB_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_MULTISAMPLE)
#define REGAL_NO_DECLARATION_WGL_ARB_MULTISAMPLE
#endif

#ifndef WGL_ARB_multisample
#define WGL_ARB_multisample 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_MULTISAMPLE
#define WGL_SAMPLE_BUFFERS_ARB 0x2041     /* 8257 */
#define WGL_SAMPLES_ARB        0x2042     /* 8258 */
#endif

/**
 ** WGL_ARB_pbuffer
 **/

#if (defined(WGL_ARB_PBUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_PBUFFER)) && !defined(REGAL_NO_ENUM_WGL_ARB_PBUFFER)
#define REGAL_NO_ENUM_WGL_ARB_PBUFFER
#endif

#if (defined(WGL_ARB_PBUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_PBUFFER)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_PBUFFER)
#define REGAL_NO_TYPEDEF_WGL_ARB_PBUFFER
#endif

#if (defined(WGL_ARB_PBUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_PBUFFER)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_PBUFFER)
#define REGAL_NO_NAMESPACE_WGL_ARB_PBUFFER
#endif

#if (defined(WGL_ARB_PBUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_PBUFFER)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_PBUFFER)
#define REGAL_NO_PLUGIN_WGL_ARB_PBUFFER
#endif

#if (defined(WGL_ARB_PBUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_PBUFFER)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_PBUFFER)
#define REGAL_NO_DECLARATION_WGL_ARB_PBUFFER
#endif

#ifndef WGL_ARB_pbuffer
#define WGL_ARB_pbuffer 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_PBUFFER
#define WGL_DRAW_TO_PBUFFER_ARB    0x202d     /* 8237 */
#define WGL_MAX_PBUFFER_PIXELS_ARB 0x202e     /* 8238 */
#define WGL_MAX_PBUFFER_WIDTH_ARB  0x202f     /* 8239 */
#define WGL_MAX_PBUFFER_HEIGHT_ARB 0x2030     /* 8240 */
#define WGL_PBUFFER_LARGEST_ARB    0x2033     /* 8243 */
#define WGL_PBUFFER_WIDTH_ARB      0x2034     /* 8244 */
#define WGL_PBUFFER_HEIGHT_ARB     0x2035     /* 8245 */
#define WGL_PBUFFER_LOST_ARB       0x2036     /* 8246 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_ARB_PBUFFER
typedef BOOL (REGAL_CALL *PFNWGLDESTROYPBUFFERARBPROC)(HPBUFFERARB hPbuffer);
typedef BOOL (REGAL_CALL *PFNWGLQUERYPBUFFERARBPROC)(HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
typedef HDC (REGAL_CALL *PFNWGLGETPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer);
typedef HPBUFFERARB (REGAL_CALL *PFNWGLCREATEPBUFFERARBPROC)(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
typedef int (REGAL_CALL *PFNWGLRELEASEPBUFFERDCARBPROC)(HPBUFFERARB hPbuffer, HDC hDC);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_ARB_PBUFFER
#define wglCreatePbufferARB                 rwglCreatePbufferARB
#define wglDestroyPbufferARB                rwglDestroyPbufferARB
#define wglGetPbufferDCARB                  rwglGetPbufferDCARB
#define wglQueryPbufferARB                  rwglQueryPbufferARB
#define wglReleasePbufferDCARB              rwglReleasePbufferDCARB
#endif

#ifndef REGAL_NO_DECLARATION_WGL_ARB_PBUFFER
REGAL_DECL BOOL REGAL_CALL wglDestroyPbufferARB(HPBUFFERARB hPbuffer);
REGAL_DECL BOOL REGAL_CALL wglQueryPbufferARB(HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
REGAL_DECL HDC REGAL_CALL wglGetPbufferDCARB(HPBUFFERARB hPbuffer);
REGAL_DECL HPBUFFERARB REGAL_CALL wglCreatePbufferARB(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
REGAL_DECL int REGAL_CALL wglReleasePbufferDCARB(HPBUFFERARB hPbuffer, HDC hDC);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_ARB_PBUFFER
REGAL_DECL BOOL REGAL_CALL plugin_wglDestroyPbufferARB(HPBUFFERARB hPbuffer);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryPbufferARB(HPBUFFERARB hPbuffer, int iAttribute, int *piValue);
REGAL_DECL HDC REGAL_CALL plugin_wglGetPbufferDCARB(HPBUFFERARB hPbuffer);
REGAL_DECL HPBUFFERARB REGAL_CALL plugin_wglCreatePbufferARB(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
REGAL_DECL int REGAL_CALL plugin_wglReleasePbufferDCARB(HPBUFFERARB hPbuffer, HDC hDC);
#endif

/**
 ** WGL_ARB_pixel_format
 **/

#if (defined(WGL_ARB_PIXEL_FORMAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT)) && !defined(REGAL_NO_ENUM_WGL_ARB_PIXEL_FORMAT)
#define REGAL_NO_ENUM_WGL_ARB_PIXEL_FORMAT
#endif

#if (defined(WGL_ARB_PIXEL_FORMAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_PIXEL_FORMAT)
#define REGAL_NO_TYPEDEF_WGL_ARB_PIXEL_FORMAT
#endif

#if (defined(WGL_ARB_PIXEL_FORMAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_PIXEL_FORMAT)
#define REGAL_NO_NAMESPACE_WGL_ARB_PIXEL_FORMAT
#endif

#if (defined(WGL_ARB_PIXEL_FORMAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_PIXEL_FORMAT)
#define REGAL_NO_PLUGIN_WGL_ARB_PIXEL_FORMAT
#endif

#if (defined(WGL_ARB_PIXEL_FORMAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_PIXEL_FORMAT)
#define REGAL_NO_DECLARATION_WGL_ARB_PIXEL_FORMAT
#endif

#ifndef WGL_ARB_pixel_format
#define WGL_ARB_pixel_format 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_PIXEL_FORMAT
#define WGL_NUMBER_PIXEL_FORMATS_ARB    0x2000     /* 8192 */
#define WGL_DRAW_TO_WINDOW_ARB          0x2001     /* 8193 */
#define WGL_DRAW_TO_BITMAP_ARB          0x2002     /* 8194 */
#define WGL_ACCELERATION_ARB            0x2003     /* 8195 */
#define WGL_NEED_PALETTE_ARB            0x2004     /* 8196 */
#define WGL_NEED_SYSTEM_PALETTE_ARB     0x2005     /* 8197 */
#define WGL_SWAP_LAYER_BUFFERS_ARB      0x2006     /* 8198 */
#define WGL_SWAP_METHOD_ARB             0x2007     /* 8199 */
#define WGL_NUMBER_OVERLAYS_ARB         0x2008     /* 8200 */
#define WGL_NUMBER_UNDERLAYS_ARB        0x2009     /* 8201 */
#define WGL_TRANSPARENT_ARB             0x200a     /* 8202 */
#define WGL_SHARE_DEPTH_ARB             0x200c     /* 8204 */
#define WGL_SHARE_STENCIL_ARB           0x200d     /* 8205 */
#define WGL_SHARE_ACCUM_ARB             0x200e     /* 8206 */
#define WGL_SUPPORT_GDI_ARB             0x200f     /* 8207 */
#define WGL_SUPPORT_OPENGL_ARB          0x2010     /* 8208 */
#define WGL_DOUBLE_BUFFER_ARB           0x2011     /* 8209 */
#define WGL_STEREO_ARB                  0x2012     /* 8210 */
#define WGL_PIXEL_TYPE_ARB              0x2013     /* 8211 */
#define WGL_COLOR_BITS_ARB              0x2014     /* 8212 */
#define WGL_RED_BITS_ARB                0x2015     /* 8213 */
#define WGL_RED_SHIFT_ARB               0x2016     /* 8214 */
#define WGL_GREEN_BITS_ARB              0x2017     /* 8215 */
#define WGL_GREEN_SHIFT_ARB             0x2018     /* 8216 */
#define WGL_BLUE_BITS_ARB               0x2019     /* 8217 */
#define WGL_BLUE_SHIFT_ARB              0x201a     /* 8218 */
#define WGL_ALPHA_BITS_ARB              0x201b     /* 8219 */
#define WGL_ALPHA_SHIFT_ARB             0x201c     /* 8220 */
#define WGL_ACCUM_BITS_ARB              0x201d     /* 8221 */
#define WGL_ACCUM_RED_BITS_ARB          0x201e     /* 8222 */
#define WGL_ACCUM_GREEN_BITS_ARB        0x201f     /* 8223 */
#define WGL_ACCUM_BLUE_BITS_ARB         0x2020     /* 8224 */
#define WGL_ACCUM_ALPHA_BITS_ARB        0x2021     /* 8225 */
#define WGL_DEPTH_BITS_ARB              0x2022     /* 8226 */
#define WGL_STENCIL_BITS_ARB            0x2023     /* 8227 */
#define WGL_AUX_BUFFERS_ARB             0x2024     /* 8228 */
#define WGL_NO_ACCELERATION_ARB         0x2025     /* 8229 */
#define WGL_GENERIC_ACCELERATION_ARB    0x2026     /* 8230 */
#define WGL_FULL_ACCELERATION_ARB       0x2027     /* 8231 */
#define WGL_SWAP_EXCHANGE_ARB           0x2028     /* 8232 */
#define WGL_SWAP_COPY_ARB               0x2029     /* 8233 */
#define WGL_SWAP_UNDEFINED_ARB          0x202a     /* 8234 */
#define WGL_TYPE_RGBA_ARB               0x202b     /* 8235 */
#define WGL_TYPE_COLORINDEX_ARB         0x202c     /* 8236 */
#define WGL_TRANSPARENT_RED_VALUE_ARB   0x2037     /* 8247 */
#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038     /* 8248 */
#define WGL_TRANSPARENT_BLUE_VALUE_ARB  0x2039     /* 8249 */
#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203a     /* 8250 */
#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203b     /* 8251 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_ARB_PIXEL_FORMAT
typedef BOOL (REGAL_CALL *PFNWGLCHOOSEPIXELFORMATARBPROC)(HDC hDC, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
typedef BOOL (REGAL_CALL *PFNWGLGETPIXELFORMATATTRIBFVARBPROC)(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
typedef BOOL (REGAL_CALL *PFNWGLGETPIXELFORMATATTRIBIVARBPROC)(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_ARB_PIXEL_FORMAT
#define wglChoosePixelFormatARB             rwglChoosePixelFormatARB
#define wglGetPixelFormatAttribfvARB        rwglGetPixelFormatAttribfvARB
#define wglGetPixelFormatAttribivARB        rwglGetPixelFormatAttribivARB
#endif

#ifndef REGAL_NO_DECLARATION_WGL_ARB_PIXEL_FORMAT
REGAL_DECL BOOL REGAL_CALL wglChoosePixelFormatARB(HDC hDC, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
REGAL_DECL BOOL REGAL_CALL wglGetPixelFormatAttribfvARB(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
REGAL_DECL BOOL REGAL_CALL wglGetPixelFormatAttribivARB(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_ARB_PIXEL_FORMAT
REGAL_DECL BOOL REGAL_CALL plugin_wglChoosePixelFormatARB(HDC hDC, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetPixelFormatAttribfvARB(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetPixelFormatAttribivARB(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
#endif

/**
 ** WGL_ARB_pixel_format_float
 **/

#if (defined(WGL_ARB_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_ENUM_WGL_ARB_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_ENUM_WGL_ARB_PIXEL_FORMAT_FLOAT
#endif

#if (defined(WGL_ARB_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_TYPEDEF_WGL_ARB_PIXEL_FORMAT_FLOAT
#endif

#if (defined(WGL_ARB_PIXEL_FORMAT_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_NAMESPACE_WGL_ARB_PIXEL_FORMAT_FLOAT
#endif

#if (defined(WGL_ARB_PIXEL_FORMAT_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_PLUGIN_WGL_ARB_PIXEL_FORMAT_FLOAT
#endif

#if (defined(WGL_ARB_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_DECLARATION_WGL_ARB_PIXEL_FORMAT_FLOAT
#endif

#ifndef WGL_ARB_pixel_format_float
#define WGL_ARB_pixel_format_float 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_PIXEL_FORMAT_FLOAT
#define WGL_TYPE_RGBA_FLOAT_ARB 0x21a0 /* 8608 */
#endif

/**
 ** WGL_ARB_render_texture
 **/

#if (defined(WGL_ARB_RENDER_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_RENDER_TEXTURE)) && !defined(REGAL_NO_ENUM_WGL_ARB_RENDER_TEXTURE)
#define REGAL_NO_ENUM_WGL_ARB_RENDER_TEXTURE
#endif

#if (defined(WGL_ARB_RENDER_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_RENDER_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_RENDER_TEXTURE)
#define REGAL_NO_TYPEDEF_WGL_ARB_RENDER_TEXTURE
#endif

#if (defined(WGL_ARB_RENDER_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_RENDER_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_RENDER_TEXTURE)
#define REGAL_NO_NAMESPACE_WGL_ARB_RENDER_TEXTURE
#endif

#if (defined(WGL_ARB_RENDER_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_RENDER_TEXTURE)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_RENDER_TEXTURE)
#define REGAL_NO_PLUGIN_WGL_ARB_RENDER_TEXTURE
#endif

#if (defined(WGL_ARB_RENDER_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_RENDER_TEXTURE)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_RENDER_TEXTURE)
#define REGAL_NO_DECLARATION_WGL_ARB_RENDER_TEXTURE
#endif

#ifndef WGL_ARB_render_texture
#define WGL_ARB_render_texture 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_RENDER_TEXTURE
#define WGL_BIND_TO_TEXTURE_RGB_ARB         0x2070     /* 8304 */
#define WGL_BIND_TO_TEXTURE_RGBA_ARB        0x2071     /* 8305 */
#define WGL_TEXTURE_FORMAT_ARB              0x2072     /* 8306 */
#define WGL_TEXTURE_TARGET_ARB              0x2073     /* 8307 */
#define WGL_MIPMAP_TEXTURE_ARB              0x2074     /* 8308 */
#define WGL_TEXTURE_RGB_ARB                 0x2075     /* 8309 */
#define WGL_TEXTURE_RGBA_ARB                0x2076     /* 8310 */
#define WGL_TEXTURE_CUBE_MAP_ARB            0x2078     /* 8312 */
#define WGL_TEXTURE_1D_ARB                  0x2079     /* 8313 */
#define WGL_TEXTURE_2D_ARB                  0x207a     /* 8314 */
#define WGL_MIPMAP_LEVEL_ARB                0x207b     /* 8315 */
#define WGL_CUBE_MAP_FACE_ARB               0x207c     /* 8316 */
#define WGL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x207d     /* 8317 */
#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x207e     /* 8318 */
#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x207f     /* 8319 */
#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x2080     /* 8320 */
#define WGL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x2081     /* 8321 */
#define WGL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x2082     /* 8322 */
#define WGL_FRONT_LEFT_ARB                  0x2083     /* 8323 */
#define WGL_FRONT_RIGHT_ARB                 0x2084     /* 8324 */
#define WGL_BACK_LEFT_ARB                   0x2085     /* 8325 */
#define WGL_BACK_RIGHT_ARB                  0x2086     /* 8326 */
#define WGL_AUX0_ARB                        0x2087     /* 8327 */
#define WGL_AUX1_ARB                        0x2088     /* 8328 */
#define WGL_AUX2_ARB                        0x2089     /* 8329 */
#define WGL_AUX3_ARB                        0x208a     /* 8330 */
#define WGL_AUX4_ARB                        0x208b     /* 8331 */
#define WGL_AUX5_ARB                        0x208c     /* 8332 */
#define WGL_AUX6_ARB                        0x208d     /* 8333 */
#define WGL_AUX7_ARB                        0x208e     /* 8334 */
#define WGL_AUX8_ARB                        0x208f     /* 8335 */
#define WGL_AUX9_ARB                        0x2090     /* 8336 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_ARB_RENDER_TEXTURE
typedef BOOL (REGAL_CALL *PFNWGLBINDTEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer);
typedef BOOL (REGAL_CALL *PFNWGLRELEASETEXIMAGEARBPROC)(HPBUFFERARB hPbuffer, int iBuffer);
typedef BOOL (REGAL_CALL *PFNWGLSETPBUFFERATTRIBARBPROC)(HPBUFFERARB hPbuffer, const int *piAttribList);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_ARB_RENDER_TEXTURE
#define wglBindTexImageARB                  rwglBindTexImageARB
#define wglReleaseTexImageARB               rwglReleaseTexImageARB
#define wglSetPbufferAttribARB              rwglSetPbufferAttribARB
#endif

#ifndef REGAL_NO_DECLARATION_WGL_ARB_RENDER_TEXTURE
REGAL_DECL BOOL REGAL_CALL wglBindTexImageARB(HPBUFFERARB hPbuffer, int iBuffer);
REGAL_DECL BOOL REGAL_CALL wglReleaseTexImageARB(HPBUFFERARB hPbuffer, int iBuffer);
REGAL_DECL BOOL REGAL_CALL wglSetPbufferAttribARB(HPBUFFERARB hPbuffer, const int *piAttribList);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_ARB_RENDER_TEXTURE
REGAL_DECL BOOL REGAL_CALL plugin_wglBindTexImageARB(HPBUFFERARB hPbuffer, int iBuffer);
REGAL_DECL BOOL REGAL_CALL plugin_wglReleaseTexImageARB(HPBUFFERARB hPbuffer, int iBuffer);
REGAL_DECL BOOL REGAL_CALL plugin_wglSetPbufferAttribARB(HPBUFFERARB hPbuffer, const int *piAttribList);
#endif

/**
 ** WGL_ARB_robustness_share_group_isolation
 **/

#if (defined(WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_ENUM_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_ENUM_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#if (defined(WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_TYPEDEF_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_TYPEDEF_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#if (defined(WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_NAMESPACE_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_NAMESPACE_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#if (defined(WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_PLUGIN_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_PLUGIN_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#if (defined(WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_DECLARATION_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_DECLARATION_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#ifndef WGL_ARB_robustness_share_group_isolation
#define WGL_ARB_robustness_share_group_isolation 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#define WGL_CONTEXT_RESET_ISOLATION_BIT_ARB 0x8
#endif

/**
 ** WGL_ATI_pixel_format_float
 **/

#if (defined(WGL_ATI_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_ENUM_WGL_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_ENUM_WGL_ATI_PIXEL_FORMAT_FLOAT
#endif

#if (defined(WGL_ATI_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_TYPEDEF_WGL_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_TYPEDEF_WGL_ATI_PIXEL_FORMAT_FLOAT
#endif

#if (defined(WGL_ATI_PIXEL_FORMAT_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_NAMESPACE_WGL_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_NAMESPACE_WGL_ATI_PIXEL_FORMAT_FLOAT
#endif

#if (defined(WGL_ATI_PIXEL_FORMAT_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_PLUGIN_WGL_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_PLUGIN_WGL_ATI_PIXEL_FORMAT_FLOAT
#endif

#if (defined(WGL_ATI_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_DECLARATION_WGL_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_DECLARATION_WGL_ATI_PIXEL_FORMAT_FLOAT
#endif

#ifndef WGL_ATI_pixel_format_float
#define WGL_ATI_pixel_format_float 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ATI_PIXEL_FORMAT_FLOAT
#define WGL_TYPE_RGBA_FLOAT_ATI            0x21a0     /* 8608 */
#define GL_RGBA_FLOAT_MODE_ATI             0x8820     /* 34848 */
#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835     /* 34869 */
#endif

/**
 ** WGL_ATI_render_texture_rectangle
 **/

#if (defined(WGL_ATI_RENDER_TEXTURE_RECTANGLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_ATI_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_ENUM_WGL_ATI_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_ENUM_WGL_ATI_RENDER_TEXTURE_RECTANGLE
#endif

#if (defined(WGL_ATI_RENDER_TEXTURE_RECTANGLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_ATI_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_TYPEDEF_WGL_ATI_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_TYPEDEF_WGL_ATI_RENDER_TEXTURE_RECTANGLE
#endif

#if (defined(WGL_ATI_RENDER_TEXTURE_RECTANGLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_ATI_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_NAMESPACE_WGL_ATI_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_NAMESPACE_WGL_ATI_RENDER_TEXTURE_RECTANGLE
#endif

#if (defined(WGL_ATI_RENDER_TEXTURE_RECTANGLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_ATI_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_PLUGIN_WGL_ATI_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_PLUGIN_WGL_ATI_RENDER_TEXTURE_RECTANGLE
#endif

#if (defined(WGL_ATI_RENDER_TEXTURE_RECTANGLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_ATI_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_DECLARATION_WGL_ATI_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_DECLARATION_WGL_ATI_RENDER_TEXTURE_RECTANGLE
#endif

#ifndef WGL_ATI_render_texture_rectangle
#define WGL_ATI_render_texture_rectangle 1
#endif

#ifndef REGAL_NO_ENUM_WGL_ATI_RENDER_TEXTURE_RECTANGLE
#define WGL_TEXTURE_RECTANGLE_ATI 0x21a5 /* 8613 */
#endif

/**
 ** WGL_EXT_create_context_es2_profile
 **/

#if (defined(WGL_EXT_CREATE_CONTEXT_ES2_PROFILE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_ENUM_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_ENUM_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#if (defined(WGL_EXT_CREATE_CONTEXT_ES2_PROFILE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_TYPEDEF_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#if (defined(WGL_EXT_CREATE_CONTEXT_ES2_PROFILE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_NAMESPACE_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#if (defined(WGL_EXT_CREATE_CONTEXT_ES2_PROFILE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_PLUGIN_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#if (defined(WGL_EXT_CREATE_CONTEXT_ES2_PROFILE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_DECLARATION_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#ifndef WGL_EXT_create_context_es2_profile
#define WGL_EXT_create_context_es2_profile 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_CREATE_CONTEXT_ES2_PROFILE
#define WGL_CONTEXT_ES2_PROFILE_BIT_EXT 0x4
#endif

/**
 ** WGL_EXT_create_context_es_profile
 **/

#if (defined(WGL_EXT_CREATE_CONTEXT_ES_PROFILE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_ENUM_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_ENUM_WGL_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#if (defined(WGL_EXT_CREATE_CONTEXT_ES_PROFILE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_TYPEDEF_WGL_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#if (defined(WGL_EXT_CREATE_CONTEXT_ES_PROFILE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_NAMESPACE_WGL_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#if (defined(WGL_EXT_CREATE_CONTEXT_ES_PROFILE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_PLUGIN_WGL_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#if (defined(WGL_EXT_CREATE_CONTEXT_ES_PROFILE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_DECLARATION_WGL_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#ifndef WGL_EXT_create_context_es_profile
#define WGL_EXT_create_context_es_profile 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_CREATE_CONTEXT_ES_PROFILE
#define WGL_CONTEXT_ES_PROFILE_BIT_EXT 0x4
#endif

/**
 ** WGL_EXT_depth_float
 **/

#if (defined(WGL_EXT_DEPTH_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_DEPTH_FLOAT)) && !defined(REGAL_NO_ENUM_WGL_EXT_DEPTH_FLOAT)
#define REGAL_NO_ENUM_WGL_EXT_DEPTH_FLOAT
#endif

#if (defined(WGL_EXT_DEPTH_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_DEPTH_FLOAT)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_DEPTH_FLOAT)
#define REGAL_NO_TYPEDEF_WGL_EXT_DEPTH_FLOAT
#endif

#if (defined(WGL_EXT_DEPTH_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_DEPTH_FLOAT)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_DEPTH_FLOAT)
#define REGAL_NO_NAMESPACE_WGL_EXT_DEPTH_FLOAT
#endif

#if (defined(WGL_EXT_DEPTH_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_DEPTH_FLOAT)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_DEPTH_FLOAT)
#define REGAL_NO_PLUGIN_WGL_EXT_DEPTH_FLOAT
#endif

#if (defined(WGL_EXT_DEPTH_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_DEPTH_FLOAT)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_DEPTH_FLOAT)
#define REGAL_NO_DECLARATION_WGL_EXT_DEPTH_FLOAT
#endif

#ifndef WGL_EXT_depth_float
#define WGL_EXT_depth_float 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_DEPTH_FLOAT
#define WGL_DEPTH_FLOAT_EXT 0x2040 /* 8256 */
#endif

/**
 ** WGL_EXT_display_color_table
 **/

#if (defined(WGL_EXT_DISPLAY_COLOR_TABLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_DISPLAY_COLOR_TABLE)) && !defined(REGAL_NO_ENUM_WGL_EXT_DISPLAY_COLOR_TABLE)
#define REGAL_NO_ENUM_WGL_EXT_DISPLAY_COLOR_TABLE
#endif

#if (defined(WGL_EXT_DISPLAY_COLOR_TABLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_DISPLAY_COLOR_TABLE)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_DISPLAY_COLOR_TABLE)
#define REGAL_NO_TYPEDEF_WGL_EXT_DISPLAY_COLOR_TABLE
#endif

#if (defined(WGL_EXT_DISPLAY_COLOR_TABLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_DISPLAY_COLOR_TABLE)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_DISPLAY_COLOR_TABLE)
#define REGAL_NO_NAMESPACE_WGL_EXT_DISPLAY_COLOR_TABLE
#endif

#if (defined(WGL_EXT_DISPLAY_COLOR_TABLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_DISPLAY_COLOR_TABLE)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_DISPLAY_COLOR_TABLE)
#define REGAL_NO_PLUGIN_WGL_EXT_DISPLAY_COLOR_TABLE
#endif

#if (defined(WGL_EXT_DISPLAY_COLOR_TABLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_DISPLAY_COLOR_TABLE)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_DISPLAY_COLOR_TABLE)
#define REGAL_NO_DECLARATION_WGL_EXT_DISPLAY_COLOR_TABLE
#endif

#ifndef WGL_EXT_display_color_table
#define WGL_EXT_display_color_table 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_EXT_DISPLAY_COLOR_TABLE
typedef GLboolean (REGAL_CALL *PFNWGLBINDDISPLAYCOLORTABLEEXTPROC)(GLushort id);
typedef GLboolean (REGAL_CALL *PFNWGLCREATEDISPLAYCOLORTABLEEXTPROC)(GLushort id);
typedef GLboolean (REGAL_CALL *PFNWGLLOADDISPLAYCOLORTABLEEXTPROC)(const GLushort *table, GLuint length);
typedef VOID (REGAL_CALL *PFNWGLDESTROYDISPLAYCOLORTABLEEXTPROC)(GLushort id);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_EXT_DISPLAY_COLOR_TABLE
#define wglBindDisplayColorTableEXT         rwglBindDisplayColorTableEXT
#define wglCreateDisplayColorTableEXT       rwglCreateDisplayColorTableEXT
#define wglDestroyDisplayColorTableEXT      rwglDestroyDisplayColorTableEXT
#define wglLoadDisplayColorTableEXT         rwglLoadDisplayColorTableEXT
#endif

#ifndef REGAL_NO_DECLARATION_WGL_EXT_DISPLAY_COLOR_TABLE
REGAL_DECL GLboolean REGAL_CALL wglBindDisplayColorTableEXT(GLushort id);
REGAL_DECL GLboolean REGAL_CALL wglCreateDisplayColorTableEXT(GLushort id);
REGAL_DECL GLboolean REGAL_CALL wglLoadDisplayColorTableEXT(const GLushort *table, GLuint length);
REGAL_DECL VOID REGAL_CALL wglDestroyDisplayColorTableEXT(GLushort id);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_EXT_DISPLAY_COLOR_TABLE
REGAL_DECL GLboolean REGAL_CALL plugin_wglBindDisplayColorTableEXT(GLushort id);
REGAL_DECL GLboolean REGAL_CALL plugin_wglCreateDisplayColorTableEXT(GLushort id);
REGAL_DECL GLboolean REGAL_CALL plugin_wglLoadDisplayColorTableEXT(const GLushort *table, GLuint length);
REGAL_DECL VOID REGAL_CALL plugin_wglDestroyDisplayColorTableEXT(GLushort id);
#endif

/**
 ** WGL_EXT_extensions_string
 **/

#if (defined(WGL_EXT_EXTENSIONS_STRING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_EXTENSIONS_STRING)) && !defined(REGAL_NO_ENUM_WGL_EXT_EXTENSIONS_STRING)
#define REGAL_NO_ENUM_WGL_EXT_EXTENSIONS_STRING
#endif

#if (defined(WGL_EXT_EXTENSIONS_STRING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_EXTENSIONS_STRING)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_EXTENSIONS_STRING)
#define REGAL_NO_TYPEDEF_WGL_EXT_EXTENSIONS_STRING
#endif

#if (defined(WGL_EXT_EXTENSIONS_STRING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_EXTENSIONS_STRING)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_EXTENSIONS_STRING)
#define REGAL_NO_NAMESPACE_WGL_EXT_EXTENSIONS_STRING
#endif

#if (defined(WGL_EXT_EXTENSIONS_STRING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_EXTENSIONS_STRING)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_EXTENSIONS_STRING)
#define REGAL_NO_PLUGIN_WGL_EXT_EXTENSIONS_STRING
#endif

#if (defined(WGL_EXT_EXTENSIONS_STRING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_EXTENSIONS_STRING)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_EXTENSIONS_STRING)
#define REGAL_NO_DECLARATION_WGL_EXT_EXTENSIONS_STRING
#endif

#ifndef WGL_EXT_extensions_string
#define WGL_EXT_extensions_string 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_EXT_EXTENSIONS_STRING
typedef const char *(REGAL_CALL *PFNWGLGETEXTENSIONSSTRINGEXTPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_EXT_EXTENSIONS_STRING
#define wglGetExtensionsStringEXT           rwglGetExtensionsStringEXT
#endif

#ifndef REGAL_NO_DECLARATION_WGL_EXT_EXTENSIONS_STRING
REGAL_DECL const char *REGAL_CALL wglGetExtensionsStringEXT(void);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_EXT_EXTENSIONS_STRING
REGAL_DECL const char *REGAL_CALL plugin_wglGetExtensionsStringEXT(void);
#endif

/**
 ** WGL_EXT_framebuffer_sRGB
 **/

#if (defined(WGL_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_ENUM_WGL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_ENUM_WGL_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(WGL_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_TYPEDEF_WGL_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(WGL_EXT_FRAMEBUFFER_SRGB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_NAMESPACE_WGL_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(WGL_EXT_FRAMEBUFFER_SRGB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_PLUGIN_WGL_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(WGL_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_DECLARATION_WGL_EXT_FRAMEBUFFER_SRGB
#endif

#ifndef WGL_EXT_framebuffer_sRGB
#define WGL_EXT_framebuffer_sRGB 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_FRAMEBUFFER_SRGB
#define WGL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20a9 /* 8361 */
#endif

/**
 ** WGL_EXT_make_current_read
 **/

#if (defined(WGL_EXT_MAKE_CURRENT_READ) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_MAKE_CURRENT_READ)) && !defined(REGAL_NO_ENUM_WGL_EXT_MAKE_CURRENT_READ)
#define REGAL_NO_ENUM_WGL_EXT_MAKE_CURRENT_READ
#endif

#if (defined(WGL_EXT_MAKE_CURRENT_READ) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_MAKE_CURRENT_READ)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_MAKE_CURRENT_READ)
#define REGAL_NO_TYPEDEF_WGL_EXT_MAKE_CURRENT_READ
#endif

#if (defined(WGL_EXT_MAKE_CURRENT_READ) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_MAKE_CURRENT_READ)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_MAKE_CURRENT_READ)
#define REGAL_NO_NAMESPACE_WGL_EXT_MAKE_CURRENT_READ
#endif

#if (defined(WGL_EXT_MAKE_CURRENT_READ) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_MAKE_CURRENT_READ)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_MAKE_CURRENT_READ)
#define REGAL_NO_PLUGIN_WGL_EXT_MAKE_CURRENT_READ
#endif

#if (defined(WGL_EXT_MAKE_CURRENT_READ) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_MAKE_CURRENT_READ)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_MAKE_CURRENT_READ)
#define REGAL_NO_DECLARATION_WGL_EXT_MAKE_CURRENT_READ
#endif

#ifndef WGL_EXT_make_current_read
#define WGL_EXT_make_current_read 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_MAKE_CURRENT_READ
#define ERROR_INVALID_PIXEL_TYPE_EXT 0x2043 /* 8259 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_EXT_MAKE_CURRENT_READ
typedef BOOL (REGAL_CALL *PFNWGLMAKECONTEXTCURRENTEXTPROC)(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
typedef HDC (REGAL_CALL *PFNWGLGETCURRENTREADDCEXTPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_EXT_MAKE_CURRENT_READ
#define wglGetCurrentReadDCEXT              rwglGetCurrentReadDCEXT
#define wglMakeContextCurrentEXT            rwglMakeContextCurrentEXT
#endif

#ifndef REGAL_NO_DECLARATION_WGL_EXT_MAKE_CURRENT_READ
REGAL_DECL BOOL REGAL_CALL wglMakeContextCurrentEXT(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
REGAL_DECL HDC REGAL_CALL wglGetCurrentReadDCEXT(void);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_EXT_MAKE_CURRENT_READ
REGAL_DECL BOOL REGAL_CALL plugin_wglMakeContextCurrentEXT(HDC hDrawDC, HDC hReadDC, HGLRC hglrc);
REGAL_DECL HDC REGAL_CALL plugin_wglGetCurrentReadDCEXT(void);
#endif

/**
 ** WGL_EXT_multisample
 **/

#if (defined(WGL_EXT_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_WGL_EXT_MULTISAMPLE)
#define REGAL_NO_ENUM_WGL_EXT_MULTISAMPLE
#endif

#if (defined(WGL_EXT_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_WGL_EXT_MULTISAMPLE
#endif

#if (defined(WGL_EXT_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_WGL_EXT_MULTISAMPLE
#endif

#if (defined(WGL_EXT_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_MULTISAMPLE)
#define REGAL_NO_PLUGIN_WGL_EXT_MULTISAMPLE
#endif

#if (defined(WGL_EXT_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_MULTISAMPLE)
#define REGAL_NO_DECLARATION_WGL_EXT_MULTISAMPLE
#endif

#ifndef WGL_EXT_multisample
#define WGL_EXT_multisample 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_MULTISAMPLE
#define WGL_SAMPLE_BUFFERS_EXT 0x2041     /* 8257 */
#define WGL_SAMPLES_EXT        0x2042     /* 8258 */
#endif

/**
 ** WGL_EXT_pbuffer
 **/

#if (defined(WGL_EXT_PBUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_PBUFFER)) && !defined(REGAL_NO_ENUM_WGL_EXT_PBUFFER)
#define REGAL_NO_ENUM_WGL_EXT_PBUFFER
#endif

#if (defined(WGL_EXT_PBUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_PBUFFER)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_PBUFFER)
#define REGAL_NO_TYPEDEF_WGL_EXT_PBUFFER
#endif

#if (defined(WGL_EXT_PBUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_PBUFFER)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_PBUFFER)
#define REGAL_NO_NAMESPACE_WGL_EXT_PBUFFER
#endif

#if (defined(WGL_EXT_PBUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_PBUFFER)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_PBUFFER)
#define REGAL_NO_PLUGIN_WGL_EXT_PBUFFER
#endif

#if (defined(WGL_EXT_PBUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_PBUFFER)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_PBUFFER)
#define REGAL_NO_DECLARATION_WGL_EXT_PBUFFER
#endif

#ifndef WGL_EXT_pbuffer
#define WGL_EXT_pbuffer 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_PBUFFER
#define WGL_DRAW_TO_PBUFFER_EXT        0x202d     /* 8237 */
#define WGL_MAX_PBUFFER_PIXELS_EXT     0x202e     /* 8238 */
#define WGL_MAX_PBUFFER_WIDTH_EXT      0x202f     /* 8239 */
#define WGL_MAX_PBUFFER_HEIGHT_EXT     0x2030     /* 8240 */
#define WGL_OPTIMAL_PBUFFER_WIDTH_EXT  0x2031     /* 8241 */
#define WGL_OPTIMAL_PBUFFER_HEIGHT_EXT 0x2032     /* 8242 */
#define WGL_PBUFFER_LARGEST_EXT        0x2033     /* 8243 */
#define WGL_PBUFFER_WIDTH_EXT          0x2034     /* 8244 */
#define WGL_PBUFFER_HEIGHT_EXT         0x2035     /* 8245 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_EXT_PBUFFER
typedef BOOL (REGAL_CALL *PFNWGLDESTROYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer);
typedef BOOL (REGAL_CALL *PFNWGLQUERYPBUFFEREXTPROC)(HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
typedef HDC (REGAL_CALL *PFNWGLGETPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer);
typedef HPBUFFEREXT (REGAL_CALL *PFNWGLCREATEPBUFFEREXTPROC)(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
typedef int (REGAL_CALL *PFNWGLRELEASEPBUFFERDCEXTPROC)(HPBUFFEREXT hPbuffer, HDC hDC);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_EXT_PBUFFER
#define wglCreatePbufferEXT                 rwglCreatePbufferEXT
#define wglDestroyPbufferEXT                rwglDestroyPbufferEXT
#define wglGetPbufferDCEXT                  rwglGetPbufferDCEXT
#define wglQueryPbufferEXT                  rwglQueryPbufferEXT
#define wglReleasePbufferDCEXT              rwglReleasePbufferDCEXT
#endif

#ifndef REGAL_NO_DECLARATION_WGL_EXT_PBUFFER
REGAL_DECL BOOL REGAL_CALL wglDestroyPbufferEXT(HPBUFFEREXT hPbuffer);
REGAL_DECL BOOL REGAL_CALL wglQueryPbufferEXT(HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
REGAL_DECL HDC REGAL_CALL wglGetPbufferDCEXT(HPBUFFEREXT hPbuffer);
REGAL_DECL HPBUFFEREXT REGAL_CALL wglCreatePbufferEXT(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
REGAL_DECL int REGAL_CALL wglReleasePbufferDCEXT(HPBUFFEREXT hPbuffer, HDC hDC);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_EXT_PBUFFER
REGAL_DECL BOOL REGAL_CALL plugin_wglDestroyPbufferEXT(HPBUFFEREXT hPbuffer);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryPbufferEXT(HPBUFFEREXT hPbuffer, int iAttribute, int *piValue);
REGAL_DECL HDC REGAL_CALL plugin_wglGetPbufferDCEXT(HPBUFFEREXT hPbuffer);
REGAL_DECL HPBUFFEREXT REGAL_CALL plugin_wglCreatePbufferEXT(HDC hDC, int iPixelFormat, int iWidth, int iHeight, const int *piAttribList);
REGAL_DECL int REGAL_CALL plugin_wglReleasePbufferDCEXT(HPBUFFEREXT hPbuffer, HDC hDC);
#endif

/**
 ** WGL_EXT_pixel_format
 **/

#if (defined(WGL_EXT_PIXEL_FORMAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT)) && !defined(REGAL_NO_ENUM_WGL_EXT_PIXEL_FORMAT)
#define REGAL_NO_ENUM_WGL_EXT_PIXEL_FORMAT
#endif

#if (defined(WGL_EXT_PIXEL_FORMAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_PIXEL_FORMAT)
#define REGAL_NO_TYPEDEF_WGL_EXT_PIXEL_FORMAT
#endif

#if (defined(WGL_EXT_PIXEL_FORMAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_PIXEL_FORMAT)
#define REGAL_NO_NAMESPACE_WGL_EXT_PIXEL_FORMAT
#endif

#if (defined(WGL_EXT_PIXEL_FORMAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_PIXEL_FORMAT)
#define REGAL_NO_PLUGIN_WGL_EXT_PIXEL_FORMAT
#endif

#if (defined(WGL_EXT_PIXEL_FORMAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_PIXEL_FORMAT)
#define REGAL_NO_DECLARATION_WGL_EXT_PIXEL_FORMAT
#endif

#ifndef WGL_EXT_pixel_format
#define WGL_EXT_pixel_format 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_PIXEL_FORMAT
#define WGL_NUMBER_PIXEL_FORMATS_EXT 0x2000     /* 8192 */
#define WGL_DRAW_TO_WINDOW_EXT       0x2001     /* 8193 */
#define WGL_DRAW_TO_BITMAP_EXT       0x2002     /* 8194 */
#define WGL_ACCELERATION_EXT         0x2003     /* 8195 */
#define WGL_NEED_PALETTE_EXT         0x2004     /* 8196 */
#define WGL_NEED_SYSTEM_PALETTE_EXT  0x2005     /* 8197 */
#define WGL_SWAP_LAYER_BUFFERS_EXT   0x2006     /* 8198 */
#define WGL_SWAP_METHOD_EXT          0x2007     /* 8199 */
#define WGL_NUMBER_OVERLAYS_EXT      0x2008     /* 8200 */
#define WGL_NUMBER_UNDERLAYS_EXT     0x2009     /* 8201 */
#define WGL_TRANSPARENT_EXT          0x200a     /* 8202 */
#define WGL_TRANSPARENT_VALUE_EXT    0x200b     /* 8203 */
#define WGL_SHARE_DEPTH_EXT          0x200c     /* 8204 */
#define WGL_SHARE_STENCIL_EXT        0x200d     /* 8205 */
#define WGL_SHARE_ACCUM_EXT          0x200e     /* 8206 */
#define WGL_SUPPORT_GDI_EXT          0x200f     /* 8207 */
#define WGL_SUPPORT_OPENGL_EXT       0x2010     /* 8208 */
#define WGL_DOUBLE_BUFFER_EXT        0x2011     /* 8209 */
#define WGL_STEREO_EXT               0x2012     /* 8210 */
#define WGL_PIXEL_TYPE_EXT           0x2013     /* 8211 */
#define WGL_COLOR_BITS_EXT           0x2014     /* 8212 */
#define WGL_RED_BITS_EXT             0x2015     /* 8213 */
#define WGL_RED_SHIFT_EXT            0x2016     /* 8214 */
#define WGL_GREEN_BITS_EXT           0x2017     /* 8215 */
#define WGL_GREEN_SHIFT_EXT          0x2018     /* 8216 */
#define WGL_BLUE_BITS_EXT            0x2019     /* 8217 */
#define WGL_BLUE_SHIFT_EXT           0x201a     /* 8218 */
#define WGL_ALPHA_BITS_EXT           0x201b     /* 8219 */
#define WGL_ALPHA_SHIFT_EXT          0x201c     /* 8220 */
#define WGL_ACCUM_BITS_EXT           0x201d     /* 8221 */
#define WGL_ACCUM_RED_BITS_EXT       0x201e     /* 8222 */
#define WGL_ACCUM_GREEN_BITS_EXT     0x201f     /* 8223 */
#define WGL_ACCUM_BLUE_BITS_EXT      0x2020     /* 8224 */
#define WGL_ACCUM_ALPHA_BITS_EXT     0x2021     /* 8225 */
#define WGL_DEPTH_BITS_EXT           0x2022     /* 8226 */
#define WGL_STENCIL_BITS_EXT         0x2023     /* 8227 */
#define WGL_AUX_BUFFERS_EXT          0x2024     /* 8228 */
#define WGL_NO_ACCELERATION_EXT      0x2025     /* 8229 */
#define WGL_GENERIC_ACCELERATION_EXT 0x2026     /* 8230 */
#define WGL_FULL_ACCELERATION_EXT    0x2027     /* 8231 */
#define WGL_SWAP_EXCHANGE_EXT        0x2028     /* 8232 */
#define WGL_SWAP_COPY_EXT            0x2029     /* 8233 */
#define WGL_SWAP_UNDEFINED_EXT       0x202a     /* 8234 */
#define WGL_TYPE_RGBA_EXT            0x202b     /* 8235 */
#define WGL_TYPE_COLORINDEX_EXT      0x202c     /* 8236 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_EXT_PIXEL_FORMAT
typedef BOOL (REGAL_CALL *PFNWGLCHOOSEPIXELFORMATEXTPROC)(HDC hDC, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
typedef BOOL (REGAL_CALL *PFNWGLGETPIXELFORMATATTRIBFVEXTPROC)(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
typedef BOOL (REGAL_CALL *PFNWGLGETPIXELFORMATATTRIBIVEXTPROC)(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_EXT_PIXEL_FORMAT
#define wglChoosePixelFormatEXT             rwglChoosePixelFormatEXT
#define wglGetPixelFormatAttribfvEXT        rwglGetPixelFormatAttribfvEXT
#define wglGetPixelFormatAttribivEXT        rwglGetPixelFormatAttribivEXT
#endif

#ifndef REGAL_NO_DECLARATION_WGL_EXT_PIXEL_FORMAT
REGAL_DECL BOOL REGAL_CALL wglChoosePixelFormatEXT(HDC hDC, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
REGAL_DECL BOOL REGAL_CALL wglGetPixelFormatAttribfvEXT(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
REGAL_DECL BOOL REGAL_CALL wglGetPixelFormatAttribivEXT(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_EXT_PIXEL_FORMAT
REGAL_DECL BOOL REGAL_CALL plugin_wglChoosePixelFormatEXT(HDC hDC, const int *piAttribIList, const FLOAT *pfAttribFList, UINT nMaxFormats, int *piFormats, UINT *nNumFormats);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetPixelFormatAttribfvEXT(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, FLOAT *pfValues);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetPixelFormatAttribivEXT(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nAttributes, const int *piAttributes, int *piValues);
#endif

/**
 ** WGL_EXT_pixel_format_packed_float
 **/

#if (defined(WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)) && !defined(REGAL_NO_ENUM_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)
#define REGAL_NO_ENUM_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT
#endif

#if (defined(WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)
#define REGAL_NO_TYPEDEF_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT
#endif

#if (defined(WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)
#define REGAL_NO_NAMESPACE_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT
#endif

#if (defined(WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)
#define REGAL_NO_PLUGIN_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT
#endif

#if (defined(WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT)
#define REGAL_NO_DECLARATION_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT
#endif

#ifndef WGL_EXT_pixel_format_packed_float
#define WGL_EXT_pixel_format_packed_float 1
#endif

#ifndef REGAL_NO_ENUM_WGL_EXT_PIXEL_FORMAT_PACKED_FLOAT
#define WGL_TYPE_RGBA_UNSIGNED_FLOAT_EXT 0x20a8 /* 8360 */
#endif

/**
 ** WGL_EXT_swap_control
 **/

#if (defined(WGL_EXT_SWAP_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_ENUM_WGL_EXT_SWAP_CONTROL)
#define REGAL_NO_ENUM_WGL_EXT_SWAP_CONTROL
#endif

#if (defined(WGL_EXT_SWAP_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_TYPEDEF_WGL_EXT_SWAP_CONTROL)
#define REGAL_NO_TYPEDEF_WGL_EXT_SWAP_CONTROL
#endif

#if (defined(WGL_EXT_SWAP_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_NAMESPACE_WGL_EXT_SWAP_CONTROL)
#define REGAL_NO_NAMESPACE_WGL_EXT_SWAP_CONTROL
#endif

#if (defined(WGL_EXT_SWAP_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_PLUGIN_WGL_EXT_SWAP_CONTROL)
#define REGAL_NO_PLUGIN_WGL_EXT_SWAP_CONTROL
#endif

#if (defined(WGL_EXT_SWAP_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_DECLARATION_WGL_EXT_SWAP_CONTROL)
#define REGAL_NO_DECLARATION_WGL_EXT_SWAP_CONTROL
#endif

#ifndef WGL_EXT_swap_control
#define WGL_EXT_swap_control 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_EXT_SWAP_CONTROL
typedef BOOL (REGAL_CALL *PFNWGLSWAPINTERVALEXTPROC)(int interval);
typedef int (REGAL_CALL *PFNWGLGETSWAPINTERVALEXTPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_EXT_SWAP_CONTROL
#define wglGetSwapIntervalEXT               rwglGetSwapIntervalEXT
#define wglSwapIntervalEXT                  rwglSwapIntervalEXT
#endif

#ifndef REGAL_NO_DECLARATION_WGL_EXT_SWAP_CONTROL
REGAL_DECL BOOL REGAL_CALL wglSwapIntervalEXT(int interval);
REGAL_DECL int REGAL_CALL wglGetSwapIntervalEXT(void);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_EXT_SWAP_CONTROL
REGAL_DECL BOOL REGAL_CALL plugin_wglSwapIntervalEXT(int interval);
REGAL_DECL int REGAL_CALL plugin_wglGetSwapIntervalEXT(void);
#endif

/**
 ** WGL_GDI
 **/

#if (defined(WGL_GDI) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_GDI)) && !defined(REGAL_NO_ENUM_WGL_GDI)
#define REGAL_NO_ENUM_WGL_GDI
#endif

#if (defined(WGL_GDI) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_GDI)) && !defined(REGAL_NO_TYPEDEF_WGL_GDI)
#define REGAL_NO_TYPEDEF_WGL_GDI
#endif

#if (defined(WGL_GDI) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_GDI)) && !defined(REGAL_NO_NAMESPACE_WGL_GDI)
#define REGAL_NO_NAMESPACE_WGL_GDI
#endif

#if (defined(WGL_GDI) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_GDI)) && !defined(REGAL_NO_PLUGIN_WGL_GDI)
#define REGAL_NO_PLUGIN_WGL_GDI
#endif

#if (defined(WGL_GDI) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_GDI)) && !defined(REGAL_NO_DECLARATION_WGL_GDI)
#define REGAL_NO_DECLARATION_WGL_GDI
#endif

#ifndef WGL_GDI
#define WGL_GDI 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_GDI
typedef BOOL (REGAL_CALL *PFNWGLSETPIXELFORMATPROC)(HDC hDC, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd);
typedef BOOL (REGAL_CALL *PFNWGLSWAPBUFFERSPROC)(HDC hDC);
typedef int (REGAL_CALL *PFNWGLCHOOSEPIXELFORMATPROC)(HDC hDC, const PIXELFORMATDESCRIPTOR *ppfd);
typedef int (REGAL_CALL *PFNWGLDESCRIBEPIXELFORMATPROC)(HDC hDC, int iPixelFormat, UINT nBytes, LPPIXELFORMATDESCRIPTOR ppfd);
typedef int (REGAL_CALL *PFNWGLGETPIXELFORMATPROC)(HDC hDC);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_GDI
#define wglChoosePixelFormat                rwglChoosePixelFormat
#define wglDescribePixelFormat              rwglDescribePixelFormat
#define wglGetPixelFormat                   rwglGetPixelFormat
#define wglSetPixelFormat                   rwglSetPixelFormat
#define wglSwapBuffers                      rwglSwapBuffers
#endif

#ifndef REGAL_NO_DECLARATION_WGL_GDI
REGAL_DECL BOOL REGAL_CALL wglSetPixelFormat(HDC hDC, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd);
REGAL_DECL BOOL REGAL_CALL wglSwapBuffers(HDC hDC);
REGAL_DECL int REGAL_CALL wglChoosePixelFormat(HDC hDC, const PIXELFORMATDESCRIPTOR *ppfd);
REGAL_DECL int REGAL_CALL wglDescribePixelFormat(HDC hDC, int iPixelFormat, UINT nBytes, LPPIXELFORMATDESCRIPTOR ppfd);
REGAL_DECL int REGAL_CALL wglGetPixelFormat(HDC hDC);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_GDI
REGAL_DECL BOOL REGAL_CALL plugin_wglSetPixelFormat(HDC hDC, int iPixelFormat, const PIXELFORMATDESCRIPTOR *ppfd);
REGAL_DECL BOOL REGAL_CALL plugin_wglSwapBuffers(HDC hDC);
REGAL_DECL int REGAL_CALL plugin_wglChoosePixelFormat(HDC hDC, const PIXELFORMATDESCRIPTOR *ppfd);
REGAL_DECL int REGAL_CALL plugin_wglDescribePixelFormat(HDC hDC, int iPixelFormat, UINT nBytes, LPPIXELFORMATDESCRIPTOR ppfd);
REGAL_DECL int REGAL_CALL plugin_wglGetPixelFormat(HDC hDC);
#endif

/**
 ** WGL_I3D_digital_video_control
 **/

#if (defined(WGL_I3D_DIGITAL_VIDEO_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_I3D_DIGITAL_VIDEO_CONTROL)) && !defined(REGAL_NO_ENUM_WGL_I3D_DIGITAL_VIDEO_CONTROL)
#define REGAL_NO_ENUM_WGL_I3D_DIGITAL_VIDEO_CONTROL
#endif

#if (defined(WGL_I3D_DIGITAL_VIDEO_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_I3D_DIGITAL_VIDEO_CONTROL)) && !defined(REGAL_NO_TYPEDEF_WGL_I3D_DIGITAL_VIDEO_CONTROL)
#define REGAL_NO_TYPEDEF_WGL_I3D_DIGITAL_VIDEO_CONTROL
#endif

#if (defined(WGL_I3D_DIGITAL_VIDEO_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_I3D_DIGITAL_VIDEO_CONTROL)) && !defined(REGAL_NO_NAMESPACE_WGL_I3D_DIGITAL_VIDEO_CONTROL)
#define REGAL_NO_NAMESPACE_WGL_I3D_DIGITAL_VIDEO_CONTROL
#endif

#if (defined(WGL_I3D_DIGITAL_VIDEO_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_I3D_DIGITAL_VIDEO_CONTROL)) && !defined(REGAL_NO_PLUGIN_WGL_I3D_DIGITAL_VIDEO_CONTROL)
#define REGAL_NO_PLUGIN_WGL_I3D_DIGITAL_VIDEO_CONTROL
#endif

#if (defined(WGL_I3D_DIGITAL_VIDEO_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_I3D_DIGITAL_VIDEO_CONTROL)) && !defined(REGAL_NO_DECLARATION_WGL_I3D_DIGITAL_VIDEO_CONTROL)
#define REGAL_NO_DECLARATION_WGL_I3D_DIGITAL_VIDEO_CONTROL
#endif

#ifndef WGL_I3D_digital_video_control
#define WGL_I3D_digital_video_control 1
#endif

#ifndef REGAL_NO_ENUM_WGL_I3D_DIGITAL_VIDEO_CONTROL
#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_FRAMEBUFFER_I3D 0x2050     /* 8272 */
#define WGL_DIGITAL_VIDEO_CURSOR_ALPHA_VALUE_I3D       0x2051     /* 8273 */
#define WGL_DIGITAL_VIDEO_CURSOR_INCLUDED_I3D          0x2052     /* 8274 */
#define WGL_DIGITAL_VIDEO_GAMMA_CORRECTED_I3D          0x2053     /* 8275 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_I3D_DIGITAL_VIDEO_CONTROL
typedef BOOL (REGAL_CALL *PFNWGLGETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute, int *piValue);
typedef BOOL (REGAL_CALL *PFNWGLSETDIGITALVIDEOPARAMETERSI3DPROC)(HDC hDC, int iAttribute, const int *piValue);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_I3D_DIGITAL_VIDEO_CONTROL
#define wglGetDigitalVideoParametersI3D     rwglGetDigitalVideoParametersI3D
#define wglSetDigitalVideoParametersI3D     rwglSetDigitalVideoParametersI3D
#endif

#ifndef REGAL_NO_DECLARATION_WGL_I3D_DIGITAL_VIDEO_CONTROL
REGAL_DECL BOOL REGAL_CALL wglGetDigitalVideoParametersI3D(HDC hDC, int iAttribute, int *piValue);
REGAL_DECL BOOL REGAL_CALL wglSetDigitalVideoParametersI3D(HDC hDC, int iAttribute, const int *piValue);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_I3D_DIGITAL_VIDEO_CONTROL
REGAL_DECL BOOL REGAL_CALL plugin_wglGetDigitalVideoParametersI3D(HDC hDC, int iAttribute, int *piValue);
REGAL_DECL BOOL REGAL_CALL plugin_wglSetDigitalVideoParametersI3D(HDC hDC, int iAttribute, const int *piValue);
#endif

/**
 ** WGL_I3D_gamma
 **/

#if (defined(WGL_I3D_GAMMA) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_I3D_GAMMA)) && !defined(REGAL_NO_ENUM_WGL_I3D_GAMMA)
#define REGAL_NO_ENUM_WGL_I3D_GAMMA
#endif

#if (defined(WGL_I3D_GAMMA) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_I3D_GAMMA)) && !defined(REGAL_NO_TYPEDEF_WGL_I3D_GAMMA)
#define REGAL_NO_TYPEDEF_WGL_I3D_GAMMA
#endif

#if (defined(WGL_I3D_GAMMA) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_I3D_GAMMA)) && !defined(REGAL_NO_NAMESPACE_WGL_I3D_GAMMA)
#define REGAL_NO_NAMESPACE_WGL_I3D_GAMMA
#endif

#if (defined(WGL_I3D_GAMMA) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_I3D_GAMMA)) && !defined(REGAL_NO_PLUGIN_WGL_I3D_GAMMA)
#define REGAL_NO_PLUGIN_WGL_I3D_GAMMA
#endif

#if (defined(WGL_I3D_GAMMA) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_I3D_GAMMA)) && !defined(REGAL_NO_DECLARATION_WGL_I3D_GAMMA)
#define REGAL_NO_DECLARATION_WGL_I3D_GAMMA
#endif

#ifndef WGL_I3D_gamma
#define WGL_I3D_gamma 1
#endif

#ifndef REGAL_NO_ENUM_WGL_I3D_GAMMA
#define WGL_GAMMA_TABLE_SIZE_I3D      0x204e     /* 8270 */
#define WGL_GAMMA_EXCLUDE_DESKTOP_I3D 0x204f     /* 8271 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_I3D_GAMMA
typedef BOOL (REGAL_CALL *PFNWGLGETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
typedef BOOL (REGAL_CALL *PFNWGLGETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute, int *piValue);
typedef BOOL (REGAL_CALL *PFNWGLSETGAMMATABLEI3DPROC)(HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
typedef BOOL (REGAL_CALL *PFNWGLSETGAMMATABLEPARAMETERSI3DPROC)(HDC hDC, int iAttribute, const int *piValue);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_I3D_GAMMA
#define wglGetGammaTableI3D                 rwglGetGammaTableI3D
#define wglGetGammaTableParametersI3D       rwglGetGammaTableParametersI3D
#define wglSetGammaTableI3D                 rwglSetGammaTableI3D
#define wglSetGammaTableParametersI3D       rwglSetGammaTableParametersI3D
#endif

#ifndef REGAL_NO_DECLARATION_WGL_I3D_GAMMA
REGAL_DECL BOOL REGAL_CALL wglGetGammaTableI3D(HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
REGAL_DECL BOOL REGAL_CALL wglGetGammaTableParametersI3D(HDC hDC, int iAttribute, int *piValue);
REGAL_DECL BOOL REGAL_CALL wglSetGammaTableI3D(HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
REGAL_DECL BOOL REGAL_CALL wglSetGammaTableParametersI3D(HDC hDC, int iAttribute, const int *piValue);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_I3D_GAMMA
REGAL_DECL BOOL REGAL_CALL plugin_wglGetGammaTableI3D(HDC hDC, int iEntries, USHORT *puRed, USHORT *puGreen, USHORT *puBlue);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetGammaTableParametersI3D(HDC hDC, int iAttribute, int *piValue);
REGAL_DECL BOOL REGAL_CALL plugin_wglSetGammaTableI3D(HDC hDC, int iEntries, const USHORT *puRed, const USHORT *puGreen, const USHORT *puBlue);
REGAL_DECL BOOL REGAL_CALL plugin_wglSetGammaTableParametersI3D(HDC hDC, int iAttribute, const int *piValue);
#endif

/**
 ** WGL_I3D_genlock
 **/

#if (defined(WGL_I3D_GENLOCK) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_I3D_GENLOCK)) && !defined(REGAL_NO_ENUM_WGL_I3D_GENLOCK)
#define REGAL_NO_ENUM_WGL_I3D_GENLOCK
#endif

#if (defined(WGL_I3D_GENLOCK) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_I3D_GENLOCK)) && !defined(REGAL_NO_TYPEDEF_WGL_I3D_GENLOCK)
#define REGAL_NO_TYPEDEF_WGL_I3D_GENLOCK
#endif

#if (defined(WGL_I3D_GENLOCK) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_I3D_GENLOCK)) && !defined(REGAL_NO_NAMESPACE_WGL_I3D_GENLOCK)
#define REGAL_NO_NAMESPACE_WGL_I3D_GENLOCK
#endif

#if (defined(WGL_I3D_GENLOCK) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_I3D_GENLOCK)) && !defined(REGAL_NO_PLUGIN_WGL_I3D_GENLOCK)
#define REGAL_NO_PLUGIN_WGL_I3D_GENLOCK
#endif

#if (defined(WGL_I3D_GENLOCK) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_I3D_GENLOCK)) && !defined(REGAL_NO_DECLARATION_WGL_I3D_GENLOCK)
#define REGAL_NO_DECLARATION_WGL_I3D_GENLOCK
#endif

#ifndef WGL_I3D_genlock
#define WGL_I3D_genlock 1
#endif

#ifndef REGAL_NO_ENUM_WGL_I3D_GENLOCK
#define WGL_GENLOCK_SOURCE_MULTIVIEW_I3D      0x2044     /* 8260 */
#define WGL_GENLOCK_SOURCE_EXTERNAL_SYNC_I3D  0x2045     /* 8261 */
#define WGL_GENLOCK_SOURCE_EXTERNAL_FIELD_I3D 0x2046     /* 8262 */
#define WGL_GENLOCK_SOURCE_EXTERNAL_TTL_I3D   0x2047     /* 8263 */
#define WGL_GENLOCK_SOURCE_DIGITAL_SYNC_I3D   0x2048     /* 8264 */
#define WGL_GENLOCK_SOURCE_DIGITAL_FIELD_I3D  0x2049     /* 8265 */
#define WGL_GENLOCK_SOURCE_EDGE_FALLING_I3D   0x204a     /* 8266 */
#define WGL_GENLOCK_SOURCE_EDGE_RISING_I3D    0x204b     /* 8267 */
#define WGL_GENLOCK_SOURCE_EDGE_BOTH_I3D      0x204c     /* 8268 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_I3D_GENLOCK
typedef BOOL (REGAL_CALL *PFNWGLDISABLEGENLOCKI3DPROC)(HDC hDC);
typedef BOOL (REGAL_CALL *PFNWGLENABLEGENLOCKI3DPROC)(HDC hDC);
typedef BOOL (REGAL_CALL *PFNWGLGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT uRate);
typedef BOOL (REGAL_CALL *PFNWGLGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT uDelay);
typedef BOOL (REGAL_CALL *PFNWGLGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT uEdge);
typedef BOOL (REGAL_CALL *PFNWGLGENLOCKSOURCEI3DPROC)(HDC hDC, UINT uSource);
typedef BOOL (REGAL_CALL *PFNWGLGETGENLOCKSAMPLERATEI3DPROC)(HDC hDC, UINT *uRate);
typedef BOOL (REGAL_CALL *PFNWGLGETGENLOCKSOURCEDELAYI3DPROC)(HDC hDC, UINT *uDelay);
typedef BOOL (REGAL_CALL *PFNWGLGETGENLOCKSOURCEEDGEI3DPROC)(HDC hDC, UINT *uEdge);
typedef BOOL (REGAL_CALL *PFNWGLGETGENLOCKSOURCEI3DPROC)(HDC hDC, UINT *uSource);
typedef BOOL (REGAL_CALL *PFNWGLISENABLEDGENLOCKI3DPROC)(HDC hDC, BOOL *pFlag);
typedef BOOL (REGAL_CALL *PFNWGLQUERYGENLOCKMAXSOURCEDELAYI3DPROC)(HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_I3D_GENLOCK
#define wglDisableGenlockI3D                rwglDisableGenlockI3D
#define wglEnableGenlockI3D                 rwglEnableGenlockI3D
#define wglGenlockSampleRateI3D             rwglGenlockSampleRateI3D
#define wglGenlockSourceDelayI3D            rwglGenlockSourceDelayI3D
#define wglGenlockSourceEdgeI3D             rwglGenlockSourceEdgeI3D
#define wglGenlockSourceI3D                 rwglGenlockSourceI3D
#define wglGetGenlockSampleRateI3D          rwglGetGenlockSampleRateI3D
#define wglGetGenlockSourceDelayI3D         rwglGetGenlockSourceDelayI3D
#define wglGetGenlockSourceEdgeI3D          rwglGetGenlockSourceEdgeI3D
#define wglGetGenlockSourceI3D              rwglGetGenlockSourceI3D
#define wglIsEnabledGenlockI3D              rwglIsEnabledGenlockI3D
#define wglQueryGenlockMaxSourceDelayI3D    rwglQueryGenlockMaxSourceDelayI3D
#endif

#ifndef REGAL_NO_DECLARATION_WGL_I3D_GENLOCK
REGAL_DECL BOOL REGAL_CALL wglDisableGenlockI3D(HDC hDC);
REGAL_DECL BOOL REGAL_CALL wglEnableGenlockI3D(HDC hDC);
REGAL_DECL BOOL REGAL_CALL wglGenlockSampleRateI3D(HDC hDC, UINT uRate);
REGAL_DECL BOOL REGAL_CALL wglGenlockSourceDelayI3D(HDC hDC, UINT uDelay);
REGAL_DECL BOOL REGAL_CALL wglGenlockSourceEdgeI3D(HDC hDC, UINT uEdge);
REGAL_DECL BOOL REGAL_CALL wglGenlockSourceI3D(HDC hDC, UINT uSource);
REGAL_DECL BOOL REGAL_CALL wglGetGenlockSampleRateI3D(HDC hDC, UINT *uRate);
REGAL_DECL BOOL REGAL_CALL wglGetGenlockSourceDelayI3D(HDC hDC, UINT *uDelay);
REGAL_DECL BOOL REGAL_CALL wglGetGenlockSourceEdgeI3D(HDC hDC, UINT *uEdge);
REGAL_DECL BOOL REGAL_CALL wglGetGenlockSourceI3D(HDC hDC, UINT *uSource);
REGAL_DECL BOOL REGAL_CALL wglIsEnabledGenlockI3D(HDC hDC, BOOL *pFlag);
REGAL_DECL BOOL REGAL_CALL wglQueryGenlockMaxSourceDelayI3D(HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_I3D_GENLOCK
REGAL_DECL BOOL REGAL_CALL plugin_wglDisableGenlockI3D(HDC hDC);
REGAL_DECL BOOL REGAL_CALL plugin_wglEnableGenlockI3D(HDC hDC);
REGAL_DECL BOOL REGAL_CALL plugin_wglGenlockSampleRateI3D(HDC hDC, UINT uRate);
REGAL_DECL BOOL REGAL_CALL plugin_wglGenlockSourceDelayI3D(HDC hDC, UINT uDelay);
REGAL_DECL BOOL REGAL_CALL plugin_wglGenlockSourceEdgeI3D(HDC hDC, UINT uEdge);
REGAL_DECL BOOL REGAL_CALL plugin_wglGenlockSourceI3D(HDC hDC, UINT uSource);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetGenlockSampleRateI3D(HDC hDC, UINT *uRate);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetGenlockSourceDelayI3D(HDC hDC, UINT *uDelay);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetGenlockSourceEdgeI3D(HDC hDC, UINT *uEdge);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetGenlockSourceI3D(HDC hDC, UINT *uSource);
REGAL_DECL BOOL REGAL_CALL plugin_wglIsEnabledGenlockI3D(HDC hDC, BOOL *pFlag);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryGenlockMaxSourceDelayI3D(HDC hDC, UINT *uMaxLineDelay, UINT *uMaxPixelDelay);
#endif

/**
 ** WGL_I3D_image_buffer
 **/

#if (defined(WGL_I3D_IMAGE_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_I3D_IMAGE_BUFFER)) && !defined(REGAL_NO_ENUM_WGL_I3D_IMAGE_BUFFER)
#define REGAL_NO_ENUM_WGL_I3D_IMAGE_BUFFER
#endif

#if (defined(WGL_I3D_IMAGE_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_I3D_IMAGE_BUFFER)) && !defined(REGAL_NO_TYPEDEF_WGL_I3D_IMAGE_BUFFER)
#define REGAL_NO_TYPEDEF_WGL_I3D_IMAGE_BUFFER
#endif

#if (defined(WGL_I3D_IMAGE_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_I3D_IMAGE_BUFFER)) && !defined(REGAL_NO_NAMESPACE_WGL_I3D_IMAGE_BUFFER)
#define REGAL_NO_NAMESPACE_WGL_I3D_IMAGE_BUFFER
#endif

#if (defined(WGL_I3D_IMAGE_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_I3D_IMAGE_BUFFER)) && !defined(REGAL_NO_PLUGIN_WGL_I3D_IMAGE_BUFFER)
#define REGAL_NO_PLUGIN_WGL_I3D_IMAGE_BUFFER
#endif

#if (defined(WGL_I3D_IMAGE_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_I3D_IMAGE_BUFFER)) && !defined(REGAL_NO_DECLARATION_WGL_I3D_IMAGE_BUFFER)
#define REGAL_NO_DECLARATION_WGL_I3D_IMAGE_BUFFER
#endif

#ifndef WGL_I3D_image_buffer
#define WGL_I3D_image_buffer 1
#endif

#ifndef REGAL_NO_ENUM_WGL_I3D_IMAGE_BUFFER
#define WGL_IMAGE_BUFFER_MIN_ACCESS_I3D 0x1
#define WGL_IMAGE_BUFFER_LOCK_I3D       0x2
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_I3D_IMAGE_BUFFER
typedef BOOL (REGAL_CALL *PFNWGLASSOCIATEIMAGEBUFFEREVENTSI3DPROC)(HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
typedef BOOL (REGAL_CALL *PFNWGLDESTROYIMAGEBUFFERI3DPROC)(HDC hDC, LPVOID pAddress);
typedef BOOL (REGAL_CALL *PFNWGLRELEASEIMAGEBUFFEREVENTSI3DPROC)(HDC hDC, const LPVOID *pAddress, UINT count);
typedef LPVOID (REGAL_CALL *PFNWGLCREATEIMAGEBUFFERI3DPROC)(HDC hDC, DWORD dwSize, UINT uFlags);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_I3D_IMAGE_BUFFER
#define wglAssociateImageBufferEventsI3D    rwglAssociateImageBufferEventsI3D
#define wglCreateImageBufferI3D             rwglCreateImageBufferI3D
#define wglDestroyImageBufferI3D            rwglDestroyImageBufferI3D
#define wglReleaseImageBufferEventsI3D      rwglReleaseImageBufferEventsI3D
#endif

#ifndef REGAL_NO_DECLARATION_WGL_I3D_IMAGE_BUFFER
REGAL_DECL BOOL REGAL_CALL wglAssociateImageBufferEventsI3D(HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
REGAL_DECL BOOL REGAL_CALL wglDestroyImageBufferI3D(HDC hDC, LPVOID pAddress);
REGAL_DECL BOOL REGAL_CALL wglReleaseImageBufferEventsI3D(HDC hDC, const LPVOID *pAddress, UINT count);
REGAL_DECL LPVOID REGAL_CALL wglCreateImageBufferI3D(HDC hDC, DWORD dwSize, UINT uFlags);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_I3D_IMAGE_BUFFER
REGAL_DECL BOOL REGAL_CALL plugin_wglAssociateImageBufferEventsI3D(HDC hDC, const HANDLE *pEvent, const LPVOID *pAddress, const DWORD *pSize, UINT count);
REGAL_DECL BOOL REGAL_CALL plugin_wglDestroyImageBufferI3D(HDC hDC, LPVOID pAddress);
REGAL_DECL BOOL REGAL_CALL plugin_wglReleaseImageBufferEventsI3D(HDC hDC, const LPVOID *pAddress, UINT count);
REGAL_DECL LPVOID REGAL_CALL plugin_wglCreateImageBufferI3D(HDC hDC, DWORD dwSize, UINT uFlags);
#endif

/**
 ** WGL_I3D_swap_frame_lock
 **/

#if (defined(WGL_I3D_SWAP_FRAME_LOCK) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_LOCK)) && !defined(REGAL_NO_ENUM_WGL_I3D_SWAP_FRAME_LOCK)
#define REGAL_NO_ENUM_WGL_I3D_SWAP_FRAME_LOCK
#endif

#if (defined(WGL_I3D_SWAP_FRAME_LOCK) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_LOCK)) && !defined(REGAL_NO_TYPEDEF_WGL_I3D_SWAP_FRAME_LOCK)
#define REGAL_NO_TYPEDEF_WGL_I3D_SWAP_FRAME_LOCK
#endif

#if (defined(WGL_I3D_SWAP_FRAME_LOCK) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_LOCK)) && !defined(REGAL_NO_NAMESPACE_WGL_I3D_SWAP_FRAME_LOCK)
#define REGAL_NO_NAMESPACE_WGL_I3D_SWAP_FRAME_LOCK
#endif

#if (defined(WGL_I3D_SWAP_FRAME_LOCK) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_LOCK)) && !defined(REGAL_NO_PLUGIN_WGL_I3D_SWAP_FRAME_LOCK)
#define REGAL_NO_PLUGIN_WGL_I3D_SWAP_FRAME_LOCK
#endif

#if (defined(WGL_I3D_SWAP_FRAME_LOCK) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_LOCK)) && !defined(REGAL_NO_DECLARATION_WGL_I3D_SWAP_FRAME_LOCK)
#define REGAL_NO_DECLARATION_WGL_I3D_SWAP_FRAME_LOCK
#endif

#ifndef WGL_I3D_swap_frame_lock
#define WGL_I3D_swap_frame_lock 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_I3D_SWAP_FRAME_LOCK
typedef BOOL (REGAL_CALL *PFNWGLDISABLEFRAMELOCKI3DPROC)(void);
typedef BOOL (REGAL_CALL *PFNWGLENABLEFRAMELOCKI3DPROC)(void);
typedef BOOL (REGAL_CALL *PFNWGLISENABLEDFRAMELOCKI3DPROC)(BOOL *pFlag);
typedef BOOL (REGAL_CALL *PFNWGLQUERYFRAMELOCKMASTERI3DPROC)(BOOL *pFlag);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_I3D_SWAP_FRAME_LOCK
#define wglDisableFrameLockI3D              rwglDisableFrameLockI3D
#define wglEnableFrameLockI3D               rwglEnableFrameLockI3D
#define wglIsEnabledFrameLockI3D            rwglIsEnabledFrameLockI3D
#define wglQueryFrameLockMasterI3D          rwglQueryFrameLockMasterI3D
#endif

#ifndef REGAL_NO_DECLARATION_WGL_I3D_SWAP_FRAME_LOCK
REGAL_DECL BOOL REGAL_CALL wglDisableFrameLockI3D(void);
REGAL_DECL BOOL REGAL_CALL wglEnableFrameLockI3D(void);
REGAL_DECL BOOL REGAL_CALL wglIsEnabledFrameLockI3D(BOOL *pFlag);
REGAL_DECL BOOL REGAL_CALL wglQueryFrameLockMasterI3D(BOOL *pFlag);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_I3D_SWAP_FRAME_LOCK
REGAL_DECL BOOL REGAL_CALL plugin_wglDisableFrameLockI3D(void);
REGAL_DECL BOOL REGAL_CALL plugin_wglEnableFrameLockI3D(void);
REGAL_DECL BOOL REGAL_CALL plugin_wglIsEnabledFrameLockI3D(BOOL *pFlag);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryFrameLockMasterI3D(BOOL *pFlag);
#endif

/**
 ** WGL_I3D_swap_frame_usage
 **/

#if (defined(WGL_I3D_SWAP_FRAME_USAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_USAGE)) && !defined(REGAL_NO_ENUM_WGL_I3D_SWAP_FRAME_USAGE)
#define REGAL_NO_ENUM_WGL_I3D_SWAP_FRAME_USAGE
#endif

#if (defined(WGL_I3D_SWAP_FRAME_USAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_USAGE)) && !defined(REGAL_NO_TYPEDEF_WGL_I3D_SWAP_FRAME_USAGE)
#define REGAL_NO_TYPEDEF_WGL_I3D_SWAP_FRAME_USAGE
#endif

#if (defined(WGL_I3D_SWAP_FRAME_USAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_USAGE)) && !defined(REGAL_NO_NAMESPACE_WGL_I3D_SWAP_FRAME_USAGE)
#define REGAL_NO_NAMESPACE_WGL_I3D_SWAP_FRAME_USAGE
#endif

#if (defined(WGL_I3D_SWAP_FRAME_USAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_USAGE)) && !defined(REGAL_NO_PLUGIN_WGL_I3D_SWAP_FRAME_USAGE)
#define REGAL_NO_PLUGIN_WGL_I3D_SWAP_FRAME_USAGE
#endif

#if (defined(WGL_I3D_SWAP_FRAME_USAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_I3D_SWAP_FRAME_USAGE)) && !defined(REGAL_NO_DECLARATION_WGL_I3D_SWAP_FRAME_USAGE)
#define REGAL_NO_DECLARATION_WGL_I3D_SWAP_FRAME_USAGE
#endif

#ifndef WGL_I3D_swap_frame_usage
#define WGL_I3D_swap_frame_usage 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_I3D_SWAP_FRAME_USAGE
typedef BOOL (REGAL_CALL *PFNWGLBEGINFRAMETRACKINGI3DPROC)(void);
typedef BOOL (REGAL_CALL *PFNWGLENDFRAMETRACKINGI3DPROC)(void);
typedef BOOL (REGAL_CALL *PFNWGLGETFRAMEUSAGEI3DPROC)(float *pUsage);
typedef BOOL (REGAL_CALL *PFNWGLQUERYFRAMETRACKINGI3DPROC)(DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_I3D_SWAP_FRAME_USAGE
#define wglBeginFrameTrackingI3D            rwglBeginFrameTrackingI3D
#define wglEndFrameTrackingI3D              rwglEndFrameTrackingI3D
#define wglGetFrameUsageI3D                 rwglGetFrameUsageI3D
#define wglQueryFrameTrackingI3D            rwglQueryFrameTrackingI3D
#endif

#ifndef REGAL_NO_DECLARATION_WGL_I3D_SWAP_FRAME_USAGE
REGAL_DECL BOOL REGAL_CALL wglBeginFrameTrackingI3D(void);
REGAL_DECL BOOL REGAL_CALL wglEndFrameTrackingI3D(void);
REGAL_DECL BOOL REGAL_CALL wglGetFrameUsageI3D(float *pUsage);
REGAL_DECL BOOL REGAL_CALL wglQueryFrameTrackingI3D(DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_I3D_SWAP_FRAME_USAGE
REGAL_DECL BOOL REGAL_CALL plugin_wglBeginFrameTrackingI3D(void);
REGAL_DECL BOOL REGAL_CALL plugin_wglEndFrameTrackingI3D(void);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetFrameUsageI3D(float *pUsage);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryFrameTrackingI3D(DWORD *pFrameCount, DWORD *pMissedFrames, float *pLastMissedUsage);
#endif

/**
 ** WGL_NV_DX_interop
 **/

#if (defined(WGL_NV_DX_INTEROP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_DX_INTEROP)) && !defined(REGAL_NO_ENUM_WGL_NV_DX_INTEROP)
#define REGAL_NO_ENUM_WGL_NV_DX_INTEROP
#endif

#if (defined(WGL_NV_DX_INTEROP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_DX_INTEROP)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_DX_INTEROP)
#define REGAL_NO_TYPEDEF_WGL_NV_DX_INTEROP
#endif

#if (defined(WGL_NV_DX_INTEROP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_DX_INTEROP)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_DX_INTEROP)
#define REGAL_NO_NAMESPACE_WGL_NV_DX_INTEROP
#endif

#if (defined(WGL_NV_DX_INTEROP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_DX_INTEROP)) && !defined(REGAL_NO_PLUGIN_WGL_NV_DX_INTEROP)
#define REGAL_NO_PLUGIN_WGL_NV_DX_INTEROP
#endif

#if (defined(WGL_NV_DX_INTEROP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_DX_INTEROP)) && !defined(REGAL_NO_DECLARATION_WGL_NV_DX_INTEROP)
#define REGAL_NO_DECLARATION_WGL_NV_DX_INTEROP
#endif

#ifndef WGL_NV_DX_interop
#define WGL_NV_DX_interop 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_DX_INTEROP
#define WGL_ACCESS_READ_ONLY_NV     0x0
#define WGL_ACCESS_READ_WRITE_NV    0x1
#define WGL_ACCESS_WRITE_DISCARD_NV 0x2
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_NV_DX_INTEROP
typedef BOOL (REGAL_CALL *PFNWGLDXCLOSEDEVICENVPROC)(HANDLE hDevice);
typedef BOOL (REGAL_CALL *PFNWGLDXLOCKOBJECTSNVPROC)(HANDLE hDevice, GLint count, HANDLE *hObjects);
typedef BOOL (REGAL_CALL *PFNWGLDXOBJECTACCESSNVPROC)(HANDLE hObject, GLenum access);
typedef BOOL (REGAL_CALL *PFNWGLDXSETRESOURCESHAREHANDLENVPROC)(GLvoid *dxObject, HANDLE shareHandle);
typedef BOOL (REGAL_CALL *PFNWGLDXUNLOCKOBJECTSNVPROC)(HANDLE hDevice, GLint count, HANDLE *hObjects);
typedef BOOL (REGAL_CALL *PFNWGLDXUNREGISTEROBJECTNVPROC)(HANDLE hDevice, HANDLE hObject);
typedef HANDLE (REGAL_CALL *PFNWGLDXOPENDEVICENVPROC)(GLvoid *dxDevice);
typedef HANDLE (REGAL_CALL *PFNWGLDXREGISTEROBJECTNVPROC)(HANDLE hDevice, GLvoid *dxObject, GLuint name, GLenum type, GLenum access);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_NV_DX_INTEROP
#define wglDXCloseDeviceNV                  rwglDXCloseDeviceNV
#define wglDXLockObjectsNV                  rwglDXLockObjectsNV
#define wglDXObjectAccessNV                 rwglDXObjectAccessNV
#define wglDXOpenDeviceNV                   rwglDXOpenDeviceNV
#define wglDXRegisterObjectNV               rwglDXRegisterObjectNV
#define wglDXSetResourceShareHandleNV       rwglDXSetResourceShareHandleNV
#define wglDXUnlockObjectsNV                rwglDXUnlockObjectsNV
#define wglDXUnregisterObjectNV             rwglDXUnregisterObjectNV
#endif

#ifndef REGAL_NO_DECLARATION_WGL_NV_DX_INTEROP
REGAL_DECL BOOL REGAL_CALL wglDXCloseDeviceNV(HANDLE hDevice);
REGAL_DECL BOOL REGAL_CALL wglDXLockObjectsNV(HANDLE hDevice, GLint count, HANDLE *hObjects);
REGAL_DECL BOOL REGAL_CALL wglDXObjectAccessNV(HANDLE hObject, GLenum access);
REGAL_DECL BOOL REGAL_CALL wglDXSetResourceShareHandleNV(GLvoid *dxObject, HANDLE shareHandle);
REGAL_DECL BOOL REGAL_CALL wglDXUnlockObjectsNV(HANDLE hDevice, GLint count, HANDLE *hObjects);
REGAL_DECL BOOL REGAL_CALL wglDXUnregisterObjectNV(HANDLE hDevice, HANDLE hObject);
REGAL_DECL HANDLE REGAL_CALL wglDXOpenDeviceNV(GLvoid *dxDevice);
REGAL_DECL HANDLE REGAL_CALL wglDXRegisterObjectNV(HANDLE hDevice, GLvoid *dxObject, GLuint name, GLenum type, GLenum access);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_NV_DX_INTEROP
REGAL_DECL BOOL REGAL_CALL plugin_wglDXCloseDeviceNV(HANDLE hDevice);
REGAL_DECL BOOL REGAL_CALL plugin_wglDXLockObjectsNV(HANDLE hDevice, GLint count, HANDLE *hObjects);
REGAL_DECL BOOL REGAL_CALL plugin_wglDXObjectAccessNV(HANDLE hObject, GLenum access);
REGAL_DECL BOOL REGAL_CALL plugin_wglDXSetResourceShareHandleNV(GLvoid *dxObject, HANDLE shareHandle);
REGAL_DECL BOOL REGAL_CALL plugin_wglDXUnlockObjectsNV(HANDLE hDevice, GLint count, HANDLE *hObjects);
REGAL_DECL BOOL REGAL_CALL plugin_wglDXUnregisterObjectNV(HANDLE hDevice, HANDLE hObject);
REGAL_DECL HANDLE REGAL_CALL plugin_wglDXOpenDeviceNV(GLvoid *dxDevice);
REGAL_DECL HANDLE REGAL_CALL plugin_wglDXRegisterObjectNV(HANDLE hDevice, GLvoid *dxObject, GLuint name, GLenum type, GLenum access);
#endif

/**
 ** WGL_NV_copy_image
 **/

#if (defined(WGL_NV_COPY_IMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_COPY_IMAGE)) && !defined(REGAL_NO_ENUM_WGL_NV_COPY_IMAGE)
#define REGAL_NO_ENUM_WGL_NV_COPY_IMAGE
#endif

#if (defined(WGL_NV_COPY_IMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_COPY_IMAGE)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_COPY_IMAGE)
#define REGAL_NO_TYPEDEF_WGL_NV_COPY_IMAGE
#endif

#if (defined(WGL_NV_COPY_IMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_COPY_IMAGE)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_COPY_IMAGE)
#define REGAL_NO_NAMESPACE_WGL_NV_COPY_IMAGE
#endif

#if (defined(WGL_NV_COPY_IMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_COPY_IMAGE)) && !defined(REGAL_NO_PLUGIN_WGL_NV_COPY_IMAGE)
#define REGAL_NO_PLUGIN_WGL_NV_COPY_IMAGE
#endif

#if (defined(WGL_NV_COPY_IMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_COPY_IMAGE)) && !defined(REGAL_NO_DECLARATION_WGL_NV_COPY_IMAGE)
#define REGAL_NO_DECLARATION_WGL_NV_COPY_IMAGE
#endif

#ifndef WGL_NV_copy_image
#define WGL_NV_copy_image 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_NV_COPY_IMAGE
typedef BOOL (REGAL_CALL *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);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_NV_COPY_IMAGE
#define wglCopyImageSubDataNV               rwglCopyImageSubDataNV
#endif

#ifndef REGAL_NO_DECLARATION_WGL_NV_COPY_IMAGE
REGAL_DECL BOOL REGAL_CALL wglCopyImageSubDataNV(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);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_NV_COPY_IMAGE
REGAL_DECL BOOL REGAL_CALL plugin_wglCopyImageSubDataNV(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);
#endif

/**
 ** WGL_NV_float_buffer
 **/

#if (defined(WGL_NV_FLOAT_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_ENUM_WGL_NV_FLOAT_BUFFER)
#define REGAL_NO_ENUM_WGL_NV_FLOAT_BUFFER
#endif

#if (defined(WGL_NV_FLOAT_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_FLOAT_BUFFER)
#define REGAL_NO_TYPEDEF_WGL_NV_FLOAT_BUFFER
#endif

#if (defined(WGL_NV_FLOAT_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_FLOAT_BUFFER)
#define REGAL_NO_NAMESPACE_WGL_NV_FLOAT_BUFFER
#endif

#if (defined(WGL_NV_FLOAT_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_PLUGIN_WGL_NV_FLOAT_BUFFER)
#define REGAL_NO_PLUGIN_WGL_NV_FLOAT_BUFFER
#endif

#if (defined(WGL_NV_FLOAT_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_DECLARATION_WGL_NV_FLOAT_BUFFER)
#define REGAL_NO_DECLARATION_WGL_NV_FLOAT_BUFFER
#endif

#ifndef WGL_NV_float_buffer
#define WGL_NV_float_buffer 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_FLOAT_BUFFER
#define WGL_FLOAT_COMPONENTS_NV                     0x20b0     /* 8368 */
#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_R_NV    0x20b1     /* 8369 */
#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RG_NV   0x20b2     /* 8370 */
#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGB_NV  0x20b3     /* 8371 */
#define WGL_BIND_TO_TEXTURE_RECTANGLE_FLOAT_RGBA_NV 0x20b4     /* 8372 */
#define WGL_TEXTURE_FLOAT_R_NV                      0x20b5     /* 8373 */
#define WGL_TEXTURE_FLOAT_RG_NV                     0x20b6     /* 8374 */
#define WGL_TEXTURE_FLOAT_RGB_NV                    0x20b7     /* 8375 */
#define WGL_TEXTURE_FLOAT_RGBA_NV                   0x20b8     /* 8376 */
#endif

/**
 ** WGL_NV_gpu_affinity
 **/

#if (defined(WGL_NV_GPU_AFFINITY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_GPU_AFFINITY)) && !defined(REGAL_NO_ENUM_WGL_NV_GPU_AFFINITY)
#define REGAL_NO_ENUM_WGL_NV_GPU_AFFINITY
#endif

#if (defined(WGL_NV_GPU_AFFINITY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_GPU_AFFINITY)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_GPU_AFFINITY)
#define REGAL_NO_TYPEDEF_WGL_NV_GPU_AFFINITY
#endif

#if (defined(WGL_NV_GPU_AFFINITY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_GPU_AFFINITY)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_GPU_AFFINITY)
#define REGAL_NO_NAMESPACE_WGL_NV_GPU_AFFINITY
#endif

#if (defined(WGL_NV_GPU_AFFINITY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_GPU_AFFINITY)) && !defined(REGAL_NO_PLUGIN_WGL_NV_GPU_AFFINITY)
#define REGAL_NO_PLUGIN_WGL_NV_GPU_AFFINITY
#endif

#if (defined(WGL_NV_GPU_AFFINITY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_GPU_AFFINITY)) && !defined(REGAL_NO_DECLARATION_WGL_NV_GPU_AFFINITY)
#define REGAL_NO_DECLARATION_WGL_NV_GPU_AFFINITY
#endif

#ifndef WGL_NV_gpu_affinity
#define WGL_NV_gpu_affinity 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_GPU_AFFINITY
#define WGL_ERROR_INCOMPATIBLE_AFFINITY_MASKS_NV 0x20d0     /* 8400 */
#define WGL_ERROR_MISSING_AFFINITY_MASK_NV       0x20d1     /* 8401 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_NV_GPU_AFFINITY
typedef BOOL (REGAL_CALL *PFNWGLDELETEDCNVPROC)(HDC hAffinityDC);
typedef BOOL (REGAL_CALL *PFNWGLENUMGPUDEVICESNVPROC)(HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
typedef BOOL (REGAL_CALL *PFNWGLENUMGPUSFROMAFFINITYDCNVPROC)(HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
typedef BOOL (REGAL_CALL *PFNWGLENUMGPUSNVPROC)(UINT iGpuIndex, HGPUNV *phGpu);
typedef HDC (REGAL_CALL *PFNWGLCREATEAFFINITYDCNVPROC)(const HGPUNV *phGpuList);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_NV_GPU_AFFINITY
#define wglCreateAffinityDCNV               rwglCreateAffinityDCNV
#define wglDeleteDCNV                       rwglDeleteDCNV
#define wglEnumGpuDevicesNV                 rwglEnumGpuDevicesNV
#define wglEnumGpusFromAffinityDCNV         rwglEnumGpusFromAffinityDCNV
#define wglEnumGpusNV                       rwglEnumGpusNV
#endif

#ifndef REGAL_NO_DECLARATION_WGL_NV_GPU_AFFINITY
REGAL_DECL BOOL REGAL_CALL wglDeleteDCNV(HDC hAffinityDC);
REGAL_DECL BOOL REGAL_CALL wglEnumGpuDevicesNV(HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
REGAL_DECL BOOL REGAL_CALL wglEnumGpusFromAffinityDCNV(HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
REGAL_DECL BOOL REGAL_CALL wglEnumGpusNV(UINT iGpuIndex, HGPUNV *phGpu);
REGAL_DECL HDC REGAL_CALL wglCreateAffinityDCNV(const HGPUNV *phGpuList);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_NV_GPU_AFFINITY
REGAL_DECL BOOL REGAL_CALL plugin_wglDeleteDCNV(HDC hAffinityDC);
REGAL_DECL BOOL REGAL_CALL plugin_wglEnumGpuDevicesNV(HGPUNV hGpu, UINT iDeviceIndex, PGPU_DEVICE lpGpuDevice);
REGAL_DECL BOOL REGAL_CALL plugin_wglEnumGpusFromAffinityDCNV(HDC hAffinityDC, UINT iGpuIndex, HGPUNV *hGpu);
REGAL_DECL BOOL REGAL_CALL plugin_wglEnumGpusNV(UINT iGpuIndex, HGPUNV *phGpu);
REGAL_DECL HDC REGAL_CALL plugin_wglCreateAffinityDCNV(const HGPUNV *phGpuList);
#endif

/**
 ** WGL_NV_multisample_coverage
 **/

#if (defined(WGL_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_ENUM_WGL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_ENUM_WGL_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(WGL_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_TYPEDEF_WGL_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(WGL_NV_MULTISAMPLE_COVERAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_NAMESPACE_WGL_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(WGL_NV_MULTISAMPLE_COVERAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_PLUGIN_WGL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_PLUGIN_WGL_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(WGL_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_DECLARATION_WGL_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_DECLARATION_WGL_NV_MULTISAMPLE_COVERAGE
#endif

#ifndef WGL_NV_multisample_coverage
#define WGL_NV_multisample_coverage 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_MULTISAMPLE_COVERAGE
#define WGL_COVERAGE_SAMPLES_NV 0x2042     /* 8258 */
#define WGL_COLOR_SAMPLES_NV    0x20b9     /* 8377 */
#endif

/**
 ** WGL_NV_present_video
 **/

#if (defined(WGL_NV_PRESENT_VIDEO) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_ENUM_WGL_NV_PRESENT_VIDEO)
#define REGAL_NO_ENUM_WGL_NV_PRESENT_VIDEO
#endif

#if (defined(WGL_NV_PRESENT_VIDEO) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_PRESENT_VIDEO)
#define REGAL_NO_TYPEDEF_WGL_NV_PRESENT_VIDEO
#endif

#if (defined(WGL_NV_PRESENT_VIDEO) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_PRESENT_VIDEO)
#define REGAL_NO_NAMESPACE_WGL_NV_PRESENT_VIDEO
#endif

#if (defined(WGL_NV_PRESENT_VIDEO) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_PLUGIN_WGL_NV_PRESENT_VIDEO)
#define REGAL_NO_PLUGIN_WGL_NV_PRESENT_VIDEO
#endif

#if (defined(WGL_NV_PRESENT_VIDEO) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_DECLARATION_WGL_NV_PRESENT_VIDEO)
#define REGAL_NO_DECLARATION_WGL_NV_PRESENT_VIDEO
#endif

#ifndef WGL_NV_present_video
#define WGL_NV_present_video 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_PRESENT_VIDEO
#define WGL_NUM_VIDEO_SLOTS_NV 0x20f0 /* 8432 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_NV_PRESENT_VIDEO
typedef BOOL (REGAL_CALL *PFNWGLBINDVIDEODEVICENVPROC)(HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
typedef BOOL (REGAL_CALL *PFNWGLQUERYCURRENTCONTEXTNVPROC)(int iAttribute, int *piValue);
typedef int (REGAL_CALL *PFNWGLENUMERATEVIDEODEVICESNVPROC)(HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_NV_PRESENT_VIDEO
#define wglBindVideoDeviceNV                rwglBindVideoDeviceNV
#define wglEnumerateVideoDevicesNV          rwglEnumerateVideoDevicesNV
#define wglQueryCurrentContextNV            rwglQueryCurrentContextNV
#endif

#ifndef REGAL_NO_DECLARATION_WGL_NV_PRESENT_VIDEO
REGAL_DECL BOOL REGAL_CALL wglBindVideoDeviceNV(HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
REGAL_DECL BOOL REGAL_CALL wglQueryCurrentContextNV(int iAttribute, int *piValue);
REGAL_DECL int REGAL_CALL wglEnumerateVideoDevicesNV(HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_NV_PRESENT_VIDEO
REGAL_DECL BOOL REGAL_CALL plugin_wglBindVideoDeviceNV(HDC hDC, unsigned int uVideoSlot, HVIDEOOUTPUTDEVICENV hVideoDevice, const int *piAttribList);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryCurrentContextNV(int iAttribute, int *piValue);
REGAL_DECL int REGAL_CALL plugin_wglEnumerateVideoDevicesNV(HDC hDC, HVIDEOOUTPUTDEVICENV *phDeviceList);
#endif

/**
 ** WGL_NV_render_depth_texture
 **/

#if (defined(WGL_NV_RENDER_DEPTH_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_RENDER_DEPTH_TEXTURE)) && !defined(REGAL_NO_ENUM_WGL_NV_RENDER_DEPTH_TEXTURE)
#define REGAL_NO_ENUM_WGL_NV_RENDER_DEPTH_TEXTURE
#endif

#if (defined(WGL_NV_RENDER_DEPTH_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_RENDER_DEPTH_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_RENDER_DEPTH_TEXTURE)
#define REGAL_NO_TYPEDEF_WGL_NV_RENDER_DEPTH_TEXTURE
#endif

#if (defined(WGL_NV_RENDER_DEPTH_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_RENDER_DEPTH_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_RENDER_DEPTH_TEXTURE)
#define REGAL_NO_NAMESPACE_WGL_NV_RENDER_DEPTH_TEXTURE
#endif

#if (defined(WGL_NV_RENDER_DEPTH_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_RENDER_DEPTH_TEXTURE)) && !defined(REGAL_NO_PLUGIN_WGL_NV_RENDER_DEPTH_TEXTURE)
#define REGAL_NO_PLUGIN_WGL_NV_RENDER_DEPTH_TEXTURE
#endif

#if (defined(WGL_NV_RENDER_DEPTH_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_RENDER_DEPTH_TEXTURE)) && !defined(REGAL_NO_DECLARATION_WGL_NV_RENDER_DEPTH_TEXTURE)
#define REGAL_NO_DECLARATION_WGL_NV_RENDER_DEPTH_TEXTURE
#endif

#ifndef WGL_NV_render_depth_texture
#define WGL_NV_render_depth_texture 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_RENDER_DEPTH_TEXTURE
#define WGL_NO_TEXTURE_ARB                     0x2077     /* 8311 */
#define WGL_BIND_TO_TEXTURE_DEPTH_NV           0x20a3     /* 8355 */
#define WGL_BIND_TO_TEXTURE_RECTANGLE_DEPTH_NV 0x20a4     /* 8356 */
#define WGL_DEPTH_TEXTURE_FORMAT_NV            0x20a5     /* 8357 */
#define WGL_TEXTURE_DEPTH_COMPONENT_NV         0x20a6     /* 8358 */
#define WGL_DEPTH_COMPONENT_NV                 0x20a7     /* 8359 */
#endif

/**
 ** WGL_NV_render_texture_rectangle
 **/

#if (defined(WGL_NV_RENDER_TEXTURE_RECTANGLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_ENUM_WGL_NV_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_ENUM_WGL_NV_RENDER_TEXTURE_RECTANGLE
#endif

#if (defined(WGL_NV_RENDER_TEXTURE_RECTANGLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_TYPEDEF_WGL_NV_RENDER_TEXTURE_RECTANGLE
#endif

#if (defined(WGL_NV_RENDER_TEXTURE_RECTANGLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_NAMESPACE_WGL_NV_RENDER_TEXTURE_RECTANGLE
#endif

#if (defined(WGL_NV_RENDER_TEXTURE_RECTANGLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_PLUGIN_WGL_NV_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_PLUGIN_WGL_NV_RENDER_TEXTURE_RECTANGLE
#endif

#if (defined(WGL_NV_RENDER_TEXTURE_RECTANGLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_RENDER_TEXTURE_RECTANGLE)) && !defined(REGAL_NO_DECLARATION_WGL_NV_RENDER_TEXTURE_RECTANGLE)
#define REGAL_NO_DECLARATION_WGL_NV_RENDER_TEXTURE_RECTANGLE
#endif

#ifndef WGL_NV_render_texture_rectangle
#define WGL_NV_render_texture_rectangle 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_RENDER_TEXTURE_RECTANGLE
#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGB_NV  0x20a0     /* 8352 */
#define WGL_BIND_TO_TEXTURE_RECTANGLE_RGBA_NV 0x20a1     /* 8353 */
#define WGL_TEXTURE_RECTANGLE_NV              0x20a2     /* 8354 */
#endif

/**
 ** WGL_NV_swap_group
 **/

#if (defined(WGL_NV_SWAP_GROUP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_SWAP_GROUP)) && !defined(REGAL_NO_ENUM_WGL_NV_SWAP_GROUP)
#define REGAL_NO_ENUM_WGL_NV_SWAP_GROUP
#endif

#if (defined(WGL_NV_SWAP_GROUP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_SWAP_GROUP)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_SWAP_GROUP)
#define REGAL_NO_TYPEDEF_WGL_NV_SWAP_GROUP
#endif

#if (defined(WGL_NV_SWAP_GROUP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_SWAP_GROUP)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_SWAP_GROUP)
#define REGAL_NO_NAMESPACE_WGL_NV_SWAP_GROUP
#endif

#if (defined(WGL_NV_SWAP_GROUP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_SWAP_GROUP)) && !defined(REGAL_NO_PLUGIN_WGL_NV_SWAP_GROUP)
#define REGAL_NO_PLUGIN_WGL_NV_SWAP_GROUP
#endif

#if (defined(WGL_NV_SWAP_GROUP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_SWAP_GROUP)) && !defined(REGAL_NO_DECLARATION_WGL_NV_SWAP_GROUP)
#define REGAL_NO_DECLARATION_WGL_NV_SWAP_GROUP
#endif

#ifndef WGL_NV_swap_group
#define WGL_NV_swap_group 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_NV_SWAP_GROUP
typedef BOOL (REGAL_CALL *PFNWGLBINDSWAPBARRIERNVPROC)(GLuint group, GLuint barrier);
typedef BOOL (REGAL_CALL *PFNWGLJOINSWAPGROUPNVPROC)(HDC hDC, GLuint group);
typedef BOOL (REGAL_CALL *PFNWGLQUERYFRAMECOUNTNVPROC)(HDC hDC, GLuint *count);
typedef BOOL (REGAL_CALL *PFNWGLQUERYMAXSWAPGROUPSNVPROC)(HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
typedef BOOL (REGAL_CALL *PFNWGLQUERYSWAPGROUPNVPROC)(HDC hDC, GLuint *group, GLuint *barrier);
typedef BOOL (REGAL_CALL *PFNWGLRESETFRAMECOUNTNVPROC)(HDC hDC);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_NV_SWAP_GROUP
#define wglBindSwapBarrierNV                rwglBindSwapBarrierNV
#define wglJoinSwapGroupNV                  rwglJoinSwapGroupNV
#define wglQueryFrameCountNV                rwglQueryFrameCountNV
#define wglQueryMaxSwapGroupsNV             rwglQueryMaxSwapGroupsNV
#define wglQuerySwapGroupNV                 rwglQuerySwapGroupNV
#define wglResetFrameCountNV                rwglResetFrameCountNV
#endif

#ifndef REGAL_NO_DECLARATION_WGL_NV_SWAP_GROUP
REGAL_DECL BOOL REGAL_CALL wglBindSwapBarrierNV(GLuint group, GLuint barrier);
REGAL_DECL BOOL REGAL_CALL wglJoinSwapGroupNV(HDC hDC, GLuint group);
REGAL_DECL BOOL REGAL_CALL wglQueryFrameCountNV(HDC hDC, GLuint *count);
REGAL_DECL BOOL REGAL_CALL wglQueryMaxSwapGroupsNV(HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
REGAL_DECL BOOL REGAL_CALL wglQuerySwapGroupNV(HDC hDC, GLuint *group, GLuint *barrier);
REGAL_DECL BOOL REGAL_CALL wglResetFrameCountNV(HDC hDC);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_NV_SWAP_GROUP
REGAL_DECL BOOL REGAL_CALL plugin_wglBindSwapBarrierNV(GLuint group, GLuint barrier);
REGAL_DECL BOOL REGAL_CALL plugin_wglJoinSwapGroupNV(HDC hDC, GLuint group);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryFrameCountNV(HDC hDC, GLuint *count);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryMaxSwapGroupsNV(HDC hDC, GLuint *maxGroups, GLuint *maxBarriers);
REGAL_DECL BOOL REGAL_CALL plugin_wglQuerySwapGroupNV(HDC hDC, GLuint *group, GLuint *barrier);
REGAL_DECL BOOL REGAL_CALL plugin_wglResetFrameCountNV(HDC hDC);
#endif

/**
 ** WGL_NV_vertex_array_range
 **/

#if (defined(WGL_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_ENUM_WGL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_ENUM_WGL_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(WGL_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_TYPEDEF_WGL_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(WGL_NV_VERTEX_ARRAY_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_NAMESPACE_WGL_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(WGL_NV_VERTEX_ARRAY_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_PLUGIN_WGL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_PLUGIN_WGL_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(WGL_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_DECLARATION_WGL_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_DECLARATION_WGL_NV_VERTEX_ARRAY_RANGE
#endif

#ifndef WGL_NV_vertex_array_range
#define WGL_NV_vertex_array_range 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_NV_VERTEX_ARRAY_RANGE
typedef void (REGAL_CALL *PFNWGLFREEMEMORYNVPROC)(void *pointer);
typedef void *(REGAL_CALL *PFNWGLALLOCATEMEMORYNVPROC)(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_NV_VERTEX_ARRAY_RANGE
#define wglAllocateMemoryNV                 rwglAllocateMemoryNV
#define wglFreeMemoryNV                     rwglFreeMemoryNV
#endif

#ifndef REGAL_NO_DECLARATION_WGL_NV_VERTEX_ARRAY_RANGE
REGAL_DECL void *REGAL_CALL wglAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
REGAL_DECL void REGAL_CALL wglFreeMemoryNV(void *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_NV_VERTEX_ARRAY_RANGE
REGAL_DECL void *REGAL_CALL plugin_wglAllocateMemoryNV(GLsizei size, GLfloat readfreq, GLfloat writefreq, GLfloat priority);
REGAL_DECL void REGAL_CALL plugin_wglFreeMemoryNV(void *pointer);
#endif

/**
 ** WGL_NV_video_capture
 **/

#if (defined(WGL_NV_VIDEO_CAPTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_ENUM_WGL_NV_VIDEO_CAPTURE)
#define REGAL_NO_ENUM_WGL_NV_VIDEO_CAPTURE
#endif

#if (defined(WGL_NV_VIDEO_CAPTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_VIDEO_CAPTURE)
#define REGAL_NO_TYPEDEF_WGL_NV_VIDEO_CAPTURE
#endif

#if (defined(WGL_NV_VIDEO_CAPTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_VIDEO_CAPTURE)
#define REGAL_NO_NAMESPACE_WGL_NV_VIDEO_CAPTURE
#endif

#if (defined(WGL_NV_VIDEO_CAPTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_PLUGIN_WGL_NV_VIDEO_CAPTURE)
#define REGAL_NO_PLUGIN_WGL_NV_VIDEO_CAPTURE
#endif

#if (defined(WGL_NV_VIDEO_CAPTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_DECLARATION_WGL_NV_VIDEO_CAPTURE)
#define REGAL_NO_DECLARATION_WGL_NV_VIDEO_CAPTURE
#endif

#ifndef WGL_NV_video_capture
#define WGL_NV_video_capture 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_VIDEO_CAPTURE
#define WGL_UNIQUE_ID_NV               0x20ce     /* 8398 */
#define WGL_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20cf     /* 8399 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_NV_VIDEO_CAPTURE
typedef BOOL (REGAL_CALL *PFNWGLBINDVIDEOCAPTUREDEVICENVPROC)(UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
typedef BOOL (REGAL_CALL *PFNWGLLOCKVIDEOCAPTUREDEVICENVPROC)(HDC hDC, HVIDEOINPUTDEVICENV hDevice);
typedef BOOL (REGAL_CALL *PFNWGLQUERYVIDEOCAPTUREDEVICENVPROC)(HDC hDC, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
typedef BOOL (REGAL_CALL *PFNWGLRELEASEVIDEOCAPTUREDEVICENVPROC)(HDC hDC, HVIDEOINPUTDEVICENV hDevice);
typedef UINT (REGAL_CALL *PFNWGLENUMERATEVIDEOCAPTUREDEVICESNVPROC)(HDC hDC, HVIDEOINPUTDEVICENV *phDeviceList);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_NV_VIDEO_CAPTURE
#define wglBindVideoCaptureDeviceNV         rwglBindVideoCaptureDeviceNV
#define wglEnumerateVideoCaptureDevicesNV   rwglEnumerateVideoCaptureDevicesNV
#define wglLockVideoCaptureDeviceNV         rwglLockVideoCaptureDeviceNV
#define wglQueryVideoCaptureDeviceNV        rwglQueryVideoCaptureDeviceNV
#define wglReleaseVideoCaptureDeviceNV      rwglReleaseVideoCaptureDeviceNV
#endif

#ifndef REGAL_NO_DECLARATION_WGL_NV_VIDEO_CAPTURE
REGAL_DECL BOOL REGAL_CALL wglBindVideoCaptureDeviceNV(UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
REGAL_DECL BOOL REGAL_CALL wglLockVideoCaptureDeviceNV(HDC hDC, HVIDEOINPUTDEVICENV hDevice);
REGAL_DECL BOOL REGAL_CALL wglQueryVideoCaptureDeviceNV(HDC hDC, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
REGAL_DECL BOOL REGAL_CALL wglReleaseVideoCaptureDeviceNV(HDC hDC, HVIDEOINPUTDEVICENV hDevice);
REGAL_DECL UINT REGAL_CALL wglEnumerateVideoCaptureDevicesNV(HDC hDC, HVIDEOINPUTDEVICENV *phDeviceList);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_NV_VIDEO_CAPTURE
REGAL_DECL BOOL REGAL_CALL plugin_wglBindVideoCaptureDeviceNV(UINT uVideoSlot, HVIDEOINPUTDEVICENV hDevice);
REGAL_DECL BOOL REGAL_CALL plugin_wglLockVideoCaptureDeviceNV(HDC hDC, HVIDEOINPUTDEVICENV hDevice);
REGAL_DECL BOOL REGAL_CALL plugin_wglQueryVideoCaptureDeviceNV(HDC hDC, HVIDEOINPUTDEVICENV hDevice, int iAttribute, int *piValue);
REGAL_DECL BOOL REGAL_CALL plugin_wglReleaseVideoCaptureDeviceNV(HDC hDC, HVIDEOINPUTDEVICENV hDevice);
REGAL_DECL UINT REGAL_CALL plugin_wglEnumerateVideoCaptureDevicesNV(HDC hDC, HVIDEOINPUTDEVICENV *phDeviceList);
#endif

/**
 ** WGL_NV_video_output
 **/

#if (defined(WGL_NV_VIDEO_OUTPUT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_ENUM_WGL_NV_VIDEO_OUTPUT)
#define REGAL_NO_ENUM_WGL_NV_VIDEO_OUTPUT
#endif

#if (defined(WGL_NV_VIDEO_OUTPUT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_TYPEDEF_WGL_NV_VIDEO_OUTPUT)
#define REGAL_NO_TYPEDEF_WGL_NV_VIDEO_OUTPUT
#endif

#if (defined(WGL_NV_VIDEO_OUTPUT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_NAMESPACE_WGL_NV_VIDEO_OUTPUT)
#define REGAL_NO_NAMESPACE_WGL_NV_VIDEO_OUTPUT
#endif

#if (defined(WGL_NV_VIDEO_OUTPUT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_PLUGIN_WGL_NV_VIDEO_OUTPUT)
#define REGAL_NO_PLUGIN_WGL_NV_VIDEO_OUTPUT
#endif

#if (defined(WGL_NV_VIDEO_OUTPUT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_DECLARATION_WGL_NV_VIDEO_OUTPUT)
#define REGAL_NO_DECLARATION_WGL_NV_VIDEO_OUTPUT
#endif

#ifndef WGL_NV_video_output
#define WGL_NV_video_output 1
#endif

#ifndef REGAL_NO_ENUM_WGL_NV_VIDEO_OUTPUT
#define WGL_BIND_TO_VIDEO_RGB_NV           0x20c0     /* 8384 */
#define WGL_BIND_TO_VIDEO_RGBA_NV          0x20c1     /* 8385 */
#define WGL_BIND_TO_VIDEO_RGB_AND_DEPTH_NV 0x20c2     /* 8386 */
#define WGL_VIDEO_OUT_COLOR_NV             0x20c3     /* 8387 */
#define WGL_VIDEO_OUT_ALPHA_NV             0x20c4     /* 8388 */
#define WGL_VIDEO_OUT_DEPTH_NV             0x20c5     /* 8389 */
#define WGL_VIDEO_OUT_COLOR_AND_ALPHA_NV   0x20c6     /* 8390 */
#define WGL_VIDEO_OUT_COLOR_AND_DEPTH_NV   0x20c7     /* 8391 */
#define WGL_VIDEO_OUT_FRAME                0x20c8     /* 8392 */
#define WGL_VIDEO_OUT_FIELD_1              0x20c9     /* 8393 */
#define WGL_VIDEO_OUT_FIELD_2              0x20ca     /* 8394 */
#define WGL_VIDEO_OUT_STACKED_FIELDS_1_2   0x20cb     /* 8395 */
#define WGL_VIDEO_OUT_STACKED_FIELDS_2_1   0x20cc     /* 8396 */
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_NV_VIDEO_OUTPUT
typedef BOOL (REGAL_CALL *PFNWGLBINDVIDEOIMAGENVPROC)(HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
typedef BOOL (REGAL_CALL *PFNWGLGETVIDEODEVICENVPROC)(HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
typedef BOOL (REGAL_CALL *PFNWGLGETVIDEOINFONVPROC)(HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
typedef BOOL (REGAL_CALL *PFNWGLRELEASEVIDEODEVICENVPROC)(HPVIDEODEV hVideoDevice);
typedef BOOL (REGAL_CALL *PFNWGLRELEASEVIDEOIMAGENVPROC)(HPBUFFERARB hPbuffer, int iVideoBuffer);
typedef BOOL (REGAL_CALL *PFNWGLSENDPBUFFERTOVIDEONVPROC)(HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_NV_VIDEO_OUTPUT
#define wglBindVideoImageNV                 rwglBindVideoImageNV
#define wglGetVideoDeviceNV                 rwglGetVideoDeviceNV
#define wglGetVideoInfoNV                   rwglGetVideoInfoNV
#define wglReleaseVideoDeviceNV             rwglReleaseVideoDeviceNV
#define wglReleaseVideoImageNV              rwglReleaseVideoImageNV
#define wglSendPbufferToVideoNV             rwglSendPbufferToVideoNV
#endif

#ifndef REGAL_NO_DECLARATION_WGL_NV_VIDEO_OUTPUT
REGAL_DECL BOOL REGAL_CALL wglBindVideoImageNV(HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
REGAL_DECL BOOL REGAL_CALL wglGetVideoDeviceNV(HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
REGAL_DECL BOOL REGAL_CALL wglGetVideoInfoNV(HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
REGAL_DECL BOOL REGAL_CALL wglReleaseVideoDeviceNV(HPVIDEODEV hVideoDevice);
REGAL_DECL BOOL REGAL_CALL wglReleaseVideoImageNV(HPBUFFERARB hPbuffer, int iVideoBuffer);
REGAL_DECL BOOL REGAL_CALL wglSendPbufferToVideoNV(HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_NV_VIDEO_OUTPUT
REGAL_DECL BOOL REGAL_CALL plugin_wglBindVideoImageNV(HPVIDEODEV hVideoDevice, HPBUFFERARB hPbuffer, int iVideoBuffer);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetVideoDeviceNV(HDC hDC, int numDevices, HPVIDEODEV *hVideoDevice);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetVideoInfoNV(HPVIDEODEV hpVideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
REGAL_DECL BOOL REGAL_CALL plugin_wglReleaseVideoDeviceNV(HPVIDEODEV hVideoDevice);
REGAL_DECL BOOL REGAL_CALL plugin_wglReleaseVideoImageNV(HPBUFFERARB hPbuffer, int iVideoBuffer);
REGAL_DECL BOOL REGAL_CALL plugin_wglSendPbufferToVideoNV(HPBUFFERARB hPbuffer, int iBufferType, unsigned long *pulCounterPbuffer, BOOL bBlock);
#endif

/**
 ** WGL_OML_sync_control
 **/

#if (defined(WGL_OML_SYNC_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_OML_SYNC_CONTROL)) && !defined(REGAL_NO_ENUM_WGL_OML_SYNC_CONTROL)
#define REGAL_NO_ENUM_WGL_OML_SYNC_CONTROL
#endif

#if (defined(WGL_OML_SYNC_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_OML_SYNC_CONTROL)) && !defined(REGAL_NO_TYPEDEF_WGL_OML_SYNC_CONTROL)
#define REGAL_NO_TYPEDEF_WGL_OML_SYNC_CONTROL
#endif

#if (defined(WGL_OML_SYNC_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_OML_SYNC_CONTROL)) && !defined(REGAL_NO_NAMESPACE_WGL_OML_SYNC_CONTROL)
#define REGAL_NO_NAMESPACE_WGL_OML_SYNC_CONTROL
#endif

#if (defined(WGL_OML_SYNC_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_OML_SYNC_CONTROL)) && !defined(REGAL_NO_PLUGIN_WGL_OML_SYNC_CONTROL)
#define REGAL_NO_PLUGIN_WGL_OML_SYNC_CONTROL
#endif

#if (defined(WGL_OML_SYNC_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_OML_SYNC_CONTROL)) && !defined(REGAL_NO_DECLARATION_WGL_OML_SYNC_CONTROL)
#define REGAL_NO_DECLARATION_WGL_OML_SYNC_CONTROL
#endif

#ifndef WGL_OML_sync_control
#define WGL_OML_sync_control 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_OML_SYNC_CONTROL
typedef BOOL (REGAL_CALL *PFNWGLGETMSCRATEOMLPROC)(HDC hDC, INT32 *numerator, INT32 *denominator);
typedef BOOL (REGAL_CALL *PFNWGLGETSYNCVALUESOMLPROC)(HDC hDC, INT64 *ust, INT64 *msc, INT64 *sbc);
typedef BOOL (REGAL_CALL *PFNWGLWAITFORMSCOMLPROC)(HDC hDC, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
typedef BOOL (REGAL_CALL *PFNWGLWAITFORSBCOMLPROC)(HDC hDC, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
typedef INT64 (REGAL_CALL *PFNWGLSWAPBUFFERSMSCOMLPROC)(HDC hDC, INT64 target_msc, INT64 divisor, INT64 remainder);
typedef INT64 (REGAL_CALL *PFNWGLSWAPLAYERBUFFERSMSCOMLPROC)(HDC hDC, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_OML_SYNC_CONTROL
#define wglGetMscRateOML                    rwglGetMscRateOML
#define wglGetSyncValuesOML                 rwglGetSyncValuesOML
#define wglSwapBuffersMscOML                rwglSwapBuffersMscOML
#define wglSwapLayerBuffersMscOML           rwglSwapLayerBuffersMscOML
#define wglWaitForMscOML                    rwglWaitForMscOML
#define wglWaitForSbcOML                    rwglWaitForSbcOML
#endif

#ifndef REGAL_NO_DECLARATION_WGL_OML_SYNC_CONTROL
REGAL_DECL BOOL REGAL_CALL wglGetMscRateOML(HDC hDC, INT32 *numerator, INT32 *denominator);
REGAL_DECL BOOL REGAL_CALL wglGetSyncValuesOML(HDC hDC, INT64 *ust, INT64 *msc, INT64 *sbc);
REGAL_DECL BOOL REGAL_CALL wglWaitForMscOML(HDC hDC, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
REGAL_DECL BOOL REGAL_CALL wglWaitForSbcOML(HDC hDC, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
REGAL_DECL INT64 REGAL_CALL wglSwapBuffersMscOML(HDC hDC, INT64 target_msc, INT64 divisor, INT64 remainder);
REGAL_DECL INT64 REGAL_CALL wglSwapLayerBuffersMscOML(HDC hDC, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_OML_SYNC_CONTROL
REGAL_DECL BOOL REGAL_CALL plugin_wglGetMscRateOML(HDC hDC, INT32 *numerator, INT32 *denominator);
REGAL_DECL BOOL REGAL_CALL plugin_wglGetSyncValuesOML(HDC hDC, INT64 *ust, INT64 *msc, INT64 *sbc);
REGAL_DECL BOOL REGAL_CALL plugin_wglWaitForMscOML(HDC hDC, INT64 target_msc, INT64 divisor, INT64 remainder, INT64 *ust, INT64 *msc, INT64 *sbc);
REGAL_DECL BOOL REGAL_CALL plugin_wglWaitForSbcOML(HDC hDC, INT64 target_sbc, INT64 *ust, INT64 *msc, INT64 *sbc);
REGAL_DECL INT64 REGAL_CALL plugin_wglSwapBuffersMscOML(HDC hDC, INT64 target_msc, INT64 divisor, INT64 remainder);
REGAL_DECL INT64 REGAL_CALL plugin_wglSwapLayerBuffersMscOML(HDC hDC, int fuPlanes, INT64 target_msc, INT64 divisor, INT64 remainder);
#endif

/**
 ** WGL_core
 **/

#if (defined(WGL_CORE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_WGL_CORE)) && !defined(REGAL_NO_ENUM_WGL_CORE)
#define REGAL_NO_ENUM_WGL_CORE
#endif

#if (defined(WGL_CORE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_WGL_CORE)) && !defined(REGAL_NO_TYPEDEF_WGL_CORE)
#define REGAL_NO_TYPEDEF_WGL_CORE
#endif

#if (defined(WGL_CORE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_WGL_CORE)) && !defined(REGAL_NO_NAMESPACE_WGL_CORE)
#define REGAL_NO_NAMESPACE_WGL_CORE
#endif

#if (defined(WGL_CORE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_WGL_CORE)) && !defined(REGAL_NO_PLUGIN_WGL_CORE)
#define REGAL_NO_PLUGIN_WGL_CORE
#endif

#if (defined(WGL_CORE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_WGL_CORE)) && !defined(REGAL_NO_DECLARATION_WGL_CORE)
#define REGAL_NO_DECLARATION_WGL_CORE
#endif

#ifndef WGL_core
#define WGL_core 1
#endif

#ifndef REGAL_NO_TYPEDEF_WGL_CORE
typedef BOOL (REGAL_CALL *PFNWGLCOPYCONTEXTPROC)(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask);
typedef BOOL (REGAL_CALL *PFNWGLDELETECONTEXTPROC)(HGLRC hglrc);
typedef BOOL (REGAL_CALL *PFNWGLDESCRIBELAYERPLANEPROC)(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nBytes, LPLAYERPLANEDESCRIPTOR plpd);
typedef BOOL (REGAL_CALL *PFNWGLMAKECURRENTPROC)(HDC hDC, HGLRC hglrc);
typedef BOOL (REGAL_CALL *PFNWGLREALIZELAYERPALETTEPROC)(HDC hDC, int iLayerPlane, BOOL bRealize);
typedef BOOL (REGAL_CALL *PFNWGLSHARELISTSPROC)(HGLRC hglrcShare, HGLRC hglrcSrc);
typedef BOOL (REGAL_CALL *PFNWGLSWAPLAYERBUFFERSPROC)(HDC hDC, UINT fuPlanes);
typedef BOOL (REGAL_CALL *PFNWGLUSEFONTBITMAPSAPROC)(HDC hDC, DWORD first, DWORD count, DWORD listBase);
typedef BOOL (REGAL_CALL *PFNWGLUSEFONTBITMAPSWPROC)(HDC hDC, DWORD first, DWORD count, DWORD listBase);
typedef BOOL (REGAL_CALL *PFNWGLUSEFONTOUTLINESAPROC)(HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf);
typedef BOOL (REGAL_CALL *PFNWGLUSEFONTOUTLINESWPROC)(HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf);
typedef DWORD (REGAL_CALL *PFNWGLSWAPMULTIPLEBUFFERSPROC)(UINT n, const WGLSWAP *ps);
typedef HDC (REGAL_CALL *PFNWGLGETCURRENTDCPROC)(void);
typedef HGLRC (REGAL_CALL *PFNWGLCREATECONTEXTPROC)(HDC hDC);
typedef HGLRC (REGAL_CALL *PFNWGLCREATELAYERCONTEXTPROC)(HDC hDC, int iLayerPlane);
typedef HGLRC (REGAL_CALL *PFNWGLGETCURRENTCONTEXTPROC)(void);
typedef PROC (REGAL_CALL *PFNWGLGETDEFAULTPROCADDRESSPROC)(LPCSTR lpszProc);
typedef PROC (REGAL_CALL *PFNWGLGETPROCADDRESSPROC)(LPCSTR lpszProc);
typedef int (REGAL_CALL *PFNWGLGETLAYERPALETTEENTRIESPROC)(HDC hDC, int iLayerPlane, int iStart, int nEntries, COLORREF *pcr);
typedef int (REGAL_CALL *PFNWGLSETLAYERPALETTEENTRIESPROC)(HDC hDC, int iLayerPlane, int iStart, int nEntries, const COLORREF *pcr);
#endif

#ifndef REGAL_NO_NAMESPACE_WGL_CORE
#define wglCopyContext                      rwglCopyContext
#define wglCreateContext                    rwglCreateContext
#define wglCreateLayerContext               rwglCreateLayerContext
#define wglDeleteContext                    rwglDeleteContext
#define wglDescribeLayerPlane               rwglDescribeLayerPlane
#define wglGetCurrentContext                rwglGetCurrentContext
#define wglGetCurrentDC                     rwglGetCurrentDC
#define wglGetDefaultProcAddress            rwglGetDefaultProcAddress
#define wglGetLayerPaletteEntries           rwglGetLayerPaletteEntries
#define wglGetProcAddress                   rwglGetProcAddress
#define wglMakeCurrent                      rwglMakeCurrent
#define wglRealizeLayerPalette              rwglRealizeLayerPalette
#define wglSetLayerPaletteEntries           rwglSetLayerPaletteEntries
#define wglShareLists                       rwglShareLists
#define wglSwapLayerBuffers                 rwglSwapLayerBuffers
#define wglSwapMultipleBuffers              rwglSwapMultipleBuffers
#define wglUseFontBitmapsA                  rwglUseFontBitmapsA
#define wglUseFontBitmapsW                  rwglUseFontBitmapsW
#define wglUseFontOutlinesA                 rwglUseFontOutlinesA
#define wglUseFontOutlinesW                 rwglUseFontOutlinesW
#endif

#ifndef REGAL_NO_DECLARATION_WGL_CORE
REGAL_DECL BOOL REGAL_CALL wglCopyContext(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask);
REGAL_DECL BOOL REGAL_CALL wglDeleteContext(HGLRC hglrc);
REGAL_DECL BOOL REGAL_CALL wglDescribeLayerPlane(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nBytes, LPLAYERPLANEDESCRIPTOR plpd);
REGAL_DECL BOOL REGAL_CALL wglMakeCurrent(HDC hDC, HGLRC hglrc);
REGAL_DECL BOOL REGAL_CALL wglRealizeLayerPalette(HDC hDC, int iLayerPlane, BOOL bRealize);
REGAL_DECL BOOL REGAL_CALL wglShareLists(HGLRC hglrcShare, HGLRC hglrcSrc);
REGAL_DECL BOOL REGAL_CALL wglSwapLayerBuffers(HDC hDC, UINT fuPlanes);
REGAL_DECL BOOL REGAL_CALL wglUseFontBitmapsA(HDC hDC, DWORD first, DWORD count, DWORD listBase);
REGAL_DECL BOOL REGAL_CALL wglUseFontBitmapsW(HDC hDC, DWORD first, DWORD count, DWORD listBase);
REGAL_DECL BOOL REGAL_CALL wglUseFontOutlinesA(HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf);
REGAL_DECL BOOL REGAL_CALL wglUseFontOutlinesW(HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf);
REGAL_DECL DWORD REGAL_CALL wglSwapMultipleBuffers(UINT n, const WGLSWAP *ps);
REGAL_DECL HDC REGAL_CALL wglGetCurrentDC(void);
REGAL_DECL HGLRC REGAL_CALL wglCreateContext(HDC hDC);
REGAL_DECL HGLRC REGAL_CALL wglCreateLayerContext(HDC hDC, int iLayerPlane);
REGAL_DECL HGLRC REGAL_CALL wglGetCurrentContext(void);
REGAL_DECL PROC REGAL_CALL wglGetDefaultProcAddress(LPCSTR lpszProc);
REGAL_DECL PROC REGAL_CALL wglGetProcAddress(LPCSTR lpszProc);
REGAL_DECL int REGAL_CALL wglGetLayerPaletteEntries(HDC hDC, int iLayerPlane, int iStart, int nEntries, COLORREF *pcr);
REGAL_DECL int REGAL_CALL wglSetLayerPaletteEntries(HDC hDC, int iLayerPlane, int iStart, int nEntries, const COLORREF *pcr);
#endif

#ifndef REGAL_NO_PLUGIN_WGL_CORE
REGAL_DECL BOOL REGAL_CALL plugin_wglCopyContext(HGLRC hglrcSrc, HGLRC hglrcDst, UINT mask);
REGAL_DECL BOOL REGAL_CALL plugin_wglDeleteContext(HGLRC hglrc);
REGAL_DECL BOOL REGAL_CALL plugin_wglDescribeLayerPlane(HDC hDC, int iPixelFormat, int iLayerPlane, UINT nBytes, LPLAYERPLANEDESCRIPTOR plpd);
REGAL_DECL BOOL REGAL_CALL plugin_wglMakeCurrent(HDC hDC, HGLRC hglrc);
REGAL_DECL BOOL REGAL_CALL plugin_wglRealizeLayerPalette(HDC hDC, int iLayerPlane, BOOL bRealize);
REGAL_DECL BOOL REGAL_CALL plugin_wglShareLists(HGLRC hglrcShare, HGLRC hglrcSrc);
REGAL_DECL BOOL REGAL_CALL plugin_wglSwapLayerBuffers(HDC hDC, UINT fuPlanes);
REGAL_DECL BOOL REGAL_CALL plugin_wglUseFontBitmapsA(HDC hDC, DWORD first, DWORD count, DWORD listBase);
REGAL_DECL BOOL REGAL_CALL plugin_wglUseFontBitmapsW(HDC hDC, DWORD first, DWORD count, DWORD listBase);
REGAL_DECL BOOL REGAL_CALL plugin_wglUseFontOutlinesA(HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf);
REGAL_DECL BOOL REGAL_CALL plugin_wglUseFontOutlinesW(HDC hDC, DWORD first, DWORD count, DWORD listBase, FLOAT deviation, FLOAT extrusion, int format, LPGLYPHMETRICSFLOAT lpgmf);
REGAL_DECL DWORD REGAL_CALL plugin_wglSwapMultipleBuffers(UINT n, const WGLSWAP *ps);
REGAL_DECL HDC REGAL_CALL plugin_wglGetCurrentDC(void);
REGAL_DECL HGLRC REGAL_CALL plugin_wglCreateContext(HDC hDC);
REGAL_DECL HGLRC REGAL_CALL plugin_wglCreateLayerContext(HDC hDC, int iLayerPlane);
REGAL_DECL HGLRC REGAL_CALL plugin_wglGetCurrentContext(void);
REGAL_DECL PROC REGAL_CALL plugin_wglGetDefaultProcAddress(LPCSTR lpszProc);
REGAL_DECL PROC REGAL_CALL plugin_wglGetProcAddress(LPCSTR lpszProc);
REGAL_DECL int REGAL_CALL plugin_wglGetLayerPaletteEntries(HDC hDC, int iLayerPlane, int iStart, int nEntries, COLORREF *pcr);
REGAL_DECL int REGAL_CALL plugin_wglSetLayerPaletteEntries(HDC hDC, int iLayerPlane, int iStart, int nEntries, const COLORREF *pcr);
#endif

#endif /* REGAL_SYS_WGL_DECLARE_WGL */
#endif /* REGAL_SYS_WGL */

#if REGAL_SYS_GLX

/**
 ** GLX_3DFX_multisample
 **/

#if (defined(GLX_3DFX_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GLX_3DFX_MULTISAMPLE)
#define REGAL_NO_ENUM_GLX_3DFX_MULTISAMPLE
#endif

#if (defined(GLX_3DFX_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GLX_3DFX_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GLX_3DFX_MULTISAMPLE
#endif

#if (defined(GLX_3DFX_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GLX_3DFX_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GLX_3DFX_MULTISAMPLE
#endif

#if (defined(GLX_3DFX_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GLX_3DFX_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GLX_3DFX_MULTISAMPLE
#endif

#if (defined(GLX_3DFX_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_3DFX_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GLX_3DFX_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GLX_3DFX_MULTISAMPLE
#endif

#ifndef GLX_3DFX_multisample
#define GLX_3DFX_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GLX_3DFX_MULTISAMPLE
#define GLX_SAMPLE_BUFFERS_3DFX 0x8050     /* 32848 */
#define GLX_SAMPLES_3DFX        0x8051     /* 32849 */
#endif

/**
 ** GLX_AMD_gpu_association
 **/

#if (defined(GLX_AMD_GPU_ASSOCIATION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_ENUM_GLX_AMD_GPU_ASSOCIATION)
#define REGAL_NO_ENUM_GLX_AMD_GPU_ASSOCIATION
#endif

#if (defined(GLX_AMD_GPU_ASSOCIATION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_TYPEDEF_GLX_AMD_GPU_ASSOCIATION)
#define REGAL_NO_TYPEDEF_GLX_AMD_GPU_ASSOCIATION
#endif

#if (defined(GLX_AMD_GPU_ASSOCIATION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_NAMESPACE_GLX_AMD_GPU_ASSOCIATION)
#define REGAL_NO_NAMESPACE_GLX_AMD_GPU_ASSOCIATION
#endif

#if (defined(GLX_AMD_GPU_ASSOCIATION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_PLUGIN_GLX_AMD_GPU_ASSOCIATION)
#define REGAL_NO_PLUGIN_GLX_AMD_GPU_ASSOCIATION
#endif

#if (defined(GLX_AMD_GPU_ASSOCIATION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_AMD_GPU_ASSOCIATION)) && !defined(REGAL_NO_DECLARATION_GLX_AMD_GPU_ASSOCIATION)
#define REGAL_NO_DECLARATION_GLX_AMD_GPU_ASSOCIATION
#endif

#ifndef GLX_AMD_gpu_association
#define GLX_AMD_gpu_association 1
#endif

#ifndef REGAL_NO_ENUM_GLX_AMD_GPU_ASSOCIATION
#define GLX_GPU_VENDOR_AMD                0x1f00     /* 7936 */
#define GLX_GPU_RENDERER_STRING_AMD       0x1f01     /* 7937 */
#define GLX_GPU_OPENGL_VERSION_STRING_AMD 0x1f02     /* 7938 */
#define GLX_GPU_FASTEST_TARGET_GPUS_AMD   0x21a2     /* 8610 */
#define GLX_GPU_RAM_AMD                   0x21a3     /* 8611 */
#define GLX_GPU_CLOCK_AMD                 0x21a4     /* 8612 */
#define GLX_GPU_NUM_PIPES_AMD             0x21a5     /* 8613 */
#define GLX_GPU_NUM_SIMD_AMD              0x21a6     /* 8614 */
#define GLX_GPU_NUM_RB_AMD                0x21a7     /* 8615 */
#define GLX_GPU_NUM_SPI_AMD               0x21a8     /* 8616 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_AMD_GPU_ASSOCIATION
typedef Bool (REGAL_CALL *PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC)(GLXContext ctx);
typedef Bool (REGAL_CALL *PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(GLXContext ctx);
typedef GLXContext (REGAL_CALL *PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC)(unsigned int id, GLXContext share_list);
typedef GLXContext (REGAL_CALL *PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)(unsigned int id, GLXContext share_context, const int *attribList);
typedef GLXContext (REGAL_CALL *PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
typedef int (REGAL_CALL *PFNGLXGETGPUINFOAMDPROC)(unsigned int id, int property, GLenum dataType, unsigned int size, GLvoid *data);
typedef unsigned int (REGAL_CALL *PFNGLXGETCONTEXTGPUIDAMDPROC)(GLXContext ctx);
typedef unsigned int (REGAL_CALL *PFNGLXGETGPUIDSAMDPROC)(unsigned int maxCount, unsigned int *ids);
typedef void (REGAL_CALL *PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC)(GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_AMD_GPU_ASSOCIATION
#define glXBlitContextFramebufferAMD        rglXBlitContextFramebufferAMD
#define glXCreateAssociatedContextAMD       rglXCreateAssociatedContextAMD
#define glXCreateAssociatedContextAttribsAMD rglXCreateAssociatedContextAttribsAMD
#define glXDeleteAssociatedContextAMD       rglXDeleteAssociatedContextAMD
#define glXGetContextGPUIDAMD               rglXGetContextGPUIDAMD
#define glXGetCurrentAssociatedContextAMD   rglXGetCurrentAssociatedContextAMD
#define glXGetGPUIDsAMD                     rglXGetGPUIDsAMD
#define glXGetGPUInfoAMD                    rglXGetGPUInfoAMD
#define glXMakeAssociatedContextCurrentAMD  rglXMakeAssociatedContextCurrentAMD
#endif

#ifndef REGAL_NO_DECLARATION_GLX_AMD_GPU_ASSOCIATION
REGAL_DECL Bool REGAL_CALL glXDeleteAssociatedContextAMD(GLXContext ctx);
REGAL_DECL Bool REGAL_CALL glXMakeAssociatedContextCurrentAMD(GLXContext ctx);
REGAL_DECL GLXContext REGAL_CALL glXCreateAssociatedContextAMD(unsigned int id, GLXContext share_list);
REGAL_DECL GLXContext REGAL_CALL glXCreateAssociatedContextAttribsAMD(unsigned int id, GLXContext share_context, const int *attribList);
REGAL_DECL GLXContext REGAL_CALL glXGetCurrentAssociatedContextAMD(void);
REGAL_DECL int REGAL_CALL glXGetGPUInfoAMD(unsigned int id, int property, GLenum dataType, unsigned int size, GLvoid *data);
REGAL_DECL unsigned int REGAL_CALL glXGetContextGPUIDAMD(GLXContext ctx);
REGAL_DECL unsigned int REGAL_CALL glXGetGPUIDsAMD(unsigned int maxCount, unsigned int *ids);
REGAL_DECL void REGAL_CALL glXBlitContextFramebufferAMD(GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_AMD_GPU_ASSOCIATION
REGAL_DECL Bool REGAL_CALL plugin_glXDeleteAssociatedContextAMD(GLXContext ctx);
REGAL_DECL Bool REGAL_CALL plugin_glXMakeAssociatedContextCurrentAMD(GLXContext ctx);
REGAL_DECL GLXContext REGAL_CALL plugin_glXCreateAssociatedContextAMD(unsigned int id, GLXContext share_list);
REGAL_DECL GLXContext REGAL_CALL plugin_glXCreateAssociatedContextAttribsAMD(unsigned int id, GLXContext share_context, const int *attribList);
REGAL_DECL GLXContext REGAL_CALL plugin_glXGetCurrentAssociatedContextAMD(void);
REGAL_DECL int REGAL_CALL plugin_glXGetGPUInfoAMD(unsigned int id, int property, GLenum dataType, unsigned int size, GLvoid *data);
REGAL_DECL unsigned int REGAL_CALL plugin_glXGetContextGPUIDAMD(GLXContext ctx);
REGAL_DECL unsigned int REGAL_CALL plugin_glXGetGPUIDsAMD(unsigned int maxCount, unsigned int *ids);
REGAL_DECL void REGAL_CALL plugin_glXBlitContextFramebufferAMD(GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
#endif

/**
 ** GLX_ARB_create_context
 **/

#if (defined(GLX_ARB_CREATE_CONTEXT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT)
#define REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_CREATE_CONTEXT)
#define REGAL_NO_TYPEDEF_GLX_ARB_CREATE_CONTEXT
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_CREATE_CONTEXT)
#define REGAL_NO_NAMESPACE_GLX_ARB_CREATE_CONTEXT
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_CREATE_CONTEXT)
#define REGAL_NO_PLUGIN_GLX_ARB_CREATE_CONTEXT
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_CREATE_CONTEXT)
#define REGAL_NO_DECLARATION_GLX_ARB_CREATE_CONTEXT
#endif

#ifndef GLX_ARB_create_context
#define GLX_ARB_create_context 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT
#define GLX_CONTEXT_DEBUG_BIT_ARB              0x1
#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB 0x2
#define GLX_CONTEXT_MAJOR_VERSION_ARB          0x2091     /* 8337 */
#define GLX_CONTEXT_MINOR_VERSION_ARB          0x2092     /* 8338 */
#define GLX_CONTEXT_FLAGS_ARB                  0x2094     /* 8340 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_ARB_CREATE_CONTEXT
typedef GLXContext (REGAL_CALL *PFNGLXCREATECONTEXTATTRIBSARBPROC)(Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_ARB_CREATE_CONTEXT
#define glXCreateContextAttribsARB          rglXCreateContextAttribsARB
#endif

#ifndef REGAL_NO_DECLARATION_GLX_ARB_CREATE_CONTEXT
REGAL_DECL GLXContext REGAL_CALL glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_ARB_CREATE_CONTEXT
REGAL_DECL GLXContext REGAL_CALL plugin_glXCreateContextAttribsARB(Display *dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int *attrib_list);
#endif

/**
 ** GLX_ARB_create_context_profile
 **/

#if (defined(GLX_ARB_CREATE_CONTEXT_PROFILE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT_PROFILE
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT_PROFILE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_TYPEDEF_GLX_ARB_CREATE_CONTEXT_PROFILE
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT_PROFILE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_NAMESPACE_GLX_ARB_CREATE_CONTEXT_PROFILE
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT_PROFILE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_PLUGIN_GLX_ARB_CREATE_CONTEXT_PROFILE
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT_PROFILE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_PROFILE)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_CREATE_CONTEXT_PROFILE)
#define REGAL_NO_DECLARATION_GLX_ARB_CREATE_CONTEXT_PROFILE
#endif

#ifndef GLX_ARB_create_context_profile
#define GLX_ARB_create_context_profile 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT_PROFILE
#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB          0x1
#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB 0x2
#define GLX_CONTEXT_PROFILE_MASK_ARB              0x9126     /* 37158 */
#endif

/**
 ** GLX_ARB_create_context_robustness
 **/

#if (defined(GLX_ARB_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_TYPEDEF_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT_ROBUSTNESS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_NAMESPACE_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT_ROBUSTNESS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_PLUGIN_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(GLX_ARB_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_DECLARATION_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS
#endif

#ifndef GLX_ARB_create_context_robustness
#define GLX_ARB_create_context_robustness 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ARB_CREATE_CONTEXT_ROBUSTNESS
#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB           0x4
#define GLX_LOSE_CONTEXT_ON_RESET_ARB               0x8252     /* 33362 */
#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB 0x8256     /* 33366 */
#define GLX_NO_RESET_NOTIFICATION_ARB               0x8261     /* 33377 */
#endif

/**
 ** GLX_ARB_fbconfig_float
 **/

#if (defined(GLX_ARB_FBCONFIG_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_FBCONFIG_FLOAT)) && !defined(REGAL_NO_ENUM_GLX_ARB_FBCONFIG_FLOAT)
#define REGAL_NO_ENUM_GLX_ARB_FBCONFIG_FLOAT
#endif

#if (defined(GLX_ARB_FBCONFIG_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_FBCONFIG_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_FBCONFIG_FLOAT)
#define REGAL_NO_TYPEDEF_GLX_ARB_FBCONFIG_FLOAT
#endif

#if (defined(GLX_ARB_FBCONFIG_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_FBCONFIG_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_FBCONFIG_FLOAT)
#define REGAL_NO_NAMESPACE_GLX_ARB_FBCONFIG_FLOAT
#endif

#if (defined(GLX_ARB_FBCONFIG_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_FBCONFIG_FLOAT)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_FBCONFIG_FLOAT)
#define REGAL_NO_PLUGIN_GLX_ARB_FBCONFIG_FLOAT
#endif

#if (defined(GLX_ARB_FBCONFIG_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_FBCONFIG_FLOAT)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_FBCONFIG_FLOAT)
#define REGAL_NO_DECLARATION_GLX_ARB_FBCONFIG_FLOAT
#endif

#ifndef GLX_ARB_fbconfig_float
#define GLX_ARB_fbconfig_float 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ARB_FBCONFIG_FLOAT
#define GLX_RGBA_FLOAT_TYPE 0x20b9     /* 8377 */
#define GLX_RGBA_FLOAT_BIT  0x4
#endif

/**
 ** GLX_ARB_framebuffer_sRGB
 **/

#if (defined(GLX_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_ENUM_GLX_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_ENUM_GLX_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(GLX_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_TYPEDEF_GLX_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(GLX_ARB_FRAMEBUFFER_SRGB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_NAMESPACE_GLX_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(GLX_ARB_FRAMEBUFFER_SRGB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_PLUGIN_GLX_ARB_FRAMEBUFFER_SRGB
#endif

#if (defined(GLX_ARB_FRAMEBUFFER_SRGB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_FRAMEBUFFER_SRGB)
#define REGAL_NO_DECLARATION_GLX_ARB_FRAMEBUFFER_SRGB
#endif

#ifndef GLX_ARB_framebuffer_sRGB
#define GLX_ARB_framebuffer_sRGB 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ARB_FRAMEBUFFER_SRGB
#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB 0x20b2 /* 8370 */
#endif

/**
 ** GLX_ARB_get_proc_address
 **/

#if (defined(GLX_ARB_GET_PROC_ADDRESS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_GET_PROC_ADDRESS)) && !defined(REGAL_NO_ENUM_GLX_ARB_GET_PROC_ADDRESS)
#define REGAL_NO_ENUM_GLX_ARB_GET_PROC_ADDRESS
#endif

#if (defined(GLX_ARB_GET_PROC_ADDRESS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_GET_PROC_ADDRESS)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_GET_PROC_ADDRESS)
#define REGAL_NO_TYPEDEF_GLX_ARB_GET_PROC_ADDRESS
#endif

#if (defined(GLX_ARB_GET_PROC_ADDRESS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_GET_PROC_ADDRESS)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_GET_PROC_ADDRESS)
#define REGAL_NO_NAMESPACE_GLX_ARB_GET_PROC_ADDRESS
#endif

#if (defined(GLX_ARB_GET_PROC_ADDRESS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_GET_PROC_ADDRESS)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_GET_PROC_ADDRESS)
#define REGAL_NO_PLUGIN_GLX_ARB_GET_PROC_ADDRESS
#endif

#if (defined(GLX_ARB_GET_PROC_ADDRESS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_GET_PROC_ADDRESS)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_GET_PROC_ADDRESS)
#define REGAL_NO_DECLARATION_GLX_ARB_GET_PROC_ADDRESS
#endif

#ifndef GLX_ARB_get_proc_address
#define GLX_ARB_get_proc_address 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_ARB_GET_PROC_ADDRESS
typedef __GLXextFuncPtr (REGAL_CALL *PFNGLXGETPROCADDRESSARBPROC)(const GLubyte *procName);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_ARB_GET_PROC_ADDRESS
#define glXGetProcAddressARB                rglXGetProcAddressARB
#endif

#ifndef REGAL_NO_DECLARATION_GLX_ARB_GET_PROC_ADDRESS
REGAL_DECL __GLXextFuncPtr REGAL_CALL glXGetProcAddressARB(const GLubyte *procName);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_ARB_GET_PROC_ADDRESS
REGAL_DECL __GLXextFuncPtr REGAL_CALL plugin_glXGetProcAddressARB(const GLubyte *procName);
#endif

/**
 ** GLX_ARB_multisample
 **/

#if (defined(GLX_ARB_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GLX_ARB_MULTISAMPLE)
#define REGAL_NO_ENUM_GLX_ARB_MULTISAMPLE
#endif

#if (defined(GLX_ARB_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GLX_ARB_MULTISAMPLE
#endif

#if (defined(GLX_ARB_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GLX_ARB_MULTISAMPLE
#endif

#if (defined(GLX_ARB_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GLX_ARB_MULTISAMPLE
#endif

#if (defined(GLX_ARB_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GLX_ARB_MULTISAMPLE
#endif

#ifndef GLX_ARB_multisample
#define GLX_ARB_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ARB_MULTISAMPLE
#define GLX_SAMPLE_BUFFERS_ARB 0x186a0     /* 100000 */
#define GLX_SAMPLES_ARB        0x186a1     /* 100001 */
#endif

/**
 ** GLX_ARB_robustness_share_group_isolation
 **/

#if (defined(GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_ENUM_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_ENUM_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#if (defined(GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_TYPEDEF_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#if (defined(GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_NAMESPACE_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#if (defined(GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_PLUGIN_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#if (defined(GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION)
#define REGAL_NO_DECLARATION_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#endif

#ifndef GLX_ARB_robustness_share_group_isolation
#define GLX_ARB_robustness_share_group_isolation 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ARB_ROBUSTNESS_SHARE_GROUP_ISOLATION
#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB 0x8
#endif

/**
 ** GLX_ARB_vertex_buffer_object
 **/

#if (defined(GLX_ARB_VERTEX_BUFFER_OBJECT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_ENUM_GLX_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_ENUM_GLX_ARB_VERTEX_BUFFER_OBJECT
#endif

#if (defined(GLX_ARB_VERTEX_BUFFER_OBJECT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_TYPEDEF_GLX_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_TYPEDEF_GLX_ARB_VERTEX_BUFFER_OBJECT
#endif

#if (defined(GLX_ARB_VERTEX_BUFFER_OBJECT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_NAMESPACE_GLX_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_NAMESPACE_GLX_ARB_VERTEX_BUFFER_OBJECT
#endif

#if (defined(GLX_ARB_VERTEX_BUFFER_OBJECT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_PLUGIN_GLX_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_PLUGIN_GLX_ARB_VERTEX_BUFFER_OBJECT
#endif

#if (defined(GLX_ARB_VERTEX_BUFFER_OBJECT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ARB_VERTEX_BUFFER_OBJECT)) && !defined(REGAL_NO_DECLARATION_GLX_ARB_VERTEX_BUFFER_OBJECT)
#define REGAL_NO_DECLARATION_GLX_ARB_VERTEX_BUFFER_OBJECT
#endif

#ifndef GLX_ARB_vertex_buffer_object
#define GLX_ARB_vertex_buffer_object 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ARB_VERTEX_BUFFER_OBJECT
#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB 0x2095 /* 8341 */
#endif

/**
 ** GLX_ATI_pixel_format_float
 **/

#if (defined(GLX_ATI_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_ENUM_GLX_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_ENUM_GLX_ATI_PIXEL_FORMAT_FLOAT
#endif

#if (defined(GLX_ATI_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GLX_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_TYPEDEF_GLX_ATI_PIXEL_FORMAT_FLOAT
#endif

#if (defined(GLX_ATI_PIXEL_FORMAT_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GLX_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_NAMESPACE_GLX_ATI_PIXEL_FORMAT_FLOAT
#endif

#if (defined(GLX_ATI_PIXEL_FORMAT_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_PLUGIN_GLX_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_PLUGIN_GLX_ATI_PIXEL_FORMAT_FLOAT
#endif

#if (defined(GLX_ATI_PIXEL_FORMAT_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ATI_PIXEL_FORMAT_FLOAT)) && !defined(REGAL_NO_DECLARATION_GLX_ATI_PIXEL_FORMAT_FLOAT)
#define REGAL_NO_DECLARATION_GLX_ATI_PIXEL_FORMAT_FLOAT
#endif

#ifndef GLX_ATI_pixel_format_float
#define GLX_ATI_pixel_format_float 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ATI_PIXEL_FORMAT_FLOAT
#define GLX_RGBA_FLOAT_ATI_BIT 0x100 /* 256 */
#endif

/**
 ** GLX_ATI_render_texture
 **/

#if (defined(GLX_ATI_RENDER_TEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_ATI_RENDER_TEXTURE)) && !defined(REGAL_NO_ENUM_GLX_ATI_RENDER_TEXTURE)
#define REGAL_NO_ENUM_GLX_ATI_RENDER_TEXTURE
#endif

#if (defined(GLX_ATI_RENDER_TEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_ATI_RENDER_TEXTURE)) && !defined(REGAL_NO_TYPEDEF_GLX_ATI_RENDER_TEXTURE)
#define REGAL_NO_TYPEDEF_GLX_ATI_RENDER_TEXTURE
#endif

#if (defined(GLX_ATI_RENDER_TEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_ATI_RENDER_TEXTURE)) && !defined(REGAL_NO_NAMESPACE_GLX_ATI_RENDER_TEXTURE)
#define REGAL_NO_NAMESPACE_GLX_ATI_RENDER_TEXTURE
#endif

#if (defined(GLX_ATI_RENDER_TEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_ATI_RENDER_TEXTURE)) && !defined(REGAL_NO_PLUGIN_GLX_ATI_RENDER_TEXTURE)
#define REGAL_NO_PLUGIN_GLX_ATI_RENDER_TEXTURE
#endif

#if (defined(GLX_ATI_RENDER_TEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_ATI_RENDER_TEXTURE)) && !defined(REGAL_NO_DECLARATION_GLX_ATI_RENDER_TEXTURE)
#define REGAL_NO_DECLARATION_GLX_ATI_RENDER_TEXTURE
#endif

#ifndef GLX_ATI_render_texture
#define GLX_ATI_render_texture 1
#endif

#ifndef REGAL_NO_ENUM_GLX_ATI_RENDER_TEXTURE
#define GLX_BIND_TO_TEXTURE_RGB_ATI         0x9800     /* 38912 */
#define GLX_BIND_TO_TEXTURE_RGBA_ATI        0x9801     /* 38913 */
#define GLX_TEXTURE_FORMAT_ATI              0x9802     /* 38914 */
#define GLX_TEXTURE_TARGET_ATI              0x9803     /* 38915 */
#define GLX_MIPMAP_TEXTURE_ATI              0x9804     /* 38916 */
#define GLX_TEXTURE_RGB_ATI                 0x9805     /* 38917 */
#define GLX_TEXTURE_RGBA_ATI                0x9806     /* 38918 */
#define GLX_NO_TEXTURE_ATI                  0x9807     /* 38919 */
#define GLX_TEXTURE_CUBE_MAP_ATI            0x9808     /* 38920 */
#define GLX_TEXTURE_1D_ATI                  0x9809     /* 38921 */
#define GLX_TEXTURE_2D_ATI                  0x980a     /* 38922 */
#define GLX_MIPMAP_LEVEL_ATI                0x980b     /* 38923 */
#define GLX_CUBE_MAP_FACE_ATI               0x980c     /* 38924 */
#define GLX_TEXTURE_CUBE_MAP_POSITIVE_X_ATI 0x980d     /* 38925 */
#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_X_ATI 0x980e     /* 38926 */
#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Y_ATI 0x980f     /* 38927 */
#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Y_ATI 0x9810     /* 38928 */
#define GLX_TEXTURE_CUBE_MAP_POSITIVE_Z_ATI 0x9811     /* 38929 */
#define GLX_TEXTURE_CUBE_MAP_NEGATIVE_Z_ATI 0x9812     /* 38930 */
#define GLX_FRONT_LEFT_ATI                  0x9813     /* 38931 */
#define GLX_FRONT_RIGHT_ATI                 0x9814     /* 38932 */
#define GLX_BACK_LEFT_ATI                   0x9815     /* 38933 */
#define GLX_BACK_RIGHT_ATI                  0x9816     /* 38934 */
#define GLX_AUX0_ATI                        0x9817     /* 38935 */
#define GLX_AUX1_ATI                        0x9818     /* 38936 */
#define GLX_AUX2_ATI                        0x9819     /* 38937 */
#define GLX_AUX3_ATI                        0x981a     /* 38938 */
#define GLX_AUX4_ATI                        0x981b     /* 38939 */
#define GLX_AUX5_ATI                        0x981c     /* 38940 */
#define GLX_AUX6_ATI                        0x981d     /* 38941 */
#define GLX_AUX7_ATI                        0x981e     /* 38942 */
#define GLX_AUX8_ATI                        0x981f     /* 38943 */
#define GLX_AUX9_ATI                        0x9820     /* 38944 */
#define GLX_BIND_TO_TEXTURE_LUMINANCE_ATI   0x9821     /* 38945 */
#define GLX_BIND_TO_TEXTURE_INTENSITY_ATI   0x9822     /* 38946 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_ATI_RENDER_TEXTURE
typedef void (REGAL_CALL *PFNGLXBINDTEXIMAGEATIPROC)(Display *dpy, GLXPbuffer pbuf, int buffer);
typedef void (REGAL_CALL *PFNGLXDRAWABLEATTRIBATIPROC)(Display *dpy, GLXDrawable draw, const int *attrib_list);
typedef void (REGAL_CALL *PFNGLXRELEASETEXIMAGEATIPROC)(Display *dpy, GLXPbuffer pbuf, int buffer);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_ATI_RENDER_TEXTURE
#define glXBindTexImageATI                  rglXBindTexImageATI
#define glXDrawableAttribATI                rglXDrawableAttribATI
#define glXReleaseTexImageATI               rglXReleaseTexImageATI
#endif

#ifndef REGAL_NO_DECLARATION_GLX_ATI_RENDER_TEXTURE
REGAL_DECL void REGAL_CALL glXBindTexImageATI(Display *dpy, GLXPbuffer pbuf, int buffer);
REGAL_DECL void REGAL_CALL glXDrawableAttribATI(Display *dpy, GLXDrawable draw, const int *attrib_list);
REGAL_DECL void REGAL_CALL glXReleaseTexImageATI(Display *dpy, GLXPbuffer pbuf, int buffer);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_ATI_RENDER_TEXTURE
REGAL_DECL void REGAL_CALL plugin_glXBindTexImageATI(Display *dpy, GLXPbuffer pbuf, int buffer);
REGAL_DECL void REGAL_CALL plugin_glXDrawableAttribATI(Display *dpy, GLXDrawable draw, const int *attrib_list);
REGAL_DECL void REGAL_CALL plugin_glXReleaseTexImageATI(Display *dpy, GLXPbuffer pbuf, int buffer);
#endif

/**
 ** GLX_EXT_create_context_es2_profile
 **/

#if (defined(GLX_EXT_CREATE_CONTEXT_ES2_PROFILE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_ENUM_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_ENUM_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#if (defined(GLX_EXT_CREATE_CONTEXT_ES2_PROFILE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_TYPEDEF_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#if (defined(GLX_EXT_CREATE_CONTEXT_ES2_PROFILE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_NAMESPACE_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#if (defined(GLX_EXT_CREATE_CONTEXT_ES2_PROFILE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_PLUGIN_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#if (defined(GLX_EXT_CREATE_CONTEXT_ES2_PROFILE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE)
#define REGAL_NO_DECLARATION_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE
#endif

#ifndef GLX_EXT_create_context_es2_profile
#define GLX_EXT_create_context_es2_profile 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_CREATE_CONTEXT_ES2_PROFILE
#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT 0x4
#endif

/**
 ** GLX_EXT_create_context_es_profile
 **/

#if (defined(GLX_EXT_CREATE_CONTEXT_ES_PROFILE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_ENUM_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_ENUM_GLX_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#if (defined(GLX_EXT_CREATE_CONTEXT_ES_PROFILE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_TYPEDEF_GLX_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#if (defined(GLX_EXT_CREATE_CONTEXT_ES_PROFILE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_NAMESPACE_GLX_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#if (defined(GLX_EXT_CREATE_CONTEXT_ES_PROFILE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_PLUGIN_GLX_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#if (defined(GLX_EXT_CREATE_CONTEXT_ES_PROFILE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_CREATE_CONTEXT_ES_PROFILE)
#define REGAL_NO_DECLARATION_GLX_EXT_CREATE_CONTEXT_ES_PROFILE
#endif

#ifndef GLX_EXT_create_context_es_profile
#define GLX_EXT_create_context_es_profile 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_CREATE_CONTEXT_ES_PROFILE
#define GLX_CONTEXT_ES_PROFILE_BIT_EXT 0x4
#endif

/**
 ** GLX_EXT_fbconfig_packed_float
 **/

#if (defined(GLX_EXT_FBCONFIG_PACKED_FLOAT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_FBCONFIG_PACKED_FLOAT)) && !defined(REGAL_NO_ENUM_GLX_EXT_FBCONFIG_PACKED_FLOAT)
#define REGAL_NO_ENUM_GLX_EXT_FBCONFIG_PACKED_FLOAT
#endif

#if (defined(GLX_EXT_FBCONFIG_PACKED_FLOAT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_FBCONFIG_PACKED_FLOAT)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_FBCONFIG_PACKED_FLOAT)
#define REGAL_NO_TYPEDEF_GLX_EXT_FBCONFIG_PACKED_FLOAT
#endif

#if (defined(GLX_EXT_FBCONFIG_PACKED_FLOAT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_FBCONFIG_PACKED_FLOAT)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_FBCONFIG_PACKED_FLOAT)
#define REGAL_NO_NAMESPACE_GLX_EXT_FBCONFIG_PACKED_FLOAT
#endif

#if (defined(GLX_EXT_FBCONFIG_PACKED_FLOAT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_FBCONFIG_PACKED_FLOAT)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_FBCONFIG_PACKED_FLOAT)
#define REGAL_NO_PLUGIN_GLX_EXT_FBCONFIG_PACKED_FLOAT
#endif

#if (defined(GLX_EXT_FBCONFIG_PACKED_FLOAT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_FBCONFIG_PACKED_FLOAT)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_FBCONFIG_PACKED_FLOAT)
#define REGAL_NO_DECLARATION_GLX_EXT_FBCONFIG_PACKED_FLOAT
#endif

#ifndef GLX_EXT_fbconfig_packed_float
#define GLX_EXT_fbconfig_packed_float 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_FBCONFIG_PACKED_FLOAT
#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT 0x20b1     /* 8369 */
#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT  0x8
#endif

/**
 ** GLX_EXT_framebuffer_sRGB
 **/

#if (defined(GLX_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_ENUM_GLX_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_ENUM_GLX_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(GLX_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_TYPEDEF_GLX_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(GLX_EXT_FRAMEBUFFER_SRGB) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_NAMESPACE_GLX_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(GLX_EXT_FRAMEBUFFER_SRGB) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_PLUGIN_GLX_EXT_FRAMEBUFFER_SRGB
#endif

#if (defined(GLX_EXT_FRAMEBUFFER_SRGB) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_FRAMEBUFFER_SRGB)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_FRAMEBUFFER_SRGB)
#define REGAL_NO_DECLARATION_GLX_EXT_FRAMEBUFFER_SRGB
#endif

#ifndef GLX_EXT_framebuffer_sRGB
#define GLX_EXT_framebuffer_sRGB 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_FRAMEBUFFER_SRGB
#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x20b2 /* 8370 */
#endif

/**
 ** GLX_EXT_import_context
 **/

#if (defined(GLX_EXT_IMPORT_CONTEXT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_IMPORT_CONTEXT)) && !defined(REGAL_NO_ENUM_GLX_EXT_IMPORT_CONTEXT)
#define REGAL_NO_ENUM_GLX_EXT_IMPORT_CONTEXT
#endif

#if (defined(GLX_EXT_IMPORT_CONTEXT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_IMPORT_CONTEXT)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_IMPORT_CONTEXT)
#define REGAL_NO_TYPEDEF_GLX_EXT_IMPORT_CONTEXT
#endif

#if (defined(GLX_EXT_IMPORT_CONTEXT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_IMPORT_CONTEXT)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_IMPORT_CONTEXT)
#define REGAL_NO_NAMESPACE_GLX_EXT_IMPORT_CONTEXT
#endif

#if (defined(GLX_EXT_IMPORT_CONTEXT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_IMPORT_CONTEXT)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_IMPORT_CONTEXT)
#define REGAL_NO_PLUGIN_GLX_EXT_IMPORT_CONTEXT
#endif

#if (defined(GLX_EXT_IMPORT_CONTEXT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_IMPORT_CONTEXT)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_IMPORT_CONTEXT)
#define REGAL_NO_DECLARATION_GLX_EXT_IMPORT_CONTEXT
#endif

#ifndef GLX_EXT_import_context
#define GLX_EXT_import_context 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_IMPORT_CONTEXT
#define GLX_SHARE_CONTEXT_EXT 0x800a     /* 32778 */
#define GLX_VISUAL_ID_EXT     0x800b     /* 32779 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_EXT_IMPORT_CONTEXT
typedef GLXContext (REGAL_CALL *PFNGLXIMPORTCONTEXTEXTPROC)(Display *dpy, GLXContextID contextID);
typedef GLXContextID (REGAL_CALL *PFNGLXGETCONTEXTIDEXTPROC)(const GLXContext context);
typedef int (REGAL_CALL *PFNGLXQUERYCONTEXTINFOEXTPROC)(Display *dpy, GLXContext context, int attribute, int *value);
typedef void (REGAL_CALL *PFNGLXFREECONTEXTEXTPROC)(Display *dpy, GLXContext context);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_EXT_IMPORT_CONTEXT
#define glXFreeContextEXT                   rglXFreeContextEXT
#define glXGetContextIDEXT                  rglXGetContextIDEXT
#define glXImportContextEXT                 rglXImportContextEXT
#define glXQueryContextInfoEXT              rglXQueryContextInfoEXT
#endif

#ifndef REGAL_NO_DECLARATION_GLX_EXT_IMPORT_CONTEXT
REGAL_DECL GLXContext REGAL_CALL glXImportContextEXT(Display *dpy, GLXContextID contextID);
REGAL_DECL GLXContextID REGAL_CALL glXGetContextIDEXT(const GLXContext context);
REGAL_DECL int REGAL_CALL glXQueryContextInfoEXT(Display *dpy, GLXContext context, int attribute, int *value);
REGAL_DECL void REGAL_CALL glXFreeContextEXT(Display *dpy, GLXContext context);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_EXT_IMPORT_CONTEXT
REGAL_DECL GLXContext REGAL_CALL plugin_glXImportContextEXT(Display *dpy, GLXContextID contextID);
REGAL_DECL GLXContextID REGAL_CALL plugin_glXGetContextIDEXT(const GLXContext context);
REGAL_DECL int REGAL_CALL plugin_glXQueryContextInfoEXT(Display *dpy, GLXContext context, int attribute, int *value);
REGAL_DECL void REGAL_CALL plugin_glXFreeContextEXT(Display *dpy, GLXContext context);
#endif

/**
 ** GLX_EXT_swap_control
 **/

#if (defined(GLX_EXT_SWAP_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_ENUM_GLX_EXT_SWAP_CONTROL)
#define REGAL_NO_ENUM_GLX_EXT_SWAP_CONTROL
#endif

#if (defined(GLX_EXT_SWAP_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_SWAP_CONTROL)
#define REGAL_NO_TYPEDEF_GLX_EXT_SWAP_CONTROL
#endif

#if (defined(GLX_EXT_SWAP_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_SWAP_CONTROL)
#define REGAL_NO_NAMESPACE_GLX_EXT_SWAP_CONTROL
#endif

#if (defined(GLX_EXT_SWAP_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_SWAP_CONTROL)
#define REGAL_NO_PLUGIN_GLX_EXT_SWAP_CONTROL
#endif

#if (defined(GLX_EXT_SWAP_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_SWAP_CONTROL)
#define REGAL_NO_DECLARATION_GLX_EXT_SWAP_CONTROL
#endif

#ifndef GLX_EXT_swap_control
#define GLX_EXT_swap_control 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_SWAP_CONTROL
#define GLX_SWAP_INTERVAL_EXT     0x20f1     /* 8433 */
#define GLX_MAX_SWAP_INTERVAL_EXT 0x20f2     /* 8434 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_EXT_SWAP_CONTROL
typedef void (REGAL_CALL *PFNGLXSWAPINTERVALEXTPROC)(Display *dpy, GLXDrawable drawable, int interval);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_EXT_SWAP_CONTROL
#define glXSwapIntervalEXT                  rglXSwapIntervalEXT
#endif

#ifndef REGAL_NO_DECLARATION_GLX_EXT_SWAP_CONTROL
REGAL_DECL void REGAL_CALL glXSwapIntervalEXT(Display *dpy, GLXDrawable drawable, int interval);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_EXT_SWAP_CONTROL
REGAL_DECL void REGAL_CALL plugin_glXSwapIntervalEXT(Display *dpy, GLXDrawable drawable, int interval);
#endif

/**
 ** GLX_EXT_swap_control_tear
 **/

#if (defined(GLX_EXT_SWAP_CONTROL_TEAR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL_TEAR)) && !defined(REGAL_NO_ENUM_GLX_EXT_SWAP_CONTROL_TEAR)
#define REGAL_NO_ENUM_GLX_EXT_SWAP_CONTROL_TEAR
#endif

#if (defined(GLX_EXT_SWAP_CONTROL_TEAR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL_TEAR)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_SWAP_CONTROL_TEAR)
#define REGAL_NO_TYPEDEF_GLX_EXT_SWAP_CONTROL_TEAR
#endif

#if (defined(GLX_EXT_SWAP_CONTROL_TEAR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL_TEAR)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_SWAP_CONTROL_TEAR)
#define REGAL_NO_NAMESPACE_GLX_EXT_SWAP_CONTROL_TEAR
#endif

#if (defined(GLX_EXT_SWAP_CONTROL_TEAR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL_TEAR)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_SWAP_CONTROL_TEAR)
#define REGAL_NO_PLUGIN_GLX_EXT_SWAP_CONTROL_TEAR
#endif

#if (defined(GLX_EXT_SWAP_CONTROL_TEAR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_SWAP_CONTROL_TEAR)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_SWAP_CONTROL_TEAR)
#define REGAL_NO_DECLARATION_GLX_EXT_SWAP_CONTROL_TEAR
#endif

#ifndef GLX_EXT_swap_control_tear
#define GLX_EXT_swap_control_tear 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_SWAP_CONTROL_TEAR
#define GLX_LATE_SWAPS_TEAR_EXT 0x20f3 /* 8435 */
#endif

/**
 ** GLX_EXT_texture_from_pixmap
 **/

#if (defined(GLX_EXT_TEXTURE_FROM_PIXMAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_TEXTURE_FROM_PIXMAP)) && !defined(REGAL_NO_ENUM_GLX_EXT_TEXTURE_FROM_PIXMAP)
#define REGAL_NO_ENUM_GLX_EXT_TEXTURE_FROM_PIXMAP
#endif

#if (defined(GLX_EXT_TEXTURE_FROM_PIXMAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_TEXTURE_FROM_PIXMAP)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_TEXTURE_FROM_PIXMAP)
#define REGAL_NO_TYPEDEF_GLX_EXT_TEXTURE_FROM_PIXMAP
#endif

#if (defined(GLX_EXT_TEXTURE_FROM_PIXMAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_TEXTURE_FROM_PIXMAP)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_TEXTURE_FROM_PIXMAP)
#define REGAL_NO_NAMESPACE_GLX_EXT_TEXTURE_FROM_PIXMAP
#endif

#if (defined(GLX_EXT_TEXTURE_FROM_PIXMAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_TEXTURE_FROM_PIXMAP)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_TEXTURE_FROM_PIXMAP)
#define REGAL_NO_PLUGIN_GLX_EXT_TEXTURE_FROM_PIXMAP
#endif

#if (defined(GLX_EXT_TEXTURE_FROM_PIXMAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_TEXTURE_FROM_PIXMAP)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_TEXTURE_FROM_PIXMAP)
#define REGAL_NO_DECLARATION_GLX_EXT_TEXTURE_FROM_PIXMAP
#endif

#ifndef GLX_EXT_texture_from_pixmap
#define GLX_EXT_texture_from_pixmap 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_TEXTURE_FROM_PIXMAP
#define GLX_TEXTURE_1D_BIT_EXT          0x1
#define GLX_TEXTURE_2D_BIT_EXT          0x2
#define GLX_BIND_TO_TEXTURE_RGB_EXT     0x20d0     /* 8400 */
#define GLX_BIND_TO_TEXTURE_RGBA_EXT    0x20d1     /* 8401 */
#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT  0x20d2     /* 8402 */
#define GLX_BIND_TO_TEXTURE_TARGETS_EXT 0x20d3     /* 8403 */
#define GLX_Y_INVERTED_EXT              0x20d4     /* 8404 */
#define GLX_TEXTURE_FORMAT_EXT          0x20d5     /* 8405 */
#define GLX_TEXTURE_TARGET_EXT          0x20d6     /* 8406 */
#define GLX_MIPMAP_TEXTURE_EXT          0x20d7     /* 8407 */
#define GLX_TEXTURE_FORMAT_NONE_EXT     0x20d8     /* 8408 */
#define GLX_TEXTURE_FORMAT_RGB_EXT      0x20d9     /* 8409 */
#define GLX_TEXTURE_FORMAT_RGBA_EXT     0x20da     /* 8410 */
#define GLX_TEXTURE_1D_EXT              0x20db     /* 8411 */
#define GLX_TEXTURE_2D_EXT              0x20dc     /* 8412 */
#define GLX_TEXTURE_RECTANGLE_EXT       0x20dd     /* 8413 */
#define GLX_FRONT_LEFT_EXT              0x20de     /* 8414 */
#define GLX_FRONT_RIGHT_EXT             0x20df     /* 8415 */
#define GLX_BACK_LEFT_EXT               0x20e0     /* 8416 */
#define GLX_BACK_RIGHT_EXT              0x20e1     /* 8417 */
#define GLX_AUX0_EXT                    0x20e2     /* 8418 */
#define GLX_AUX1_EXT                    0x20e3     /* 8419 */
#define GLX_AUX2_EXT                    0x20e4     /* 8420 */
#define GLX_AUX3_EXT                    0x20e5     /* 8421 */
#define GLX_AUX4_EXT                    0x20e6     /* 8422 */
#define GLX_AUX5_EXT                    0x20e7     /* 8423 */
#define GLX_AUX6_EXT                    0x20e8     /* 8424 */
#define GLX_AUX7_EXT                    0x20e9     /* 8425 */
#define GLX_AUX8_EXT                    0x20ea     /* 8426 */
#define GLX_AUX9_EXT                    0x20eb     /* 8427 */
#define GLX_TEXTURE_RECTANGLE_BIT_EXT   0x4
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_EXT_TEXTURE_FROM_PIXMAP
typedef void (REGAL_CALL *PFNGLXBINDTEXIMAGEEXTPROC)(Display *display, GLXDrawable drawable, int buffer, const int *attrib_list);
typedef void (REGAL_CALL *PFNGLXRELEASETEXIMAGEEXTPROC)(Display *display, GLXDrawable drawable, int buffer);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_EXT_TEXTURE_FROM_PIXMAP
#define glXBindTexImageEXT                  rglXBindTexImageEXT
#define glXReleaseTexImageEXT               rglXReleaseTexImageEXT
#endif

#ifndef REGAL_NO_DECLARATION_GLX_EXT_TEXTURE_FROM_PIXMAP
REGAL_DECL void REGAL_CALL glXBindTexImageEXT(Display *display, GLXDrawable drawable, int buffer, const int *attrib_list);
REGAL_DECL void REGAL_CALL glXReleaseTexImageEXT(Display *display, GLXDrawable drawable, int buffer);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_EXT_TEXTURE_FROM_PIXMAP
REGAL_DECL void REGAL_CALL plugin_glXBindTexImageEXT(Display *display, GLXDrawable drawable, int buffer, const int *attrib_list);
REGAL_DECL void REGAL_CALL plugin_glXReleaseTexImageEXT(Display *display, GLXDrawable drawable, int buffer);
#endif

/**
 ** GLX_EXT_visual_info
 **/

#if (defined(GLX_EXT_VISUAL_INFO) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_VISUAL_INFO)) && !defined(REGAL_NO_ENUM_GLX_EXT_VISUAL_INFO)
#define REGAL_NO_ENUM_GLX_EXT_VISUAL_INFO
#endif

#if (defined(GLX_EXT_VISUAL_INFO) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_VISUAL_INFO)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_VISUAL_INFO)
#define REGAL_NO_TYPEDEF_GLX_EXT_VISUAL_INFO
#endif

#if (defined(GLX_EXT_VISUAL_INFO) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_VISUAL_INFO)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_VISUAL_INFO)
#define REGAL_NO_NAMESPACE_GLX_EXT_VISUAL_INFO
#endif

#if (defined(GLX_EXT_VISUAL_INFO) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_VISUAL_INFO)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_VISUAL_INFO)
#define REGAL_NO_PLUGIN_GLX_EXT_VISUAL_INFO
#endif

#if (defined(GLX_EXT_VISUAL_INFO) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_VISUAL_INFO)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_VISUAL_INFO)
#define REGAL_NO_DECLARATION_GLX_EXT_VISUAL_INFO
#endif

#ifndef GLX_EXT_visual_info
#define GLX_EXT_visual_info 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_VISUAL_INFO
#define GLX_X_VISUAL_TYPE_EXT           0x22       /* 34 */
#define GLX_TRANSPARENT_TYPE_EXT        0x23       /* 35 */
#define GLX_TRANSPARENT_INDEX_VALUE_EXT 0x24       /* 36 */
#define GLX_TRANSPARENT_RED_VALUE_EXT   0x25       /* 37 */
#define GLX_TRANSPARENT_GREEN_VALUE_EXT 0x26       /* 38 */
#define GLX_TRANSPARENT_BLUE_VALUE_EXT  0x27       /* 39 */
#define GLX_TRANSPARENT_ALPHA_VALUE_EXT 0x28       /* 40 */
#define GLX_NONE_EXT                    0x8000     /* 32768 */
#define GLX_TRUE_COLOR_EXT              0x8002     /* 32770 */
#define GLX_DIRECT_COLOR_EXT            0x8003     /* 32771 */
#define GLX_PSEUDO_COLOR_EXT            0x8004     /* 32772 */
#define GLX_STATIC_COLOR_EXT            0x8005     /* 32773 */
#define GLX_GRAY_SCALE_EXT              0x8006     /* 32774 */
#define GLX_STATIC_GRAY_EXT             0x8007     /* 32775 */
#define GLX_TRANSPARENT_RGB_EXT         0x8008     /* 32776 */
#define GLX_TRANSPARENT_INDEX_EXT       0x8009     /* 32777 */
#endif

/**
 ** GLX_EXT_visual_rating
 **/

#if (defined(GLX_EXT_VISUAL_RATING) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_EXT_VISUAL_RATING)) && !defined(REGAL_NO_ENUM_GLX_EXT_VISUAL_RATING)
#define REGAL_NO_ENUM_GLX_EXT_VISUAL_RATING
#endif

#if (defined(GLX_EXT_VISUAL_RATING) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_EXT_VISUAL_RATING)) && !defined(REGAL_NO_TYPEDEF_GLX_EXT_VISUAL_RATING)
#define REGAL_NO_TYPEDEF_GLX_EXT_VISUAL_RATING
#endif

#if (defined(GLX_EXT_VISUAL_RATING) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_EXT_VISUAL_RATING)) && !defined(REGAL_NO_NAMESPACE_GLX_EXT_VISUAL_RATING)
#define REGAL_NO_NAMESPACE_GLX_EXT_VISUAL_RATING
#endif

#if (defined(GLX_EXT_VISUAL_RATING) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_EXT_VISUAL_RATING)) && !defined(REGAL_NO_PLUGIN_GLX_EXT_VISUAL_RATING)
#define REGAL_NO_PLUGIN_GLX_EXT_VISUAL_RATING
#endif

#if (defined(GLX_EXT_VISUAL_RATING) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_EXT_VISUAL_RATING)) && !defined(REGAL_NO_DECLARATION_GLX_EXT_VISUAL_RATING)
#define REGAL_NO_DECLARATION_GLX_EXT_VISUAL_RATING
#endif

#ifndef GLX_EXT_visual_rating
#define GLX_EXT_visual_rating 1
#endif

#ifndef REGAL_NO_ENUM_GLX_EXT_VISUAL_RATING
#define GLX_VISUAL_CAVEAT_EXT         0x20       /* 32 */
#define GLX_SLOW_VISUAL_EXT           0x8001     /* 32769 */
#define GLX_NON_CONFORMANT_VISUAL_EXT 0x800d     /* 32781 */
#endif

/**
 ** GLX_INTEL_swap_event
 **/

#if (defined(GLX_INTEL_SWAP_EVENT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_INTEL_SWAP_EVENT)) && !defined(REGAL_NO_ENUM_GLX_INTEL_SWAP_EVENT)
#define REGAL_NO_ENUM_GLX_INTEL_SWAP_EVENT
#endif

#if (defined(GLX_INTEL_SWAP_EVENT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_INTEL_SWAP_EVENT)) && !defined(REGAL_NO_TYPEDEF_GLX_INTEL_SWAP_EVENT)
#define REGAL_NO_TYPEDEF_GLX_INTEL_SWAP_EVENT
#endif

#if (defined(GLX_INTEL_SWAP_EVENT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_INTEL_SWAP_EVENT)) && !defined(REGAL_NO_NAMESPACE_GLX_INTEL_SWAP_EVENT)
#define REGAL_NO_NAMESPACE_GLX_INTEL_SWAP_EVENT
#endif

#if (defined(GLX_INTEL_SWAP_EVENT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_INTEL_SWAP_EVENT)) && !defined(REGAL_NO_PLUGIN_GLX_INTEL_SWAP_EVENT)
#define REGAL_NO_PLUGIN_GLX_INTEL_SWAP_EVENT
#endif

#if (defined(GLX_INTEL_SWAP_EVENT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_INTEL_SWAP_EVENT)) && !defined(REGAL_NO_DECLARATION_GLX_INTEL_SWAP_EVENT)
#define REGAL_NO_DECLARATION_GLX_INTEL_SWAP_EVENT
#endif

#ifndef GLX_INTEL_swap_event
#define GLX_INTEL_swap_event 1
#endif

#ifndef REGAL_NO_ENUM_GLX_INTEL_SWAP_EVENT
#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK 0x4000000     /* 67108864 */
#define GLX_EXCHANGE_COMPLETE_INTEL         0x8180        /* 33152 */
#define GLX_COPY_COMPLETE_INTEL             0x8181        /* 33153 */
#define GLX_FLIP_COMPLETE_INTEL             0x8182        /* 33154 */
#endif

/**
 ** GLX_MESA_agp_offset
 **/

#if (defined(GLX_MESA_AGP_OFFSET) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_MESA_AGP_OFFSET)) && !defined(REGAL_NO_ENUM_GLX_MESA_AGP_OFFSET)
#define REGAL_NO_ENUM_GLX_MESA_AGP_OFFSET
#endif

#if (defined(GLX_MESA_AGP_OFFSET) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_MESA_AGP_OFFSET)) && !defined(REGAL_NO_TYPEDEF_GLX_MESA_AGP_OFFSET)
#define REGAL_NO_TYPEDEF_GLX_MESA_AGP_OFFSET
#endif

#if (defined(GLX_MESA_AGP_OFFSET) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_MESA_AGP_OFFSET)) && !defined(REGAL_NO_NAMESPACE_GLX_MESA_AGP_OFFSET)
#define REGAL_NO_NAMESPACE_GLX_MESA_AGP_OFFSET
#endif

#if (defined(GLX_MESA_AGP_OFFSET) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_MESA_AGP_OFFSET)) && !defined(REGAL_NO_PLUGIN_GLX_MESA_AGP_OFFSET)
#define REGAL_NO_PLUGIN_GLX_MESA_AGP_OFFSET
#endif

#if (defined(GLX_MESA_AGP_OFFSET) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_MESA_AGP_OFFSET)) && !defined(REGAL_NO_DECLARATION_GLX_MESA_AGP_OFFSET)
#define REGAL_NO_DECLARATION_GLX_MESA_AGP_OFFSET
#endif

#ifndef GLX_MESA_agp_offset
#define GLX_MESA_agp_offset 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_MESA_AGP_OFFSET
typedef unsigned int (REGAL_CALL *PFNGLXGETAGPOFFSETMESAPROC)(const void *pointer);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_MESA_AGP_OFFSET
#define glXGetAGPOffsetMESA                 rglXGetAGPOffsetMESA
#endif

#ifndef REGAL_NO_DECLARATION_GLX_MESA_AGP_OFFSET
REGAL_DECL unsigned int REGAL_CALL glXGetAGPOffsetMESA(const void *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_MESA_AGP_OFFSET
REGAL_DECL unsigned int REGAL_CALL plugin_glXGetAGPOffsetMESA(const void *pointer);
#endif

/**
 ** GLX_MESA_copy_sub_buffer
 **/

#if (defined(GLX_MESA_COPY_SUB_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_MESA_COPY_SUB_BUFFER)) && !defined(REGAL_NO_ENUM_GLX_MESA_COPY_SUB_BUFFER)
#define REGAL_NO_ENUM_GLX_MESA_COPY_SUB_BUFFER
#endif

#if (defined(GLX_MESA_COPY_SUB_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_MESA_COPY_SUB_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GLX_MESA_COPY_SUB_BUFFER)
#define REGAL_NO_TYPEDEF_GLX_MESA_COPY_SUB_BUFFER
#endif

#if (defined(GLX_MESA_COPY_SUB_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_MESA_COPY_SUB_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GLX_MESA_COPY_SUB_BUFFER)
#define REGAL_NO_NAMESPACE_GLX_MESA_COPY_SUB_BUFFER
#endif

#if (defined(GLX_MESA_COPY_SUB_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_MESA_COPY_SUB_BUFFER)) && !defined(REGAL_NO_PLUGIN_GLX_MESA_COPY_SUB_BUFFER)
#define REGAL_NO_PLUGIN_GLX_MESA_COPY_SUB_BUFFER
#endif

#if (defined(GLX_MESA_COPY_SUB_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_MESA_COPY_SUB_BUFFER)) && !defined(REGAL_NO_DECLARATION_GLX_MESA_COPY_SUB_BUFFER)
#define REGAL_NO_DECLARATION_GLX_MESA_COPY_SUB_BUFFER
#endif

#ifndef GLX_MESA_copy_sub_buffer
#define GLX_MESA_copy_sub_buffer 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_MESA_COPY_SUB_BUFFER
typedef void (REGAL_CALL *PFNGLXCOPYSUBBUFFERMESAPROC)(Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_MESA_COPY_SUB_BUFFER
#define glXCopySubBufferMESA                rglXCopySubBufferMESA
#endif

#ifndef REGAL_NO_DECLARATION_GLX_MESA_COPY_SUB_BUFFER
REGAL_DECL void REGAL_CALL glXCopySubBufferMESA(Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_MESA_COPY_SUB_BUFFER
REGAL_DECL void REGAL_CALL plugin_glXCopySubBufferMESA(Display *dpy, GLXDrawable drawable, int x, int y, int width, int height);
#endif

/**
 ** GLX_MESA_pixmap_colormap
 **/

#if (defined(GLX_MESA_PIXMAP_COLORMAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_MESA_PIXMAP_COLORMAP)) && !defined(REGAL_NO_ENUM_GLX_MESA_PIXMAP_COLORMAP)
#define REGAL_NO_ENUM_GLX_MESA_PIXMAP_COLORMAP
#endif

#if (defined(GLX_MESA_PIXMAP_COLORMAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_MESA_PIXMAP_COLORMAP)) && !defined(REGAL_NO_TYPEDEF_GLX_MESA_PIXMAP_COLORMAP)
#define REGAL_NO_TYPEDEF_GLX_MESA_PIXMAP_COLORMAP
#endif

#if (defined(GLX_MESA_PIXMAP_COLORMAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_MESA_PIXMAP_COLORMAP)) && !defined(REGAL_NO_NAMESPACE_GLX_MESA_PIXMAP_COLORMAP)
#define REGAL_NO_NAMESPACE_GLX_MESA_PIXMAP_COLORMAP
#endif

#if (defined(GLX_MESA_PIXMAP_COLORMAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_MESA_PIXMAP_COLORMAP)) && !defined(REGAL_NO_PLUGIN_GLX_MESA_PIXMAP_COLORMAP)
#define REGAL_NO_PLUGIN_GLX_MESA_PIXMAP_COLORMAP
#endif

#if (defined(GLX_MESA_PIXMAP_COLORMAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_MESA_PIXMAP_COLORMAP)) && !defined(REGAL_NO_DECLARATION_GLX_MESA_PIXMAP_COLORMAP)
#define REGAL_NO_DECLARATION_GLX_MESA_PIXMAP_COLORMAP
#endif

#ifndef GLX_MESA_pixmap_colormap
#define GLX_MESA_pixmap_colormap 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_MESA_PIXMAP_COLORMAP
typedef GLXPixmap (REGAL_CALL *PFNGLXCREATEGLXPIXMAPMESAPROC)(Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_MESA_PIXMAP_COLORMAP
#define glXCreateGLXPixmapMESA              rglXCreateGLXPixmapMESA
#endif

#ifndef REGAL_NO_DECLARATION_GLX_MESA_PIXMAP_COLORMAP
REGAL_DECL GLXPixmap REGAL_CALL glXCreateGLXPixmapMESA(Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_MESA_PIXMAP_COLORMAP
REGAL_DECL GLXPixmap REGAL_CALL plugin_glXCreateGLXPixmapMESA(Display *dpy, XVisualInfo *visual, Pixmap pixmap, Colormap cmap);
#endif

/**
 ** GLX_MESA_release_buffers
 **/

#if (defined(GLX_MESA_RELEASE_BUFFERS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_MESA_RELEASE_BUFFERS)) && !defined(REGAL_NO_ENUM_GLX_MESA_RELEASE_BUFFERS)
#define REGAL_NO_ENUM_GLX_MESA_RELEASE_BUFFERS
#endif

#if (defined(GLX_MESA_RELEASE_BUFFERS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_MESA_RELEASE_BUFFERS)) && !defined(REGAL_NO_TYPEDEF_GLX_MESA_RELEASE_BUFFERS)
#define REGAL_NO_TYPEDEF_GLX_MESA_RELEASE_BUFFERS
#endif

#if (defined(GLX_MESA_RELEASE_BUFFERS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_MESA_RELEASE_BUFFERS)) && !defined(REGAL_NO_NAMESPACE_GLX_MESA_RELEASE_BUFFERS)
#define REGAL_NO_NAMESPACE_GLX_MESA_RELEASE_BUFFERS
#endif

#if (defined(GLX_MESA_RELEASE_BUFFERS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_MESA_RELEASE_BUFFERS)) && !defined(REGAL_NO_PLUGIN_GLX_MESA_RELEASE_BUFFERS)
#define REGAL_NO_PLUGIN_GLX_MESA_RELEASE_BUFFERS
#endif

#if (defined(GLX_MESA_RELEASE_BUFFERS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_MESA_RELEASE_BUFFERS)) && !defined(REGAL_NO_DECLARATION_GLX_MESA_RELEASE_BUFFERS)
#define REGAL_NO_DECLARATION_GLX_MESA_RELEASE_BUFFERS
#endif

#ifndef GLX_MESA_release_buffers
#define GLX_MESA_release_buffers 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_MESA_RELEASE_BUFFERS
typedef Bool (REGAL_CALL *PFNGLXRELEASEBUFFERSMESAPROC)(Display *dpy, GLXDrawable d);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_MESA_RELEASE_BUFFERS
#define glXReleaseBuffersMESA               rglXReleaseBuffersMESA
#endif

#ifndef REGAL_NO_DECLARATION_GLX_MESA_RELEASE_BUFFERS
REGAL_DECL Bool REGAL_CALL glXReleaseBuffersMESA(Display *dpy, GLXDrawable d);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_MESA_RELEASE_BUFFERS
REGAL_DECL Bool REGAL_CALL plugin_glXReleaseBuffersMESA(Display *dpy, GLXDrawable d);
#endif

/**
 ** GLX_MESA_set_3dfx_mode
 **/

#if (defined(GLX_MESA_SET_3DFX_MODE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_MESA_SET_3DFX_MODE)) && !defined(REGAL_NO_ENUM_GLX_MESA_SET_3DFX_MODE)
#define REGAL_NO_ENUM_GLX_MESA_SET_3DFX_MODE
#endif

#if (defined(GLX_MESA_SET_3DFX_MODE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_MESA_SET_3DFX_MODE)) && !defined(REGAL_NO_TYPEDEF_GLX_MESA_SET_3DFX_MODE)
#define REGAL_NO_TYPEDEF_GLX_MESA_SET_3DFX_MODE
#endif

#if (defined(GLX_MESA_SET_3DFX_MODE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_MESA_SET_3DFX_MODE)) && !defined(REGAL_NO_NAMESPACE_GLX_MESA_SET_3DFX_MODE)
#define REGAL_NO_NAMESPACE_GLX_MESA_SET_3DFX_MODE
#endif

#if (defined(GLX_MESA_SET_3DFX_MODE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_MESA_SET_3DFX_MODE)) && !defined(REGAL_NO_PLUGIN_GLX_MESA_SET_3DFX_MODE)
#define REGAL_NO_PLUGIN_GLX_MESA_SET_3DFX_MODE
#endif

#if (defined(GLX_MESA_SET_3DFX_MODE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_MESA_SET_3DFX_MODE)) && !defined(REGAL_NO_DECLARATION_GLX_MESA_SET_3DFX_MODE)
#define REGAL_NO_DECLARATION_GLX_MESA_SET_3DFX_MODE
#endif

#ifndef GLX_MESA_set_3dfx_mode
#define GLX_MESA_set_3dfx_mode 1
#endif

#ifndef REGAL_NO_ENUM_GLX_MESA_SET_3DFX_MODE
#define GLX_3DFX_WINDOW_MODE_MESA     0x1
#define GLX_3DFX_FULLSCREEN_MODE_MESA 0x2
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_MESA_SET_3DFX_MODE
typedef GLboolean (REGAL_CALL *PFNGLXSET3DFXMODEMESAPROC)(GLint mode);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_MESA_SET_3DFX_MODE
#define glXSet3DfxModeMESA                  rglXSet3DfxModeMESA
#endif

#ifndef REGAL_NO_DECLARATION_GLX_MESA_SET_3DFX_MODE
REGAL_DECL GLboolean REGAL_CALL glXSet3DfxModeMESA(GLint mode);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_MESA_SET_3DFX_MODE
REGAL_DECL GLboolean REGAL_CALL plugin_glXSet3DfxModeMESA(GLint mode);
#endif

/**
 ** GLX_MESA_swap_control
 **/

#if (defined(GLX_MESA_SWAP_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_MESA_SWAP_CONTROL)) && !defined(REGAL_NO_ENUM_GLX_MESA_SWAP_CONTROL)
#define REGAL_NO_ENUM_GLX_MESA_SWAP_CONTROL
#endif

#if (defined(GLX_MESA_SWAP_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_MESA_SWAP_CONTROL)) && !defined(REGAL_NO_TYPEDEF_GLX_MESA_SWAP_CONTROL)
#define REGAL_NO_TYPEDEF_GLX_MESA_SWAP_CONTROL
#endif

#if (defined(GLX_MESA_SWAP_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_MESA_SWAP_CONTROL)) && !defined(REGAL_NO_NAMESPACE_GLX_MESA_SWAP_CONTROL)
#define REGAL_NO_NAMESPACE_GLX_MESA_SWAP_CONTROL
#endif

#if (defined(GLX_MESA_SWAP_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_MESA_SWAP_CONTROL)) && !defined(REGAL_NO_PLUGIN_GLX_MESA_SWAP_CONTROL)
#define REGAL_NO_PLUGIN_GLX_MESA_SWAP_CONTROL
#endif

#if (defined(GLX_MESA_SWAP_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_MESA_SWAP_CONTROL)) && !defined(REGAL_NO_DECLARATION_GLX_MESA_SWAP_CONTROL)
#define REGAL_NO_DECLARATION_GLX_MESA_SWAP_CONTROL
#endif

#ifndef GLX_MESA_swap_control
#define GLX_MESA_swap_control 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_MESA_SWAP_CONTROL
typedef int (REGAL_CALL *PFNGLXGETSWAPINTERVALMESAPROC)(void);
typedef int (REGAL_CALL *PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_MESA_SWAP_CONTROL
#define glXGetSwapIntervalMESA              rglXGetSwapIntervalMESA
#define glXSwapIntervalMESA                 rglXSwapIntervalMESA
#endif

#ifndef REGAL_NO_DECLARATION_GLX_MESA_SWAP_CONTROL
REGAL_DECL int REGAL_CALL glXGetSwapIntervalMESA(void);
REGAL_DECL int REGAL_CALL glXSwapIntervalMESA(unsigned int interval);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_MESA_SWAP_CONTROL
REGAL_DECL int REGAL_CALL plugin_glXGetSwapIntervalMESA(void);
REGAL_DECL int REGAL_CALL plugin_glXSwapIntervalMESA(unsigned int interval);
#endif

/**
 ** GLX_NV_copy_image
 **/

#if (defined(GLX_NV_COPY_IMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_NV_COPY_IMAGE)) && !defined(REGAL_NO_ENUM_GLX_NV_COPY_IMAGE)
#define REGAL_NO_ENUM_GLX_NV_COPY_IMAGE
#endif

#if (defined(GLX_NV_COPY_IMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_NV_COPY_IMAGE)) && !defined(REGAL_NO_TYPEDEF_GLX_NV_COPY_IMAGE)
#define REGAL_NO_TYPEDEF_GLX_NV_COPY_IMAGE
#endif

#if (defined(GLX_NV_COPY_IMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_NV_COPY_IMAGE)) && !defined(REGAL_NO_NAMESPACE_GLX_NV_COPY_IMAGE)
#define REGAL_NO_NAMESPACE_GLX_NV_COPY_IMAGE
#endif

#if (defined(GLX_NV_COPY_IMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_NV_COPY_IMAGE)) && !defined(REGAL_NO_PLUGIN_GLX_NV_COPY_IMAGE)
#define REGAL_NO_PLUGIN_GLX_NV_COPY_IMAGE
#endif

#if (defined(GLX_NV_COPY_IMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_NV_COPY_IMAGE)) && !defined(REGAL_NO_DECLARATION_GLX_NV_COPY_IMAGE)
#define REGAL_NO_DECLARATION_GLX_NV_COPY_IMAGE
#endif

#ifndef GLX_NV_copy_image
#define GLX_NV_copy_image 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_NV_COPY_IMAGE
typedef void (REGAL_CALL *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);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_NV_COPY_IMAGE
#define glXCopyImageSubDataNV               rglXCopyImageSubDataNV
#endif

#ifndef REGAL_NO_DECLARATION_GLX_NV_COPY_IMAGE
REGAL_DECL void REGAL_CALL glXCopyImageSubDataNV(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);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_NV_COPY_IMAGE
REGAL_DECL void REGAL_CALL plugin_glXCopyImageSubDataNV(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);
#endif

/**
 ** GLX_NV_float_buffer
 **/

#if (defined(GLX_NV_FLOAT_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_ENUM_GLX_NV_FLOAT_BUFFER)
#define REGAL_NO_ENUM_GLX_NV_FLOAT_BUFFER
#endif

#if (defined(GLX_NV_FLOAT_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_TYPEDEF_GLX_NV_FLOAT_BUFFER)
#define REGAL_NO_TYPEDEF_GLX_NV_FLOAT_BUFFER
#endif

#if (defined(GLX_NV_FLOAT_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_NAMESPACE_GLX_NV_FLOAT_BUFFER)
#define REGAL_NO_NAMESPACE_GLX_NV_FLOAT_BUFFER
#endif

#if (defined(GLX_NV_FLOAT_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_PLUGIN_GLX_NV_FLOAT_BUFFER)
#define REGAL_NO_PLUGIN_GLX_NV_FLOAT_BUFFER
#endif

#if (defined(GLX_NV_FLOAT_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_NV_FLOAT_BUFFER)) && !defined(REGAL_NO_DECLARATION_GLX_NV_FLOAT_BUFFER)
#define REGAL_NO_DECLARATION_GLX_NV_FLOAT_BUFFER
#endif

#ifndef GLX_NV_float_buffer
#define GLX_NV_float_buffer 1
#endif

#ifndef REGAL_NO_ENUM_GLX_NV_FLOAT_BUFFER
#define GLX_FLOAT_COMPONENTS_NV 0x20b0 /* 8368 */
#endif

/**
 ** GLX_NV_multisample_coverage
 **/

#if (defined(GLX_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_ENUM_GLX_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_ENUM_GLX_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(GLX_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_TYPEDEF_GLX_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_TYPEDEF_GLX_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(GLX_NV_MULTISAMPLE_COVERAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_NAMESPACE_GLX_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_NAMESPACE_GLX_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(GLX_NV_MULTISAMPLE_COVERAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_PLUGIN_GLX_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_PLUGIN_GLX_NV_MULTISAMPLE_COVERAGE
#endif

#if (defined(GLX_NV_MULTISAMPLE_COVERAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_NV_MULTISAMPLE_COVERAGE)) && !defined(REGAL_NO_DECLARATION_GLX_NV_MULTISAMPLE_COVERAGE)
#define REGAL_NO_DECLARATION_GLX_NV_MULTISAMPLE_COVERAGE
#endif

#ifndef GLX_NV_multisample_coverage
#define GLX_NV_multisample_coverage 1
#endif

#ifndef REGAL_NO_ENUM_GLX_NV_MULTISAMPLE_COVERAGE
#define GLX_COVERAGE_SAMPLES_NV 0x186a1     /* 100001 */
#define GLX_COLOR_SAMPLES_NV    0x20b3      /* 8371 */
#endif

/**
 ** GLX_NV_present_video
 **/

#if (defined(GLX_NV_PRESENT_VIDEO) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_ENUM_GLX_NV_PRESENT_VIDEO)
#define REGAL_NO_ENUM_GLX_NV_PRESENT_VIDEO
#endif

#if (defined(GLX_NV_PRESENT_VIDEO) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_TYPEDEF_GLX_NV_PRESENT_VIDEO)
#define REGAL_NO_TYPEDEF_GLX_NV_PRESENT_VIDEO
#endif

#if (defined(GLX_NV_PRESENT_VIDEO) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_NAMESPACE_GLX_NV_PRESENT_VIDEO)
#define REGAL_NO_NAMESPACE_GLX_NV_PRESENT_VIDEO
#endif

#if (defined(GLX_NV_PRESENT_VIDEO) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_PLUGIN_GLX_NV_PRESENT_VIDEO)
#define REGAL_NO_PLUGIN_GLX_NV_PRESENT_VIDEO
#endif

#if (defined(GLX_NV_PRESENT_VIDEO) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_NV_PRESENT_VIDEO)) && !defined(REGAL_NO_DECLARATION_GLX_NV_PRESENT_VIDEO)
#define REGAL_NO_DECLARATION_GLX_NV_PRESENT_VIDEO
#endif

#ifndef GLX_NV_present_video
#define GLX_NV_present_video 1
#endif

#ifndef REGAL_NO_ENUM_GLX_NV_PRESENT_VIDEO
#define GLX_NUM_VIDEO_SLOTS_NV 0x20f0 /* 8432 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_NV_PRESENT_VIDEO
typedef int (REGAL_CALL *PFNGLXBINDVIDEODEVICENVPROC)(Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
typedef unsigned int *(REGAL_CALL *PFNGLXENUMERATEVIDEODEVICESNVPROC)(Display *dpy, int screen, int *nelements);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_NV_PRESENT_VIDEO
#define glXBindVideoDeviceNV                rglXBindVideoDeviceNV
#define glXEnumerateVideoDevicesNV          rglXEnumerateVideoDevicesNV
#endif

#ifndef REGAL_NO_DECLARATION_GLX_NV_PRESENT_VIDEO
REGAL_DECL int REGAL_CALL glXBindVideoDeviceNV(Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
REGAL_DECL unsigned int *REGAL_CALL glXEnumerateVideoDevicesNV(Display *dpy, int screen, int *nelements);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_NV_PRESENT_VIDEO
REGAL_DECL int REGAL_CALL plugin_glXBindVideoDeviceNV(Display *dpy, unsigned int video_slot, unsigned int video_device, const int *attrib_list);
REGAL_DECL unsigned int *REGAL_CALL plugin_glXEnumerateVideoDevicesNV(Display *dpy, int screen, int *nelements);
#endif

/**
 ** GLX_NV_swap_group
 **/

#if (defined(GLX_NV_SWAP_GROUP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_NV_SWAP_GROUP)) && !defined(REGAL_NO_ENUM_GLX_NV_SWAP_GROUP)
#define REGAL_NO_ENUM_GLX_NV_SWAP_GROUP
#endif

#if (defined(GLX_NV_SWAP_GROUP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_NV_SWAP_GROUP)) && !defined(REGAL_NO_TYPEDEF_GLX_NV_SWAP_GROUP)
#define REGAL_NO_TYPEDEF_GLX_NV_SWAP_GROUP
#endif

#if (defined(GLX_NV_SWAP_GROUP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_NV_SWAP_GROUP)) && !defined(REGAL_NO_NAMESPACE_GLX_NV_SWAP_GROUP)
#define REGAL_NO_NAMESPACE_GLX_NV_SWAP_GROUP
#endif

#if (defined(GLX_NV_SWAP_GROUP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_NV_SWAP_GROUP)) && !defined(REGAL_NO_PLUGIN_GLX_NV_SWAP_GROUP)
#define REGAL_NO_PLUGIN_GLX_NV_SWAP_GROUP
#endif

#if (defined(GLX_NV_SWAP_GROUP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_NV_SWAP_GROUP)) && !defined(REGAL_NO_DECLARATION_GLX_NV_SWAP_GROUP)
#define REGAL_NO_DECLARATION_GLX_NV_SWAP_GROUP
#endif

#ifndef GLX_NV_swap_group
#define GLX_NV_swap_group 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_NV_SWAP_GROUP
typedef Bool (REGAL_CALL *PFNGLXBINDSWAPBARRIERNVPROC)(Display *dpy, GLuint group, GLuint barrier);
typedef Bool (REGAL_CALL *PFNGLXJOINSWAPGROUPNVPROC)(Display *dpy, GLXDrawable drawable, GLuint group);
typedef Bool (REGAL_CALL *PFNGLXQUERYFRAMECOUNTNVPROC)(Display *dpy, int screen, GLuint *count);
typedef Bool (REGAL_CALL *PFNGLXQUERYMAXSWAPGROUPSNVPROC)(Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
typedef Bool (REGAL_CALL *PFNGLXQUERYSWAPGROUPNVPROC)(Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
typedef Bool (REGAL_CALL *PFNGLXRESETFRAMECOUNTNVPROC)(Display *dpy, int screen);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_NV_SWAP_GROUP
#define glXBindSwapBarrierNV                rglXBindSwapBarrierNV
#define glXJoinSwapGroupNV                  rglXJoinSwapGroupNV
#define glXQueryFrameCountNV                rglXQueryFrameCountNV
#define glXQueryMaxSwapGroupsNV             rglXQueryMaxSwapGroupsNV
#define glXQuerySwapGroupNV                 rglXQuerySwapGroupNV
#define glXResetFrameCountNV                rglXResetFrameCountNV
#endif

#ifndef REGAL_NO_DECLARATION_GLX_NV_SWAP_GROUP
REGAL_DECL Bool REGAL_CALL glXBindSwapBarrierNV(Display *dpy, GLuint group, GLuint barrier);
REGAL_DECL Bool REGAL_CALL glXJoinSwapGroupNV(Display *dpy, GLXDrawable drawable, GLuint group);
REGAL_DECL Bool REGAL_CALL glXQueryFrameCountNV(Display *dpy, int screen, GLuint *count);
REGAL_DECL Bool REGAL_CALL glXQueryMaxSwapGroupsNV(Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
REGAL_DECL Bool REGAL_CALL glXQuerySwapGroupNV(Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
REGAL_DECL Bool REGAL_CALL glXResetFrameCountNV(Display *dpy, int screen);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_NV_SWAP_GROUP
REGAL_DECL Bool REGAL_CALL plugin_glXBindSwapBarrierNV(Display *dpy, GLuint group, GLuint barrier);
REGAL_DECL Bool REGAL_CALL plugin_glXJoinSwapGroupNV(Display *dpy, GLXDrawable drawable, GLuint group);
REGAL_DECL Bool REGAL_CALL plugin_glXQueryFrameCountNV(Display *dpy, int screen, GLuint *count);
REGAL_DECL Bool REGAL_CALL plugin_glXQueryMaxSwapGroupsNV(Display *dpy, int screen, GLuint *maxGroups, GLuint *maxBarriers);
REGAL_DECL Bool REGAL_CALL plugin_glXQuerySwapGroupNV(Display *dpy, GLXDrawable drawable, GLuint *group, GLuint *barrier);
REGAL_DECL Bool REGAL_CALL plugin_glXResetFrameCountNV(Display *dpy, int screen);
#endif

/**
 ** GLX_NV_vertex_array_range
 **/

#if (defined(GLX_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_ENUM_GLX_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_ENUM_GLX_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(GLX_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_TYPEDEF_GLX_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_TYPEDEF_GLX_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(GLX_NV_VERTEX_ARRAY_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_NAMESPACE_GLX_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_NAMESPACE_GLX_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(GLX_NV_VERTEX_ARRAY_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_PLUGIN_GLX_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_PLUGIN_GLX_NV_VERTEX_ARRAY_RANGE
#endif

#if (defined(GLX_NV_VERTEX_ARRAY_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_NV_VERTEX_ARRAY_RANGE)) && !defined(REGAL_NO_DECLARATION_GLX_NV_VERTEX_ARRAY_RANGE)
#define REGAL_NO_DECLARATION_GLX_NV_VERTEX_ARRAY_RANGE
#endif

#ifndef GLX_NV_vertex_array_range
#define GLX_NV_vertex_array_range 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_NV_VERTEX_ARRAY_RANGE
typedef void (REGAL_CALL *PFNGLXFREEMEMORYNVPROC)(void *pointer);
typedef void *(REGAL_CALL *PFNGLXALLOCATEMEMORYNVPROC)(GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_NV_VERTEX_ARRAY_RANGE
#define glXAllocateMemoryNV                 rglXAllocateMemoryNV
#define glXFreeMemoryNV                     rglXFreeMemoryNV
#endif

#ifndef REGAL_NO_DECLARATION_GLX_NV_VERTEX_ARRAY_RANGE
REGAL_DECL void *REGAL_CALL glXAllocateMemoryNV(GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
REGAL_DECL void REGAL_CALL glXFreeMemoryNV(void *pointer);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_NV_VERTEX_ARRAY_RANGE
REGAL_DECL void *REGAL_CALL plugin_glXAllocateMemoryNV(GLsizei size, GLfloat readFrequency, GLfloat writeFrequency, GLfloat priority);
REGAL_DECL void REGAL_CALL plugin_glXFreeMemoryNV(void *pointer);
#endif

/**
 ** GLX_NV_video_capture
 **/

#if (defined(GLX_NV_VIDEO_CAPTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_ENUM_GLX_NV_VIDEO_CAPTURE)
#define REGAL_NO_ENUM_GLX_NV_VIDEO_CAPTURE
#endif

#if (defined(GLX_NV_VIDEO_CAPTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_TYPEDEF_GLX_NV_VIDEO_CAPTURE)
#define REGAL_NO_TYPEDEF_GLX_NV_VIDEO_CAPTURE
#endif

#if (defined(GLX_NV_VIDEO_CAPTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_NAMESPACE_GLX_NV_VIDEO_CAPTURE)
#define REGAL_NO_NAMESPACE_GLX_NV_VIDEO_CAPTURE
#endif

#if (defined(GLX_NV_VIDEO_CAPTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_PLUGIN_GLX_NV_VIDEO_CAPTURE)
#define REGAL_NO_PLUGIN_GLX_NV_VIDEO_CAPTURE
#endif

#if (defined(GLX_NV_VIDEO_CAPTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_NV_VIDEO_CAPTURE)) && !defined(REGAL_NO_DECLARATION_GLX_NV_VIDEO_CAPTURE)
#define REGAL_NO_DECLARATION_GLX_NV_VIDEO_CAPTURE
#endif

#ifndef GLX_NV_video_capture
#define GLX_NV_video_capture 1
#endif

#ifndef REGAL_NO_ENUM_GLX_NV_VIDEO_CAPTURE
#define GLX_DEVICE_ID_NV               0x20cd     /* 8397 */
#define GLX_UNIQUE_ID_NV               0x20ce     /* 8398 */
#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV 0x20cf     /* 8399 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_NV_VIDEO_CAPTURE
typedef GLXVideoCaptureDeviceNV *(REGAL_CALL *PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC)(Display *dpy, int screen, int *nelements);
typedef int (REGAL_CALL *PFNGLXBINDVIDEOCAPTUREDEVICENVPROC)(Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
typedef int (REGAL_CALL *PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC)(Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value);
typedef void (REGAL_CALL *PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC)(Display *dpy, GLXVideoCaptureDeviceNV device);
typedef void (REGAL_CALL *PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC)(Display *dpy, GLXVideoCaptureDeviceNV device);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_NV_VIDEO_CAPTURE
#define glXBindVideoCaptureDeviceNV         rglXBindVideoCaptureDeviceNV
#define glXEnumerateVideoCaptureDevicesNV   rglXEnumerateVideoCaptureDevicesNV
#define glXLockVideoCaptureDeviceNV         rglXLockVideoCaptureDeviceNV
#define glXQueryVideoCaptureDeviceNV        rglXQueryVideoCaptureDeviceNV
#define glXReleaseVideoCaptureDeviceNV      rglXReleaseVideoCaptureDeviceNV
#endif

#ifndef REGAL_NO_DECLARATION_GLX_NV_VIDEO_CAPTURE
REGAL_DECL GLXVideoCaptureDeviceNV *REGAL_CALL glXEnumerateVideoCaptureDevicesNV(Display *dpy, int screen, int *nelements);
REGAL_DECL int REGAL_CALL glXBindVideoCaptureDeviceNV(Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
REGAL_DECL int REGAL_CALL glXQueryVideoCaptureDeviceNV(Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value);
REGAL_DECL void REGAL_CALL glXLockVideoCaptureDeviceNV(Display *dpy, GLXVideoCaptureDeviceNV device);
REGAL_DECL void REGAL_CALL glXReleaseVideoCaptureDeviceNV(Display *dpy, GLXVideoCaptureDeviceNV device);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_NV_VIDEO_CAPTURE
REGAL_DECL GLXVideoCaptureDeviceNV *REGAL_CALL plugin_glXEnumerateVideoCaptureDevicesNV(Display *dpy, int screen, int *nelements);
REGAL_DECL int REGAL_CALL plugin_glXBindVideoCaptureDeviceNV(Display *dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
REGAL_DECL int REGAL_CALL plugin_glXQueryVideoCaptureDeviceNV(Display *dpy, GLXVideoCaptureDeviceNV device, int attribute, int *value);
REGAL_DECL void REGAL_CALL plugin_glXLockVideoCaptureDeviceNV(Display *dpy, GLXVideoCaptureDeviceNV device);
REGAL_DECL void REGAL_CALL plugin_glXReleaseVideoCaptureDeviceNV(Display *dpy, GLXVideoCaptureDeviceNV device);
#endif

/**
 ** GLX_NV_video_output
 **/

#if (defined(GLX_NV_VIDEO_OUTPUT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_ENUM_GLX_NV_VIDEO_OUTPUT)
#define REGAL_NO_ENUM_GLX_NV_VIDEO_OUTPUT
#endif

#if (defined(GLX_NV_VIDEO_OUTPUT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_TYPEDEF_GLX_NV_VIDEO_OUTPUT)
#define REGAL_NO_TYPEDEF_GLX_NV_VIDEO_OUTPUT
#endif

#if (defined(GLX_NV_VIDEO_OUTPUT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_NAMESPACE_GLX_NV_VIDEO_OUTPUT)
#define REGAL_NO_NAMESPACE_GLX_NV_VIDEO_OUTPUT
#endif

#if (defined(GLX_NV_VIDEO_OUTPUT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_PLUGIN_GLX_NV_VIDEO_OUTPUT)
#define REGAL_NO_PLUGIN_GLX_NV_VIDEO_OUTPUT
#endif

#if (defined(GLX_NV_VIDEO_OUTPUT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_NV_VIDEO_OUTPUT)) && !defined(REGAL_NO_DECLARATION_GLX_NV_VIDEO_OUTPUT)
#define REGAL_NO_DECLARATION_GLX_NV_VIDEO_OUTPUT
#endif

#ifndef GLX_NV_video_output
#define GLX_NV_video_output 1
#endif

#ifndef REGAL_NO_ENUM_GLX_NV_VIDEO_OUTPUT
#define GLX_VIDEO_OUT_COLOR_NV              0x20c3     /* 8387 */
#define GLX_VIDEO_OUT_ALPHA_NV              0x20c4     /* 8388 */
#define GLX_VIDEO_OUT_DEPTH_NV              0x20c5     /* 8389 */
#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV    0x20c6     /* 8390 */
#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV    0x20c7     /* 8391 */
#define GLX_VIDEO_OUT_FRAME_NV              0x20c8     /* 8392 */
#define GLX_VIDEO_OUT_FIELD_1_NV            0x20c9     /* 8393 */
#define GLX_VIDEO_OUT_FIELD_2_NV            0x20ca     /* 8394 */
#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV 0x20cb     /* 8395 */
#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV 0x20cc     /* 8396 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_NV_VIDEO_OUTPUT
typedef int (REGAL_CALL *PFNGLXBINDVIDEOIMAGENVPROC)(Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
typedef int (REGAL_CALL *PFNGLXGETVIDEODEVICENVPROC)(Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
typedef int (REGAL_CALL *PFNGLXGETVIDEOINFONVPROC)(Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
typedef int (REGAL_CALL *PFNGLXRELEASEVIDEODEVICENVPROC)(Display *dpy, int screen, GLXVideoDeviceNV VideoDevice);
typedef int (REGAL_CALL *PFNGLXRELEASEVIDEOIMAGENVPROC)(Display *dpy, GLXPbuffer pbuf);
typedef int (REGAL_CALL *PFNGLXSENDPBUFFERTOVIDEONVPROC)(Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_NV_VIDEO_OUTPUT
#define glXBindVideoImageNV                 rglXBindVideoImageNV
#define glXGetVideoDeviceNV                 rglXGetVideoDeviceNV
#define glXGetVideoInfoNV                   rglXGetVideoInfoNV
#define glXReleaseVideoDeviceNV             rglXReleaseVideoDeviceNV
#define glXReleaseVideoImageNV              rglXReleaseVideoImageNV
#define glXSendPbufferToVideoNV             rglXSendPbufferToVideoNV
#endif

#ifndef REGAL_NO_DECLARATION_GLX_NV_VIDEO_OUTPUT
REGAL_DECL int REGAL_CALL glXBindVideoImageNV(Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
REGAL_DECL int REGAL_CALL glXGetVideoDeviceNV(Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
REGAL_DECL int REGAL_CALL glXGetVideoInfoNV(Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
REGAL_DECL int REGAL_CALL glXReleaseVideoDeviceNV(Display *dpy, int screen, GLXVideoDeviceNV VideoDevice);
REGAL_DECL int REGAL_CALL glXReleaseVideoImageNV(Display *dpy, GLXPbuffer pbuf);
REGAL_DECL int REGAL_CALL glXSendPbufferToVideoNV(Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_NV_VIDEO_OUTPUT
REGAL_DECL int REGAL_CALL plugin_glXBindVideoImageNV(Display *dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
REGAL_DECL int REGAL_CALL plugin_glXGetVideoDeviceNV(Display *dpy, int screen, int numVideoDevices, GLXVideoDeviceNV *pVideoDevice);
REGAL_DECL int REGAL_CALL plugin_glXGetVideoInfoNV(Display *dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long *pulCounterOutputPbuffer, unsigned long *pulCounterOutputVideo);
REGAL_DECL int REGAL_CALL plugin_glXReleaseVideoDeviceNV(Display *dpy, int screen, GLXVideoDeviceNV VideoDevice);
REGAL_DECL int REGAL_CALL plugin_glXReleaseVideoImageNV(Display *dpy, GLXPbuffer pbuf);
REGAL_DECL int REGAL_CALL plugin_glXSendPbufferToVideoNV(Display *dpy, GLXPbuffer pbuf, int iBufferType, unsigned long *pulCounterPbuffer, GLboolean bBlock);
#endif

/**
 ** GLX_OML_swap_method
 **/

#if (defined(GLX_OML_SWAP_METHOD) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_OML_SWAP_METHOD)) && !defined(REGAL_NO_ENUM_GLX_OML_SWAP_METHOD)
#define REGAL_NO_ENUM_GLX_OML_SWAP_METHOD
#endif

#if (defined(GLX_OML_SWAP_METHOD) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_OML_SWAP_METHOD)) && !defined(REGAL_NO_TYPEDEF_GLX_OML_SWAP_METHOD)
#define REGAL_NO_TYPEDEF_GLX_OML_SWAP_METHOD
#endif

#if (defined(GLX_OML_SWAP_METHOD) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_OML_SWAP_METHOD)) && !defined(REGAL_NO_NAMESPACE_GLX_OML_SWAP_METHOD)
#define REGAL_NO_NAMESPACE_GLX_OML_SWAP_METHOD
#endif

#if (defined(GLX_OML_SWAP_METHOD) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_OML_SWAP_METHOD)) && !defined(REGAL_NO_PLUGIN_GLX_OML_SWAP_METHOD)
#define REGAL_NO_PLUGIN_GLX_OML_SWAP_METHOD
#endif

#if (defined(GLX_OML_SWAP_METHOD) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_OML_SWAP_METHOD)) && !defined(REGAL_NO_DECLARATION_GLX_OML_SWAP_METHOD)
#define REGAL_NO_DECLARATION_GLX_OML_SWAP_METHOD
#endif

#ifndef GLX_OML_swap_method
#define GLX_OML_swap_method 1
#endif

#ifndef REGAL_NO_ENUM_GLX_OML_SWAP_METHOD
#define GLX_SWAP_METHOD_OML    0x8060     /* 32864 */
#define GLX_SWAP_EXCHANGE_OML  0x8061     /* 32865 */
#define GLX_SWAP_COPY_OML      0x8062     /* 32866 */
#define GLX_SWAP_UNDEFINED_OML 0x8063     /* 32867 */
#endif

/**
 ** GLX_OML_sync_control
 **/

#if (defined(GLX_OML_SYNC_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_OML_SYNC_CONTROL)) && !defined(REGAL_NO_ENUM_GLX_OML_SYNC_CONTROL)
#define REGAL_NO_ENUM_GLX_OML_SYNC_CONTROL
#endif

#if (defined(GLX_OML_SYNC_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_OML_SYNC_CONTROL)) && !defined(REGAL_NO_TYPEDEF_GLX_OML_SYNC_CONTROL)
#define REGAL_NO_TYPEDEF_GLX_OML_SYNC_CONTROL
#endif

#if (defined(GLX_OML_SYNC_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_OML_SYNC_CONTROL)) && !defined(REGAL_NO_NAMESPACE_GLX_OML_SYNC_CONTROL)
#define REGAL_NO_NAMESPACE_GLX_OML_SYNC_CONTROL
#endif

#if (defined(GLX_OML_SYNC_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_OML_SYNC_CONTROL)) && !defined(REGAL_NO_PLUGIN_GLX_OML_SYNC_CONTROL)
#define REGAL_NO_PLUGIN_GLX_OML_SYNC_CONTROL
#endif

#if (defined(GLX_OML_SYNC_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_OML_SYNC_CONTROL)) && !defined(REGAL_NO_DECLARATION_GLX_OML_SYNC_CONTROL)
#define REGAL_NO_DECLARATION_GLX_OML_SYNC_CONTROL
#endif

#ifndef GLX_OML_sync_control
#define GLX_OML_sync_control 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_OML_SYNC_CONTROL
typedef Bool (REGAL_CALL *PFNGLXGETMSCRATEOMLPROC)(Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
typedef Bool (REGAL_CALL *PFNGLXGETSYNCVALUESOMLPROC)(Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
typedef Bool (REGAL_CALL *PFNGLXWAITFORMSCOMLPROC)(Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
typedef Bool (REGAL_CALL *PFNGLXWAITFORSBCOMLPROC)(Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
typedef int64_t (REGAL_CALL *PFNGLXSWAPBUFFERSMSCOMLPROC)(Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_OML_SYNC_CONTROL
#define glXGetMscRateOML                    rglXGetMscRateOML
#define glXGetSyncValuesOML                 rglXGetSyncValuesOML
#define glXSwapBuffersMscOML                rglXSwapBuffersMscOML
#define glXWaitForMscOML                    rglXWaitForMscOML
#define glXWaitForSbcOML                    rglXWaitForSbcOML
#endif

#ifndef REGAL_NO_DECLARATION_GLX_OML_SYNC_CONTROL
REGAL_DECL Bool REGAL_CALL glXGetMscRateOML(Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
REGAL_DECL Bool REGAL_CALL glXGetSyncValuesOML(Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
REGAL_DECL Bool REGAL_CALL glXWaitForMscOML(Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
REGAL_DECL Bool REGAL_CALL glXWaitForSbcOML(Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
REGAL_DECL int64_t REGAL_CALL glXSwapBuffersMscOML(Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_OML_SYNC_CONTROL
REGAL_DECL Bool REGAL_CALL plugin_glXGetMscRateOML(Display *dpy, GLXDrawable drawable, int32_t *numerator, int32_t *denominator);
REGAL_DECL Bool REGAL_CALL plugin_glXGetSyncValuesOML(Display *dpy, GLXDrawable drawable, int64_t *ust, int64_t *msc, int64_t *sbc);
REGAL_DECL Bool REGAL_CALL plugin_glXWaitForMscOML(Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc);
REGAL_DECL Bool REGAL_CALL plugin_glXWaitForSbcOML(Display *dpy, GLXDrawable drawable, int64_t target_sbc, int64_t *ust, int64_t *msc, int64_t *sbc);
REGAL_DECL int64_t REGAL_CALL plugin_glXSwapBuffersMscOML(Display *dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
#endif

/**
 ** GLX_SGIS_blended_overlay
 **/

#if (defined(GLX_SGIS_BLENDED_OVERLAY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIS_BLENDED_OVERLAY)) && !defined(REGAL_NO_ENUM_GLX_SGIS_BLENDED_OVERLAY)
#define REGAL_NO_ENUM_GLX_SGIS_BLENDED_OVERLAY
#endif

#if (defined(GLX_SGIS_BLENDED_OVERLAY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIS_BLENDED_OVERLAY)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIS_BLENDED_OVERLAY)
#define REGAL_NO_TYPEDEF_GLX_SGIS_BLENDED_OVERLAY
#endif

#if (defined(GLX_SGIS_BLENDED_OVERLAY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIS_BLENDED_OVERLAY)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIS_BLENDED_OVERLAY)
#define REGAL_NO_NAMESPACE_GLX_SGIS_BLENDED_OVERLAY
#endif

#if (defined(GLX_SGIS_BLENDED_OVERLAY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIS_BLENDED_OVERLAY)) && !defined(REGAL_NO_PLUGIN_GLX_SGIS_BLENDED_OVERLAY)
#define REGAL_NO_PLUGIN_GLX_SGIS_BLENDED_OVERLAY
#endif

#if (defined(GLX_SGIS_BLENDED_OVERLAY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIS_BLENDED_OVERLAY)) && !defined(REGAL_NO_DECLARATION_GLX_SGIS_BLENDED_OVERLAY)
#define REGAL_NO_DECLARATION_GLX_SGIS_BLENDED_OVERLAY
#endif

#ifndef GLX_SGIS_blended_overlay
#define GLX_SGIS_blended_overlay 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIS_BLENDED_OVERLAY
#define GLX_BLENDED_RGBA_SGIS 0x8025 /* 32805 */
#endif

/**
 ** GLX_SGIS_color_range
 **/

#if (defined(GLX_SGIS_COLOR_RANGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_ENUM_GLX_SGIS_COLOR_RANGE)
#define REGAL_NO_ENUM_GLX_SGIS_COLOR_RANGE
#endif

#if (defined(GLX_SGIS_COLOR_RANGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIS_COLOR_RANGE)
#define REGAL_NO_TYPEDEF_GLX_SGIS_COLOR_RANGE
#endif

#if (defined(GLX_SGIS_COLOR_RANGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIS_COLOR_RANGE)
#define REGAL_NO_NAMESPACE_GLX_SGIS_COLOR_RANGE
#endif

#if (defined(GLX_SGIS_COLOR_RANGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_PLUGIN_GLX_SGIS_COLOR_RANGE)
#define REGAL_NO_PLUGIN_GLX_SGIS_COLOR_RANGE
#endif

#if (defined(GLX_SGIS_COLOR_RANGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIS_COLOR_RANGE)) && !defined(REGAL_NO_DECLARATION_GLX_SGIS_COLOR_RANGE)
#define REGAL_NO_DECLARATION_GLX_SGIS_COLOR_RANGE
#endif

#ifndef GLX_SGIS_color_range
#define GLX_SGIS_color_range 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIS_COLOR_RANGE
#define GLX_EXTENDED_RANGE_SGIS 0x0
#define GLX_MAX_ALPHA_SGIS      0x0
#define GLX_MAX_BLUE_SGIS       0x0
#define GLX_MAX_GREEN_SGIS      0x0
#define GLX_MAX_RED_SGIS        0x0
#define GLX_MIN_ALPHA_SGIS      0x0
#define GLX_MIN_BLUE_SGIS       0x0
#define GLX_MIN_GREEN_SGIS      0x0
#define GLX_MIN_RED_SGIS        0x0
#endif

/**
 ** GLX_SGIS_multisample
 **/

#if (defined(GLX_SGIS_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GLX_SGIS_MULTISAMPLE)
#define REGAL_NO_ENUM_GLX_SGIS_MULTISAMPLE
#endif

#if (defined(GLX_SGIS_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIS_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GLX_SGIS_MULTISAMPLE
#endif

#if (defined(GLX_SGIS_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIS_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GLX_SGIS_MULTISAMPLE
#endif

#if (defined(GLX_SGIS_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GLX_SGIS_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GLX_SGIS_MULTISAMPLE
#endif

#if (defined(GLX_SGIS_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIS_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GLX_SGIS_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GLX_SGIS_MULTISAMPLE
#endif

#ifndef GLX_SGIS_multisample
#define GLX_SGIS_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIS_MULTISAMPLE
#define GLX_SAMPLE_BUFFERS_SGIS 0x186a0     /* 100000 */
#define GLX_SAMPLES_SGIS        0x186a1     /* 100001 */
#endif

/**
 ** GLX_SGIS_shared_multisample
 **/

#if (defined(GLX_SGIS_SHARED_MULTISAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIS_SHARED_MULTISAMPLE)) && !defined(REGAL_NO_ENUM_GLX_SGIS_SHARED_MULTISAMPLE)
#define REGAL_NO_ENUM_GLX_SGIS_SHARED_MULTISAMPLE
#endif

#if (defined(GLX_SGIS_SHARED_MULTISAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIS_SHARED_MULTISAMPLE)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIS_SHARED_MULTISAMPLE)
#define REGAL_NO_TYPEDEF_GLX_SGIS_SHARED_MULTISAMPLE
#endif

#if (defined(GLX_SGIS_SHARED_MULTISAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIS_SHARED_MULTISAMPLE)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIS_SHARED_MULTISAMPLE)
#define REGAL_NO_NAMESPACE_GLX_SGIS_SHARED_MULTISAMPLE
#endif

#if (defined(GLX_SGIS_SHARED_MULTISAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIS_SHARED_MULTISAMPLE)) && !defined(REGAL_NO_PLUGIN_GLX_SGIS_SHARED_MULTISAMPLE)
#define REGAL_NO_PLUGIN_GLX_SGIS_SHARED_MULTISAMPLE
#endif

#if (defined(GLX_SGIS_SHARED_MULTISAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIS_SHARED_MULTISAMPLE)) && !defined(REGAL_NO_DECLARATION_GLX_SGIS_SHARED_MULTISAMPLE)
#define REGAL_NO_DECLARATION_GLX_SGIS_SHARED_MULTISAMPLE
#endif

#ifndef GLX_SGIS_shared_multisample
#define GLX_SGIS_shared_multisample 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIS_SHARED_MULTISAMPLE
#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS  0x8026     /* 32806 */
#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS 0x8027     /* 32807 */
#endif

/**
 ** GLX_SGIX_fbconfig
 **/

#if (defined(GLX_SGIX_FBCONFIG) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIX_FBCONFIG)) && !defined(REGAL_NO_ENUM_GLX_SGIX_FBCONFIG)
#define REGAL_NO_ENUM_GLX_SGIX_FBCONFIG
#endif

#if (defined(GLX_SGIX_FBCONFIG) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIX_FBCONFIG)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIX_FBCONFIG)
#define REGAL_NO_TYPEDEF_GLX_SGIX_FBCONFIG
#endif

#if (defined(GLX_SGIX_FBCONFIG) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIX_FBCONFIG)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIX_FBCONFIG)
#define REGAL_NO_NAMESPACE_GLX_SGIX_FBCONFIG
#endif

#if (defined(GLX_SGIX_FBCONFIG) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIX_FBCONFIG)) && !defined(REGAL_NO_PLUGIN_GLX_SGIX_FBCONFIG)
#define REGAL_NO_PLUGIN_GLX_SGIX_FBCONFIG
#endif

#if (defined(GLX_SGIX_FBCONFIG) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIX_FBCONFIG)) && !defined(REGAL_NO_DECLARATION_GLX_SGIX_FBCONFIG)
#define REGAL_NO_DECLARATION_GLX_SGIX_FBCONFIG
#endif

#ifndef GLX_SGIX_fbconfig
#define GLX_SGIX_fbconfig 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIX_FBCONFIG
#define GLX_RGBA_BIT_SGIX         0x1
#define GLX_WINDOW_BIT_SGIX       0x1
#define GLX_COLOR_INDEX_BIT_SGIX  0x2
#define GLX_PIXMAP_BIT_SGIX       0x2
#define GLX_SCREEN_EXT            0x800c     /* 32780 */
#define GLX_DRAWABLE_TYPE_SGIX    0x8010     /* 32784 */
#define GLX_RENDER_TYPE_SGIX      0x8011     /* 32785 */
#define GLX_X_RENDERABLE_SGIX     0x8012     /* 32786 */
#define GLX_FBCONFIG_ID_SGIX      0x8013     /* 32787 */
#define GLX_RGBA_TYPE_SGIX        0x8014     /* 32788 */
#define GLX_COLOR_INDEX_TYPE_SGIX 0x8015     /* 32789 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGIX_FBCONFIG
typedef GLXContext (REGAL_CALL *PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC)(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
typedef GLXFBConfigSGIX (REGAL_CALL *PFNGLXGETFBCONFIGFROMVISUALSGIXPROC)(Display *dpy, XVisualInfo *vis);
typedef GLXFBConfigSGIX *(REGAL_CALL *PFNGLXCHOOSEFBCONFIGSGIXPROC)(Display *dpy, int screen, const int *attrib_list, int *nelements);
typedef GLXPixmap (REGAL_CALL *PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC)(Display *dpy, GLXFBConfig config, Pixmap pixmap);
typedef XVisualInfo *(REGAL_CALL *PFNGLXGETVISUALFROMFBCONFIGSGIXPROC)(Display *dpy, GLXFBConfig config);
typedef int (REGAL_CALL *PFNGLXGETFBCONFIGATTRIBSGIXPROC)(Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGIX_FBCONFIG
#define glXChooseFBConfigSGIX               rglXChooseFBConfigSGIX
#define glXCreateContextWithConfigSGIX      rglXCreateContextWithConfigSGIX
#define glXCreateGLXPixmapWithConfigSGIX    rglXCreateGLXPixmapWithConfigSGIX
#define glXGetFBConfigAttribSGIX            rglXGetFBConfigAttribSGIX
#define glXGetFBConfigFromVisualSGIX        rglXGetFBConfigFromVisualSGIX
#define glXGetVisualFromFBConfigSGIX        rglXGetVisualFromFBConfigSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGIX_FBCONFIG
REGAL_DECL GLXContext REGAL_CALL glXCreateContextWithConfigSGIX(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
REGAL_DECL GLXFBConfigSGIX *REGAL_CALL glXChooseFBConfigSGIX(Display *dpy, int screen, const int *attrib_list, int *nelements);
REGAL_DECL GLXFBConfigSGIX REGAL_CALL glXGetFBConfigFromVisualSGIX(Display *dpy, XVisualInfo *vis);
REGAL_DECL GLXPixmap REGAL_CALL glXCreateGLXPixmapWithConfigSGIX(Display *dpy, GLXFBConfig config, Pixmap pixmap);
REGAL_DECL XVisualInfo *REGAL_CALL glXGetVisualFromFBConfigSGIX(Display *dpy, GLXFBConfig config);
REGAL_DECL int REGAL_CALL glXGetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGIX_FBCONFIG
REGAL_DECL GLXContext REGAL_CALL plugin_glXCreateContextWithConfigSGIX(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
REGAL_DECL GLXFBConfigSGIX *REGAL_CALL plugin_glXChooseFBConfigSGIX(Display *dpy, int screen, const int *attrib_list, int *nelements);
REGAL_DECL GLXFBConfigSGIX REGAL_CALL plugin_glXGetFBConfigFromVisualSGIX(Display *dpy, XVisualInfo *vis);
REGAL_DECL GLXPixmap REGAL_CALL plugin_glXCreateGLXPixmapWithConfigSGIX(Display *dpy, GLXFBConfig config, Pixmap pixmap);
REGAL_DECL XVisualInfo *REGAL_CALL plugin_glXGetVisualFromFBConfigSGIX(Display *dpy, GLXFBConfig config);
REGAL_DECL int REGAL_CALL plugin_glXGetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config, int attribute, int *value);
#endif

/**
 ** GLX_SGIX_hyperpipe
 **/

#if (defined(GLX_SGIX_HYPERPIPE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIX_HYPERPIPE)) && !defined(REGAL_NO_ENUM_GLX_SGIX_HYPERPIPE)
#define REGAL_NO_ENUM_GLX_SGIX_HYPERPIPE
#endif

#if (defined(GLX_SGIX_HYPERPIPE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIX_HYPERPIPE)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIX_HYPERPIPE)
#define REGAL_NO_TYPEDEF_GLX_SGIX_HYPERPIPE
#endif

#if (defined(GLX_SGIX_HYPERPIPE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIX_HYPERPIPE)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIX_HYPERPIPE)
#define REGAL_NO_NAMESPACE_GLX_SGIX_HYPERPIPE
#endif

#if (defined(GLX_SGIX_HYPERPIPE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIX_HYPERPIPE)) && !defined(REGAL_NO_PLUGIN_GLX_SGIX_HYPERPIPE)
#define REGAL_NO_PLUGIN_GLX_SGIX_HYPERPIPE
#endif

#if (defined(GLX_SGIX_HYPERPIPE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIX_HYPERPIPE)) && !defined(REGAL_NO_DECLARATION_GLX_SGIX_HYPERPIPE)
#define REGAL_NO_DECLARATION_GLX_SGIX_HYPERPIPE
#endif

#ifndef GLX_SGIX_hyperpipe
#define GLX_SGIX_hyperpipe 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIX_HYPERPIPE
#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX     0x1
#define GLX_PIPE_RECT_SGIX                  0x1
#define GLX_HYPERPIPE_RENDER_PIPE_SGIX      0x2
#define GLX_PIPE_RECT_LIMITS_SGIX           0x2
#define GLX_HYPERPIPE_STEREO_SGIX           0x3
#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX    0x4
#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX 0x50       /* 80 */
#define GLX_BAD_HYPERPIPE_CONFIG_SGIX       0x5b       /* 91 */
#define GLX_BAD_HYPERPIPE_SGIX              0x5c       /* 92 */
#define GLX_HYPERPIPE_ID_SGIX               0x8030     /* 32816 */
#endif

/**
 ** GLX_SGIX_pbuffer
 **/

#if (defined(GLX_SGIX_PBUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIX_PBUFFER)) && !defined(REGAL_NO_ENUM_GLX_SGIX_PBUFFER)
#define REGAL_NO_ENUM_GLX_SGIX_PBUFFER
#endif

#if (defined(GLX_SGIX_PBUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIX_PBUFFER)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIX_PBUFFER)
#define REGAL_NO_TYPEDEF_GLX_SGIX_PBUFFER
#endif

#if (defined(GLX_SGIX_PBUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIX_PBUFFER)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIX_PBUFFER)
#define REGAL_NO_NAMESPACE_GLX_SGIX_PBUFFER
#endif

#if (defined(GLX_SGIX_PBUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIX_PBUFFER)) && !defined(REGAL_NO_PLUGIN_GLX_SGIX_PBUFFER)
#define REGAL_NO_PLUGIN_GLX_SGIX_PBUFFER
#endif

#if (defined(GLX_SGIX_PBUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIX_PBUFFER)) && !defined(REGAL_NO_DECLARATION_GLX_SGIX_PBUFFER)
#define REGAL_NO_DECLARATION_GLX_SGIX_PBUFFER
#endif

#ifndef GLX_SGIX_pbuffer
#define GLX_SGIX_pbuffer 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIX_PBUFFER
#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX  0x1
#define GLX_AUX_BUFFERS_BIT_SGIX        0x10          /* 16 */
#define GLX_SAMPLE_BUFFERS_BIT_SGIX     0x100         /* 256 */
#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX 0x2
#define GLX_DEPTH_BUFFER_BIT_SGIX       0x20          /* 32 */
#define GLX_BACK_LEFT_BUFFER_BIT_SGIX   0x4
#define GLX_PBUFFER_BIT_SGIX            0x4
#define GLX_STENCIL_BUFFER_BIT_SGIX     0x40          /* 64 */
#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX  0x8
#define GLX_ACCUM_BUFFER_BIT_SGIX       0x80          /* 128 */
#define GLX_BUFFER_CLOBBER_MASK_SGIX    0x8000000     /* 134217728 */
#define GLX_MAX_PBUFFER_WIDTH_SGIX      0x8016        /* 32790 */
#define GLX_MAX_PBUFFER_HEIGHT_SGIX     0x8017        /* 32791 */
#define GLX_MAX_PBUFFER_PIXELS_SGIX     0x8018        /* 32792 */
#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX  0x8019        /* 32793 */
#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX 0x801a        /* 32794 */
#define GLX_PRESERVED_CONTENTS_SGIX     0x801b        /* 32795 */
#define GLX_LARGEST_PBUFFER_SGIX        0x801c        /* 32796 */
#define GLX_WIDTH_SGIX                  0x801d        /* 32797 */
#define GLX_HEIGHT_SGIX                 0x801e        /* 32798 */
#define GLX_EVENT_MASK_SGIX             0x801f        /* 32799 */
#define GLX_DAMAGED_SGIX                0x8020        /* 32800 */
#define GLX_SAVED_SGIX                  0x8021        /* 32801 */
#define GLX_WINDOW_SGIX                 0x8022        /* 32802 */
#define GLX_PBUFFER_SGIX                0x8023        /* 32803 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGIX_PBUFFER
typedef GLXPbuffer (REGAL_CALL *PFNGLXCREATEGLXPBUFFERSGIXPROC)(Display *dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list);
typedef void (REGAL_CALL *PFNGLXDESTROYGLXPBUFFERSGIXPROC)(Display *dpy, GLXPbuffer pbuf);
typedef void (REGAL_CALL *PFNGLXGETSELECTEDEVENTSGIXPROC)(Display *dpy, GLXDrawable drawable, unsigned long *mask);
typedef void (REGAL_CALL *PFNGLXQUERYGLXPBUFFERSGIXPROC)(Display *dpy, GLXPbuffer pbuf, int attribute, unsigned int *value);
typedef void (REGAL_CALL *PFNGLXSELECTEVENTSGIXPROC)(Display *dpy, GLXDrawable drawable, unsigned long mask);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGIX_PBUFFER
#define glXCreateGLXPbufferSGIX             rglXCreateGLXPbufferSGIX
#define glXDestroyGLXPbufferSGIX            rglXDestroyGLXPbufferSGIX
#define glXGetSelectedEventSGIX             rglXGetSelectedEventSGIX
#define glXQueryGLXPbufferSGIX              rglXQueryGLXPbufferSGIX
#define glXSelectEventSGIX                  rglXSelectEventSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGIX_PBUFFER
REGAL_DECL GLXPbuffer REGAL_CALL glXCreateGLXPbufferSGIX(Display *dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list);
REGAL_DECL void REGAL_CALL glXDestroyGLXPbufferSGIX(Display *dpy, GLXPbuffer pbuf);
REGAL_DECL void REGAL_CALL glXGetSelectedEventSGIX(Display *dpy, GLXDrawable drawable, unsigned long *mask);
REGAL_DECL void REGAL_CALL glXQueryGLXPbufferSGIX(Display *dpy, GLXPbuffer pbuf, int attribute, unsigned int *value);
REGAL_DECL void REGAL_CALL glXSelectEventSGIX(Display *dpy, GLXDrawable drawable, unsigned long mask);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGIX_PBUFFER
REGAL_DECL GLXPbuffer REGAL_CALL plugin_glXCreateGLXPbufferSGIX(Display *dpy, GLXFBConfig config, unsigned int width, unsigned int height, int *attrib_list);
REGAL_DECL void REGAL_CALL plugin_glXDestroyGLXPbufferSGIX(Display *dpy, GLXPbuffer pbuf);
REGAL_DECL void REGAL_CALL plugin_glXGetSelectedEventSGIX(Display *dpy, GLXDrawable drawable, unsigned long *mask);
REGAL_DECL void REGAL_CALL plugin_glXQueryGLXPbufferSGIX(Display *dpy, GLXPbuffer pbuf, int attribute, unsigned int *value);
REGAL_DECL void REGAL_CALL plugin_glXSelectEventSGIX(Display *dpy, GLXDrawable drawable, unsigned long mask);
#endif

/**
 ** GLX_SGIX_swap_barrier
 **/

#if (defined(GLX_SGIX_SWAP_BARRIER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIX_SWAP_BARRIER)) && !defined(REGAL_NO_ENUM_GLX_SGIX_SWAP_BARRIER)
#define REGAL_NO_ENUM_GLX_SGIX_SWAP_BARRIER
#endif

#if (defined(GLX_SGIX_SWAP_BARRIER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIX_SWAP_BARRIER)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIX_SWAP_BARRIER)
#define REGAL_NO_TYPEDEF_GLX_SGIX_SWAP_BARRIER
#endif

#if (defined(GLX_SGIX_SWAP_BARRIER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIX_SWAP_BARRIER)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIX_SWAP_BARRIER)
#define REGAL_NO_NAMESPACE_GLX_SGIX_SWAP_BARRIER
#endif

#if (defined(GLX_SGIX_SWAP_BARRIER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIX_SWAP_BARRIER)) && !defined(REGAL_NO_PLUGIN_GLX_SGIX_SWAP_BARRIER)
#define REGAL_NO_PLUGIN_GLX_SGIX_SWAP_BARRIER
#endif

#if (defined(GLX_SGIX_SWAP_BARRIER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIX_SWAP_BARRIER)) && !defined(REGAL_NO_DECLARATION_GLX_SGIX_SWAP_BARRIER)
#define REGAL_NO_DECLARATION_GLX_SGIX_SWAP_BARRIER
#endif

#ifndef GLX_SGIX_swap_barrier
#define GLX_SGIX_swap_barrier 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGIX_SWAP_BARRIER
typedef Bool (REGAL_CALL *PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC)(Display *dpy, int screen, int *max);
typedef void (REGAL_CALL *PFNGLXBINDSWAPBARRIERSGIXPROC)(Display *dpy, GLXDrawable drawable, int barrier);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGIX_SWAP_BARRIER
#define glXBindSwapBarrierSGIX              rglXBindSwapBarrierSGIX
#define glXQueryMaxSwapBarriersSGIX         rglXQueryMaxSwapBarriersSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGIX_SWAP_BARRIER
REGAL_DECL Bool REGAL_CALL glXQueryMaxSwapBarriersSGIX(Display *dpy, int screen, int *max);
REGAL_DECL void REGAL_CALL glXBindSwapBarrierSGIX(Display *dpy, GLXDrawable drawable, int barrier);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGIX_SWAP_BARRIER
REGAL_DECL Bool REGAL_CALL plugin_glXQueryMaxSwapBarriersSGIX(Display *dpy, int screen, int *max);
REGAL_DECL void REGAL_CALL plugin_glXBindSwapBarrierSGIX(Display *dpy, GLXDrawable drawable, int barrier);
#endif

/**
 ** GLX_SGIX_swap_group
 **/

#if (defined(GLX_SGIX_SWAP_GROUP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIX_SWAP_GROUP)) && !defined(REGAL_NO_ENUM_GLX_SGIX_SWAP_GROUP)
#define REGAL_NO_ENUM_GLX_SGIX_SWAP_GROUP
#endif

#if (defined(GLX_SGIX_SWAP_GROUP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIX_SWAP_GROUP)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIX_SWAP_GROUP)
#define REGAL_NO_TYPEDEF_GLX_SGIX_SWAP_GROUP
#endif

#if (defined(GLX_SGIX_SWAP_GROUP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIX_SWAP_GROUP)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIX_SWAP_GROUP)
#define REGAL_NO_NAMESPACE_GLX_SGIX_SWAP_GROUP
#endif

#if (defined(GLX_SGIX_SWAP_GROUP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIX_SWAP_GROUP)) && !defined(REGAL_NO_PLUGIN_GLX_SGIX_SWAP_GROUP)
#define REGAL_NO_PLUGIN_GLX_SGIX_SWAP_GROUP
#endif

#if (defined(GLX_SGIX_SWAP_GROUP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIX_SWAP_GROUP)) && !defined(REGAL_NO_DECLARATION_GLX_SGIX_SWAP_GROUP)
#define REGAL_NO_DECLARATION_GLX_SGIX_SWAP_GROUP
#endif

#ifndef GLX_SGIX_swap_group
#define GLX_SGIX_swap_group 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGIX_SWAP_GROUP
typedef void (REGAL_CALL *PFNGLXJOINSWAPGROUPSGIXPROC)(Display *dpy, GLXDrawable drawable, GLXDrawable member);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGIX_SWAP_GROUP
#define glXJoinSwapGroupSGIX                rglXJoinSwapGroupSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGIX_SWAP_GROUP
REGAL_DECL void REGAL_CALL glXJoinSwapGroupSGIX(Display *dpy, GLXDrawable drawable, GLXDrawable member);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGIX_SWAP_GROUP
REGAL_DECL void REGAL_CALL plugin_glXJoinSwapGroupSGIX(Display *dpy, GLXDrawable drawable, GLXDrawable member);
#endif

/**
 ** GLX_SGIX_video_resize
 **/

#if (defined(GLX_SGIX_VIDEO_RESIZE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIX_VIDEO_RESIZE)) && !defined(REGAL_NO_ENUM_GLX_SGIX_VIDEO_RESIZE)
#define REGAL_NO_ENUM_GLX_SGIX_VIDEO_RESIZE
#endif

#if (defined(GLX_SGIX_VIDEO_RESIZE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIX_VIDEO_RESIZE)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIX_VIDEO_RESIZE)
#define REGAL_NO_TYPEDEF_GLX_SGIX_VIDEO_RESIZE
#endif

#if (defined(GLX_SGIX_VIDEO_RESIZE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIX_VIDEO_RESIZE)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIX_VIDEO_RESIZE)
#define REGAL_NO_NAMESPACE_GLX_SGIX_VIDEO_RESIZE
#endif

#if (defined(GLX_SGIX_VIDEO_RESIZE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIX_VIDEO_RESIZE)) && !defined(REGAL_NO_PLUGIN_GLX_SGIX_VIDEO_RESIZE)
#define REGAL_NO_PLUGIN_GLX_SGIX_VIDEO_RESIZE
#endif

#if (defined(GLX_SGIX_VIDEO_RESIZE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIX_VIDEO_RESIZE)) && !defined(REGAL_NO_DECLARATION_GLX_SGIX_VIDEO_RESIZE)
#define REGAL_NO_DECLARATION_GLX_SGIX_VIDEO_RESIZE
#endif

#ifndef GLX_SGIX_video_resize
#define GLX_SGIX_video_resize 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIX_VIDEO_RESIZE
#define GLX_SYNC_FRAME_SGIX 0x0
#define GLX_SYNC_SWAP_SGIX  0x1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGIX_VIDEO_RESIZE
typedef int (REGAL_CALL *PFNGLXBINDCHANNELTOWINDOWSGIXPROC)(Display *display, int screen, int channel, Window window);
typedef int (REGAL_CALL *PFNGLXCHANNELRECTSGIXPROC)(Display *display, int screen, int channel, int x, int y, int w, int h);
typedef int (REGAL_CALL *PFNGLXCHANNELRECTSYNCSGIXPROC)(Display *display, int screen, int channel, GLenum synctype);
typedef int (REGAL_CALL *PFNGLXQUERYCHANNELDELTASSGIXPROC)(Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
typedef int (REGAL_CALL *PFNGLXQUERYCHANNELRECTSGIXPROC)(Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGIX_VIDEO_RESIZE
#define glXBindChannelToWindowSGIX          rglXBindChannelToWindowSGIX
#define glXChannelRectSGIX                  rglXChannelRectSGIX
#define glXChannelRectSyncSGIX              rglXChannelRectSyncSGIX
#define glXQueryChannelDeltasSGIX           rglXQueryChannelDeltasSGIX
#define glXQueryChannelRectSGIX             rglXQueryChannelRectSGIX
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGIX_VIDEO_RESIZE
REGAL_DECL int REGAL_CALL glXBindChannelToWindowSGIX(Display *display, int screen, int channel, Window window);
REGAL_DECL int REGAL_CALL glXChannelRectSGIX(Display *display, int screen, int channel, int x, int y, int w, int h);
REGAL_DECL int REGAL_CALL glXChannelRectSyncSGIX(Display *display, int screen, int channel, GLenum synctype);
REGAL_DECL int REGAL_CALL glXQueryChannelDeltasSGIX(Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
REGAL_DECL int REGAL_CALL glXQueryChannelRectSGIX(Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGIX_VIDEO_RESIZE
REGAL_DECL int REGAL_CALL plugin_glXBindChannelToWindowSGIX(Display *display, int screen, int channel, Window window);
REGAL_DECL int REGAL_CALL plugin_glXChannelRectSGIX(Display *display, int screen, int channel, int x, int y, int w, int h);
REGAL_DECL int REGAL_CALL plugin_glXChannelRectSyncSGIX(Display *display, int screen, int channel, GLenum synctype);
REGAL_DECL int REGAL_CALL plugin_glXQueryChannelDeltasSGIX(Display *display, int screen, int channel, int *x, int *y, int *w, int *h);
REGAL_DECL int REGAL_CALL plugin_glXQueryChannelRectSGIX(Display *display, int screen, int channel, int *dx, int *dy, int *dw, int *dh);
#endif

/**
 ** GLX_SGIX_visual_select_group
 **/

#if (defined(GLX_SGIX_VISUAL_SELECT_GROUP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGIX_VISUAL_SELECT_GROUP)) && !defined(REGAL_NO_ENUM_GLX_SGIX_VISUAL_SELECT_GROUP)
#define REGAL_NO_ENUM_GLX_SGIX_VISUAL_SELECT_GROUP
#endif

#if (defined(GLX_SGIX_VISUAL_SELECT_GROUP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGIX_VISUAL_SELECT_GROUP)) && !defined(REGAL_NO_TYPEDEF_GLX_SGIX_VISUAL_SELECT_GROUP)
#define REGAL_NO_TYPEDEF_GLX_SGIX_VISUAL_SELECT_GROUP
#endif

#if (defined(GLX_SGIX_VISUAL_SELECT_GROUP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGIX_VISUAL_SELECT_GROUP)) && !defined(REGAL_NO_NAMESPACE_GLX_SGIX_VISUAL_SELECT_GROUP)
#define REGAL_NO_NAMESPACE_GLX_SGIX_VISUAL_SELECT_GROUP
#endif

#if (defined(GLX_SGIX_VISUAL_SELECT_GROUP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGIX_VISUAL_SELECT_GROUP)) && !defined(REGAL_NO_PLUGIN_GLX_SGIX_VISUAL_SELECT_GROUP)
#define REGAL_NO_PLUGIN_GLX_SGIX_VISUAL_SELECT_GROUP
#endif

#if (defined(GLX_SGIX_VISUAL_SELECT_GROUP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGIX_VISUAL_SELECT_GROUP)) && !defined(REGAL_NO_DECLARATION_GLX_SGIX_VISUAL_SELECT_GROUP)
#define REGAL_NO_DECLARATION_GLX_SGIX_VISUAL_SELECT_GROUP
#endif

#ifndef GLX_SGIX_visual_select_group
#define GLX_SGIX_visual_select_group 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SGIX_VISUAL_SELECT_GROUP
#define GLX_VISUAL_SELECT_GROUP_SGIX 0x8028 /* 32808 */
#endif

/**
 ** GLX_SGI_cushion
 **/

#if (defined(GLX_SGI_CUSHION) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGI_CUSHION)) && !defined(REGAL_NO_ENUM_GLX_SGI_CUSHION)
#define REGAL_NO_ENUM_GLX_SGI_CUSHION
#endif

#if (defined(GLX_SGI_CUSHION) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGI_CUSHION)) && !defined(REGAL_NO_TYPEDEF_GLX_SGI_CUSHION)
#define REGAL_NO_TYPEDEF_GLX_SGI_CUSHION
#endif

#if (defined(GLX_SGI_CUSHION) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGI_CUSHION)) && !defined(REGAL_NO_NAMESPACE_GLX_SGI_CUSHION)
#define REGAL_NO_NAMESPACE_GLX_SGI_CUSHION
#endif

#if (defined(GLX_SGI_CUSHION) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGI_CUSHION)) && !defined(REGAL_NO_PLUGIN_GLX_SGI_CUSHION)
#define REGAL_NO_PLUGIN_GLX_SGI_CUSHION
#endif

#if (defined(GLX_SGI_CUSHION) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGI_CUSHION)) && !defined(REGAL_NO_DECLARATION_GLX_SGI_CUSHION)
#define REGAL_NO_DECLARATION_GLX_SGI_CUSHION
#endif

#ifndef GLX_SGI_cushion
#define GLX_SGI_cushion 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGI_CUSHION
typedef void (REGAL_CALL *PFNGLXCUSHIONSGIPROC)(Display *dpy, Window window, float cushion);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGI_CUSHION
#define glXCushionSGI                       rglXCushionSGI
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGI_CUSHION
REGAL_DECL void REGAL_CALL glXCushionSGI(Display *dpy, Window window, float cushion);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGI_CUSHION
REGAL_DECL void REGAL_CALL plugin_glXCushionSGI(Display *dpy, Window window, float cushion);
#endif

/**
 ** GLX_SGI_make_current_read
 **/

#if (defined(GLX_SGI_MAKE_CURRENT_READ) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGI_MAKE_CURRENT_READ)) && !defined(REGAL_NO_ENUM_GLX_SGI_MAKE_CURRENT_READ)
#define REGAL_NO_ENUM_GLX_SGI_MAKE_CURRENT_READ
#endif

#if (defined(GLX_SGI_MAKE_CURRENT_READ) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGI_MAKE_CURRENT_READ)) && !defined(REGAL_NO_TYPEDEF_GLX_SGI_MAKE_CURRENT_READ)
#define REGAL_NO_TYPEDEF_GLX_SGI_MAKE_CURRENT_READ
#endif

#if (defined(GLX_SGI_MAKE_CURRENT_READ) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGI_MAKE_CURRENT_READ)) && !defined(REGAL_NO_NAMESPACE_GLX_SGI_MAKE_CURRENT_READ)
#define REGAL_NO_NAMESPACE_GLX_SGI_MAKE_CURRENT_READ
#endif

#if (defined(GLX_SGI_MAKE_CURRENT_READ) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGI_MAKE_CURRENT_READ)) && !defined(REGAL_NO_PLUGIN_GLX_SGI_MAKE_CURRENT_READ)
#define REGAL_NO_PLUGIN_GLX_SGI_MAKE_CURRENT_READ
#endif

#if (defined(GLX_SGI_MAKE_CURRENT_READ) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGI_MAKE_CURRENT_READ)) && !defined(REGAL_NO_DECLARATION_GLX_SGI_MAKE_CURRENT_READ)
#define REGAL_NO_DECLARATION_GLX_SGI_MAKE_CURRENT_READ
#endif

#ifndef GLX_SGI_make_current_read
#define GLX_SGI_make_current_read 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGI_MAKE_CURRENT_READ
typedef Bool (REGAL_CALL *PFNGLXMAKECURRENTREADSGIPROC)(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
typedef GLXDrawable (REGAL_CALL *PFNGLXGETCURRENTREADDRAWABLESGIPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGI_MAKE_CURRENT_READ
#define glXGetCurrentReadDrawableSGI        rglXGetCurrentReadDrawableSGI
#define glXMakeCurrentReadSGI               rglXMakeCurrentReadSGI
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGI_MAKE_CURRENT_READ
REGAL_DECL Bool REGAL_CALL glXMakeCurrentReadSGI(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
REGAL_DECL GLXDrawable REGAL_CALL glXGetCurrentReadDrawableSGI(void);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGI_MAKE_CURRENT_READ
REGAL_DECL Bool REGAL_CALL plugin_glXMakeCurrentReadSGI(Display *dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
REGAL_DECL GLXDrawable REGAL_CALL plugin_glXGetCurrentReadDrawableSGI(void);
#endif

/**
 ** GLX_SGI_swap_control
 **/

#if (defined(GLX_SGI_SWAP_CONTROL) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGI_SWAP_CONTROL)) && !defined(REGAL_NO_ENUM_GLX_SGI_SWAP_CONTROL)
#define REGAL_NO_ENUM_GLX_SGI_SWAP_CONTROL
#endif

#if (defined(GLX_SGI_SWAP_CONTROL) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGI_SWAP_CONTROL)) && !defined(REGAL_NO_TYPEDEF_GLX_SGI_SWAP_CONTROL)
#define REGAL_NO_TYPEDEF_GLX_SGI_SWAP_CONTROL
#endif

#if (defined(GLX_SGI_SWAP_CONTROL) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGI_SWAP_CONTROL)) && !defined(REGAL_NO_NAMESPACE_GLX_SGI_SWAP_CONTROL)
#define REGAL_NO_NAMESPACE_GLX_SGI_SWAP_CONTROL
#endif

#if (defined(GLX_SGI_SWAP_CONTROL) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGI_SWAP_CONTROL)) && !defined(REGAL_NO_PLUGIN_GLX_SGI_SWAP_CONTROL)
#define REGAL_NO_PLUGIN_GLX_SGI_SWAP_CONTROL
#endif

#if (defined(GLX_SGI_SWAP_CONTROL) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGI_SWAP_CONTROL)) && !defined(REGAL_NO_DECLARATION_GLX_SGI_SWAP_CONTROL)
#define REGAL_NO_DECLARATION_GLX_SGI_SWAP_CONTROL
#endif

#ifndef GLX_SGI_swap_control
#define GLX_SGI_swap_control 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGI_SWAP_CONTROL
typedef int (REGAL_CALL *PFNGLXSWAPINTERVALSGIPROC)(int interval);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGI_SWAP_CONTROL
#define glXSwapIntervalSGI                  rglXSwapIntervalSGI
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGI_SWAP_CONTROL
REGAL_DECL int REGAL_CALL glXSwapIntervalSGI(int interval);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGI_SWAP_CONTROL
REGAL_DECL int REGAL_CALL plugin_glXSwapIntervalSGI(int interval);
#endif

/**
 ** GLX_SGI_video_sync
 **/

#if (defined(GLX_SGI_VIDEO_SYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SGI_VIDEO_SYNC)) && !defined(REGAL_NO_ENUM_GLX_SGI_VIDEO_SYNC)
#define REGAL_NO_ENUM_GLX_SGI_VIDEO_SYNC
#endif

#if (defined(GLX_SGI_VIDEO_SYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SGI_VIDEO_SYNC)) && !defined(REGAL_NO_TYPEDEF_GLX_SGI_VIDEO_SYNC)
#define REGAL_NO_TYPEDEF_GLX_SGI_VIDEO_SYNC
#endif

#if (defined(GLX_SGI_VIDEO_SYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SGI_VIDEO_SYNC)) && !defined(REGAL_NO_NAMESPACE_GLX_SGI_VIDEO_SYNC)
#define REGAL_NO_NAMESPACE_GLX_SGI_VIDEO_SYNC
#endif

#if (defined(GLX_SGI_VIDEO_SYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SGI_VIDEO_SYNC)) && !defined(REGAL_NO_PLUGIN_GLX_SGI_VIDEO_SYNC)
#define REGAL_NO_PLUGIN_GLX_SGI_VIDEO_SYNC
#endif

#if (defined(GLX_SGI_VIDEO_SYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SGI_VIDEO_SYNC)) && !defined(REGAL_NO_DECLARATION_GLX_SGI_VIDEO_SYNC)
#define REGAL_NO_DECLARATION_GLX_SGI_VIDEO_SYNC
#endif

#ifndef GLX_SGI_video_sync
#define GLX_SGI_video_sync 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SGI_VIDEO_SYNC
typedef int (REGAL_CALL *PFNGLXGETVIDEOSYNCSGIPROC)(unsigned int *count);
typedef int (REGAL_CALL *PFNGLXWAITVIDEOSYNCSGIPROC)(int divisor, int remainder, unsigned int *count);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SGI_VIDEO_SYNC
#define glXGetVideoSyncSGI                  rglXGetVideoSyncSGI
#define glXWaitVideoSyncSGI                 rglXWaitVideoSyncSGI
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SGI_VIDEO_SYNC
REGAL_DECL int REGAL_CALL glXGetVideoSyncSGI(unsigned int *count);
REGAL_DECL int REGAL_CALL glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SGI_VIDEO_SYNC
REGAL_DECL int REGAL_CALL plugin_glXGetVideoSyncSGI(unsigned int *count);
REGAL_DECL int REGAL_CALL plugin_glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count);
#endif

/**
 ** GLX_SUN_get_transparent_index
 **/

#if (defined(GLX_SUN_GET_TRANSPARENT_INDEX) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SUN_GET_TRANSPARENT_INDEX)) && !defined(REGAL_NO_ENUM_GLX_SUN_GET_TRANSPARENT_INDEX)
#define REGAL_NO_ENUM_GLX_SUN_GET_TRANSPARENT_INDEX
#endif

#if (defined(GLX_SUN_GET_TRANSPARENT_INDEX) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SUN_GET_TRANSPARENT_INDEX)) && !defined(REGAL_NO_TYPEDEF_GLX_SUN_GET_TRANSPARENT_INDEX)
#define REGAL_NO_TYPEDEF_GLX_SUN_GET_TRANSPARENT_INDEX
#endif

#if (defined(GLX_SUN_GET_TRANSPARENT_INDEX) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SUN_GET_TRANSPARENT_INDEX)) && !defined(REGAL_NO_NAMESPACE_GLX_SUN_GET_TRANSPARENT_INDEX)
#define REGAL_NO_NAMESPACE_GLX_SUN_GET_TRANSPARENT_INDEX
#endif

#if (defined(GLX_SUN_GET_TRANSPARENT_INDEX) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SUN_GET_TRANSPARENT_INDEX)) && !defined(REGAL_NO_PLUGIN_GLX_SUN_GET_TRANSPARENT_INDEX)
#define REGAL_NO_PLUGIN_GLX_SUN_GET_TRANSPARENT_INDEX
#endif

#if (defined(GLX_SUN_GET_TRANSPARENT_INDEX) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SUN_GET_TRANSPARENT_INDEX)) && !defined(REGAL_NO_DECLARATION_GLX_SUN_GET_TRANSPARENT_INDEX)
#define REGAL_NO_DECLARATION_GLX_SUN_GET_TRANSPARENT_INDEX
#endif

#ifndef GLX_SUN_get_transparent_index
#define GLX_SUN_get_transparent_index 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SUN_GET_TRANSPARENT_INDEX
typedef Status (REGAL_CALL *PFNGLXGETTRANSPARENTINDEXSUNPROC)(Display *dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SUN_GET_TRANSPARENT_INDEX
#define glXGetTransparentIndexSUN           rglXGetTransparentIndexSUN
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SUN_GET_TRANSPARENT_INDEX
REGAL_DECL Status REGAL_CALL glXGetTransparentIndexSUN(Display *dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SUN_GET_TRANSPARENT_INDEX
REGAL_DECL Status REGAL_CALL plugin_glXGetTransparentIndexSUN(Display *dpy, Window overlay, Window underlay, unsigned long *pTransparentIndex);
#endif

/**
 ** GLX_SUN_video_resize
 **/

#if (defined(GLX_SUN_VIDEO_RESIZE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_SUN_VIDEO_RESIZE)) && !defined(REGAL_NO_ENUM_GLX_SUN_VIDEO_RESIZE)
#define REGAL_NO_ENUM_GLX_SUN_VIDEO_RESIZE
#endif

#if (defined(GLX_SUN_VIDEO_RESIZE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_SUN_VIDEO_RESIZE)) && !defined(REGAL_NO_TYPEDEF_GLX_SUN_VIDEO_RESIZE)
#define REGAL_NO_TYPEDEF_GLX_SUN_VIDEO_RESIZE
#endif

#if (defined(GLX_SUN_VIDEO_RESIZE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_SUN_VIDEO_RESIZE)) && !defined(REGAL_NO_NAMESPACE_GLX_SUN_VIDEO_RESIZE)
#define REGAL_NO_NAMESPACE_GLX_SUN_VIDEO_RESIZE
#endif

#if (defined(GLX_SUN_VIDEO_RESIZE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_SUN_VIDEO_RESIZE)) && !defined(REGAL_NO_PLUGIN_GLX_SUN_VIDEO_RESIZE)
#define REGAL_NO_PLUGIN_GLX_SUN_VIDEO_RESIZE
#endif

#if (defined(GLX_SUN_VIDEO_RESIZE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_SUN_VIDEO_RESIZE)) && !defined(REGAL_NO_DECLARATION_GLX_SUN_VIDEO_RESIZE)
#define REGAL_NO_DECLARATION_GLX_SUN_VIDEO_RESIZE
#endif

#ifndef GLX_SUN_video_resize
#define GLX_SUN_video_resize 1
#endif

#ifndef REGAL_NO_ENUM_GLX_SUN_VIDEO_RESIZE
#define GLX_VIDEO_RESIZE_SUN             0x8171     /* 33137 */
#define GL_VIDEO_RESIZE_COMPENSATION_SUN 0x85cd     /* 34253 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_SUN_VIDEO_RESIZE
typedef int (REGAL_CALL *PFNGLXGETVIDEORESIZESUNPROC)(Display *display, GLXDrawable window, float *factor);
typedef int (REGAL_CALL *PFNGLXVIDEORESIZESUNPROC)(Display *display, GLXDrawable window, float factor);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_SUN_VIDEO_RESIZE
#define glXGetVideoResizeSUN                rglXGetVideoResizeSUN
#define glXVideoResizeSUN                   rglXVideoResizeSUN
#endif

#ifndef REGAL_NO_DECLARATION_GLX_SUN_VIDEO_RESIZE
REGAL_DECL int REGAL_CALL glXGetVideoResizeSUN(Display *display, GLXDrawable window, float *factor);
REGAL_DECL int REGAL_CALL glXVideoResizeSUN(Display *display, GLXDrawable window, float factor);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_SUN_VIDEO_RESIZE
REGAL_DECL int REGAL_CALL plugin_glXGetVideoResizeSUN(Display *display, GLXDrawable window, float *factor);
REGAL_DECL int REGAL_CALL plugin_glXVideoResizeSUN(Display *display, GLXDrawable window, float factor);
#endif

/**
 ** GLX_VERSION_1_0
 **/

#if (defined(GLX_VERSION_1_0) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_VERSION_1_0)) && !defined(REGAL_NO_ENUM_GLX_VERSION_1_0)
#define REGAL_NO_ENUM_GLX_VERSION_1_0
#endif

#if (defined(GLX_VERSION_1_0) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_VERSION_1_0)) && !defined(REGAL_NO_TYPEDEF_GLX_VERSION_1_0)
#define REGAL_NO_TYPEDEF_GLX_VERSION_1_0
#endif

#if (defined(GLX_VERSION_1_0) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_VERSION_1_0)) && !defined(REGAL_NO_NAMESPACE_GLX_VERSION_1_0)
#define REGAL_NO_NAMESPACE_GLX_VERSION_1_0
#endif

#if (defined(GLX_VERSION_1_0) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_VERSION_1_0)) && !defined(REGAL_NO_PLUGIN_GLX_VERSION_1_0)
#define REGAL_NO_PLUGIN_GLX_VERSION_1_0
#endif

#if (defined(GLX_VERSION_1_0) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_VERSION_1_0)) && !defined(REGAL_NO_DECLARATION_GLX_VERSION_1_0)
#define REGAL_NO_DECLARATION_GLX_VERSION_1_0
#endif

#ifndef GLX_VERSION_1_0
#define GLX_VERSION_1_0 1
#endif

#ifndef REGAL_NO_ENUM_GLX_VERSION_1_0
#define GLX_BAD_SCREEN       0x1
#define GLX_USE_GL           0x1
#define GLX_ACCUM_BLUE_SIZE  0x10     /* 16 */
#define GLX_ACCUM_ALPHA_SIZE 0x11     /* 17 */
#define GLX_BAD_ATTRIBUTE    0x2
#define GLX_BUFFER_SIZE      0x2
#define GLX_LEVEL            0x3
#define GLX_NO_EXTENSION     0x3
#define GLX_BAD_VISUAL       0x4
#define GLX_RGBA             0x4
#define GLX_BAD_CONTEXT      0x5
#define GLX_DOUBLEBUFFER     0x5
#define GLX_BAD_VALUE        0x6
#define GLX_STEREO           0x6
#define GLX_AUX_BUFFERS      0x7
#define GLX_BAD_ENUM         0x7
#define GLX_RED_SIZE         0x8
#define GLX_GREEN_SIZE       0x9
#define GLX_BLUE_SIZE        0xa      /* 10 */
#define GLX_ALPHA_SIZE       0xb      /* 11 */
#define GLX_DEPTH_SIZE       0xc      /* 12 */
#define GLX_STENCIL_SIZE     0xd      /* 13 */
#define GLX_ACCUM_RED_SIZE   0xe      /* 14 */
#define GLX_ACCUM_GREEN_SIZE 0xf      /* 15 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_VERSION_1_0
typedef Bool (REGAL_CALL *PFNGLXISDIRECTPROC)(Display *dpy, GLXContext ctx);
typedef Bool (REGAL_CALL *PFNGLXMAKECURRENTPROC)(Display *dpy, GLXDrawable drawable, GLXContext ctx);
typedef Bool (REGAL_CALL *PFNGLXQUERYEXTENSIONPROC)(Display *dpy, int *errorBase, int *eventBase);
typedef Bool (REGAL_CALL *PFNGLXQUERYVERSIONPROC)(Display *dpy, int *major, int *minor);
typedef GLXContext (REGAL_CALL *PFNGLXCREATECONTEXTPROC)(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
typedef GLXContext (REGAL_CALL *PFNGLXGETCURRENTCONTEXTPROC)(void);
typedef GLXDrawable (REGAL_CALL *PFNGLXGETCURRENTDRAWABLEPROC)(void);
typedef GLXPixmap (REGAL_CALL *PFNGLXCREATEGLXPIXMAPPROC)(Display *dpy, XVisualInfo *vis, Pixmap pixmap);
typedef XVisualInfo *(REGAL_CALL *PFNGLXCHOOSEVISUALPROC)(Display *dpy, int screen, int *attribList);
typedef int (REGAL_CALL *PFNGLXGETCONFIGPROC)(Display *dpy, XVisualInfo *vis, int attrib, int *value);
typedef void (REGAL_CALL *PFNGLXCOPYCONTEXTPROC)(Display *dpy, GLXContext src, GLXContext dst, unsigned long mask);
typedef void (REGAL_CALL *PFNGLXDESTROYCONTEXTPROC)(Display *dpy, GLXContext ctx);
typedef void (REGAL_CALL *PFNGLXDESTROYGLXPIXMAPPROC)(Display *dpy, GLXPixmap pix);
typedef void (REGAL_CALL *PFNGLXSWAPBUFFERSPROC)(Display *dpy, GLXDrawable drawable);
typedef void (REGAL_CALL *PFNGLXUSEXFONTPROC)(Font font, int first, int count, int listBase);
typedef void (REGAL_CALL *PFNGLXWAITGLPROC)(void);
typedef void (REGAL_CALL *PFNGLXWAITXPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_VERSION_1_0
#define glXChooseVisual                     rglXChooseVisual
#define glXCopyContext                      rglXCopyContext
#define glXCreateContext                    rglXCreateContext
#define glXCreateGLXPixmap                  rglXCreateGLXPixmap
#define glXDestroyContext                   rglXDestroyContext
#define glXDestroyGLXPixmap                 rglXDestroyGLXPixmap
#define glXGetConfig                        rglXGetConfig
#define glXGetCurrentContext                rglXGetCurrentContext
#define glXGetCurrentDrawable               rglXGetCurrentDrawable
#define glXIsDirect                         rglXIsDirect
#define glXMakeCurrent                      rglXMakeCurrent
#define glXQueryExtension                   rglXQueryExtension
#define glXQueryVersion                     rglXQueryVersion
#define glXSwapBuffers                      rglXSwapBuffers
#define glXUseXFont                         rglXUseXFont
#define glXWaitGL                           rglXWaitGL
#define glXWaitX                            rglXWaitX
#endif

#ifndef REGAL_NO_DECLARATION_GLX_VERSION_1_0
REGAL_DECL Bool REGAL_CALL glXIsDirect(Display *dpy, GLXContext ctx);
REGAL_DECL Bool REGAL_CALL glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx);
REGAL_DECL Bool REGAL_CALL glXQueryExtension(Display *dpy, int *errorBase, int *eventBase);
REGAL_DECL Bool REGAL_CALL glXQueryVersion(Display *dpy, int *major, int *minor);
REGAL_DECL GLXContext REGAL_CALL glXCreateContext(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
REGAL_DECL GLXContext REGAL_CALL glXGetCurrentContext(void);
REGAL_DECL GLXDrawable REGAL_CALL glXGetCurrentDrawable(void);
REGAL_DECL GLXPixmap REGAL_CALL glXCreateGLXPixmap(Display *dpy, XVisualInfo *vis, Pixmap pixmap);
REGAL_DECL XVisualInfo *REGAL_CALL glXChooseVisual(Display *dpy, int screen, int *attribList);
REGAL_DECL int REGAL_CALL glXGetConfig(Display *dpy, XVisualInfo *vis, int attrib, int *value);
REGAL_DECL void REGAL_CALL glXCopyContext(Display *dpy, GLXContext src, GLXContext dst, unsigned long mask);
REGAL_DECL void REGAL_CALL glXDestroyContext(Display *dpy, GLXContext ctx);
REGAL_DECL void REGAL_CALL glXDestroyGLXPixmap(Display *dpy, GLXPixmap pix);
REGAL_DECL void REGAL_CALL glXSwapBuffers(Display *dpy, GLXDrawable drawable);
REGAL_DECL void REGAL_CALL glXUseXFont(Font font, int first, int count, int listBase);
REGAL_DECL void REGAL_CALL glXWaitGL(void);
REGAL_DECL void REGAL_CALL glXWaitX(void);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_VERSION_1_0
REGAL_DECL Bool REGAL_CALL plugin_glXIsDirect(Display *dpy, GLXContext ctx);
REGAL_DECL Bool REGAL_CALL plugin_glXMakeCurrent(Display *dpy, GLXDrawable drawable, GLXContext ctx);
REGAL_DECL Bool REGAL_CALL plugin_glXQueryExtension(Display *dpy, int *errorBase, int *eventBase);
REGAL_DECL Bool REGAL_CALL plugin_glXQueryVersion(Display *dpy, int *major, int *minor);
REGAL_DECL GLXContext REGAL_CALL plugin_glXCreateContext(Display *dpy, XVisualInfo *vis, GLXContext shareList, Bool direct);
REGAL_DECL GLXContext REGAL_CALL plugin_glXGetCurrentContext(void);
REGAL_DECL GLXDrawable REGAL_CALL plugin_glXGetCurrentDrawable(void);
REGAL_DECL GLXPixmap REGAL_CALL plugin_glXCreateGLXPixmap(Display *dpy, XVisualInfo *vis, Pixmap pixmap);
REGAL_DECL XVisualInfo *REGAL_CALL plugin_glXChooseVisual(Display *dpy, int screen, int *attribList);
REGAL_DECL int REGAL_CALL plugin_glXGetConfig(Display *dpy, XVisualInfo *vis, int attrib, int *value);
REGAL_DECL void REGAL_CALL plugin_glXCopyContext(Display *dpy, GLXContext src, GLXContext dst, unsigned long mask);
REGAL_DECL void REGAL_CALL plugin_glXDestroyContext(Display *dpy, GLXContext ctx);
REGAL_DECL void REGAL_CALL plugin_glXDestroyGLXPixmap(Display *dpy, GLXPixmap pix);
REGAL_DECL void REGAL_CALL plugin_glXSwapBuffers(Display *dpy, GLXDrawable drawable);
REGAL_DECL void REGAL_CALL plugin_glXUseXFont(Font font, int first, int count, int listBase);
REGAL_DECL void REGAL_CALL plugin_glXWaitGL(void);
REGAL_DECL void REGAL_CALL plugin_glXWaitX(void);
#endif

/**
 ** GLX_VERSION_1_1
 **/

#if (defined(GLX_VERSION_1_1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_VERSION_1_1)) && !defined(REGAL_NO_ENUM_GLX_VERSION_1_1)
#define REGAL_NO_ENUM_GLX_VERSION_1_1
#endif

#if (defined(GLX_VERSION_1_1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_VERSION_1_1)) && !defined(REGAL_NO_TYPEDEF_GLX_VERSION_1_1)
#define REGAL_NO_TYPEDEF_GLX_VERSION_1_1
#endif

#if (defined(GLX_VERSION_1_1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_VERSION_1_1)) && !defined(REGAL_NO_NAMESPACE_GLX_VERSION_1_1)
#define REGAL_NO_NAMESPACE_GLX_VERSION_1_1
#endif

#if (defined(GLX_VERSION_1_1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_VERSION_1_1)) && !defined(REGAL_NO_PLUGIN_GLX_VERSION_1_1)
#define REGAL_NO_PLUGIN_GLX_VERSION_1_1
#endif

#if (defined(GLX_VERSION_1_1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_VERSION_1_1)) && !defined(REGAL_NO_DECLARATION_GLX_VERSION_1_1)
#define REGAL_NO_DECLARATION_GLX_VERSION_1_1
#endif

#ifndef GLX_VERSION_1_1
#define GLX_VERSION_1_1 1
#endif

#ifndef REGAL_NO_ENUM_GLX_VERSION_1_1
#define GLX_VENDOR     0x1
#define GLX_VERSION    0x2
#define GLX_EXTENSIONS 0x3
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_VERSION_1_1
typedef const char *(REGAL_CALL *PFNGLXGETCLIENTSTRINGPROC)(Display *dpy, int name);
typedef const char *(REGAL_CALL *PFNGLXQUERYEXTENSIONSSTRINGPROC)(Display *dpy, int screen);
typedef const char *(REGAL_CALL *PFNGLXQUERYSERVERSTRINGPROC)(Display *dpy, int screen, int name);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_VERSION_1_1
#define glXGetClientString                  rglXGetClientString
#define glXQueryExtensionsString            rglXQueryExtensionsString
#define glXQueryServerString                rglXQueryServerString
#endif

#ifndef REGAL_NO_DECLARATION_GLX_VERSION_1_1
REGAL_DECL const char *REGAL_CALL glXGetClientString(Display *dpy, int name);
REGAL_DECL const char *REGAL_CALL glXQueryExtensionsString(Display *dpy, int screen);
REGAL_DECL const char *REGAL_CALL glXQueryServerString(Display *dpy, int screen, int name);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_VERSION_1_1
REGAL_DECL const char *REGAL_CALL plugin_glXGetClientString(Display *dpy, int name);
REGAL_DECL const char *REGAL_CALL plugin_glXQueryExtensionsString(Display *dpy, int screen);
REGAL_DECL const char *REGAL_CALL plugin_glXQueryServerString(Display *dpy, int screen, int name);
#endif

/**
 ** GLX_VERSION_1_2
 **/

#if (defined(GLX_VERSION_1_2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_VERSION_1_2)) && !defined(REGAL_NO_ENUM_GLX_VERSION_1_2)
#define REGAL_NO_ENUM_GLX_VERSION_1_2
#endif

#if (defined(GLX_VERSION_1_2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_VERSION_1_2)) && !defined(REGAL_NO_TYPEDEF_GLX_VERSION_1_2)
#define REGAL_NO_TYPEDEF_GLX_VERSION_1_2
#endif

#if (defined(GLX_VERSION_1_2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_VERSION_1_2)) && !defined(REGAL_NO_NAMESPACE_GLX_VERSION_1_2)
#define REGAL_NO_NAMESPACE_GLX_VERSION_1_2
#endif

#if (defined(GLX_VERSION_1_2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_VERSION_1_2)) && !defined(REGAL_NO_PLUGIN_GLX_VERSION_1_2)
#define REGAL_NO_PLUGIN_GLX_VERSION_1_2
#endif

#if (defined(GLX_VERSION_1_2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_VERSION_1_2)) && !defined(REGAL_NO_DECLARATION_GLX_VERSION_1_2)
#define REGAL_NO_DECLARATION_GLX_VERSION_1_2
#endif

#ifndef GLX_VERSION_1_2
#define GLX_VERSION_1_2 1
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_VERSION_1_2
typedef Display *(REGAL_CALL *PFNGLXGETCURRENTDISPLAYPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_VERSION_1_2
#define glXGetCurrentDisplay                rglXGetCurrentDisplay
#endif

#ifndef REGAL_NO_DECLARATION_GLX_VERSION_1_2
REGAL_DECL Display *REGAL_CALL glXGetCurrentDisplay(void);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_VERSION_1_2
REGAL_DECL Display *REGAL_CALL plugin_glXGetCurrentDisplay(void);
#endif

/**
 ** GLX_VERSION_1_3
 **/

#if (defined(GLX_VERSION_1_3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_VERSION_1_3)) && !defined(REGAL_NO_ENUM_GLX_VERSION_1_3)
#define REGAL_NO_ENUM_GLX_VERSION_1_3
#endif

#if (defined(GLX_VERSION_1_3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_VERSION_1_3)) && !defined(REGAL_NO_TYPEDEF_GLX_VERSION_1_3)
#define REGAL_NO_TYPEDEF_GLX_VERSION_1_3
#endif

#if (defined(GLX_VERSION_1_3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_VERSION_1_3)) && !defined(REGAL_NO_NAMESPACE_GLX_VERSION_1_3)
#define REGAL_NO_NAMESPACE_GLX_VERSION_1_3
#endif

#if (defined(GLX_VERSION_1_3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_VERSION_1_3)) && !defined(REGAL_NO_PLUGIN_GLX_VERSION_1_3)
#define REGAL_NO_PLUGIN_GLX_VERSION_1_3
#endif

#if (defined(GLX_VERSION_1_3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_VERSION_1_3)) && !defined(REGAL_NO_DECLARATION_GLX_VERSION_1_3)
#define REGAL_NO_DECLARATION_GLX_VERSION_1_3
#endif

#ifndef GLX_VERSION_1_3
#define GLX_VERSION_1_3 1
#endif

#ifndef REGAL_NO_ENUM_GLX_VERSION_1_3
#define GLX_FRONT_LEFT_BUFFER_BIT   0x1
#define GLX_RGBA_BIT                0x1
#define GLX_WINDOW_BIT              0x1
#define GLX_AUX_BUFFERS_BIT         0x10           /* 16 */
#define GLX_COLOR_INDEX_BIT         0x2
#define GLX_FRONT_RIGHT_BUFFER_BIT  0x2
#define GLX_PIXMAP_BIT              0x2
#define GLX_CONFIG_CAVEAT           0x20           /* 32 */
#define GLX_DEPTH_BUFFER_BIT        0x20           /* 32 */
#define GLX_X_VISUAL_TYPE           0x22           /* 34 */
#define GLX_TRANSPARENT_TYPE        0x23           /* 35 */
#define GLX_TRANSPARENT_INDEX_VALUE 0x24           /* 36 */
#define GLX_TRANSPARENT_RED_VALUE   0x25           /* 37 */
#define GLX_TRANSPARENT_GREEN_VALUE 0x26           /* 38 */
#define GLX_TRANSPARENT_BLUE_VALUE  0x27           /* 39 */
#define GLX_TRANSPARENT_ALPHA_VALUE 0x28           /* 40 */
#define GLX_BACK_LEFT_BUFFER_BIT    0x4
#define GLX_PBUFFER_BIT             0x4
#define GLX_STENCIL_BUFFER_BIT      0x40           /* 64 */
#define GLX_BACK_RIGHT_BUFFER_BIT   0x8
#define GLX_ACCUM_BUFFER_BIT        0x80           /* 128 */
#define GLX_NONE                    0x8000         /* 32768 */
#define GLX_PBUFFER_CLOBBER_MASK    0x8000000      /* 134217728 */
#define GLX_SLOW_CONFIG             0x8001         /* 32769 */
#define GLX_TRUE_COLOR              0x8002         /* 32770 */
#define GLX_DIRECT_COLOR            0x8003         /* 32771 */
#define GLX_PSEUDO_COLOR            0x8004         /* 32772 */
#define GLX_STATIC_COLOR            0x8005         /* 32773 */
#define GLX_GRAY_SCALE              0x8006         /* 32774 */
#define GLX_STATIC_GRAY             0x8007         /* 32775 */
#define GLX_TRANSPARENT_RGB         0x8008         /* 32776 */
#define GLX_TRANSPARENT_INDEX       0x8009         /* 32777 */
#define GLX_VISUAL_ID               0x800b         /* 32779 */
#define GLX_SCREEN                  0x800c         /* 32780 */
#define GLX_NON_CONFORMANT_CONFIG   0x800d         /* 32781 */
#define GLX_DRAWABLE_TYPE           0x8010         /* 32784 */
#define GLX_RENDER_TYPE             0x8011         /* 32785 */
#define GLX_X_RENDERABLE            0x8012         /* 32786 */
#define GLX_FBCONFIG_ID             0x8013         /* 32787 */
#define GLX_RGBA_TYPE               0x8014         /* 32788 */
#define GLX_COLOR_INDEX_TYPE        0x8015         /* 32789 */
#define GLX_MAX_PBUFFER_WIDTH       0x8016         /* 32790 */
#define GLX_MAX_PBUFFER_HEIGHT      0x8017         /* 32791 */
#define GLX_MAX_PBUFFER_PIXELS      0x8018         /* 32792 */
#define GLX_PRESERVED_CONTENTS      0x801b         /* 32795 */
#define GLX_LARGEST_PBUFFER         0x801c         /* 32796 */
#define GLX_WIDTH                   0x801d         /* 32797 */
#define GLX_HEIGHT                  0x801e         /* 32798 */
#define GLX_EVENT_MASK              0x801f         /* 32799 */
#define GLX_DAMAGED                 0x8020         /* 32800 */
#define GLX_SAVED                   0x8021         /* 32801 */
#define GLX_WINDOW                  0x8022         /* 32802 */
#define GLX_PBUFFER                 0x8023         /* 32803 */
#define GLX_PBUFFER_HEIGHT          0x8040         /* 32832 */
#define GLX_PBUFFER_WIDTH           0x8041         /* 32833 */
#define GLX_DONT_CARE               0xffffffff     /* 4294967295 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_VERSION_1_3
typedef Bool (REGAL_CALL *PFNGLXMAKECONTEXTCURRENTPROC)(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
typedef GLXContext (REGAL_CALL *PFNGLXCREATENEWCONTEXTPROC)(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
typedef GLXDrawable (REGAL_CALL *PFNGLXGETCURRENTREADDRAWABLEPROC)(void);
typedef GLXFBConfig *(REGAL_CALL *PFNGLXCHOOSEFBCONFIGPROC)(Display *dpy, int screen, const int *attrib_list, int *nelements);
typedef GLXFBConfig *(REGAL_CALL *PFNGLXGETFBCONFIGSPROC)(Display *dpy, int screen, int *nelements);
typedef GLXPbuffer (REGAL_CALL *PFNGLXCREATEPBUFFERPROC)(Display *dpy, GLXFBConfig config, const int *attrib_list);
typedef GLXPixmap (REGAL_CALL *PFNGLXCREATEPIXMAPPROC)(Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
typedef GLXWindow (REGAL_CALL *PFNGLXCREATEWINDOWPROC)(Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
typedef XVisualInfo *(REGAL_CALL *PFNGLXGETVISUALFROMFBCONFIGPROC)(Display *dpy, GLXFBConfig config);
typedef int (REGAL_CALL *PFNGLXGETFBCONFIGATTRIBPROC)(Display *dpy, GLXFBConfig config, int attribute, int *value);
typedef int (REGAL_CALL *PFNGLXQUERYCONTEXTPROC)(Display *dpy, GLXContext ctx, int attribute, int *value);
typedef void (REGAL_CALL *PFNGLXDESTROYPBUFFERPROC)(Display *dpy, GLXPbuffer pbuf);
typedef void (REGAL_CALL *PFNGLXDESTROYPIXMAPPROC)(Display *dpy, GLXPixmap pixmap);
typedef void (REGAL_CALL *PFNGLXDESTROYWINDOWPROC)(Display *dpy, GLXWindow win);
typedef void (REGAL_CALL *PFNGLXGETSELECTEDEVENTPROC)(Display *dpy, GLXDrawable draw, unsigned long *event_mask);
typedef void (REGAL_CALL *PFNGLXQUERYDRAWABLEPROC)(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
typedef void (REGAL_CALL *PFNGLXSELECTEVENTPROC)(Display *dpy, GLXDrawable draw, unsigned long event_mask);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_VERSION_1_3
#define glXChooseFBConfig                   rglXChooseFBConfig
#define glXCreateNewContext                 rglXCreateNewContext
#define glXCreatePbuffer                    rglXCreatePbuffer
#define glXCreatePixmap                     rglXCreatePixmap
#define glXCreateWindow                     rglXCreateWindow
#define glXDestroyPbuffer                   rglXDestroyPbuffer
#define glXDestroyPixmap                    rglXDestroyPixmap
#define glXDestroyWindow                    rglXDestroyWindow
#define glXGetCurrentReadDrawable           rglXGetCurrentReadDrawable
#define glXGetFBConfigAttrib                rglXGetFBConfigAttrib
#define glXGetFBConfigs                     rglXGetFBConfigs
#define glXGetSelectedEvent                 rglXGetSelectedEvent
#define glXGetVisualFromFBConfig            rglXGetVisualFromFBConfig
#define glXMakeContextCurrent               rglXMakeContextCurrent
#define glXQueryContext                     rglXQueryContext
#define glXQueryDrawable                    rglXQueryDrawable
#define glXSelectEvent                      rglXSelectEvent
#endif

#ifndef REGAL_NO_DECLARATION_GLX_VERSION_1_3
REGAL_DECL Bool REGAL_CALL glXMakeContextCurrent(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
REGAL_DECL GLXContext REGAL_CALL glXCreateNewContext(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
REGAL_DECL GLXDrawable REGAL_CALL glXGetCurrentReadDrawable(void);
REGAL_DECL GLXFBConfig *REGAL_CALL glXChooseFBConfig(Display *dpy, int screen, const int *attrib_list, int *nelements);
REGAL_DECL GLXFBConfig *REGAL_CALL glXGetFBConfigs(Display *dpy, int screen, int *nelements);
REGAL_DECL GLXPbuffer REGAL_CALL glXCreatePbuffer(Display *dpy, GLXFBConfig config, const int *attrib_list);
REGAL_DECL GLXPixmap REGAL_CALL glXCreatePixmap(Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
REGAL_DECL GLXWindow REGAL_CALL glXCreateWindow(Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
REGAL_DECL XVisualInfo *REGAL_CALL glXGetVisualFromFBConfig(Display *dpy, GLXFBConfig config);
REGAL_DECL int REGAL_CALL glXGetFBConfigAttrib(Display *dpy, GLXFBConfig config, int attribute, int *value);
REGAL_DECL int REGAL_CALL glXQueryContext(Display *dpy, GLXContext ctx, int attribute, int *value);
REGAL_DECL void REGAL_CALL glXDestroyPbuffer(Display *dpy, GLXPbuffer pbuf);
REGAL_DECL void REGAL_CALL glXDestroyPixmap(Display *dpy, GLXPixmap pixmap);
REGAL_DECL void REGAL_CALL glXDestroyWindow(Display *dpy, GLXWindow win);
REGAL_DECL void REGAL_CALL glXGetSelectedEvent(Display *dpy, GLXDrawable draw, unsigned long *event_mask);
REGAL_DECL void REGAL_CALL glXQueryDrawable(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
REGAL_DECL void REGAL_CALL glXSelectEvent(Display *dpy, GLXDrawable draw, unsigned long event_mask);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_VERSION_1_3
REGAL_DECL Bool REGAL_CALL plugin_glXMakeContextCurrent(Display *display, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
REGAL_DECL GLXContext REGAL_CALL plugin_glXCreateNewContext(Display *dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
REGAL_DECL GLXDrawable REGAL_CALL plugin_glXGetCurrentReadDrawable(void);
REGAL_DECL GLXFBConfig *REGAL_CALL plugin_glXChooseFBConfig(Display *dpy, int screen, const int *attrib_list, int *nelements);
REGAL_DECL GLXFBConfig *REGAL_CALL plugin_glXGetFBConfigs(Display *dpy, int screen, int *nelements);
REGAL_DECL GLXPbuffer REGAL_CALL plugin_glXCreatePbuffer(Display *dpy, GLXFBConfig config, const int *attrib_list);
REGAL_DECL GLXPixmap REGAL_CALL plugin_glXCreatePixmap(Display *dpy, GLXFBConfig config, Pixmap pixmap, const int *attrib_list);
REGAL_DECL GLXWindow REGAL_CALL plugin_glXCreateWindow(Display *dpy, GLXFBConfig config, Window win, const int *attrib_list);
REGAL_DECL XVisualInfo *REGAL_CALL plugin_glXGetVisualFromFBConfig(Display *dpy, GLXFBConfig config);
REGAL_DECL int REGAL_CALL plugin_glXGetFBConfigAttrib(Display *dpy, GLXFBConfig config, int attribute, int *value);
REGAL_DECL int REGAL_CALL plugin_glXQueryContext(Display *dpy, GLXContext ctx, int attribute, int *value);
REGAL_DECL void REGAL_CALL plugin_glXDestroyPbuffer(Display *dpy, GLXPbuffer pbuf);
REGAL_DECL void REGAL_CALL plugin_glXDestroyPixmap(Display *dpy, GLXPixmap pixmap);
REGAL_DECL void REGAL_CALL plugin_glXDestroyWindow(Display *dpy, GLXWindow win);
REGAL_DECL void REGAL_CALL plugin_glXGetSelectedEvent(Display *dpy, GLXDrawable draw, unsigned long *event_mask);
REGAL_DECL void REGAL_CALL plugin_glXQueryDrawable(Display *dpy, GLXDrawable draw, int attribute, unsigned int *value);
REGAL_DECL void REGAL_CALL plugin_glXSelectEvent(Display *dpy, GLXDrawable draw, unsigned long event_mask);
#endif

/**
 ** GLX_VERSION_1_4
 **/

#if (defined(GLX_VERSION_1_4) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GLX_VERSION_1_4)) && !defined(REGAL_NO_ENUM_GLX_VERSION_1_4)
#define REGAL_NO_ENUM_GLX_VERSION_1_4
#endif

#if (defined(GLX_VERSION_1_4) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GLX_VERSION_1_4)) && !defined(REGAL_NO_TYPEDEF_GLX_VERSION_1_4)
#define REGAL_NO_TYPEDEF_GLX_VERSION_1_4
#endif

#if (defined(GLX_VERSION_1_4) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GLX_VERSION_1_4)) && !defined(REGAL_NO_NAMESPACE_GLX_VERSION_1_4)
#define REGAL_NO_NAMESPACE_GLX_VERSION_1_4
#endif

#if (defined(GLX_VERSION_1_4) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GLX_VERSION_1_4)) && !defined(REGAL_NO_PLUGIN_GLX_VERSION_1_4)
#define REGAL_NO_PLUGIN_GLX_VERSION_1_4
#endif

#if (defined(GLX_VERSION_1_4) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GLX_VERSION_1_4)) && !defined(REGAL_NO_DECLARATION_GLX_VERSION_1_4)
#define REGAL_NO_DECLARATION_GLX_VERSION_1_4
#endif

#ifndef GLX_VERSION_1_4
#define GLX_VERSION_1_4 1
#endif

#ifndef REGAL_NO_ENUM_GLX_VERSION_1_4
#define GLX_SAMPLE_BUFFERS 0x186a0     /* 100000 */
#define GLX_SAMPLES        0x186a1     /* 100001 */
#endif

#ifndef REGAL_NO_TYPEDEF_GLX_VERSION_1_4
typedef __GLXextFuncPtr (REGAL_CALL *PFNGLXGETPROCADDRESSPROC)(const GLubyte *procName);
#endif

#ifndef REGAL_NO_NAMESPACE_GLX_VERSION_1_4
#define glXGetProcAddress                   rglXGetProcAddress
#endif

#ifndef REGAL_NO_DECLARATION_GLX_VERSION_1_4
REGAL_DECL __GLXextFuncPtr REGAL_CALL glXGetProcAddress(const GLubyte *procName);
#endif

#ifndef REGAL_NO_PLUGIN_GLX_VERSION_1_4
REGAL_DECL __GLXextFuncPtr REGAL_CALL plugin_glXGetProcAddress(const GLubyte *procName);
#endif

#endif /* REGAL_SYS_GLX */

#if REGAL_SYS_OSX
#define kCGL0Bit            0x1
#define kCGLMonoscopicBit   0x1
#define kCGLSupersampleBit  0x1
#define kCGL4Bit            0x10           /* 16 */
#define kCGLTripleBufferBit 0x10           /* 16 */
#define kCGL10Bit           0x100          /* 256 */
#define kCGLRGB444A8Bit     0x100          /* 256 */
#define kCGL32Bit           0x1000         /* 4096 */
#define kCGLRGB565Bit       0x1000         /* 4096 */
#define kCGL128Bit          0x10000        /* 65536 */
#define kCGLRGB888A8Bit     0x10000        /* 65536 */
#define kCGLRGB121212Bit    0x100000       /* 1048576 */
#define kCGLRGBFloat64Bit   0x1000000      /* 16777216 */
#define kCGLRGBFloat256Bit  0x10000000     /* 268435456 */
#define kCGL1Bit            0x2
#define kCGLMultisampleBit  0x2
#define kCGLStereoscopicBit 0x2
#define kCGL5Bit            0x20           /* 32 */
#define kCGL12Bit           0x200          /* 512 */
#define kCGLRGB555Bit       0x200          /* 512 */
#define kCGL48Bit           0x2000         /* 8192 */
#define kCGLRGB565A8Bit     0x2000         /* 8192 */
#define kCGLRGB101010Bit    0x20000        /* 131072 */
#define kCGLARGB12121212Bit 0x200000       /* 2097152 */
#define kCGLRGBAFloat64Bit  0x2000000      /* 33554432 */
#define kCGLRGBAFloat256Bit 0x20000000     /* 536870912 */
#define kCGL2Bit            0x4
#define kCGLSingleBufferBit 0x4
#define kCGL6Bit            0x40           /* 64 */
#define kCGLRGB444Bit       0x40           /* 64 */
#define kCGL16Bit           0x400          /* 1024 */
#define kCGLARGB1555Bit     0x400          /* 1024 */
#define kCGL64Bit           0x4000         /* 16384 */
#define kCGLRGB888Bit       0x4000         /* 16384 */
#define kCGLARGB2101010Bit  0x40000        /* 262144 */
#define kCGLRGB161616Bit    0x400000       /* 4194304 */
#define kCGLRGBFloat128Bit  0x4000000      /* 67108864 */
#define kCGL3Bit            0x8
#define kCGLDoubleBufferBit 0x8
#define kCGL8Bit            0x80           /* 128 */
#define kCGLARGB4444Bit     0x80           /* 128 */
#define kCGL24Bit           0x800          /* 2048 */
#define kCGLRGB555A8Bit     0x800          /* 2048 */
#define kCGL96Bit           0x8000         /* 32768 */
#define kCGLARGB8888Bit     0x8000         /* 32768 */
#define kCGLRGB101010_A8Bit 0x80000        /* 524288 */
#define kCGLRGBA16161616Bit 0x800000       /* 8388608 */
#define kCGLRGBAFloat128Bit 0x8000000      /* 134217728 */

/**
 ** CGL_VERSION_1_0
 **/

#if (defined(CGL_VERSION_1_0) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_CGL_VERSION_1_0)) && !defined(REGAL_NO_ENUM_CGL_VERSION_1_0)
#define REGAL_NO_ENUM_CGL_VERSION_1_0
#endif

#if (defined(CGL_VERSION_1_0) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_CGL_VERSION_1_0)) && !defined(REGAL_NO_TYPEDEF_CGL_VERSION_1_0)
#define REGAL_NO_TYPEDEF_CGL_VERSION_1_0
#endif

#if (defined(CGL_VERSION_1_0) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_CGL_VERSION_1_0)) && !defined(REGAL_NO_NAMESPACE_CGL_VERSION_1_0)
#define REGAL_NO_NAMESPACE_CGL_VERSION_1_0
#endif

#if (defined(CGL_VERSION_1_0) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_CGL_VERSION_1_0)) && !defined(REGAL_NO_PLUGIN_CGL_VERSION_1_0)
#define REGAL_NO_PLUGIN_CGL_VERSION_1_0
#endif

#if (defined(CGL_VERSION_1_0) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_CGL_VERSION_1_0)) && !defined(REGAL_NO_DECLARATION_CGL_VERSION_1_0)
#define REGAL_NO_DECLARATION_CGL_VERSION_1_0
#endif

#ifndef CGL_VERSION_1_0
#define CGL_VERSION_1_0 1
#endif

#ifndef REGAL_NO_TYPEDEF_CGL_VERSION_1_0
typedef CGLError (REGAL_CALL *PFNCGLCHOOSEPIXELFORMATPROC)(const CGLPixelFormatAttribute *attribs, CGLPixelFormatObj *pix, GLint *npix);
typedef CGLError (REGAL_CALL *PFNCGLCLEARDRAWABLEPROC)(CGLContextObj ctx);
typedef CGLError (REGAL_CALL *PFNCGLCOPYCONTEXTPROC)(CGLContextObj src, CGLContextObj dst, GLbitfield mask);
typedef CGLError (REGAL_CALL *PFNCGLCREATECONTEXTPROC)(CGLPixelFormatObj pix, CGLContextObj share, CGLContextObj *ctx);
typedef CGLError (REGAL_CALL *PFNCGLDESCRIBEPIXELFORMATPROC)(CGLPixelFormatObj pix, GLint pix_num, CGLPixelFormatAttribute attrib, GLint *value);
typedef CGLError (REGAL_CALL *PFNCGLDESCRIBERENDERERPROC)(CGLRendererInfoObj rend, GLint rend_num, CGLRendererProperty prop, GLint *value);
typedef CGLError (REGAL_CALL *PFNCGLDESTROYCONTEXTPROC)(CGLContextObj ctx);
typedef CGLError (REGAL_CALL *PFNCGLDESTROYPIXELFORMATPROC)(CGLPixelFormatObj pix);
typedef CGLError (REGAL_CALL *PFNCGLDESTROYRENDERERINFOPROC)(CGLRendererInfoObj rend);
typedef CGLError (REGAL_CALL *PFNCGLDISABLEPROC)(CGLContextObj ctx, CGLContextEnable pname);
typedef CGLError (REGAL_CALL *PFNCGLENABLEPROC)(CGLContextObj ctx, CGLContextEnable pname);
typedef CGLError (REGAL_CALL *PFNCGLFLUSHDRAWABLEPROC)(CGLContextObj ctx);
typedef CGLError (REGAL_CALL *PFNCGLGETOFFSCREENPROC)(CGLContextObj ctx, GLsizei *width, GLsizei *height, GLsizei *rowbytes, void **baseaddr);
typedef CGLError (REGAL_CALL *PFNCGLGETOPTIONPROC)(CGLGlobalOption pname, GLint *param);
typedef CGLError (REGAL_CALL *PFNCGLGETPARAMETERPROC)(CGLContextObj ctx, CGLContextParameter pname, GLint *params);
typedef CGLError (REGAL_CALL *PFNCGLGETVIRTUALSCREENPROC)(CGLContextObj ctx, GLint *screen);
typedef CGLError (REGAL_CALL *PFNCGLISENABLEDPROC)(CGLContextObj ctx, CGLContextEnable pname, GLint *enable);
typedef CGLError (REGAL_CALL *PFNCGLQUERYRENDERERINFOPROC)(GLuint display_mask, CGLRendererInfoObj *rend, GLint *nrend);
typedef CGLError (REGAL_CALL *PFNCGLSETFULLSCREENPROC)(CGLContextObj ctx);
typedef CGLError (REGAL_CALL *PFNCGLSETOFFSCREENPROC)(CGLContextObj ctx, GLsizei width, GLsizei height, GLsizei rowbytes, void *baseaddr);
typedef CGLError (REGAL_CALL *PFNCGLSETOPTIONPROC)(CGLGlobalOption pname, GLint param);
typedef CGLError (REGAL_CALL *PFNCGLSETPARAMETERPROC)(CGLContextObj ctx, CGLContextParameter pname, const GLint *params);
typedef CGLError (REGAL_CALL *PFNCGLSETVIRTUALSCREENPROC)(CGLContextObj ctx, GLint screen);
typedef const char *(REGAL_CALL *PFNCGLERRORSTRINGPROC)(CGLError error);
typedef void (REGAL_CALL *PFNCGLGETVERSIONPROC)(GLint *majorvers, GLint *minorvers);
#endif

#ifndef REGAL_NO_NAMESPACE_CGL_VERSION_1_0
#define CGLChoosePixelFormat                rCGLChoosePixelFormat
#define CGLClearDrawable                    rCGLClearDrawable
#define CGLCopyContext                      rCGLCopyContext
#define CGLCreateContext                    rCGLCreateContext
#define CGLDescribePixelFormat              rCGLDescribePixelFormat
#define CGLDescribeRenderer                 rCGLDescribeRenderer
#define CGLDestroyContext                   rCGLDestroyContext
#define CGLDestroyPixelFormat               rCGLDestroyPixelFormat
#define CGLDestroyRendererInfo              rCGLDestroyRendererInfo
#define CGLDisable                          rCGLDisable
#define CGLEnable                           rCGLEnable
#define CGLErrorString                      rCGLErrorString
#define CGLFlushDrawable                    rCGLFlushDrawable
#define CGLGetOffScreen                     rCGLGetOffScreen
#define CGLGetOption                        rCGLGetOption
#define CGLGetParameter                     rCGLGetParameter
#define CGLGetVersion                       rCGLGetVersion
#define CGLGetVirtualScreen                 rCGLGetVirtualScreen
#define CGLIsEnabled                        rCGLIsEnabled
#define CGLQueryRendererInfo                rCGLQueryRendererInfo
#define CGLSetFullScreen                    rCGLSetFullScreen
#define CGLSetOffScreen                     rCGLSetOffScreen
#define CGLSetOption                        rCGLSetOption
#define CGLSetParameter                     rCGLSetParameter
#define CGLSetVirtualScreen                 rCGLSetVirtualScreen
#endif

#ifndef REGAL_NO_DECLARATION_CGL_VERSION_1_0
REGAL_DECL CGLError REGAL_CALL CGLChoosePixelFormat(const CGLPixelFormatAttribute *attribs, CGLPixelFormatObj *pix, GLint *npix);
REGAL_DECL CGLError REGAL_CALL CGLClearDrawable(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL CGLCopyContext(CGLContextObj src, CGLContextObj dst, GLbitfield mask);
REGAL_DECL CGLError REGAL_CALL CGLCreateContext(CGLPixelFormatObj pix, CGLContextObj share, CGLContextObj *ctx);
REGAL_DECL CGLError REGAL_CALL CGLDescribePixelFormat(CGLPixelFormatObj pix, GLint pix_num, CGLPixelFormatAttribute attrib, GLint *value);
REGAL_DECL CGLError REGAL_CALL CGLDescribeRenderer(CGLRendererInfoObj rend, GLint rend_num, CGLRendererProperty prop, GLint *value);
REGAL_DECL CGLError REGAL_CALL CGLDestroyContext(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL CGLDestroyPixelFormat(CGLPixelFormatObj pix);
REGAL_DECL CGLError REGAL_CALL CGLDestroyRendererInfo(CGLRendererInfoObj rend);
REGAL_DECL CGLError REGAL_CALL CGLDisable(CGLContextObj ctx, CGLContextEnable pname);
REGAL_DECL CGLError REGAL_CALL CGLEnable(CGLContextObj ctx, CGLContextEnable pname);
REGAL_DECL CGLError REGAL_CALL CGLFlushDrawable(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL CGLGetOffScreen(CGLContextObj ctx, GLsizei *width, GLsizei *height, GLsizei *rowbytes, void **baseaddr);
REGAL_DECL CGLError REGAL_CALL CGLGetOption(CGLGlobalOption pname, GLint *param);
REGAL_DECL CGLError REGAL_CALL CGLGetParameter(CGLContextObj ctx, CGLContextParameter pname, GLint *params);
REGAL_DECL CGLError REGAL_CALL CGLGetVirtualScreen(CGLContextObj ctx, GLint *screen);
REGAL_DECL CGLError REGAL_CALL CGLIsEnabled(CGLContextObj ctx, CGLContextEnable pname, GLint *enable);
REGAL_DECL CGLError REGAL_CALL CGLQueryRendererInfo(GLuint display_mask, CGLRendererInfoObj *rend, GLint *nrend);
REGAL_DECL CGLError REGAL_CALL CGLSetFullScreen(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL CGLSetOffScreen(CGLContextObj ctx, GLsizei width, GLsizei height, GLsizei rowbytes, void *baseaddr);
REGAL_DECL CGLError REGAL_CALL CGLSetOption(CGLGlobalOption pname, GLint param);
REGAL_DECL CGLError REGAL_CALL CGLSetParameter(CGLContextObj ctx, CGLContextParameter pname, const GLint *params);
REGAL_DECL CGLError REGAL_CALL CGLSetVirtualScreen(CGLContextObj ctx, GLint screen);
REGAL_DECL const char *REGAL_CALL CGLErrorString(CGLError error);
REGAL_DECL void REGAL_CALL CGLGetVersion(GLint *majorvers, GLint *minorvers);
#endif

#ifndef REGAL_NO_PLUGIN_CGL_VERSION_1_0
REGAL_DECL CGLError REGAL_CALL plugin_CGLChoosePixelFormat(const CGLPixelFormatAttribute *attribs, CGLPixelFormatObj *pix, GLint *npix);
REGAL_DECL CGLError REGAL_CALL plugin_CGLClearDrawable(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL plugin_CGLCopyContext(CGLContextObj src, CGLContextObj dst, GLbitfield mask);
REGAL_DECL CGLError REGAL_CALL plugin_CGLCreateContext(CGLPixelFormatObj pix, CGLContextObj share, CGLContextObj *ctx);
REGAL_DECL CGLError REGAL_CALL plugin_CGLDescribePixelFormat(CGLPixelFormatObj pix, GLint pix_num, CGLPixelFormatAttribute attrib, GLint *value);
REGAL_DECL CGLError REGAL_CALL plugin_CGLDescribeRenderer(CGLRendererInfoObj rend, GLint rend_num, CGLRendererProperty prop, GLint *value);
REGAL_DECL CGLError REGAL_CALL plugin_CGLDestroyContext(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL plugin_CGLDestroyPixelFormat(CGLPixelFormatObj pix);
REGAL_DECL CGLError REGAL_CALL plugin_CGLDestroyRendererInfo(CGLRendererInfoObj rend);
REGAL_DECL CGLError REGAL_CALL plugin_CGLDisable(CGLContextObj ctx, CGLContextEnable pname);
REGAL_DECL CGLError REGAL_CALL plugin_CGLEnable(CGLContextObj ctx, CGLContextEnable pname);
REGAL_DECL CGLError REGAL_CALL plugin_CGLFlushDrawable(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL plugin_CGLGetOffScreen(CGLContextObj ctx, GLsizei *width, GLsizei *height, GLsizei *rowbytes, void **baseaddr);
REGAL_DECL CGLError REGAL_CALL plugin_CGLGetOption(CGLGlobalOption pname, GLint *param);
REGAL_DECL CGLError REGAL_CALL plugin_CGLGetParameter(CGLContextObj ctx, CGLContextParameter pname, GLint *params);
REGAL_DECL CGLError REGAL_CALL plugin_CGLGetVirtualScreen(CGLContextObj ctx, GLint *screen);
REGAL_DECL CGLError REGAL_CALL plugin_CGLIsEnabled(CGLContextObj ctx, CGLContextEnable pname, GLint *enable);
REGAL_DECL CGLError REGAL_CALL plugin_CGLQueryRendererInfo(GLuint display_mask, CGLRendererInfoObj *rend, GLint *nrend);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetFullScreen(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetOffScreen(CGLContextObj ctx, GLsizei width, GLsizei height, GLsizei rowbytes, void *baseaddr);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetOption(CGLGlobalOption pname, GLint param);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetParameter(CGLContextObj ctx, CGLContextParameter pname, const GLint *params);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetVirtualScreen(CGLContextObj ctx, GLint screen);
REGAL_DECL const char *REGAL_CALL plugin_CGLErrorString(CGLError error);
REGAL_DECL void REGAL_CALL plugin_CGLGetVersion(GLint *majorvers, GLint *minorvers);
#endif

/**
 ** CGL_VERSION_1_1
 **/

#if (defined(CGL_VERSION_1_1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_CGL_VERSION_1_1)) && !defined(REGAL_NO_ENUM_CGL_VERSION_1_1)
#define REGAL_NO_ENUM_CGL_VERSION_1_1
#endif

#if (defined(CGL_VERSION_1_1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_CGL_VERSION_1_1)) && !defined(REGAL_NO_TYPEDEF_CGL_VERSION_1_1)
#define REGAL_NO_TYPEDEF_CGL_VERSION_1_1
#endif

#if (defined(CGL_VERSION_1_1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_CGL_VERSION_1_1)) && !defined(REGAL_NO_NAMESPACE_CGL_VERSION_1_1)
#define REGAL_NO_NAMESPACE_CGL_VERSION_1_1
#endif

#if (defined(CGL_VERSION_1_1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_CGL_VERSION_1_1)) && !defined(REGAL_NO_PLUGIN_CGL_VERSION_1_1)
#define REGAL_NO_PLUGIN_CGL_VERSION_1_1
#endif

#if (defined(CGL_VERSION_1_1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_CGL_VERSION_1_1)) && !defined(REGAL_NO_DECLARATION_CGL_VERSION_1_1)
#define REGAL_NO_DECLARATION_CGL_VERSION_1_1
#endif

#ifndef CGL_VERSION_1_1
#define CGL_VERSION_1_1 1
#endif

#ifndef REGAL_NO_TYPEDEF_CGL_VERSION_1_1
typedef CGLError (REGAL_CALL *PFNCGLCREATEPBUFFERPROC)(GLsizei width, GLsizei height, GLenum target, GLenum internalFormat, GLint max_level, CGLPBufferObj *pbuffer);
typedef CGLError (REGAL_CALL *PFNCGLDESCRIBEPBUFFERPROC)(CGLPBufferObj pbuffer, GLsizei *width, GLsizei *height, GLenum *target, GLenum *internalFormat, GLint *mipmap);
typedef CGLError (REGAL_CALL *PFNCGLDESTROYPBUFFERPROC)(CGLPBufferObj pbuffer);
typedef CGLError (REGAL_CALL *PFNCGLGETPBUFFERPROC)(CGLContextObj ctx, CGLPBufferObj *pbuffer, GLenum *face, GLint *level, GLint *screen);
typedef CGLError (REGAL_CALL *PFNCGLSETPBUFFERPROC)(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum face, GLint level, GLint screen);
typedef CGLError (REGAL_CALL *PFNCGLTEXIMAGEPBUFFERPROC)(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum source);
#endif

#ifndef REGAL_NO_NAMESPACE_CGL_VERSION_1_1
#define CGLCreatePBuffer                    rCGLCreatePBuffer
#define CGLDescribePBuffer                  rCGLDescribePBuffer
#define CGLDestroyPBuffer                   rCGLDestroyPBuffer
#define CGLGetPBuffer                       rCGLGetPBuffer
#define CGLSetPBuffer                       rCGLSetPBuffer
#define CGLTexImagePBuffer                  rCGLTexImagePBuffer
#endif

#ifndef REGAL_NO_DECLARATION_CGL_VERSION_1_1
REGAL_DECL CGLError REGAL_CALL CGLCreatePBuffer(GLsizei width, GLsizei height, GLenum target, GLenum internalFormat, GLint max_level, CGLPBufferObj *pbuffer);
REGAL_DECL CGLError REGAL_CALL CGLDescribePBuffer(CGLPBufferObj pbuffer, GLsizei *width, GLsizei *height, GLenum *target, GLenum *internalFormat, GLint *mipmap);
REGAL_DECL CGLError REGAL_CALL CGLDestroyPBuffer(CGLPBufferObj pbuffer);
REGAL_DECL CGLError REGAL_CALL CGLGetPBuffer(CGLContextObj ctx, CGLPBufferObj *pbuffer, GLenum *face, GLint *level, GLint *screen);
REGAL_DECL CGLError REGAL_CALL CGLSetPBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum face, GLint level, GLint screen);
REGAL_DECL CGLError REGAL_CALL CGLTexImagePBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum source);
#endif

#ifndef REGAL_NO_PLUGIN_CGL_VERSION_1_1
REGAL_DECL CGLError REGAL_CALL plugin_CGLCreatePBuffer(GLsizei width, GLsizei height, GLenum target, GLenum internalFormat, GLint max_level, CGLPBufferObj *pbuffer);
REGAL_DECL CGLError REGAL_CALL plugin_CGLDescribePBuffer(CGLPBufferObj pbuffer, GLsizei *width, GLsizei *height, GLenum *target, GLenum *internalFormat, GLint *mipmap);
REGAL_DECL CGLError REGAL_CALL plugin_CGLDestroyPBuffer(CGLPBufferObj pbuffer);
REGAL_DECL CGLError REGAL_CALL plugin_CGLGetPBuffer(CGLContextObj ctx, CGLPBufferObj *pbuffer, GLenum *face, GLint *level, GLint *screen);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetPBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum face, GLint level, GLint screen);
REGAL_DECL CGLError REGAL_CALL plugin_CGLTexImagePBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum source);
#endif

/**
 ** CGL_VERSION_1_2
 **/

#if (defined(CGL_VERSION_1_2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_CGL_VERSION_1_2)) && !defined(REGAL_NO_ENUM_CGL_VERSION_1_2)
#define REGAL_NO_ENUM_CGL_VERSION_1_2
#endif

#if (defined(CGL_VERSION_1_2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_CGL_VERSION_1_2)) && !defined(REGAL_NO_TYPEDEF_CGL_VERSION_1_2)
#define REGAL_NO_TYPEDEF_CGL_VERSION_1_2
#endif

#if (defined(CGL_VERSION_1_2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_CGL_VERSION_1_2)) && !defined(REGAL_NO_NAMESPACE_CGL_VERSION_1_2)
#define REGAL_NO_NAMESPACE_CGL_VERSION_1_2
#endif

#if (defined(CGL_VERSION_1_2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_CGL_VERSION_1_2)) && !defined(REGAL_NO_PLUGIN_CGL_VERSION_1_2)
#define REGAL_NO_PLUGIN_CGL_VERSION_1_2
#endif

#if (defined(CGL_VERSION_1_2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_CGL_VERSION_1_2)) && !defined(REGAL_NO_DECLARATION_CGL_VERSION_1_2)
#define REGAL_NO_DECLARATION_CGL_VERSION_1_2
#endif

#ifndef CGL_VERSION_1_2
#define CGL_VERSION_1_2 1
#endif

#ifndef REGAL_NO_TYPEDEF_CGL_VERSION_1_2
typedef CGLContextObj (REGAL_CALL *PFNCGLRETAINCONTEXTPROC)(CGLContextObj ctx);
typedef CGLError (REGAL_CALL *PFNCGLGETGLOBALOPTIONPROC)(CGLGlobalOption pname, GLint *params);
typedef CGLError (REGAL_CALL *PFNCGLLOCKCONTEXTPROC)(CGLContextObj ctx);
typedef CGLError (REGAL_CALL *PFNCGLSETGLOBALOPTIONPROC)(CGLGlobalOption pname, const GLint *params);
typedef CGLError (REGAL_CALL *PFNCGLUNLOCKCONTEXTPROC)(CGLContextObj ctx);
typedef CGLPBufferObj (REGAL_CALL *PFNCGLRETAINPBUFFERPROC)(CGLPBufferObj pbuffer);
typedef CGLPixelFormatObj (REGAL_CALL *PFNCGLGETPIXELFORMATPROC)(CGLContextObj ctx);
typedef CGLPixelFormatObj (REGAL_CALL *PFNCGLRETAINPIXELFORMATPROC)(CGLPixelFormatObj pix);
typedef GLuint (REGAL_CALL *PFNCGLGETCONTEXTRETAINCOUNTPROC)(CGLContextObj ctx);
typedef GLuint (REGAL_CALL *PFNCGLGETPBUFFERRETAINCOUNTPROC)(CGLPBufferObj pbuffer);
typedef GLuint (REGAL_CALL *PFNCGLGETPIXELFORMATRETAINCOUNTPROC)(CGLPixelFormatObj pix);
typedef void (REGAL_CALL *PFNCGLRELEASECONTEXTPROC)(CGLContextObj ctx);
typedef void (REGAL_CALL *PFNCGLRELEASEPBUFFERPROC)(CGLPBufferObj pbuffer);
typedef void (REGAL_CALL *PFNCGLRELEASEPIXELFORMATPROC)(CGLPixelFormatObj pix);
#endif

#ifndef REGAL_NO_NAMESPACE_CGL_VERSION_1_2
#define CGLGetContextRetainCount            rCGLGetContextRetainCount
#define CGLGetGlobalOption                  rCGLGetGlobalOption
#define CGLGetPBufferRetainCount            rCGLGetPBufferRetainCount
#define CGLGetPixelFormat                   rCGLGetPixelFormat
#define CGLGetPixelFormatRetainCount        rCGLGetPixelFormatRetainCount
#define CGLLockContext                      rCGLLockContext
#define CGLReleaseContext                   rCGLReleaseContext
#define CGLReleasePBuffer                   rCGLReleasePBuffer
#define CGLReleasePixelFormat               rCGLReleasePixelFormat
#define CGLRetainContext                    rCGLRetainContext
#define CGLRetainPBuffer                    rCGLRetainPBuffer
#define CGLRetainPixelFormat                rCGLRetainPixelFormat
#define CGLSetGlobalOption                  rCGLSetGlobalOption
#define CGLUnlockContext                    rCGLUnlockContext
#endif

#ifndef REGAL_NO_DECLARATION_CGL_VERSION_1_2
REGAL_DECL CGLContextObj REGAL_CALL CGLRetainContext(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL CGLGetGlobalOption(CGLGlobalOption pname, GLint *params);
REGAL_DECL CGLError REGAL_CALL CGLLockContext(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL CGLSetGlobalOption(CGLGlobalOption pname, const GLint *params);
REGAL_DECL CGLError REGAL_CALL CGLUnlockContext(CGLContextObj ctx);
REGAL_DECL CGLPBufferObj REGAL_CALL CGLRetainPBuffer(CGLPBufferObj pbuffer);
REGAL_DECL CGLPixelFormatObj REGAL_CALL CGLGetPixelFormat(CGLContextObj ctx);
REGAL_DECL CGLPixelFormatObj REGAL_CALL CGLRetainPixelFormat(CGLPixelFormatObj pix);
REGAL_DECL GLuint REGAL_CALL CGLGetContextRetainCount(CGLContextObj ctx);
REGAL_DECL GLuint REGAL_CALL CGLGetPBufferRetainCount(CGLPBufferObj pbuffer);
REGAL_DECL GLuint REGAL_CALL CGLGetPixelFormatRetainCount(CGLPixelFormatObj pix);
REGAL_DECL void REGAL_CALL CGLReleaseContext(CGLContextObj ctx);
REGAL_DECL void REGAL_CALL CGLReleasePBuffer(CGLPBufferObj pbuffer);
REGAL_DECL void REGAL_CALL CGLReleasePixelFormat(CGLPixelFormatObj pix);
#endif

#ifndef REGAL_NO_PLUGIN_CGL_VERSION_1_2
REGAL_DECL CGLContextObj REGAL_CALL plugin_CGLRetainContext(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL plugin_CGLGetGlobalOption(CGLGlobalOption pname, GLint *params);
REGAL_DECL CGLError REGAL_CALL plugin_CGLLockContext(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetGlobalOption(CGLGlobalOption pname, const GLint *params);
REGAL_DECL CGLError REGAL_CALL plugin_CGLUnlockContext(CGLContextObj ctx);
REGAL_DECL CGLPBufferObj REGAL_CALL plugin_CGLRetainPBuffer(CGLPBufferObj pbuffer);
REGAL_DECL CGLPixelFormatObj REGAL_CALL plugin_CGLGetPixelFormat(CGLContextObj ctx);
REGAL_DECL CGLPixelFormatObj REGAL_CALL plugin_CGLRetainPixelFormat(CGLPixelFormatObj pix);
REGAL_DECL GLuint REGAL_CALL plugin_CGLGetContextRetainCount(CGLContextObj ctx);
REGAL_DECL GLuint REGAL_CALL plugin_CGLGetPBufferRetainCount(CGLPBufferObj pbuffer);
REGAL_DECL GLuint REGAL_CALL plugin_CGLGetPixelFormatRetainCount(CGLPixelFormatObj pix);
REGAL_DECL void REGAL_CALL plugin_CGLReleaseContext(CGLContextObj ctx);
REGAL_DECL void REGAL_CALL plugin_CGLReleasePBuffer(CGLPBufferObj pbuffer);
REGAL_DECL void REGAL_CALL plugin_CGLReleasePixelFormat(CGLPixelFormatObj pix);
#endif

/**
 ** CGL_VERSION_1_3
 **/

#if (defined(CGL_VERSION_1_3) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_CGL_VERSION_1_3)) && !defined(REGAL_NO_ENUM_CGL_VERSION_1_3)
#define REGAL_NO_ENUM_CGL_VERSION_1_3
#endif

#if (defined(CGL_VERSION_1_3) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_CGL_VERSION_1_3)) && !defined(REGAL_NO_TYPEDEF_CGL_VERSION_1_3)
#define REGAL_NO_TYPEDEF_CGL_VERSION_1_3
#endif

#if (defined(CGL_VERSION_1_3) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_CGL_VERSION_1_3)) && !defined(REGAL_NO_NAMESPACE_CGL_VERSION_1_3)
#define REGAL_NO_NAMESPACE_CGL_VERSION_1_3
#endif

#if (defined(CGL_VERSION_1_3) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_CGL_VERSION_1_3)) && !defined(REGAL_NO_PLUGIN_CGL_VERSION_1_3)
#define REGAL_NO_PLUGIN_CGL_VERSION_1_3
#endif

#if (defined(CGL_VERSION_1_3) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_CGL_VERSION_1_3)) && !defined(REGAL_NO_DECLARATION_CGL_VERSION_1_3)
#define REGAL_NO_DECLARATION_CGL_VERSION_1_3
#endif

#ifndef CGL_VERSION_1_3
#define CGL_VERSION_1_3 1
#endif

#ifndef REGAL_NO_TYPEDEF_CGL_VERSION_1_3
typedef CGLContextObj (REGAL_CALL *PFNCGLGETCURRENTCONTEXTPROC)(void);
typedef CGLError (REGAL_CALL *PFNCGLGETSURFACEPROC)(CGLContextObj ctx, CGSConnectionID *conn, CGSWindowID *win, CGSSurfaceID *srf);
typedef CGLError (REGAL_CALL *PFNCGLSETCURRENTCONTEXTPROC)(CGLContextObj ctx);
typedef CGLError (REGAL_CALL *PFNCGLSETSURFACEPROC)(CGLContextObj ctx, CGSConnectionID conn, CGSWindowID win, CGSSurfaceID srf);
typedef CGLError (REGAL_CALL *PFNCGLTEXIMAGEIOSURFACE2DPROC)(CGLContextObj ctx, GLenum target, GLenum internal_format, GLsizei width, GLsizei height, GLenum format, GLenum type, IOSurfaceRef ioSurface, GLuint plane);
typedef CGLError (REGAL_CALL *PFNCGLUPDATECONTEXTPROC)(CGLContextObj ctx);
typedef CGLShareGroupObj (REGAL_CALL *PFNCGLGETSHAREGROUPPROC)(CGLContextObj ctx);
#endif

#ifndef REGAL_NO_NAMESPACE_CGL_VERSION_1_3
#define CGLGetCurrentContext                rCGLGetCurrentContext
#define CGLGetShareGroup                    rCGLGetShareGroup
#define CGLGetSurface                       rCGLGetSurface
#define CGLSetCurrentContext                rCGLSetCurrentContext
#define CGLSetSurface                       rCGLSetSurface
#define CGLTexImageIOSurface2D              rCGLTexImageIOSurface2D
#define CGLUpdateContext                    rCGLUpdateContext
#endif

#ifndef REGAL_NO_DECLARATION_CGL_VERSION_1_3
REGAL_DECL CGLContextObj REGAL_CALL CGLGetCurrentContext(void);
REGAL_DECL CGLError REGAL_CALL CGLGetSurface(CGLContextObj ctx, CGSConnectionID *conn, CGSWindowID *win, CGSSurfaceID *srf);
REGAL_DECL CGLError REGAL_CALL CGLSetCurrentContext(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL CGLSetSurface(CGLContextObj ctx, CGSConnectionID conn, CGSWindowID win, CGSSurfaceID srf);
REGAL_DECL CGLError REGAL_CALL CGLTexImageIOSurface2D(CGLContextObj ctx, GLenum target, GLenum internal_format, GLsizei width, GLsizei height, GLenum format, GLenum type, IOSurfaceRef ioSurface, GLuint plane);
REGAL_DECL CGLError REGAL_CALL CGLUpdateContext(CGLContextObj ctx);
REGAL_DECL CGLShareGroupObj REGAL_CALL CGLGetShareGroup(CGLContextObj ctx);
#endif

#ifndef REGAL_NO_PLUGIN_CGL_VERSION_1_3
REGAL_DECL CGLContextObj REGAL_CALL plugin_CGLGetCurrentContext(void);
REGAL_DECL CGLError REGAL_CALL plugin_CGLGetSurface(CGLContextObj ctx, CGSConnectionID *conn, CGSWindowID *win, CGSSurfaceID *srf);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetCurrentContext(CGLContextObj ctx);
REGAL_DECL CGLError REGAL_CALL plugin_CGLSetSurface(CGLContextObj ctx, CGSConnectionID conn, CGSWindowID win, CGSSurfaceID srf);
REGAL_DECL CGLError REGAL_CALL plugin_CGLTexImageIOSurface2D(CGLContextObj ctx, GLenum target, GLenum internal_format, GLsizei width, GLsizei height, GLenum format, GLenum type, IOSurfaceRef ioSurface, GLuint plane);
REGAL_DECL CGLError REGAL_CALL plugin_CGLUpdateContext(CGLContextObj ctx);
REGAL_DECL CGLShareGroupObj REGAL_CALL plugin_CGLGetShareGroup(CGLContextObj ctx);
#endif

#endif /* REGAL_SYS_OSX */

#if REGAL_SYS_EGL

/**
 ** EGL_ANGLE_query_surface_pointer
 **/

#if (defined(EGL_ANGLE_QUERY_SURFACE_POINTER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_ANGLE_QUERY_SURFACE_POINTER)) && !defined(REGAL_NO_ENUM_EGL_ANGLE_QUERY_SURFACE_POINTER)
#define REGAL_NO_ENUM_EGL_ANGLE_QUERY_SURFACE_POINTER
#endif

#if (defined(EGL_ANGLE_QUERY_SURFACE_POINTER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_ANGLE_QUERY_SURFACE_POINTER)) && !defined(REGAL_NO_TYPEDEF_EGL_ANGLE_QUERY_SURFACE_POINTER)
#define REGAL_NO_TYPEDEF_EGL_ANGLE_QUERY_SURFACE_POINTER
#endif

#if (defined(EGL_ANGLE_QUERY_SURFACE_POINTER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_ANGLE_QUERY_SURFACE_POINTER)) && !defined(REGAL_NO_NAMESPACE_EGL_ANGLE_QUERY_SURFACE_POINTER)
#define REGAL_NO_NAMESPACE_EGL_ANGLE_QUERY_SURFACE_POINTER
#endif

#if (defined(EGL_ANGLE_QUERY_SURFACE_POINTER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_ANGLE_QUERY_SURFACE_POINTER)) && !defined(REGAL_NO_PLUGIN_EGL_ANGLE_QUERY_SURFACE_POINTER)
#define REGAL_NO_PLUGIN_EGL_ANGLE_QUERY_SURFACE_POINTER
#endif

#if (defined(EGL_ANGLE_QUERY_SURFACE_POINTER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_ANGLE_QUERY_SURFACE_POINTER)) && !defined(REGAL_NO_DECLARATION_EGL_ANGLE_QUERY_SURFACE_POINTER)
#define REGAL_NO_DECLARATION_EGL_ANGLE_QUERY_SURFACE_POINTER
#endif

#ifndef EGL_ANGLE_query_surface_pointer
#define EGL_ANGLE_query_surface_pointer 1
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_ANGLE_QUERY_SURFACE_POINTER
typedef EGLBoolean (REGAL_CALL *PFNEGLQUERYSURFACEPOINTERANGLEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, GLvoid **value);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_ANGLE_QUERY_SURFACE_POINTER
#define eglQuerySurfacePointerANGLE         reglQuerySurfacePointerANGLE
#endif

#ifndef REGAL_NO_DECLARATION_EGL_ANGLE_QUERY_SURFACE_POINTER
REGAL_DECL EGLBoolean REGAL_CALL eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, GLvoid **value);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_ANGLE_QUERY_SURFACE_POINTER
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglQuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, GLvoid **value);
#endif

/**
 ** EGL_ANGLE_surface_d3d_texture_2d_share_handle
 **/

#if (defined(EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)) && !defined(REGAL_NO_ENUM_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)
#define REGAL_NO_ENUM_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE
#endif

#if (defined(EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)) && !defined(REGAL_NO_TYPEDEF_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)
#define REGAL_NO_TYPEDEF_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE
#endif

#if (defined(EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)) && !defined(REGAL_NO_NAMESPACE_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)
#define REGAL_NO_NAMESPACE_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE
#endif

#if (defined(EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)) && !defined(REGAL_NO_PLUGIN_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)
#define REGAL_NO_PLUGIN_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE
#endif

#if (defined(EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)) && !defined(REGAL_NO_DECLARATION_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE)
#define REGAL_NO_DECLARATION_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE
#endif

#ifndef EGL_ANGLE_surface_d3d_texture_2d_share_handle
#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
#endif

#ifndef REGAL_NO_ENUM_EGL_ANGLE_SURFACE_D3D_TEXTURE_2D_SHARE_HANDLE
#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 /* 12800 */
#endif

/**
 ** EGL_EXT_create_context_robustness
 **/

#if (defined(EGL_EXT_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_ENUM_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_ENUM_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(EGL_EXT_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_TYPEDEF_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_TYPEDEF_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(EGL_EXT_CREATE_CONTEXT_ROBUSTNESS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_NAMESPACE_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_NAMESPACE_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(EGL_EXT_CREATE_CONTEXT_ROBUSTNESS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_PLUGIN_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_PLUGIN_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS
#endif

#if (defined(EGL_EXT_CREATE_CONTEXT_ROBUSTNESS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)) && !defined(REGAL_NO_DECLARATION_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS)
#define REGAL_NO_DECLARATION_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS
#endif

#ifndef EGL_EXT_create_context_robustness
#define EGL_EXT_create_context_robustness 1
#endif

#ifndef REGAL_NO_ENUM_EGL_EXT_CREATE_CONTEXT_ROBUSTNESS
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT               0x30bf     /* 12479 */
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT 0x3138     /* 12600 */
#define EGL_NO_RESET_NOTIFICATION_EXT                      0x31be     /* 12734 */
#define EGL_LOSE_CONTEXT_ON_RESET_EXT                      0x31bf     /* 12735 */
#endif

/**
 ** EGL_EXT_multiview_window
 **/

#if (defined(EGL_EXT_MULTIVIEW_WINDOW) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_EXT_MULTIVIEW_WINDOW)) && !defined(REGAL_NO_ENUM_EGL_EXT_MULTIVIEW_WINDOW)
#define REGAL_NO_ENUM_EGL_EXT_MULTIVIEW_WINDOW
#endif

#if (defined(EGL_EXT_MULTIVIEW_WINDOW) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_EXT_MULTIVIEW_WINDOW)) && !defined(REGAL_NO_TYPEDEF_EGL_EXT_MULTIVIEW_WINDOW)
#define REGAL_NO_TYPEDEF_EGL_EXT_MULTIVIEW_WINDOW
#endif

#if (defined(EGL_EXT_MULTIVIEW_WINDOW) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_EXT_MULTIVIEW_WINDOW)) && !defined(REGAL_NO_NAMESPACE_EGL_EXT_MULTIVIEW_WINDOW)
#define REGAL_NO_NAMESPACE_EGL_EXT_MULTIVIEW_WINDOW
#endif

#if (defined(EGL_EXT_MULTIVIEW_WINDOW) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_EXT_MULTIVIEW_WINDOW)) && !defined(REGAL_NO_PLUGIN_EGL_EXT_MULTIVIEW_WINDOW)
#define REGAL_NO_PLUGIN_EGL_EXT_MULTIVIEW_WINDOW
#endif

#if (defined(EGL_EXT_MULTIVIEW_WINDOW) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_EXT_MULTIVIEW_WINDOW)) && !defined(REGAL_NO_DECLARATION_EGL_EXT_MULTIVIEW_WINDOW)
#define REGAL_NO_DECLARATION_EGL_EXT_MULTIVIEW_WINDOW
#endif

#ifndef EGL_EXT_multiview_window
#define EGL_EXT_multiview_window 1
#endif

#ifndef REGAL_NO_ENUM_EGL_EXT_MULTIVIEW_WINDOW
#define EGL_MULTIVIEW_VIEW_COUNT_EXT 0x3134 /* 12596 */
#endif

/**
 ** EGL_HI_colorformats
 **/

#if (defined(EGL_HI_COLORFORMATS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_HI_COLORFORMATS)) && !defined(REGAL_NO_ENUM_EGL_HI_COLORFORMATS)
#define REGAL_NO_ENUM_EGL_HI_COLORFORMATS
#endif

#if (defined(EGL_HI_COLORFORMATS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_HI_COLORFORMATS)) && !defined(REGAL_NO_TYPEDEF_EGL_HI_COLORFORMATS)
#define REGAL_NO_TYPEDEF_EGL_HI_COLORFORMATS
#endif

#if (defined(EGL_HI_COLORFORMATS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_HI_COLORFORMATS)) && !defined(REGAL_NO_NAMESPACE_EGL_HI_COLORFORMATS)
#define REGAL_NO_NAMESPACE_EGL_HI_COLORFORMATS
#endif

#if (defined(EGL_HI_COLORFORMATS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_HI_COLORFORMATS)) && !defined(REGAL_NO_PLUGIN_EGL_HI_COLORFORMATS)
#define REGAL_NO_PLUGIN_EGL_HI_COLORFORMATS
#endif

#if (defined(EGL_HI_COLORFORMATS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_HI_COLORFORMATS)) && !defined(REGAL_NO_DECLARATION_EGL_HI_COLORFORMATS)
#define REGAL_NO_DECLARATION_EGL_HI_COLORFORMATS
#endif

#ifndef EGL_HI_colorformats
#define EGL_HI_colorformats 1
#endif

#ifndef REGAL_NO_ENUM_EGL_HI_COLORFORMATS
#define EGL_COLOR_FORMAT_HI 0x8f70     /* 36720 */
#define EGL_COLOR_RGB_HI    0x8f71     /* 36721 */
#define EGL_COLOR_RGBA_HI   0x8f72     /* 36722 */
#define EGL_COLOR_ARGB_HI   0x8f73     /* 36723 */
#endif

/**
 ** EGL_IMG_context_priority
 **/

#if (defined(EGL_IMG_CONTEXT_PRIORITY) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_IMG_CONTEXT_PRIORITY)) && !defined(REGAL_NO_ENUM_EGL_IMG_CONTEXT_PRIORITY)
#define REGAL_NO_ENUM_EGL_IMG_CONTEXT_PRIORITY
#endif

#if (defined(EGL_IMG_CONTEXT_PRIORITY) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_IMG_CONTEXT_PRIORITY)) && !defined(REGAL_NO_TYPEDEF_EGL_IMG_CONTEXT_PRIORITY)
#define REGAL_NO_TYPEDEF_EGL_IMG_CONTEXT_PRIORITY
#endif

#if (defined(EGL_IMG_CONTEXT_PRIORITY) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_IMG_CONTEXT_PRIORITY)) && !defined(REGAL_NO_NAMESPACE_EGL_IMG_CONTEXT_PRIORITY)
#define REGAL_NO_NAMESPACE_EGL_IMG_CONTEXT_PRIORITY
#endif

#if (defined(EGL_IMG_CONTEXT_PRIORITY) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_IMG_CONTEXT_PRIORITY)) && !defined(REGAL_NO_PLUGIN_EGL_IMG_CONTEXT_PRIORITY)
#define REGAL_NO_PLUGIN_EGL_IMG_CONTEXT_PRIORITY
#endif

#if (defined(EGL_IMG_CONTEXT_PRIORITY) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_IMG_CONTEXT_PRIORITY)) && !defined(REGAL_NO_DECLARATION_EGL_IMG_CONTEXT_PRIORITY)
#define REGAL_NO_DECLARATION_EGL_IMG_CONTEXT_PRIORITY
#endif

#ifndef EGL_IMG_context_priority
#define EGL_IMG_context_priority 1
#endif

#ifndef REGAL_NO_ENUM_EGL_IMG_CONTEXT_PRIORITY
#define EGL_CONTEXT_PRIORITY_LEVEL_IMG  0x3100     /* 12544 */
#define EGL_CONTEXT_PRIORITY_HIGH_IMG   0x3101     /* 12545 */
#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG 0x3102     /* 12546 */
#define EGL_CONTEXT_PRIORITY_LOW_IMG    0x3103     /* 12547 */
#endif

/**
 ** EGL_KHR_config_attribs
 **/

#if (defined(EGL_KHR_CONFIG_ATTRIBS) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_CONFIG_ATTRIBS)) && !defined(REGAL_NO_ENUM_EGL_KHR_CONFIG_ATTRIBS)
#define REGAL_NO_ENUM_EGL_KHR_CONFIG_ATTRIBS
#endif

#if (defined(EGL_KHR_CONFIG_ATTRIBS) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_CONFIG_ATTRIBS)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_CONFIG_ATTRIBS)
#define REGAL_NO_TYPEDEF_EGL_KHR_CONFIG_ATTRIBS
#endif

#if (defined(EGL_KHR_CONFIG_ATTRIBS) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_CONFIG_ATTRIBS)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_CONFIG_ATTRIBS)
#define REGAL_NO_NAMESPACE_EGL_KHR_CONFIG_ATTRIBS
#endif

#if (defined(EGL_KHR_CONFIG_ATTRIBS) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_CONFIG_ATTRIBS)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_CONFIG_ATTRIBS)
#define REGAL_NO_PLUGIN_EGL_KHR_CONFIG_ATTRIBS
#endif

#if (defined(EGL_KHR_CONFIG_ATTRIBS) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_CONFIG_ATTRIBS)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_CONFIG_ATTRIBS)
#define REGAL_NO_DECLARATION_EGL_KHR_CONFIG_ATTRIBS
#endif

#ifndef EGL_KHR_config_attribs
#define EGL_KHR_config_attribs 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_CONFIG_ATTRIBS
#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x20       /* 32 */
#define EGL_CONFORMANT_KHR               0x3042     /* 12354 */
#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR  0x40       /* 64 */
#endif

/**
 ** EGL_KHR_create_context
 **/

#if (defined(EGL_KHR_CREATE_CONTEXT) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_CREATE_CONTEXT)) && !defined(REGAL_NO_ENUM_EGL_KHR_CREATE_CONTEXT)
#define REGAL_NO_ENUM_EGL_KHR_CREATE_CONTEXT
#endif

#if (defined(EGL_KHR_CREATE_CONTEXT) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_CREATE_CONTEXT)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_CREATE_CONTEXT)
#define REGAL_NO_TYPEDEF_EGL_KHR_CREATE_CONTEXT
#endif

#if (defined(EGL_KHR_CREATE_CONTEXT) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_CREATE_CONTEXT)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_CREATE_CONTEXT)
#define REGAL_NO_NAMESPACE_EGL_KHR_CREATE_CONTEXT
#endif

#if (defined(EGL_KHR_CREATE_CONTEXT) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_CREATE_CONTEXT)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_CREATE_CONTEXT)
#define REGAL_NO_PLUGIN_EGL_KHR_CREATE_CONTEXT
#endif

#if (defined(EGL_KHR_CREATE_CONTEXT) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_CREATE_CONTEXT)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_CREATE_CONTEXT)
#define REGAL_NO_DECLARATION_EGL_KHR_CREATE_CONTEXT
#endif

#ifndef EGL_KHR_create_context
#define EGL_KHR_create_context 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_CREATE_CONTEXT
#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR            0x1
#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR                   0x1
#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR   0x2
#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR      0x2
#define EGL_CONTEXT_MAJOR_VERSION_KHR                      0x3098     /* 12440 */
#define EGL_CONTEXT_MINOR_VERSION_KHR                      0x30fb     /* 12539 */
#define EGL_CONTEXT_FLAGS_KHR                              0x30fc     /* 12540 */
#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR                0x30fd     /* 12541 */
#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR 0x31bd     /* 12733 */
#define EGL_NO_RESET_NOTIFICATION_KHR                      0x31be     /* 12734 */
#define EGL_LOSE_CONTEXT_ON_RESET_KHR                      0x31bf     /* 12735 */
#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR           0x4
#define EGL_OPENGL_ES3_BIT_KHR                             0x40       /* 64 */
#endif

/**
 ** EGL_KHR_fence_sync
 **/

#if (defined(EGL_KHR_FENCE_SYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_FENCE_SYNC)) && !defined(REGAL_NO_ENUM_EGL_KHR_FENCE_SYNC)
#define REGAL_NO_ENUM_EGL_KHR_FENCE_SYNC
#endif

#if (defined(EGL_KHR_FENCE_SYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_FENCE_SYNC)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_FENCE_SYNC)
#define REGAL_NO_TYPEDEF_EGL_KHR_FENCE_SYNC
#endif

#if (defined(EGL_KHR_FENCE_SYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_FENCE_SYNC)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_FENCE_SYNC)
#define REGAL_NO_NAMESPACE_EGL_KHR_FENCE_SYNC
#endif

#if (defined(EGL_KHR_FENCE_SYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_FENCE_SYNC)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_FENCE_SYNC)
#define REGAL_NO_PLUGIN_EGL_KHR_FENCE_SYNC
#endif

#if (defined(EGL_KHR_FENCE_SYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_FENCE_SYNC)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_FENCE_SYNC)
#define REGAL_NO_DECLARATION_EGL_KHR_FENCE_SYNC
#endif

#ifndef EGL_KHR_fence_sync
#define EGL_KHR_fence_sync 1
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_KHR_FENCE_SYNC
typedef EGLBoolean (REGAL_CALL *PFNEGLDESTROYSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR GLsync);
typedef EGLBoolean (REGAL_CALL *PFNEGLGETSYNCATTRIBKHRPROC)(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint attribute, EGLint *value);
typedef EGLSyncKHR (REGAL_CALL *PFNEGLCREATESYNCKHRPROC)(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
typedef EGLint (REGAL_CALL *PFNEGLCLIENTWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint flags, EGLTimeKHR timeout);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_KHR_FENCE_SYNC
#define eglClientWaitSyncKHR                reglClientWaitSyncKHR
#define eglCreateSyncKHR                    reglCreateSyncKHR
#define eglDestroySyncKHR                   reglDestroySyncKHR
#define eglGetSyncAttribKHR                 reglGetSyncAttribKHR
#endif

#ifndef REGAL_NO_DECLARATION_EGL_KHR_FENCE_SYNC
REGAL_DECL EGLBoolean REGAL_CALL eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR GLsync);
REGAL_DECL EGLBoolean REGAL_CALL eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint attribute, EGLint *value);
REGAL_DECL EGLSyncKHR REGAL_CALL eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
REGAL_DECL EGLint REGAL_CALL eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint flags, EGLTimeKHR timeout);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_KHR_FENCE_SYNC
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR GLsync);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint attribute, EGLint *value);
REGAL_DECL EGLSyncKHR REGAL_CALL plugin_eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list);
REGAL_DECL EGLint REGAL_CALL plugin_eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint flags, EGLTimeKHR timeout);
#endif

/**
 ** EGL_KHR_gl_texture_cubemap_image
 **/

#if (defined(EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)) && !defined(REGAL_NO_ENUM_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)
#define REGAL_NO_ENUM_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE
#endif

#if (defined(EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)
#define REGAL_NO_TYPEDEF_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE
#endif

#if (defined(EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)
#define REGAL_NO_NAMESPACE_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE
#endif

#if (defined(EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)
#define REGAL_NO_PLUGIN_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE
#endif

#if (defined(EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE)
#define REGAL_NO_DECLARATION_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE
#endif

#ifndef EGL_KHR_gl_texture_cubemap_image
#define EGL_KHR_gl_texture_cubemap_image 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_GL_TEXTURE_CUBEMAP_IMAGE
#define EGL_GL_TEXTURE_2D_KHR                  0x30b1     /* 12465 */
#define EGL_GL_TEXTURE_3D_KHR                  0x30b2     /* 12466 */
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30b3     /* 12467 */
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30b4     /* 12468 */
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30b5     /* 12469 */
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30b6     /* 12470 */
#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30b7     /* 12471 */
#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30b8     /* 12472 */
#define EGL_GL_RENDERBUFFER_KHR                0x30b9     /* 12473 */
#define EGL_GL_TEXTURE_LEVEL_KHR               0x30bc     /* 12476 */
#define EGL_GL_TEXTURE_ZOFFSET_KHR             0x30bd     /* 12477 */
#endif

/**
 ** EGL_KHR_image_base
 **/

#if (defined(EGL_KHR_IMAGE_BASE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_IMAGE_BASE)) && !defined(REGAL_NO_ENUM_EGL_KHR_IMAGE_BASE)
#define REGAL_NO_ENUM_EGL_KHR_IMAGE_BASE
#endif

#if (defined(EGL_KHR_IMAGE_BASE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_IMAGE_BASE)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_IMAGE_BASE)
#define REGAL_NO_TYPEDEF_EGL_KHR_IMAGE_BASE
#endif

#if (defined(EGL_KHR_IMAGE_BASE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_IMAGE_BASE)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_IMAGE_BASE)
#define REGAL_NO_NAMESPACE_EGL_KHR_IMAGE_BASE
#endif

#if (defined(EGL_KHR_IMAGE_BASE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_IMAGE_BASE)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_IMAGE_BASE)
#define REGAL_NO_PLUGIN_EGL_KHR_IMAGE_BASE
#endif

#if (defined(EGL_KHR_IMAGE_BASE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_IMAGE_BASE)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_IMAGE_BASE)
#define REGAL_NO_DECLARATION_EGL_KHR_IMAGE_BASE
#endif

#ifndef EGL_KHR_image_base
#define EGL_KHR_image_base 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_IMAGE_BASE
#define EGL_IMAGE_PRESERVED_KHR 0x30d2 /* 12498 */
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_KHR_IMAGE_BASE
typedef EGLBoolean (REGAL_CALL *PFNEGLDESTROYIMAGEKHRPROC)(EGLDisplay dpy, EGLImageKHR image);
typedef EGLImageKHR (REGAL_CALL *PFNEGLCREATEIMAGEKHRPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_KHR_IMAGE_BASE
#define eglCreateImageKHR                   reglCreateImageKHR
#define eglDestroyImageKHR                  reglDestroyImageKHR
#endif

#ifndef REGAL_NO_DECLARATION_EGL_KHR_IMAGE_BASE
REGAL_DECL EGLBoolean REGAL_CALL eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image);
REGAL_DECL EGLImageKHR REGAL_CALL eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_KHR_IMAGE_BASE
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image);
REGAL_DECL EGLImageKHR REGAL_CALL plugin_eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
#endif

/**
 ** EGL_KHR_image_pixmap
 **/

#if (defined(EGL_KHR_IMAGE_PIXMAP) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_IMAGE_PIXMAP)) && !defined(REGAL_NO_ENUM_EGL_KHR_IMAGE_PIXMAP)
#define REGAL_NO_ENUM_EGL_KHR_IMAGE_PIXMAP
#endif

#if (defined(EGL_KHR_IMAGE_PIXMAP) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_IMAGE_PIXMAP)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_IMAGE_PIXMAP)
#define REGAL_NO_TYPEDEF_EGL_KHR_IMAGE_PIXMAP
#endif

#if (defined(EGL_KHR_IMAGE_PIXMAP) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_IMAGE_PIXMAP)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_IMAGE_PIXMAP)
#define REGAL_NO_NAMESPACE_EGL_KHR_IMAGE_PIXMAP
#endif

#if (defined(EGL_KHR_IMAGE_PIXMAP) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_IMAGE_PIXMAP)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_IMAGE_PIXMAP)
#define REGAL_NO_PLUGIN_EGL_KHR_IMAGE_PIXMAP
#endif

#if (defined(EGL_KHR_IMAGE_PIXMAP) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_IMAGE_PIXMAP)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_IMAGE_PIXMAP)
#define REGAL_NO_DECLARATION_EGL_KHR_IMAGE_PIXMAP
#endif

#ifndef EGL_KHR_image_pixmap
#define EGL_KHR_image_pixmap 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_IMAGE_PIXMAP
#define EGL_NATIVE_PIXMAP_KHR 0x30b0 /* 12464 */
#endif

/**
 ** EGL_KHR_lock_surface
 **/

#if (defined(EGL_KHR_LOCK_SURFACE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE)) && !defined(REGAL_NO_ENUM_EGL_KHR_LOCK_SURFACE)
#define REGAL_NO_ENUM_EGL_KHR_LOCK_SURFACE
#endif

#if (defined(EGL_KHR_LOCK_SURFACE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_LOCK_SURFACE)
#define REGAL_NO_TYPEDEF_EGL_KHR_LOCK_SURFACE
#endif

#if (defined(EGL_KHR_LOCK_SURFACE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_LOCK_SURFACE)
#define REGAL_NO_NAMESPACE_EGL_KHR_LOCK_SURFACE
#endif

#if (defined(EGL_KHR_LOCK_SURFACE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_LOCK_SURFACE)
#define REGAL_NO_PLUGIN_EGL_KHR_LOCK_SURFACE
#endif

#if (defined(EGL_KHR_LOCK_SURFACE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_LOCK_SURFACE)
#define REGAL_NO_DECLARATION_EGL_KHR_LOCK_SURFACE
#endif

#ifndef EGL_KHR_lock_surface
#define EGL_KHR_lock_surface 1
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_KHR_LOCK_SURFACE
typedef EGLBoolean (REGAL_CALL *PFNEGLLOCKSURFACEKHRPROC)(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
typedef EGLBoolean (REGAL_CALL *PFNEGLUNLOCKSURFACEKHRPROC)(EGLDisplay display, EGLSurface surface);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_KHR_LOCK_SURFACE
#define eglLockSurfaceKHR                   reglLockSurfaceKHR
#define eglUnlockSurfaceKHR                 reglUnlockSurfaceKHR
#endif

#ifndef REGAL_NO_DECLARATION_EGL_KHR_LOCK_SURFACE
REGAL_DECL EGLBoolean REGAL_CALL eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
REGAL_DECL EGLBoolean REGAL_CALL eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_KHR_LOCK_SURFACE
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglLockSurfaceKHR(EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglUnlockSurfaceKHR(EGLDisplay display, EGLSurface surface);
#endif

/**
 ** EGL_KHR_lock_surface2
 **/

#if (defined(EGL_KHR_LOCK_SURFACE2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE2)) && !defined(REGAL_NO_ENUM_EGL_KHR_LOCK_SURFACE2)
#define REGAL_NO_ENUM_EGL_KHR_LOCK_SURFACE2
#endif

#if (defined(EGL_KHR_LOCK_SURFACE2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE2)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_LOCK_SURFACE2)
#define REGAL_NO_TYPEDEF_EGL_KHR_LOCK_SURFACE2
#endif

#if (defined(EGL_KHR_LOCK_SURFACE2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE2)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_LOCK_SURFACE2)
#define REGAL_NO_NAMESPACE_EGL_KHR_LOCK_SURFACE2
#endif

#if (defined(EGL_KHR_LOCK_SURFACE2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE2)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_LOCK_SURFACE2)
#define REGAL_NO_PLUGIN_EGL_KHR_LOCK_SURFACE2
#endif

#if (defined(EGL_KHR_LOCK_SURFACE2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_LOCK_SURFACE2)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_LOCK_SURFACE2)
#define REGAL_NO_DECLARATION_EGL_KHR_LOCK_SURFACE2
#endif

#ifndef EGL_KHR_lock_surface2
#define EGL_KHR_lock_surface2 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_LOCK_SURFACE2
#define EGL_READ_SURFACE_BIT_KHR              0x1
#define EGL_OPTIMAL_FORMAT_BIT_KHR            0x100      /* 256 */
#define EGL_WRITE_SURFACE_BIT_KHR             0x2
#define EGL_MATCH_FORMAT_KHR                  0x3043     /* 12355 */
#define EGL_FORMAT_RGB_565_EXACT_KHR          0x30c0     /* 12480 */
#define EGL_FORMAT_RGB_565_KHR                0x30c1     /* 12481 */
#define EGL_FORMAT_RGBA_8888_EXACT_KHR        0x30c2     /* 12482 */
#define EGL_FORMAT_RGBA_8888_KHR              0x30c3     /* 12483 */
#define EGL_MAP_PRESERVE_PIXELS_KHR           0x30c4     /* 12484 */
#define EGL_LOCK_USAGE_HINT_KHR               0x30c5     /* 12485 */
#define EGL_BITMAP_POINTER_KHR                0x30c6     /* 12486 */
#define EGL_BITMAP_PITCH_KHR                  0x30c7     /* 12487 */
#define EGL_BITMAP_ORIGIN_KHR                 0x30c8     /* 12488 */
#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR       0x30c9     /* 12489 */
#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR     0x30ca     /* 12490 */
#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR      0x30cb     /* 12491 */
#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR     0x30cc     /* 12492 */
#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30cd     /* 12493 */
#define EGL_LOWER_LEFT_KHR                    0x30ce     /* 12494 */
#define EGL_UPPER_LEFT_KHR                    0x30cf     /* 12495 */
#define EGL_BITMAP_PIXEL_SIZE_KHR             0x3110     /* 12560 */
#define EGL_LOCK_SURFACE_BIT_KHR              0x80       /* 128 */
#endif

/**
 ** EGL_KHR_reusable_sync
 **/

#if (defined(EGL_KHR_REUSABLE_SYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_REUSABLE_SYNC)) && !defined(REGAL_NO_ENUM_EGL_KHR_REUSABLE_SYNC)
#define REGAL_NO_ENUM_EGL_KHR_REUSABLE_SYNC
#endif

#if (defined(EGL_KHR_REUSABLE_SYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_REUSABLE_SYNC)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_REUSABLE_SYNC)
#define REGAL_NO_TYPEDEF_EGL_KHR_REUSABLE_SYNC
#endif

#if (defined(EGL_KHR_REUSABLE_SYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_REUSABLE_SYNC)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_REUSABLE_SYNC)
#define REGAL_NO_NAMESPACE_EGL_KHR_REUSABLE_SYNC
#endif

#if (defined(EGL_KHR_REUSABLE_SYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_REUSABLE_SYNC)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_REUSABLE_SYNC)
#define REGAL_NO_PLUGIN_EGL_KHR_REUSABLE_SYNC
#endif

#if (defined(EGL_KHR_REUSABLE_SYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_REUSABLE_SYNC)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_REUSABLE_SYNC)
#define REGAL_NO_DECLARATION_EGL_KHR_REUSABLE_SYNC
#endif

#ifndef EGL_KHR_reusable_sync
#define EGL_KHR_reusable_sync 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_REUSABLE_SYNC
#define EGL_SYNC_REUSABLE_KHR 0x30fa /* 12538 */
#endif

/**
 ** EGL_KHR_stream
 **/

#if (defined(EGL_KHR_STREAM) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_STREAM)) && !defined(REGAL_NO_ENUM_EGL_KHR_STREAM)
#define REGAL_NO_ENUM_EGL_KHR_STREAM
#endif

#if (defined(EGL_KHR_STREAM) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_STREAM)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_STREAM)
#define REGAL_NO_TYPEDEF_EGL_KHR_STREAM
#endif

#if (defined(EGL_KHR_STREAM) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_STREAM)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_STREAM)
#define REGAL_NO_NAMESPACE_EGL_KHR_STREAM
#endif

#if (defined(EGL_KHR_STREAM) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_STREAM)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_STREAM)
#define REGAL_NO_PLUGIN_EGL_KHR_STREAM
#endif

#if (defined(EGL_KHR_STREAM) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_STREAM)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_STREAM)
#define REGAL_NO_DECLARATION_EGL_KHR_STREAM
#endif

#ifndef EGL_KHR_stream
#define EGL_KHR_stream 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_STREAM
#define EGL_CONSUMER_LATENCY_USEC_KHR            0x3210     /* 12816 */
#define EGL_PRODUCER_FRAME_KHR                   0x3212     /* 12818 */
#define EGL_CONSUMER_FRAME_KHR                   0x3213     /* 12819 */
#define EGL_STREAM_STATE_KHR                     0x3214     /* 12820 */
#define EGL_STREAM_STATE_CREATED_KHR             0x3215     /* 12821 */
#define EGL_STREAM_STATE_CONNECTING_KHR          0x3216     /* 12822 */
#define EGL_STREAM_STATE_EMPTY_KHR               0x3217     /* 12823 */
#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR 0x3218     /* 12824 */
#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR 0x3219     /* 12825 */
#define EGL_STREAM_STATE_DISCONNECTED_KHR        0x321a     /* 12826 */
#define EGL_BAD_STREAM_KHR                       0x321b     /* 12827 */
#define EGL_BAD_STATE_KHR                        0x321c     /* 12828 */
#endif

/**
 ** EGL_KHR_stream_consumer_gltexture
 **/

#if (defined(EGL_KHR_STREAM_CONSUMER_GLTEXTURE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)) && !defined(REGAL_NO_ENUM_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)
#define REGAL_NO_ENUM_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
#endif

#if (defined(EGL_KHR_STREAM_CONSUMER_GLTEXTURE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)
#define REGAL_NO_TYPEDEF_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
#endif

#if (defined(EGL_KHR_STREAM_CONSUMER_GLTEXTURE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)
#define REGAL_NO_NAMESPACE_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
#endif

#if (defined(EGL_KHR_STREAM_CONSUMER_GLTEXTURE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)
#define REGAL_NO_PLUGIN_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
#endif

#if (defined(EGL_KHR_STREAM_CONSUMER_GLTEXTURE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_STREAM_CONSUMER_GLTEXTURE)
#define REGAL_NO_DECLARATION_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
#endif

#ifndef EGL_KHR_stream_consumer_gltexture
#define EGL_KHR_stream_consumer_gltexture 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR 0x321e /* 12830 */
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
typedef EGLBoolean (REGAL_CALL *PFNEGLSTREAMCONSUMERACQUIREKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLBoolean (REGAL_CALL *PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLBoolean (REGAL_CALL *PFNEGLSTREAMCONSUMERRELEASEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
#define eglStreamConsumerAcquireKHR         reglStreamConsumerAcquireKHR
#define eglStreamConsumerGLTextureExternalKHR reglStreamConsumerGLTextureExternalKHR
#define eglStreamConsumerReleaseKHR         reglStreamConsumerReleaseKHR
#endif

#ifndef REGAL_NO_DECLARATION_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
REGAL_DECL EGLBoolean REGAL_CALL eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream);
REGAL_DECL EGLBoolean REGAL_CALL eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream);
REGAL_DECL EGLBoolean REGAL_CALL eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_KHR_STREAM_CONSUMER_GLTEXTURE
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream);
#endif

/**
 ** EGL_KHR_stream_cross_process_fd
 **/

#if (defined(EGL_KHR_STREAM_CROSS_PROCESS_FD) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_STREAM_CROSS_PROCESS_FD)) && !defined(REGAL_NO_ENUM_EGL_KHR_STREAM_CROSS_PROCESS_FD)
#define REGAL_NO_ENUM_EGL_KHR_STREAM_CROSS_PROCESS_FD
#endif

#if (defined(EGL_KHR_STREAM_CROSS_PROCESS_FD) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_STREAM_CROSS_PROCESS_FD)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_STREAM_CROSS_PROCESS_FD)
#define REGAL_NO_TYPEDEF_EGL_KHR_STREAM_CROSS_PROCESS_FD
#endif

#if (defined(EGL_KHR_STREAM_CROSS_PROCESS_FD) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_STREAM_CROSS_PROCESS_FD)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_STREAM_CROSS_PROCESS_FD)
#define REGAL_NO_NAMESPACE_EGL_KHR_STREAM_CROSS_PROCESS_FD
#endif

#if (defined(EGL_KHR_STREAM_CROSS_PROCESS_FD) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_STREAM_CROSS_PROCESS_FD)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_STREAM_CROSS_PROCESS_FD)
#define REGAL_NO_PLUGIN_EGL_KHR_STREAM_CROSS_PROCESS_FD
#endif

#if (defined(EGL_KHR_STREAM_CROSS_PROCESS_FD) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_STREAM_CROSS_PROCESS_FD)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_STREAM_CROSS_PROCESS_FD)
#define REGAL_NO_DECLARATION_EGL_KHR_STREAM_CROSS_PROCESS_FD
#endif

#ifndef EGL_KHR_stream_cross_process_fd
#define EGL_KHR_stream_cross_process_fd 1
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_KHR_STREAM_CROSS_PROCESS_FD
typedef EGLNativeFileDescriptorKHR (REGAL_CALL *PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
typedef EGLStreamKHR (REGAL_CALL *PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_KHR_STREAM_CROSS_PROCESS_FD
#define eglCreateStreamFromFileDescriptorKHR reglCreateStreamFromFileDescriptorKHR
#define eglGetStreamFileDescriptorKHR       reglGetStreamFileDescriptorKHR
#endif

#ifndef REGAL_NO_DECLARATION_EGL_KHR_STREAM_CROSS_PROCESS_FD
REGAL_DECL EGLNativeFileDescriptorKHR REGAL_CALL eglGetStreamFileDescriptorKHR(EGLDisplay dpy, EGLStreamKHR stream);
REGAL_DECL EGLStreamKHR REGAL_CALL eglCreateStreamFromFileDescriptorKHR(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_KHR_STREAM_CROSS_PROCESS_FD
REGAL_DECL EGLNativeFileDescriptorKHR REGAL_CALL plugin_eglGetStreamFileDescriptorKHR(EGLDisplay dpy, EGLStreamKHR stream);
REGAL_DECL EGLStreamKHR REGAL_CALL plugin_eglCreateStreamFromFileDescriptorKHR(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
#endif

/**
 ** EGL_KHR_stream_fifo
 **/

#if (defined(EGL_KHR_STREAM_FIFO) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_STREAM_FIFO)) && !defined(REGAL_NO_ENUM_EGL_KHR_STREAM_FIFO)
#define REGAL_NO_ENUM_EGL_KHR_STREAM_FIFO
#endif

#if (defined(EGL_KHR_STREAM_FIFO) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_STREAM_FIFO)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_STREAM_FIFO)
#define REGAL_NO_TYPEDEF_EGL_KHR_STREAM_FIFO
#endif

#if (defined(EGL_KHR_STREAM_FIFO) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_STREAM_FIFO)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_STREAM_FIFO)
#define REGAL_NO_NAMESPACE_EGL_KHR_STREAM_FIFO
#endif

#if (defined(EGL_KHR_STREAM_FIFO) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_STREAM_FIFO)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_STREAM_FIFO)
#define REGAL_NO_PLUGIN_EGL_KHR_STREAM_FIFO
#endif

#if (defined(EGL_KHR_STREAM_FIFO) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_STREAM_FIFO)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_STREAM_FIFO)
#define REGAL_NO_DECLARATION_EGL_KHR_STREAM_FIFO
#endif

#ifndef EGL_KHR_stream_fifo
#define EGL_KHR_stream_fifo 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_STREAM_FIFO
#define EGL_STREAM_FIFO_LENGTH_KHR   0x31fc     /* 12796 */
#define EGL_STREAM_TIME_NOW_KHR      0x31fd     /* 12797 */
#define EGL_STREAM_TIME_CONSUMER_KHR 0x31fe     /* 12798 */
#define EGL_STREAM_TIME_PRODUCER_KHR 0x31ff     /* 12799 */
#endif

/**
 ** EGL_KHR_stream_producer_eglsurface
 **/

#if (defined(EGL_KHR_STREAM_PRODUCER_EGLSURFACE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)) && !defined(REGAL_NO_ENUM_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)
#define REGAL_NO_ENUM_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
#endif

#if (defined(EGL_KHR_STREAM_PRODUCER_EGLSURFACE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)
#define REGAL_NO_TYPEDEF_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
#endif

#if (defined(EGL_KHR_STREAM_PRODUCER_EGLSURFACE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)
#define REGAL_NO_NAMESPACE_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
#endif

#if (defined(EGL_KHR_STREAM_PRODUCER_EGLSURFACE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)
#define REGAL_NO_PLUGIN_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
#endif

#if (defined(EGL_KHR_STREAM_PRODUCER_EGLSURFACE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_STREAM_PRODUCER_EGLSURFACE)
#define REGAL_NO_DECLARATION_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
#endif

#ifndef EGL_KHR_stream_producer_eglsurface
#define EGL_KHR_stream_producer_eglsurface 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
#define EGL_STREAM_BIT_KHR 0x800 /* 2048 */
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
typedef EGLSurface (REGAL_CALL *PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
#define eglCreateStreamProducerSurfaceKHR   reglCreateStreamProducerSurfaceKHR
#endif

#ifndef REGAL_NO_DECLARATION_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
REGAL_DECL EGLSurface REGAL_CALL eglCreateStreamProducerSurfaceKHR(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_KHR_STREAM_PRODUCER_EGLSURFACE
REGAL_DECL EGLSurface REGAL_CALL plugin_eglCreateStreamProducerSurfaceKHR(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint *attrib_list);
#endif

/**
 ** EGL_KHR_vg_parent_image
 **/

#if (defined(EGL_KHR_VG_PARENT_IMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_VG_PARENT_IMAGE)) && !defined(REGAL_NO_ENUM_EGL_KHR_VG_PARENT_IMAGE)
#define REGAL_NO_ENUM_EGL_KHR_VG_PARENT_IMAGE
#endif

#if (defined(EGL_KHR_VG_PARENT_IMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_VG_PARENT_IMAGE)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_VG_PARENT_IMAGE)
#define REGAL_NO_TYPEDEF_EGL_KHR_VG_PARENT_IMAGE
#endif

#if (defined(EGL_KHR_VG_PARENT_IMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_VG_PARENT_IMAGE)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_VG_PARENT_IMAGE)
#define REGAL_NO_NAMESPACE_EGL_KHR_VG_PARENT_IMAGE
#endif

#if (defined(EGL_KHR_VG_PARENT_IMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_VG_PARENT_IMAGE)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_VG_PARENT_IMAGE)
#define REGAL_NO_PLUGIN_EGL_KHR_VG_PARENT_IMAGE
#endif

#if (defined(EGL_KHR_VG_PARENT_IMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_VG_PARENT_IMAGE)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_VG_PARENT_IMAGE)
#define REGAL_NO_DECLARATION_EGL_KHR_VG_PARENT_IMAGE
#endif

#ifndef EGL_KHR_vg_parent_image
#define EGL_KHR_vg_parent_image 1
#endif

#ifndef REGAL_NO_ENUM_EGL_KHR_VG_PARENT_IMAGE
#define EGL_VG_PARENT_IMAGE_KHR 0x30ba /* 12474 */
#endif

/**
 ** EGL_KHR_wait_sync
 **/

#if (defined(EGL_KHR_WAIT_SYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_KHR_WAIT_SYNC)) && !defined(REGAL_NO_ENUM_EGL_KHR_WAIT_SYNC)
#define REGAL_NO_ENUM_EGL_KHR_WAIT_SYNC
#endif

#if (defined(EGL_KHR_WAIT_SYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_KHR_WAIT_SYNC)) && !defined(REGAL_NO_TYPEDEF_EGL_KHR_WAIT_SYNC)
#define REGAL_NO_TYPEDEF_EGL_KHR_WAIT_SYNC
#endif

#if (defined(EGL_KHR_WAIT_SYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_KHR_WAIT_SYNC)) && !defined(REGAL_NO_NAMESPACE_EGL_KHR_WAIT_SYNC)
#define REGAL_NO_NAMESPACE_EGL_KHR_WAIT_SYNC
#endif

#if (defined(EGL_KHR_WAIT_SYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_KHR_WAIT_SYNC)) && !defined(REGAL_NO_PLUGIN_EGL_KHR_WAIT_SYNC)
#define REGAL_NO_PLUGIN_EGL_KHR_WAIT_SYNC
#endif

#if (defined(EGL_KHR_WAIT_SYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_KHR_WAIT_SYNC)) && !defined(REGAL_NO_DECLARATION_EGL_KHR_WAIT_SYNC)
#define REGAL_NO_DECLARATION_EGL_KHR_WAIT_SYNC
#endif

#ifndef EGL_KHR_wait_sync
#define EGL_KHR_wait_sync 1
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_KHR_WAIT_SYNC
typedef EGLint (REGAL_CALL *PFNEGLWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint flags);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_KHR_WAIT_SYNC
#define eglWaitSyncKHR                      reglWaitSyncKHR
#endif

#ifndef REGAL_NO_DECLARATION_EGL_KHR_WAIT_SYNC
REGAL_DECL EGLint REGAL_CALL eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint flags);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_KHR_WAIT_SYNC
REGAL_DECL EGLint REGAL_CALL plugin_eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR GLsync, EGLint flags);
#endif

/**
 ** EGL_MESA_drm_image
 **/

#if (defined(EGL_MESA_DRM_IMAGE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_MESA_DRM_IMAGE)) && !defined(REGAL_NO_ENUM_EGL_MESA_DRM_IMAGE)
#define REGAL_NO_ENUM_EGL_MESA_DRM_IMAGE
#endif

#if (defined(EGL_MESA_DRM_IMAGE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_MESA_DRM_IMAGE)) && !defined(REGAL_NO_TYPEDEF_EGL_MESA_DRM_IMAGE)
#define REGAL_NO_TYPEDEF_EGL_MESA_DRM_IMAGE
#endif

#if (defined(EGL_MESA_DRM_IMAGE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_MESA_DRM_IMAGE)) && !defined(REGAL_NO_NAMESPACE_EGL_MESA_DRM_IMAGE)
#define REGAL_NO_NAMESPACE_EGL_MESA_DRM_IMAGE
#endif

#if (defined(EGL_MESA_DRM_IMAGE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_MESA_DRM_IMAGE)) && !defined(REGAL_NO_PLUGIN_EGL_MESA_DRM_IMAGE)
#define REGAL_NO_PLUGIN_EGL_MESA_DRM_IMAGE
#endif

#if (defined(EGL_MESA_DRM_IMAGE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_MESA_DRM_IMAGE)) && !defined(REGAL_NO_DECLARATION_EGL_MESA_DRM_IMAGE)
#define REGAL_NO_DECLARATION_EGL_MESA_DRM_IMAGE
#endif

#ifndef EGL_MESA_drm_image
#define EGL_MESA_drm_image 1
#endif

#ifndef REGAL_NO_ENUM_EGL_MESA_DRM_IMAGE
#define EGL_DRM_BUFFER_USE_SCANOUT_MESA   0x1
#define EGL_DRM_BUFFER_USE_SHARE_MESA     0x2
#define EGL_DRM_BUFFER_FORMAT_MESA        0x31d0     /* 12752 */
#define EGL_DRM_BUFFER_USE_MESA           0x31d1     /* 12753 */
#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31d2     /* 12754 */
#define EGL_DRM_BUFFER_MESA               0x31d3     /* 12755 */
#define EGL_DRM_BUFFER_STRIDE_MESA        0x31d4     /* 12756 */
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_MESA_DRM_IMAGE
typedef EGLBoolean (REGAL_CALL *PFNEGLEXPORTDRMIMAGEMESAPROC)(EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
typedef EGLImageKHR (REGAL_CALL *PFNEGLCREATEDRMIMAGEMESAPROC)(EGLDisplay dpy, const EGLint *attrib_list);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_MESA_DRM_IMAGE
#define eglCreateDRMImageMESA               reglCreateDRMImageMESA
#define eglExportDRMImageMESA               reglExportDRMImageMESA
#endif

#ifndef REGAL_NO_DECLARATION_EGL_MESA_DRM_IMAGE
REGAL_DECL EGLBoolean REGAL_CALL eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
REGAL_DECL EGLImageKHR REGAL_CALL eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attrib_list);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_MESA_DRM_IMAGE
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, EGLint *name, EGLint *handle, EGLint *stride);
REGAL_DECL EGLImageKHR REGAL_CALL plugin_eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attrib_list);
#endif

/**
 ** EGL_NV_coverage_sample
 **/

#if (defined(EGL_NV_COVERAGE_SAMPLE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_ENUM_EGL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_ENUM_EGL_NV_COVERAGE_SAMPLE
#endif

#if (defined(EGL_NV_COVERAGE_SAMPLE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_TYPEDEF_EGL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_TYPEDEF_EGL_NV_COVERAGE_SAMPLE
#endif

#if (defined(EGL_NV_COVERAGE_SAMPLE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_NAMESPACE_EGL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_NAMESPACE_EGL_NV_COVERAGE_SAMPLE
#endif

#if (defined(EGL_NV_COVERAGE_SAMPLE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_PLUGIN_EGL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_PLUGIN_EGL_NV_COVERAGE_SAMPLE
#endif

#if (defined(EGL_NV_COVERAGE_SAMPLE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE)) && !defined(REGAL_NO_DECLARATION_EGL_NV_COVERAGE_SAMPLE)
#define REGAL_NO_DECLARATION_EGL_NV_COVERAGE_SAMPLE
#endif

#ifndef EGL_NV_coverage_sample
#define EGL_NV_coverage_sample 1
#endif

#ifndef REGAL_NO_ENUM_EGL_NV_COVERAGE_SAMPLE
#define EGL_COVERAGE_BUFFERS_NV       0x30e0     /* 12512 */
#define EGL_COVERAGE_SAMPLES_NV       0x30e1     /* 12513 */
#define GL_COVERAGE_BUFFER_BIT_NV     0x8000     /* 32768 */
#define GL_COVERAGE_COMPONENT_NV      0x8ed0     /* 36560 */
#define GL_COVERAGE_COMPONENT4_NV     0x8ed1     /* 36561 */
#define GL_COVERAGE_ATTACHMENT_NV     0x8ed2     /* 36562 */
#define GL_COVERAGE_BUFFERS_NV        0x8ed3     /* 36563 */
#define GL_COVERAGE_ALL_FRAGMENTS_NV  0x8ed5     /* 36565 */
#define GL_COVERAGE_EDGE_FRAGMENTS_NV 0x8ed6     /* 36566 */
#define GL_COVERAGE_AUTOMATIC_NV      0x8ed7     /* 36567 */
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_NV_COVERAGE_SAMPLE
typedef void (REGAL_CALL *PFNEGLCOVERAGEMASKNVPROC)(GLboolean mask);
typedef void (REGAL_CALL *PFNEGLCOVERAGEOPERATIONNVPROC)(GLenum operation);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_NV_COVERAGE_SAMPLE
#define eglCoverageMaskNV                   reglCoverageMaskNV
#define eglCoverageOperationNV              reglCoverageOperationNV
#endif

#ifndef REGAL_NO_DECLARATION_EGL_NV_COVERAGE_SAMPLE
REGAL_DECL void REGAL_CALL eglCoverageMaskNV(GLboolean mask);
REGAL_DECL void REGAL_CALL eglCoverageOperationNV(GLenum operation);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_NV_COVERAGE_SAMPLE
REGAL_DECL void REGAL_CALL plugin_eglCoverageMaskNV(GLboolean mask);
REGAL_DECL void REGAL_CALL plugin_eglCoverageOperationNV(GLenum operation);
#endif

/**
 ** EGL_NV_coverage_sample_resolve
 **/

#if (defined(EGL_NV_COVERAGE_SAMPLE_RESOLVE) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE_RESOLVE)) && !defined(REGAL_NO_ENUM_EGL_NV_COVERAGE_SAMPLE_RESOLVE)
#define REGAL_NO_ENUM_EGL_NV_COVERAGE_SAMPLE_RESOLVE
#endif

#if (defined(EGL_NV_COVERAGE_SAMPLE_RESOLVE) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE_RESOLVE)) && !defined(REGAL_NO_TYPEDEF_EGL_NV_COVERAGE_SAMPLE_RESOLVE)
#define REGAL_NO_TYPEDEF_EGL_NV_COVERAGE_SAMPLE_RESOLVE
#endif

#if (defined(EGL_NV_COVERAGE_SAMPLE_RESOLVE) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE_RESOLVE)) && !defined(REGAL_NO_NAMESPACE_EGL_NV_COVERAGE_SAMPLE_RESOLVE)
#define REGAL_NO_NAMESPACE_EGL_NV_COVERAGE_SAMPLE_RESOLVE
#endif

#if (defined(EGL_NV_COVERAGE_SAMPLE_RESOLVE) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE_RESOLVE)) && !defined(REGAL_NO_PLUGIN_EGL_NV_COVERAGE_SAMPLE_RESOLVE)
#define REGAL_NO_PLUGIN_EGL_NV_COVERAGE_SAMPLE_RESOLVE
#endif

#if (defined(EGL_NV_COVERAGE_SAMPLE_RESOLVE) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_NV_COVERAGE_SAMPLE_RESOLVE)) && !defined(REGAL_NO_DECLARATION_EGL_NV_COVERAGE_SAMPLE_RESOLVE)
#define REGAL_NO_DECLARATION_EGL_NV_COVERAGE_SAMPLE_RESOLVE
#endif

#ifndef EGL_NV_coverage_sample_resolve
#define EGL_NV_coverage_sample_resolve 1
#endif

#ifndef REGAL_NO_ENUM_EGL_NV_COVERAGE_SAMPLE_RESOLVE
#define EGL_COVERAGE_SAMPLE_RESOLVE_NV         0x3131     /* 12593 */
#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV 0x3132     /* 12594 */
#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV    0x3133     /* 12595 */
#endif

/**
 ** EGL_NV_post_sub_buffer
 **/

#if (defined(EGL_NV_POST_SUB_BUFFER) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_NV_POST_SUB_BUFFER)) && !defined(REGAL_NO_ENUM_EGL_NV_POST_SUB_BUFFER)
#define REGAL_NO_ENUM_EGL_NV_POST_SUB_BUFFER
#endif

#if (defined(EGL_NV_POST_SUB_BUFFER) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_NV_POST_SUB_BUFFER)) && !defined(REGAL_NO_TYPEDEF_EGL_NV_POST_SUB_BUFFER)
#define REGAL_NO_TYPEDEF_EGL_NV_POST_SUB_BUFFER
#endif

#if (defined(EGL_NV_POST_SUB_BUFFER) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_NV_POST_SUB_BUFFER)) && !defined(REGAL_NO_NAMESPACE_EGL_NV_POST_SUB_BUFFER)
#define REGAL_NO_NAMESPACE_EGL_NV_POST_SUB_BUFFER
#endif

#if (defined(EGL_NV_POST_SUB_BUFFER) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_NV_POST_SUB_BUFFER)) && !defined(REGAL_NO_PLUGIN_EGL_NV_POST_SUB_BUFFER)
#define REGAL_NO_PLUGIN_EGL_NV_POST_SUB_BUFFER
#endif

#if (defined(EGL_NV_POST_SUB_BUFFER) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_NV_POST_SUB_BUFFER)) && !defined(REGAL_NO_DECLARATION_EGL_NV_POST_SUB_BUFFER)
#define REGAL_NO_DECLARATION_EGL_NV_POST_SUB_BUFFER
#endif

#ifndef EGL_NV_post_sub_buffer
#define EGL_NV_post_sub_buffer 1
#endif

#ifndef REGAL_NO_ENUM_EGL_NV_POST_SUB_BUFFER
#define EGL_POST_SUB_BUFFER_SUPPORTED_NV 0x30be /* 12478 */
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_NV_POST_SUB_BUFFER
typedef EGLBoolean (REGAL_CALL *PFNEGLPOSTSUBBUFFERNVPROC)(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_NV_POST_SUB_BUFFER
#define eglPostSubBufferNV                  reglPostSubBufferNV
#endif

#ifndef REGAL_NO_DECLARATION_EGL_NV_POST_SUB_BUFFER
REGAL_DECL EGLBoolean REGAL_CALL eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_NV_POST_SUB_BUFFER
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
#endif

/**
 ** EGL_NV_sync
 **/

#if (defined(EGL_NV_SYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_NV_SYNC)) && !defined(REGAL_NO_ENUM_EGL_NV_SYNC)
#define REGAL_NO_ENUM_EGL_NV_SYNC
#endif

#if (defined(EGL_NV_SYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_NV_SYNC)) && !defined(REGAL_NO_TYPEDEF_EGL_NV_SYNC)
#define REGAL_NO_TYPEDEF_EGL_NV_SYNC
#endif

#if (defined(EGL_NV_SYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_NV_SYNC)) && !defined(REGAL_NO_NAMESPACE_EGL_NV_SYNC)
#define REGAL_NO_NAMESPACE_EGL_NV_SYNC
#endif

#if (defined(EGL_NV_SYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_NV_SYNC)) && !defined(REGAL_NO_PLUGIN_EGL_NV_SYNC)
#define REGAL_NO_PLUGIN_EGL_NV_SYNC
#endif

#if (defined(EGL_NV_SYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_NV_SYNC)) && !defined(REGAL_NO_DECLARATION_EGL_NV_SYNC)
#define REGAL_NO_DECLARATION_EGL_NV_SYNC
#endif

#ifndef EGL_NV_sync
#define EGL_NV_sync 1
#endif

#ifndef REGAL_NO_ENUM_EGL_NV_SYNC
#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV      0x1
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV 0x30e6                 /* 12518 */
#define EGL_SYNC_STATUS_NV                  0x30e7                 /* 12519 */
#define EGL_SIGNALED_NV                     0x30e8                 /* 12520 */
#define EGL_UNSIGNALED_NV                   0x30e9                 /* 12521 */
#define EGL_ALREADY_SIGNALED_NV             0x30ea                 /* 12522 */
#define EGL_TIMEOUT_EXPIRED_NV              0x30eb                 /* 12523 */
#define EGL_CONDITION_SATISFIED_NV          0x30ec                 /* 12524 */
#define EGL_SYNC_TYPE_NV                    0x30ed                 /* 12525 */
#define EGL_SYNC_CONDITION_NV               0x30ee                 /* 12526 */
#define EGL_SYNC_FENCE_NV                   0x30ef                 /* 12527 */
#define EGL_FOREVER_NV                      0xffffffffffffffff     /* 18446744073709551615 */
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_NV_SYNC
typedef EGLBoolean (REGAL_CALL *PFNEGLDESTROYSYNCNVPROC)(EGLSyncNV GLsync);
typedef EGLBoolean (REGAL_CALL *PFNEGLFENCENVPROC)(EGLSyncNV GLsync);
typedef EGLBoolean (REGAL_CALL *PFNEGLGETSYNCATTRIBNVPROC)(EGLSyncNV GLsync, EGLint attribute, EGLint *value);
typedef EGLBoolean (REGAL_CALL *PFNEGLSIGNALSYNCNVPROC)(EGLSyncNV GLsync, EGLenum mode);
typedef EGLSyncNV (REGAL_CALL *PFNEGLCREATEFENCESYNCNVPROC)(EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
typedef EGLint (REGAL_CALL *PFNEGLCLIENTWAITSYNCNVPROC)(EGLSyncNV GLsync, EGLint flags, EGLTimeNV timeout);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_NV_SYNC
#define eglClientWaitSyncNV                 reglClientWaitSyncNV
#define eglCreateFenceSyncNV                reglCreateFenceSyncNV
#define eglDestroySyncNV                    reglDestroySyncNV
#define eglFenceNV                          reglFenceNV
#define eglGetSyncAttribNV                  reglGetSyncAttribNV
#define eglSignalSyncNV                     reglSignalSyncNV
#endif

#ifndef REGAL_NO_DECLARATION_EGL_NV_SYNC
REGAL_DECL EGLBoolean REGAL_CALL eglDestroySyncNV(EGLSyncNV GLsync);
REGAL_DECL EGLBoolean REGAL_CALL eglFenceNV(EGLSyncNV GLsync);
REGAL_DECL EGLBoolean REGAL_CALL eglGetSyncAttribNV(EGLSyncNV GLsync, EGLint attribute, EGLint *value);
REGAL_DECL EGLBoolean REGAL_CALL eglSignalSyncNV(EGLSyncNV GLsync, EGLenum mode);
REGAL_DECL EGLSyncNV REGAL_CALL eglCreateFenceSyncNV(EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
REGAL_DECL EGLint REGAL_CALL eglClientWaitSyncNV(EGLSyncNV GLsync, EGLint flags, EGLTimeNV timeout);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_NV_SYNC
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglDestroySyncNV(EGLSyncNV GLsync);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglFenceNV(EGLSyncNV GLsync);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglGetSyncAttribNV(EGLSyncNV GLsync, EGLint attribute, EGLint *value);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglSignalSyncNV(EGLSyncNV GLsync, EGLenum mode);
REGAL_DECL EGLSyncNV REGAL_CALL plugin_eglCreateFenceSyncNV(EGLDisplay dpy, EGLenum condition, const EGLint *attrib_list);
REGAL_DECL EGLint REGAL_CALL plugin_eglClientWaitSyncNV(EGLSyncNV GLsync, EGLint flags, EGLTimeNV timeout);
#endif

/**
 ** EGL_NV_system_time
 **/

#if (defined(EGL_NV_SYSTEM_TIME) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_NV_SYSTEM_TIME)) && !defined(REGAL_NO_ENUM_EGL_NV_SYSTEM_TIME)
#define REGAL_NO_ENUM_EGL_NV_SYSTEM_TIME
#endif

#if (defined(EGL_NV_SYSTEM_TIME) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_NV_SYSTEM_TIME)) && !defined(REGAL_NO_TYPEDEF_EGL_NV_SYSTEM_TIME)
#define REGAL_NO_TYPEDEF_EGL_NV_SYSTEM_TIME
#endif

#if (defined(EGL_NV_SYSTEM_TIME) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_NV_SYSTEM_TIME)) && !defined(REGAL_NO_NAMESPACE_EGL_NV_SYSTEM_TIME)
#define REGAL_NO_NAMESPACE_EGL_NV_SYSTEM_TIME
#endif

#if (defined(EGL_NV_SYSTEM_TIME) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_NV_SYSTEM_TIME)) && !defined(REGAL_NO_PLUGIN_EGL_NV_SYSTEM_TIME)
#define REGAL_NO_PLUGIN_EGL_NV_SYSTEM_TIME
#endif

#if (defined(EGL_NV_SYSTEM_TIME) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_NV_SYSTEM_TIME)) && !defined(REGAL_NO_DECLARATION_EGL_NV_SYSTEM_TIME)
#define REGAL_NO_DECLARATION_EGL_NV_SYSTEM_TIME
#endif

#ifndef EGL_NV_system_time
#define EGL_NV_system_time 1
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_NV_SYSTEM_TIME
typedef EGLuint64NV (REGAL_CALL *PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC)(void);
typedef EGLuint64NV (REGAL_CALL *PFNEGLGETSYSTEMTIMENVPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_NV_SYSTEM_TIME
#define eglGetSystemTimeFrequencyNV         reglGetSystemTimeFrequencyNV
#define eglGetSystemTimeNV                  reglGetSystemTimeNV
#endif

#ifndef REGAL_NO_DECLARATION_EGL_NV_SYSTEM_TIME
REGAL_DECL EGLuint64NV REGAL_CALL eglGetSystemTimeFrequencyNV(void);
REGAL_DECL EGLuint64NV REGAL_CALL eglGetSystemTimeNV(void);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_NV_SYSTEM_TIME
REGAL_DECL EGLuint64NV REGAL_CALL plugin_eglGetSystemTimeFrequencyNV(void);
REGAL_DECL EGLuint64NV REGAL_CALL plugin_eglGetSystemTimeNV(void);
#endif

/**
 ** EGL_VERSION_1_0
 **/

#if (defined(EGL_VERSION_1_0) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_VERSION_1_0)) && !defined(REGAL_NO_ENUM_EGL_VERSION_1_0)
#define REGAL_NO_ENUM_EGL_VERSION_1_0
#endif

#if (defined(EGL_VERSION_1_0) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_VERSION_1_0)) && !defined(REGAL_NO_TYPEDEF_EGL_VERSION_1_0)
#define REGAL_NO_TYPEDEF_EGL_VERSION_1_0
#endif

#if (defined(EGL_VERSION_1_0) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_VERSION_1_0)) && !defined(REGAL_NO_NAMESPACE_EGL_VERSION_1_0)
#define REGAL_NO_NAMESPACE_EGL_VERSION_1_0
#endif

#if (defined(EGL_VERSION_1_0) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_VERSION_1_0)) && !defined(REGAL_NO_PLUGIN_EGL_VERSION_1_0)
#define REGAL_NO_PLUGIN_EGL_VERSION_1_0
#endif

#if (defined(EGL_VERSION_1_0) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_VERSION_1_0)) && !defined(REGAL_NO_DECLARATION_EGL_VERSION_1_0)
#define REGAL_NO_DECLARATION_EGL_VERSION_1_0
#endif

#ifndef EGL_VERSION_1_0
#define EGL_VERSION_1_0 1
#endif

#ifndef REGAL_NO_ENUM_EGL_VERSION_1_0
#define EGL_NO_CONTEXT                  ((EGLContext)0)
#define EGL_NO_DISPLAY                  ((EGLDisplay)0)
#define EGL_DEFAULT_DISPLAY             ((EGLNativeDisplayType)0)
#define EGL_NO_SURFACE                  ((EGLSurface)0)
#define EGL_DONT_CARE                   ((EGLint)-1)
#define EGL_UNKNOWN                     ((EGLint)-1)
#define EGL_FALSE                       0x0
#define EGL_OPENGL_ES_BIT               0x1
#define EGL_PBUFFER_BIT                 0x1
#define EGL_TRUE                        0x1
#define EGL_VERSION_1_3                 0x1
#define EGL_VERSION_1_4                 0x1
#define EGL_OPENVG_BIT                  0x2
#define EGL_PIXMAP_BIT                  0x2
#define EGL_VG_COLORSPACE_LINEAR_BIT    0x20                           /* 32 */
#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x200                          /* 512 */
#define EGL_DISPLAY_SCALING             0x2710                         /* 10000 */
#define EGL_SUCCESS                     0x3000                         /* 12288 */
#define EGL_NOT_INITIALIZED             0x3001                         /* 12289 */
#define EGL_BAD_ACCESS                  0x3002                         /* 12290 */
#define EGL_BAD_ALLOC                   0x3003                         /* 12291 */
#define EGL_BAD_ATTRIBUTE               0x3004                         /* 12292 */
#define EGL_BAD_CONFIG                  0x3005                         /* 12293 */
#define EGL_BAD_CONTEXT                 0x3006                         /* 12294 */
#define EGL_BAD_CURRENT_SURFACE         0x3007                         /* 12295 */
#define EGL_BAD_DISPLAY                 0x3008                         /* 12296 */
#define EGL_BAD_MATCH                   0x3009                         /* 12297 */
#define EGL_BAD_NATIVE_PIXMAP           0x300a                         /* 12298 */
#define EGL_BAD_NATIVE_WINDOW           0x300b                         /* 12299 */
#define EGL_BAD_PARAMETER               0x300c                         /* 12300 */
#define EGL_BAD_SURFACE                 0x300d                         /* 12301 */
#define EGL_CONTEXT_LOST                0x300e                         /* 12302 */
#define EGL_BUFFER_SIZE                 0x3020                         /* 12320 */
#define EGL_ALPHA_SIZE                  0x3021                         /* 12321 */
#define EGL_BLUE_SIZE                   0x3022                         /* 12322 */
#define EGL_GREEN_SIZE                  0x3023                         /* 12323 */
#define EGL_RED_SIZE                    0x3024                         /* 12324 */
#define EGL_DEPTH_SIZE                  0x3025                         /* 12325 */
#define EGL_STENCIL_SIZE                0x3026                         /* 12326 */
#define EGL_CONFIG_CAVEAT               0x3027                         /* 12327 */
#define EGL_CONFIG_ID                   0x3028                         /* 12328 */
#define EGL_LEVEL                       0x3029                         /* 12329 */
#define EGL_MAX_PBUFFER_HEIGHT          0x302a                         /* 12330 */
#define EGL_MAX_PBUFFER_PIXELS          0x302b                         /* 12331 */
#define EGL_MAX_PBUFFER_WIDTH           0x302c                         /* 12332 */
#define EGL_NATIVE_RENDERABLE           0x302d                         /* 12333 */
#define EGL_NATIVE_VISUAL_ID            0x302e                         /* 12334 */
#define EGL_NATIVE_VISUAL_TYPE          0x302f                         /* 12335 */
#define EGL_SAMPLES                     0x3031                         /* 12337 */
#define EGL_SAMPLE_BUFFERS              0x3032                         /* 12338 */
#define EGL_SURFACE_TYPE                0x3033                         /* 12339 */
#define EGL_TRANSPARENT_TYPE            0x3034                         /* 12340 */
#define EGL_TRANSPARENT_BLUE_VALUE      0x3035                         /* 12341 */
#define EGL_TRANSPARENT_GREEN_VALUE     0x3036                         /* 12342 */
#define EGL_TRANSPARENT_RED_VALUE       0x3037                         /* 12343 */
#define EGL_NONE                        0x3038                         /* 12344 */
#define EGL_BIND_TO_TEXTURE_RGB         0x3039                         /* 12345 */
#define EGL_BIND_TO_TEXTURE_RGBA        0x303a                         /* 12346 */
#define EGL_MIN_SWAP_INTERVAL           0x303b                         /* 12347 */
#define EGL_MAX_SWAP_INTERVAL           0x303c                         /* 12348 */
#define EGL_LUMINANCE_SIZE              0x303d                         /* 12349 */
#define EGL_ALPHA_MASK_SIZE             0x303e                         /* 12350 */
#define EGL_COLOR_BUFFER_TYPE           0x303f                         /* 12351 */
#define EGL_RENDERABLE_TYPE             0x3040                         /* 12352 */
#define EGL_MATCH_NATIVE_PIXMAP         0x3041                         /* 12353 */
#define EGL_CONFORMANT                  0x3042                         /* 12354 */
#define EGL_SLOW_CONFIG                 0x3050                         /* 12368 */
#define EGL_NON_CONFORMANT_CONFIG       0x3051                         /* 12369 */
#define EGL_TRANSPARENT_RGB             0x3052                         /* 12370 */
#define EGL_VENDOR                      0x3053                         /* 12371 */
#define EGL_VERSION                     0x3054                         /* 12372 */
#define EGL_EXTENSIONS                  0x3055                         /* 12373 */
#define EGL_HEIGHT                      0x3056                         /* 12374 */
#define EGL_WIDTH                       0x3057                         /* 12375 */
#define EGL_LARGEST_PBUFFER             0x3058                         /* 12376 */
#define EGL_DRAW                        0x3059                         /* 12377 */
#define EGL_READ                        0x305a                         /* 12378 */
#define EGL_CORE_NATIVE_ENGINE          0x305b                         /* 12379 */
#define EGL_NO_TEXTURE                  0x305c                         /* 12380 */
#define EGL_TEXTURE_RGB                 0x305d                         /* 12381 */
#define EGL_TEXTURE_RGBA                0x305e                         /* 12382 */
#define EGL_TEXTURE_2D                  0x305f                         /* 12383 */
#define EGL_TEXTURE_FORMAT              0x3080                         /* 12416 */
#define EGL_TEXTURE_TARGET              0x3081                         /* 12417 */
#define EGL_MIPMAP_TEXTURE              0x3082                         /* 12418 */
#define EGL_MIPMAP_LEVEL                0x3083                         /* 12419 */
#define EGL_BACK_BUFFER                 0x3084                         /* 12420 */
#define EGL_SINGLE_BUFFER               0x3085                         /* 12421 */
#define EGL_RENDER_BUFFER               0x3086                         /* 12422 */
#define EGL_VG_COLORSPACE               0x3087                         /* 12423 */
#define EGL_VG_ALPHA_FORMAT             0x3088                         /* 12424 */
#define EGL_VG_COLORSPACE_sRGB          0x3089                         /* 12425 */
#define EGL_VG_COLORSPACE_LINEAR        0x308a                         /* 12426 */
#define EGL_VG_ALPHA_FORMAT_NONPRE      0x308b                         /* 12427 */
#define EGL_VG_ALPHA_FORMAT_PRE         0x308c                         /* 12428 */
#define EGL_CLIENT_APIS                 0x308d                         /* 12429 */
#define EGL_RGB_BUFFER                  0x308e                         /* 12430 */
#define EGL_LUMINANCE_BUFFER            0x308f                         /* 12431 */
#define EGL_HORIZONTAL_RESOLUTION       0x3090                         /* 12432 */
#define EGL_VERTICAL_RESOLUTION         0x3091                         /* 12433 */
#define EGL_PIXEL_ASPECT_RATIO          0x3092                         /* 12434 */
#define EGL_SWAP_BEHAVIOR               0x3093                         /* 12435 */
#define EGL_BUFFER_PRESERVED            0x3094                         /* 12436 */
#define EGL_BUFFER_DESTROYED            0x3095                         /* 12437 */
#define EGL_OPENVG_IMAGE                0x3096                         /* 12438 */
#define EGL_CONTEXT_CLIENT_TYPE         0x3097                         /* 12439 */
#define EGL_CONTEXT_CLIENT_VERSION      0x3098                         /* 12440 */
#define EGL_MULTISAMPLE_RESOLVE         0x3099                         /* 12441 */
#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309a                         /* 12442 */
#define EGL_MULTISAMPLE_RESOLVE_BOX     0x309b                         /* 12443 */
#define EGL_OPENGL_ES_API               0x30a0                         /* 12448 */
#define EGL_OPENVG_API                  0x30a1                         /* 12449 */
#define EGL_OPENGL_API                  0x30a2                         /* 12450 */
#define EGL_OPENGL_ES2_BIT              0x4
#define EGL_WINDOW_BIT                  0x4
#define EGL_VG_ALPHA_FORMAT_PRE_BIT     0x40                           /* 64 */
#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x400                          /* 1024 */
#define EGL_OPENGL_BIT                  0x8
#define EGLAPIENTRYP                    EGLAPIENTRY                    *
#define EGL_ALPHA_FORMAT                EGL_VG_ALPHA_FORMAT
#define EGL_ALPHA_FORMAT_NONPRE         EGL_VG_ALPHA_FORMAT_NONPRE
#define EGL_ALPHA_FORMAT_PRE            EGL_VG_ALPHA_FORMAT_PRE
#define EGL_COLORSPACE                  EGL_VG_COLORSPACE
#define EGL_COLORSPACE_LINEAR           EGL_VG_COLORSPACE_LINEAR
#define EGL_COLORSPACE_sRGB             EGL_VG_COLORSPACE_sRGB
#define EGLAPI                          KHRONOS_APICALL
#define EGLAPIENTRY                     KHRONOS_APIENTRY
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_VERSION_1_0
typedef EGLBoolean (REGAL_CALL *PFNEGLCHOOSECONFIGPROC)(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
typedef EGLBoolean (REGAL_CALL *PFNEGLCOPYBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
typedef EGLBoolean (REGAL_CALL *PFNEGLDESTROYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx);
typedef EGLBoolean (REGAL_CALL *PFNEGLDESTROYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface);
typedef EGLBoolean (REGAL_CALL *PFNEGLGETCONFIGATTRIBPROC)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
typedef EGLBoolean (REGAL_CALL *PFNEGLGETCONFIGSPROC)(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
typedef EGLBoolean (REGAL_CALL *PFNEGLINITIALIZEPROC)(EGLDisplay dpy, EGLint *major, EGLint *minor);
typedef EGLBoolean (REGAL_CALL *PFNEGLMAKECURRENTPROC)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
typedef EGLBoolean (REGAL_CALL *PFNEGLQUERYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
typedef EGLBoolean (REGAL_CALL *PFNEGLQUERYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
typedef EGLBoolean (REGAL_CALL *PFNEGLSWAPBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface);
typedef EGLBoolean (REGAL_CALL *PFNEGLTERMINATEPROC)(EGLDisplay dpy);
typedef EGLBoolean (REGAL_CALL *PFNEGLWAITGLPROC)(void);
typedef EGLBoolean (REGAL_CALL *PFNEGLWAITNATIVEPROC)(EGLint engine);
typedef EGLContext (REGAL_CALL *PFNEGLCREATECONTEXTPROC)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
typedef EGLContext (REGAL_CALL *PFNEGLGETCURRENTCONTEXTPROC)(void);
typedef EGLDisplay (REGAL_CALL *PFNEGLGETCURRENTDISPLAYPROC)(void);
typedef EGLDisplay (REGAL_CALL *PFNEGLGETDISPLAYPROC)(EGLNativeDisplayType display_id);
typedef EGLSurface (REGAL_CALL *PFNEGLCREATEPBUFFERSURFACEPROC)(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
typedef EGLSurface (REGAL_CALL *PFNEGLCREATEPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
typedef EGLSurface (REGAL_CALL *PFNEGLCREATEWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
typedef EGLSurface (REGAL_CALL *PFNEGLGETCURRENTSURFACEPROC)(EGLint readdraw);
typedef EGLint (REGAL_CALL *PFNEGLGETERRORPROC)(void);
typedef __eglMustCastToProperFunctionPointerType (REGAL_CALL *PFNEGLGETPROCADDRESSPROC)(const char *procname);
typedef const char *(REGAL_CALL *PFNEGLQUERYSTRINGPROC)(EGLDisplay dpy, EGLint name);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_VERSION_1_0
#define eglChooseConfig                     reglChooseConfig
#define eglCopyBuffers                      reglCopyBuffers
#define eglCreateContext                    reglCreateContext
#define eglCreatePbufferSurface             reglCreatePbufferSurface
#define eglCreatePixmapSurface              reglCreatePixmapSurface
#define eglCreateWindowSurface              reglCreateWindowSurface
#define eglDestroyContext                   reglDestroyContext
#define eglDestroySurface                   reglDestroySurface
#define eglGetConfigAttrib                  reglGetConfigAttrib
#define eglGetConfigs                       reglGetConfigs
#define eglGetCurrentContext                reglGetCurrentContext
#define eglGetCurrentDisplay                reglGetCurrentDisplay
#define eglGetCurrentSurface                reglGetCurrentSurface
#define eglGetDisplay                       reglGetDisplay
#define eglGetError                         reglGetError
#define eglGetProcAddress                   reglGetProcAddress
#define eglInitialize                       reglInitialize
#define eglMakeCurrent                      reglMakeCurrent
#define eglQueryContext                     reglQueryContext
#define eglQueryString                      reglQueryString
#define eglQuerySurface                     reglQuerySurface
#define eglSwapBuffers                      reglSwapBuffers
#define eglTerminate                        reglTerminate
#define eglWaitGL                           reglWaitGL
#define eglWaitNative                       reglWaitNative
#endif

#ifndef REGAL_NO_DECLARATION_EGL_VERSION_1_0
REGAL_DECL EGLBoolean REGAL_CALL eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
REGAL_DECL EGLBoolean REGAL_CALL eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
REGAL_DECL EGLBoolean REGAL_CALL eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
REGAL_DECL EGLBoolean REGAL_CALL eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
REGAL_DECL EGLBoolean REGAL_CALL eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
REGAL_DECL EGLBoolean REGAL_CALL eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
REGAL_DECL EGLBoolean REGAL_CALL eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
REGAL_DECL EGLBoolean REGAL_CALL eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
REGAL_DECL EGLBoolean REGAL_CALL eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
REGAL_DECL EGLBoolean REGAL_CALL eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
REGAL_DECL EGLBoolean REGAL_CALL eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
REGAL_DECL EGLBoolean REGAL_CALL eglTerminate(EGLDisplay dpy);
REGAL_DECL EGLBoolean REGAL_CALL eglWaitGL(void);
REGAL_DECL EGLBoolean REGAL_CALL eglWaitNative(EGLint engine);
REGAL_DECL EGLContext REGAL_CALL eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
REGAL_DECL EGLContext REGAL_CALL eglGetCurrentContext(void);
REGAL_DECL EGLDisplay REGAL_CALL eglGetCurrentDisplay(void);
REGAL_DECL EGLDisplay REGAL_CALL eglGetDisplay(EGLNativeDisplayType display_id);
REGAL_DECL EGLSurface REGAL_CALL eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
REGAL_DECL EGLSurface REGAL_CALL eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
REGAL_DECL EGLSurface REGAL_CALL eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
REGAL_DECL EGLSurface REGAL_CALL eglGetCurrentSurface(EGLint readdraw);
REGAL_DECL EGLint REGAL_CALL eglGetError(void);
REGAL_DECL __eglMustCastToProperFunctionPointerType REGAL_CALL eglGetProcAddress(const char *procname);
REGAL_DECL const char *REGAL_CALL eglQueryString(EGLDisplay dpy, EGLint name);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_VERSION_1_0
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglTerminate(EGLDisplay dpy);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglWaitGL(void);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglWaitNative(EGLint engine);
REGAL_DECL EGLContext REGAL_CALL plugin_eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list);
REGAL_DECL EGLContext REGAL_CALL plugin_eglGetCurrentContext(void);
REGAL_DECL EGLDisplay REGAL_CALL plugin_eglGetCurrentDisplay(void);
REGAL_DECL EGLDisplay REGAL_CALL plugin_eglGetDisplay(EGLNativeDisplayType display_id);
REGAL_DECL EGLSurface REGAL_CALL plugin_eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list);
REGAL_DECL EGLSurface REGAL_CALL plugin_eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list);
REGAL_DECL EGLSurface REGAL_CALL plugin_eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list);
REGAL_DECL EGLSurface REGAL_CALL plugin_eglGetCurrentSurface(EGLint readdraw);
REGAL_DECL EGLint REGAL_CALL plugin_eglGetError(void);
REGAL_DECL __eglMustCastToProperFunctionPointerType REGAL_CALL plugin_eglGetProcAddress(const char *procname);
REGAL_DECL const char *REGAL_CALL plugin_eglQueryString(EGLDisplay dpy, EGLint name);
#endif

/**
 ** EGL_VERSION_1_1
 **/

#if (defined(EGL_VERSION_1_1) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_VERSION_1_1)) && !defined(REGAL_NO_ENUM_EGL_VERSION_1_1)
#define REGAL_NO_ENUM_EGL_VERSION_1_1
#endif

#if (defined(EGL_VERSION_1_1) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_VERSION_1_1)) && !defined(REGAL_NO_TYPEDEF_EGL_VERSION_1_1)
#define REGAL_NO_TYPEDEF_EGL_VERSION_1_1
#endif

#if (defined(EGL_VERSION_1_1) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_VERSION_1_1)) && !defined(REGAL_NO_NAMESPACE_EGL_VERSION_1_1)
#define REGAL_NO_NAMESPACE_EGL_VERSION_1_1
#endif

#if (defined(EGL_VERSION_1_1) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_VERSION_1_1)) && !defined(REGAL_NO_PLUGIN_EGL_VERSION_1_1)
#define REGAL_NO_PLUGIN_EGL_VERSION_1_1
#endif

#if (defined(EGL_VERSION_1_1) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_VERSION_1_1)) && !defined(REGAL_NO_DECLARATION_EGL_VERSION_1_1)
#define REGAL_NO_DECLARATION_EGL_VERSION_1_1
#endif

#ifndef EGL_VERSION_1_1
#define EGL_VERSION_1_1 1
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_VERSION_1_1
typedef EGLBoolean (REGAL_CALL *PFNEGLBINDTEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
typedef EGLBoolean (REGAL_CALL *PFNEGLRELEASETEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_VERSION_1_1
#define eglBindTexImage                     reglBindTexImage
#define eglReleaseTexImage                  reglReleaseTexImage
#endif

#ifndef REGAL_NO_DECLARATION_EGL_VERSION_1_1
REGAL_DECL EGLBoolean REGAL_CALL eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
REGAL_DECL EGLBoolean REGAL_CALL eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_VERSION_1_1
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
#endif

/**
 ** EGL_VERSION_1_2
 **/

#if (defined(EGL_VERSION_1_2) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_EGL_VERSION_1_2)) && !defined(REGAL_NO_ENUM_EGL_VERSION_1_2)
#define REGAL_NO_ENUM_EGL_VERSION_1_2
#endif

#if (defined(EGL_VERSION_1_2) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_EGL_VERSION_1_2)) && !defined(REGAL_NO_TYPEDEF_EGL_VERSION_1_2)
#define REGAL_NO_TYPEDEF_EGL_VERSION_1_2
#endif

#if (defined(EGL_VERSION_1_2) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_EGL_VERSION_1_2)) && !defined(REGAL_NO_NAMESPACE_EGL_VERSION_1_2)
#define REGAL_NO_NAMESPACE_EGL_VERSION_1_2
#endif

#if (defined(EGL_VERSION_1_2) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_EGL_VERSION_1_2)) && !defined(REGAL_NO_PLUGIN_EGL_VERSION_1_2)
#define REGAL_NO_PLUGIN_EGL_VERSION_1_2
#endif

#if (defined(EGL_VERSION_1_2) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_EGL_VERSION_1_2)) && !defined(REGAL_NO_DECLARATION_EGL_VERSION_1_2)
#define REGAL_NO_DECLARATION_EGL_VERSION_1_2
#endif

#ifndef EGL_VERSION_1_2
#define EGL_VERSION_1_2 1
#endif

#ifndef REGAL_NO_TYPEDEF_EGL_VERSION_1_2
typedef EGLBoolean (REGAL_CALL *PFNEGLBINDAPIPROC)(EGLenum api);
typedef EGLBoolean (REGAL_CALL *PFNEGLRELEASETHREADPROC)(void);
typedef EGLBoolean (REGAL_CALL *PFNEGLSURFACEATTRIBPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
typedef EGLBoolean (REGAL_CALL *PFNEGLSWAPINTERVALPROC)(EGLDisplay dpy, EGLint interval);
typedef EGLBoolean (REGAL_CALL *PFNEGLWAITCLIENTPROC)(void);
typedef EGLSurface (REGAL_CALL *PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
typedef EGLenum (REGAL_CALL *PFNEGLQUERYAPIPROC)(void);
#endif

#ifndef REGAL_NO_NAMESPACE_EGL_VERSION_1_2
#define eglBindAPI                          reglBindAPI
#define eglCreatePbufferFromClientBuffer    reglCreatePbufferFromClientBuffer
#define eglQueryAPI                         reglQueryAPI
#define eglReleaseThread                    reglReleaseThread
#define eglSurfaceAttrib                    reglSurfaceAttrib
#define eglSwapInterval                     reglSwapInterval
#define eglWaitClient                       reglWaitClient
#endif

#ifndef REGAL_NO_DECLARATION_EGL_VERSION_1_2
REGAL_DECL EGLBoolean REGAL_CALL eglBindAPI(EGLenum api);
REGAL_DECL EGLBoolean REGAL_CALL eglReleaseThread(void);
REGAL_DECL EGLBoolean REGAL_CALL eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
REGAL_DECL EGLBoolean REGAL_CALL eglSwapInterval(EGLDisplay dpy, EGLint interval);
REGAL_DECL EGLBoolean REGAL_CALL eglWaitClient(void);
REGAL_DECL EGLSurface REGAL_CALL eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
REGAL_DECL EGLenum REGAL_CALL eglQueryAPI(void);
#endif

#ifndef REGAL_NO_PLUGIN_EGL_VERSION_1_2
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglBindAPI(EGLenum api);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglReleaseThread(void);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglSwapInterval(EGLDisplay dpy, EGLint interval);
REGAL_DECL EGLBoolean REGAL_CALL plugin_eglWaitClient(void);
REGAL_DECL EGLSurface REGAL_CALL plugin_eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list);
REGAL_DECL EGLenum REGAL_CALL plugin_eglQueryAPI(void);
#endif

/**
 ** GL_NV_depth_nonlinear
 **/

#if (defined(GL_NV_DEPTH_NONLINEAR) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_ENUM_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_ENUM_GL_NV_DEPTH_NONLINEAR
#endif

#if (defined(GL_NV_DEPTH_NONLINEAR) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_TYPEDEF_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_TYPEDEF_GL_NV_DEPTH_NONLINEAR
#endif

#if (defined(GL_NV_DEPTH_NONLINEAR) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_NAMESPACE_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_NAMESPACE_GL_NV_DEPTH_NONLINEAR
#endif

#if (defined(GL_NV_DEPTH_NONLINEAR) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_PLUGIN_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_PLUGIN_GL_NV_DEPTH_NONLINEAR
#endif

#if (defined(GL_NV_DEPTH_NONLINEAR) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_NV_DEPTH_NONLINEAR)) && !defined(REGAL_NO_DECLARATION_GL_NV_DEPTH_NONLINEAR)
#define REGAL_NO_DECLARATION_GL_NV_DEPTH_NONLINEAR
#endif

#ifndef GL_NV_depth_nonlinear
#define GL_NV_depth_nonlinear 1
#endif

#ifndef REGAL_NO_ENUM_GL_NV_DEPTH_NONLINEAR
#define EGL_DEPTH_ENCODING_NONE_NV        0x0
#define EGL_DEPTH_ENCODING_NV             0x30e2     /* 12514 */
#define EGL_DEPTH_ENCODING_NONLINEAR_NV   0x30e3     /* 12515 */
#define GL_DEPTH_COMPONENT16_NONLINEAR_NV 0x8e2c     /* 36396 */
#endif

/**
 ** GL_VG_KHR_EGL_sync
 **/

#if (defined(GL_VG_KHR_EGL_SYNC) || defined(REGAL_NO_ENUM) || defined(REGAL_NO_GL_VG_KHR_EGL_SYNC)) && !defined(REGAL_NO_ENUM_GL_VG_KHR_EGL_SYNC)
#define REGAL_NO_ENUM_GL_VG_KHR_EGL_SYNC
#endif

#if (defined(GL_VG_KHR_EGL_SYNC) || defined(REGAL_NO_TYPEDEF) || defined(REGAL_NO_GL_VG_KHR_EGL_SYNC)) && !defined(REGAL_NO_TYPEDEF_GL_VG_KHR_EGL_SYNC)
#define REGAL_NO_TYPEDEF_GL_VG_KHR_EGL_SYNC
#endif

#if (defined(GL_VG_KHR_EGL_SYNC) || !defined(REGAL_NAMESPACE) || defined(REGAL_NO_GL_VG_KHR_EGL_SYNC)) && !defined(REGAL_NO_NAMESPACE_GL_VG_KHR_EGL_SYNC)
#define REGAL_NO_NAMESPACE_GL_VG_KHR_EGL_SYNC
#endif

#if (defined(GL_VG_KHR_EGL_SYNC) || !defined(REGAL_PLUGIN_MODE) || defined(REGAL_NO_GL_VG_KHR_EGL_SYNC)) && !defined(REGAL_NO_PLUGIN_GL_VG_KHR_EGL_SYNC)
#define REGAL_NO_PLUGIN_GL_VG_KHR_EGL_SYNC
#endif

#if (defined(GL_VG_KHR_EGL_SYNC) || defined(REGAL_NO_DECLARATION) || defined(REGAL_NO_GL_VG_KHR_EGL_SYNC)) && !defined(REGAL_NO_DECLARATION_GL_VG_KHR_EGL_SYNC)
#define REGAL_NO_DECLARATION_GL_VG_KHR_EGL_SYNC
#endif

#ifndef GL_VG_KHR_EGL_sync
#define GL_VG_KHR_EGL_sync 1
#endif

#ifndef REGAL_NO_ENUM_GL_VG_KHR_EGL_SYNC
#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR      0x1
#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR 0x30f0                 /* 12528 */
#define EGL_SYNC_STATUS_KHR                  0x30f1                 /* 12529 */
#define EGL_SIGNALED_KHR                     0x30f2                 /* 12530 */
#define EGL_UNSIGNALED_KHR                   0x30f3                 /* 12531 */
#define EGL_TIMEOUT_EXPIRED_KHR              0x30f5                 /* 12533 */
#define EGL_CONDITION_SATISFIED_KHR          0x30f6                 /* 12534 */
#define EGL_SYNC_TYPE_KHR                    0x30f7                 /* 12535 */
#define EGL_SYNC_CONDITION_KHR               0x30f8                 /* 12536 */
#define EGL_SYNC_FENCE_KHR                   0x30f9                 /* 12537 */
#define EGL_FOREVER_KHR                      0xffffffffffffffff     /* 18446744073709551615 */
#endif

#endif /* REGAL_SYS_EGL */

#ifdef __cplusplus
}
#endif

#endif /* __gl_h_ etc */
#endif /* __REGAL_H__ */

#ifndef __REGAL_API_H
#define __REGAL_API_H

#if REGAL_SYS_PPAPI
#include <stdint.h>
struct PPB_OpenGLES2;
typedef int32_t RegalSystemContext;
#else
typedef void * RegalSystemContext;
#endif

/* Regal-specific API... try to keep this minimal
   this is a seperate include guard to work nicely with RegalGLEW.h
*/

#ifdef __cplusplus
extern "C" {
#endif

typedef void (*RegalErrorCallback)(GLenum);
REGAL_DECL RegalErrorCallback RegalSetErrorCallback( RegalErrorCallback callback );

/*  RegalConfigure is optional.
 */

REGAL_DECL void RegalConfigure(const char *json);

/*  RegalShareContext is optional.  It must be called before any call
 *  to RegalMakeCurrent.  It specifies that a context is sharing state
 *  with one already known to Regal.
 */

REGAL_DECL void RegalShareContext(RegalSystemContext ctx, RegalSystemContext other);

/*  RegalMakeCurrent
 *
 */

#if REGAL_SYS_PPAPI
REGAL_DECL void RegalMakeCurrent( RegalSystemContext ctx, struct PPB_OpenGLES2 *ppb_interface );
#else
REGAL_DECL void RegalMakeCurrent( RegalSystemContext ctx );
#endif

/*  RegalDestroyContext - release resources used by Regal context.
 *
 */

REGAL_DECL void RegalDestroyContext(RegalSystemContext ctx);

#ifdef __cplusplus
}
#endif

#endif /* __REGAL_API_H */
